Merge branch 'master' of 8.136.139.249:wmtx/platform into hotfix/fiance_statement_bug_20210420

master
chenzhi 4 years ago
commit aa0bcef724

@ -78,23 +78,18 @@ class ConsoleController extends Think {
foreach ($tasks as $task) {
if ($task['type'] == 1) {
$message = '推广员迁移[' . $task['id'] . ']';
$result = $promoteService->shiftPromote($task);
if ($result['status']) {
$message = 'SUCCESS ----- ' . $message . $result['msg'];
} else {
$message = 'ERROR ----- ' . $message . $result['msg'];
}
Printer::export($message);
} elseif ($task['type'] == 2) {
$message = '玩家迁移[' . $task['id'] . ']';
$result = $promoteService->shiftPlayer($task);
if ($result['status']) {
$message = 'SUCCESS ----- ' . $message . $result['msg'];
} else {
$message = 'ERROR ----- ' . $message . $result['msg'];
}
Printer::export($message);
} else {
$message = '未知类型迁移[' . $task['id'] . ']';
}
$result = $promoteService->shift($task);
if ($result['status']) {
$message = 'SUCCESS ----- ' . $message . $result['msg'];
} else {
$message = 'ERROR ----- ' . $message . $result['msg'];
}
Printer::export($message);
}
}

@ -0,0 +1,99 @@
<?php
namespace Admin\Controller;
class RechargeSumOtherController extends ThinkController
{
public function summation($p = 1)
{
$startDateTime = empty($_REQUEST['timeStart']) ? date('Y-m-d', strtotime('-6 day', time())) : $_REQUEST['timeStart'];
$endDateTime = empty($_REQUEST['timeEnd']) ? date('Y-m-d') : $_REQUEST['timeEnd'];
$_GET['timeStart'] = $startDateTime;
$_GET['timeEnd'] = $endDateTime;
if(!array_key_exists("timeStart",$_REQUEST)){
$this->redirect(ACTION_NAME, array('timeStart' => date('Y-m-d',strtotime('-7 day')),"timeEnd"=>date('Y-m-d')));
}
$total = ['current' => 0, 'sum' => 0];
$map['date'] = array('BETWEEN', array($startDateTime, $endDateTime));
$_REQUEST['game_name'] ? ($map['game_name'] = $_REQUEST['game_name']) :'';
$data = M("recharge_text","tab_")->where($map)->order("date desc")->select();
if (isset($_REQUEST['row'])) {
$row = $_REQUEST['row'];
} else {
$row = 10;
}
foreach ($data as $k => $v) {
$total['sum'] += $v['day_pay'];
}
$count = count($data);
$export_data = $data;
$page = set_pagination($count, $row);
if ($page) {
$this->assign('_page', $page);
}
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
$data = array_slice($data, ($p - 1) * $row, $row);
foreach ($data as $k => $v) {
$total['current'] += $v['day_pay'];
}
//判断是否执行导出
if (I('export') == 1) {
//操作日志
$GetData = $_GET;
unset($GetData['xlsname']);
unset($GetData['export']);
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'url'=>U('RechargeSum/summation',$GetData),'menu'=>'充值-游戏订单-充值汇总-导出']);
$this->exportSum($export_data);
}
$this->assign('showPromote', session('user_auth')['show_promote']);
$this->assign('meta_title', "充值汇总");
$this->assign('list_data', $data);
$this->assign('total', $total);
$this->assign('startDate', $startDateTime);
$this->assign('endDate', $endDateTime);
$this->assign("is_admin",is_administrator());
$this->m_title = '充值汇总';
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'RechargeSum/summation', 'status' => 1])->find());
$this->display();
}
public function exportSum($data)
{
$export = A('Export');
$exptitle = $_REQUEST['xlsname'];
$expCellName = array(
array('date', '日期'),
array('from_channel', '渠道来源'),
array('game_name', '游戏名称'),
array('new_person', '新增人数'),
array('active_person', '活跃人数'),
array('new_pay_person', "新增玩家付费"),
array('day_pay', '本日累计'),
);
if (session('user_auth')['show_promote'] == 0) {
foreach ($expCellName as $key => $row) {
if ($row[0] == 'promote_id') {
unset($expCellName[$key]);
break;
}
}
$expCellName = array_values($expCellName);
}
$expTableData = $data;
$export->exportExcel($exptitle, $expCellName, $expTableData);
}
}

@ -7,15 +7,6 @@ class ShiftTaskController extends Think {
public function test()
{
$list = M('ShiftTask')->where(['status' => 0])->select();
$service = new PromoteService();
foreach ($list as $task) {
if ($task['type'] == 1) {
$result = $this->shiftPromote($task);
} elseif ($task['type'] == 2) {
$result = $this->shiftPlayer($task);
}
}
}
}

@ -0,0 +1,307 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">充值查询</h3>
<p class="description_text">充值汇总:根据推广员和游戏信息,对游戏充值数据按每日进行数据汇总统计。</p>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<div class="input-list">
<input type="text" id="time-start" name="timeStart" class="" value="{$startDate}"
placeholder="查询开始时间"/>
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" id="time-end" name="timeEnd" class="" value="{$endDate}"
placeholder="查询结束时间"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<volist name=":getAllGame()" id="vo">
<option value="{$vo.game_name}" <?php echo $vo.relation_game_name == I('game_name') ? 'selected':''; ?> >{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('summation',array('row'=>I('row')))}">搜索</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th>日期</th>
<th>渠道来源</th>
<th>游戏名称</th>
<th>新增人数</th>
<th>活跃人数</th>
<th>新增玩家付费</th>
<th>本日累计付费</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name = "list_data">
<tr>
<td colspan="8" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
<else/>
<volist name="list_data" id="data">
<tr>
<td>{$data.date}</td>
<td>{$data.from_channel}</td>
<td>{$data.game_name}</td>
<td>{$data.new_person}</td>
<td>{$data.active_person}</td>
<td>{$data.new_pay_person}</td>
<td>{$data.day_pay}</td>
</tr>
</volist>
</empty>
<tr class="data_summary">
<td>汇总</td>
<td colspan="6">当页付费¥{$total.current|default=0} 累计付费¥{$total.sum}</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="page">
<if condition="$role_export_check eq true ">
<a class="sch-btn" href="{:U('RechargeSum/summation',array_merge(array('export'=>1,'xlsname'=>'游戏订单_充值汇总'),I('get.')))}">导出</a>
</if>
{$_page|default=''}
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="RechargeSum/summation">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script>
<volist name=":I('get.')" id="vo">
Think.setValue('{$key}',"{$vo}");
</volist>
$(".select_gallery").select2();
$('#bindcoin').select2({minimumResultsForSearch: -1});
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('RechargeSum/summation')}');
$(function(){
//搜索功能
$("#search").click(function(){
var sdate = Date.parse($('#time-start').val()) / 1000;
var edate = Date.parse($('#time-end').val()) / 1000;
if (sdate > edate) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
if ((edate - sdate) > 2592000) {
layer.msg('时间间隔不能超过31天请重新选择日期');
return false;
}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&"+$('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
$(".paixu").click(function(){
var that=$(this);
$data_order=that.attr('data-order');
$order_type='{$userarpu_order}';
if($order_type==''||$order_type=='4'){
$(".sortBy").attr('name','data_order');
val='3,'+$data_order;
$(".sortBy").attr('value',val);
$("#search").click();
}else if($order_type=='3'){
$(".sortBy").attr('name','data_order');
val='4,'+$data_order;
$(".sortBy").attr('value',val);
$("#search").click();
}
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$("#admin").on('click',function(event) {
var navlist = $(this).find('.i_list_li');
if (navlist.hasClass('hidden')) {
navlist.removeClass('hidden');
$(this).find('#i_list_id').focus().val('');
} else {
navlist.addClass('hidden');
}
$(document).one("click", function(){
navlist.addClass('hidden');
});
event.stopPropagation();
});
$('#admin #i_list_id').on('keyup',function(event) {
var val = $.trim($(this).val()).toLowerCase();
$(this).closest('.drop-down').find('#i_list_idh').val(val);
});
$("#admin #i_list_li").find("a").each(function(){
$(this).click(function(){
var text = $.trim($(this).text()).toLowerCase();
$(this).closest('.drop-down').find("#i_list_id").val(text);
$(this).closest('.drop-down').find('#i_list_idh').val(text);
})
});
//下拉内容框
$(".drop-down2").on('click',function(event) {
var navlist = $(this).find('.i_list_li');
if (navlist.hasClass('hidden')) {
navlist.removeClass('hidden');
$('#i_list_id').focus().val('');
} else {
navlist.addClass('hidden');
}
$(document).one("click", function(){
navlist.addClass('hidden');
});
event.stopPropagation();
});
/* 状态搜索子菜单 */
$('#time-start').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left'
})
var promote_id = "{:I('promote_id')}";
console.log(promote_id);
$("#promote_level").change(function(){
$.ajax({
url:"{:U('Ajax/getPromotersByLevelOther')}",
type:"get",
data:{level:$("#promote_level option:selected").val()},
dataType:'json',
success:function(response){
str = '<option value="">请选择推广员</option>' +
// '<option value="0"'+(promote_id && 0 == promote_id?'selected':'')+'>官方渠道</option>' +
'';
// $.each(response.data, function(index, item){
// console.log(item.id);
// str += '<option value="'+item.id+' '+(promote_id && item.id == promote_id?'selected':'')+'">'+item.nickname+'</option>';
// });
data = response.data;
for (var i in data){
str += "<option value='"+data[i].id+"' "+(promote_id && data[i].id == promote_id?'selected':'')+">"+data[i].nickname+"</option>"
}
$("#promote_id").empty();
$("#promote_id").append(str);
$("#promote_id").select2();
}
})
});
$("#promote_level").change();
var server_id = "{:I('server_id')}";
$("#game_type").change(function(){
$.ajax({
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_id+"' "+(server_id && data[i].server_id == server_id?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
$("#game_name").change(function(){
$("#game_type").change();
});
$("#game_name").change();
})
</script>
</block>

@ -55,6 +55,7 @@
<th>结算方式</th>
<th>添加人</th>
<th>审核状态</th>
</tr>
</thead>
@ -91,6 +92,13 @@
<td></td>
<td>{:get_admin_name($data['creater_id'])}</td>
<if condition="$data.is_verify eq 1">
<td>{$data.verify}</td>
<elseif condition="$data.is_verify eq -1"/>
<td style="color:red;">{$data.verify}</td>
<else/>
<td>--</td>
</if>
</tr>
<!-- 如果有子级 -->
<?php else:?>
@ -118,6 +126,15 @@
<td><?=$data['detail'][1][$i]['settlement_type_text'] ?? '无'?></td>
<td rowspan="{$data['maxCount']}">{:get_admin_name($data['creater_id'])}</td>
<if condition="$data.is_verify eq 1">
<td rowspan="{$data['maxCount']}">{$data.verify}</td>
<elseif condition="$data.is_verify eq -1"/>
<td style="color:red;" rowspan="{$data['maxCount']}">{$data.verify}</td>
<else/>
<td rowspan="{$data['maxCount']}">--</td>
</if>
</tr>
<?php else:?>
<tr>

@ -325,11 +325,11 @@
</volist>
</notemtpy>
<tr>
<td colspan="10" class="text-center">合计</td>
<td colspan="11" class="text-center">合计</td>
<td class="text-center" id="total_reward">-{:array_sum(array_column($list, 'totalPunish'))}</td>
<td colspan="5" class="text-center">合计</td>
<td class="text-center" id="total_punish">{:array_sum(array_column($list, 'totalReward'))}</td>
<td colspan="3" class="text-center"></td>
<td colspan="4" class="text-center"></td>
</tr>
</tbody>
</table>

@ -203,26 +203,25 @@ class PromoteService {
$secondMap['parent_id'] = ['in', $shiftIds];
}
M('promote', 'tab_')->where($firstMap)->save([
'parent_id' => $toPromote['id'],
'parent_name' => $toPromote['account'],
'chain' => $toPromote['chain'] . $toPromote['id'] . '/',
'level' . $toPromote['level'] => $toPromote['id']
]);
try {
M('promote', 'tab_')->where($firstMap)->save([
'parent_id' => $toPromote['id'],
'parent_name' => $toPromote['account'],
'chain' => $toPromote['chain'] . $toPromote['id'] . '/',
'level' . $toPromote['level'] => $toPromote['id']
]);
M('promote', 'tab_')->where($secondMap)->save([
'chain' => ['exp', 'REPLACE(chain, "/' . $fromPromote['id'] . '/","/' . $toPromote['id'] . '/")'],
'level' . $toPromote['level'] => $toPromote['id']
]);
M('promote', 'tab_')->where($secondMap)->save([
'chain' => ['exp', 'REPLACE(chain, "/' . $fromPromote['id'] . '/","/' . $toPromote['id'] . '/")'],
'level' . $toPromote['level'] => $toPromote['id']
]);
$status = M('ShiftTask')->where('id=' . $task['id'])->save(['status' => 1, 'handle_time' => time()]);
if (!$status) {
$model->commit();
return ['status' => true, 'msg' => '推广帐号迁移成功'];
} catch (\Exception $e) {
$model->rollback();
return ['status' => false, 'msg' => '系统异常,修改迁移任务状态失败'];
return ['status' => true, 'msg' => '推广帐号迁移失败: ' . $e->getMessage()];
}
$model->commit();
return ['status' => true, 'msg' => '推广帐号迁移成功'];
}
public function shiftRemoveCoin($promote, $task)
@ -234,7 +233,7 @@ class PromoteService {
$topBalanceCoin = $this->getBalanceCoin($topPromote['id'], 0);
$topBalancePlus = 0;
$map = ['chain' => $promote['chain'] . $chain['id'] . '/%'];
$map = ['chain' => $promote['chain'] . $promote['id'] . '/%'];
if (count($shiftIds) > 0) {
$map['id'] = ['in', $shiftIds];
}
@ -358,7 +357,6 @@ class PromoteService {
$formConpany = M('promote_company', 'tab_')->field(['company_name', 'company_belong'])->where(['id' => $fromPromote['company_id']])->find();
$toConpany = M('promote_company', 'tab_')->field(['company_name', 'company_belong'])->where(['id' => $toPromote['company_id']])->find();
$belongs = PromoteCompanyService::$belongs;
$mends = [];
foreach ($users as $item) {
$amount = isset($payAmountRows[$item['id']]) ? round(floatval($payAmountRows[$item['id']]['pay_amount']), 2) : 0;
@ -404,7 +402,7 @@ class PromoteService {
$model = new Model();
$model->startTrans();
$status = M('mend', 'tab_')->addAll($mends);
if (!$status) {
$model->rollback();
@ -435,39 +433,62 @@ class PromoteService {
return ['status' => false, 'msg' => '系统异常,修改用户推广员失败'];
}
M('user_play', 'tab_')->where($otherMap)->save($updateData);
M('user_play_info', 'tab_')->where($otherMap)->save($updateData);
unset($spendMap['pay_status']);
try {
M('user_play', 'tab_')->where($otherMap)->save($updateData);
M('user_play_info', 'tab_')->where($otherMap)->save($updateData);
unset($spendMap['pay_status']);
$updateCheck = [];
if (count($hasGameIds) > 0) {
$spendMap['game_id'] = ['in', $hasGameIds];
M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 1]));
}
if (count($hasGameIds) > 0) {
$spendMap['game_id'] = ['in', $hasGameIds];
M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 1]));
}
if (count($hasNotGameIds) > 0) {
$spendMap['game_id'] = ['in', $hasNotGameIds];
M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 2]));
}
if (count($hasNotGameIds) > 0) {
$spendMap['game_id'] = ['in', $hasNotGameIds];
M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 2]));
}
$bindMap = $otherMap;
$bindMap['pay_time'] = ['egt', $orderTime];
M('bind_spend', 'tab_')->where($bindMap)->save($updateData);
$bindMap = $otherMap;
$bindMap['pay_time'] = ['egt', $orderTime];
M('bind_spend', 'tab_')->where($bindMap)->save($updateData);
$orderMap = $otherMap;
$orderMap['create_time'] = ['egt', $orderTime];
M('deposit', 'tab_')->where($orderMap)->save(array_merge($updateData, $updateMarket));
M('user_play_data_count', 'tab_')->where($orderMap)->save(['promote_id' => $toPromote['id']]);
$orderMap = $otherMap;
$orderMap['create_time'] = ['egt', $orderTime];
M('deposit', 'tab_')->where($orderMap)->save(array_merge($updateData, $updateMarket));
M('user_play_data_count', 'tab_')->where($orderMap)->save(['promote_id' => $toPromote['id']]);
$status = M('shift_task', 'sys_')->where('id=' . $task['id'])->save(['status' => 1, 'handle_time' => time()]);
if (!$status) {
$model->commit();
return ['status' => true, 'msg' => '玩家迁移成功'];
} catch (\Exception $e) {
$model->rollback();
return ['status' => false, 'msg' => '系统异常,修改迁移任务失败'];
return ['status' => true, 'msg' => '系统异常: ' . $e->getMessage()];
}
}
$model->commit();
return ['status' => true, 'msg' => '玩家迁移成功'];
public function afterShift($task, $result)
{
$data = [];
if ($result['status']) {
$data = ['status' => 1, 'result' => $result['msg'], 'handle_time' => time()];
} else {
$data = ['status' => 2, 'result' => $result['msg'], 'handle_time' => time()];
}
M('shift_task', 'sys_')->where('id=' . $task['id'])->save($data);
}
public function shift($task)
{
$result = null;
if ($task['type'] == 1) {
$result = $this->shiftPromote($task);
} elseif ($task['type'] == 2) {
$result = $this->shiftPlayer($task);
} else {
$result = ['status' => false, 'msg' => '类型错误'];
}
$this->afterShift($task, $result);
return $result;
}
public function cancelShift($params)

Loading…
Cancel
Save