From 40664b5f8d33d827f7546c97dceb3895482adb02 Mon Sep 17 00:00:00 2001 From: zhengyongxing Date: Tue, 27 Oct 2020 09:41:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E4=B8=9A=E7=BB=A9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=B0=86=E4=B8=8D=E7=BB=93?= =?UTF-8?q?=E7=AE=97=E6=AF=9B=E5=88=A9=E4=BB=A5=E6=97=A5=E6=9D=A5=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MarketPercentageController.class.php | 60 +++++--- .../Controller/TimingController.class.php | 132 ++++++++++++------ .../addcompanybelonggame.html | 18 +-- .../MarketPercentage/companybelonggame.html | 8 +- .../editcompanybelonggame.html | 18 +-- 5 files changed, 149 insertions(+), 87 deletions(-) diff --git a/Application/Admin/Controller/MarketPercentageController.class.php b/Application/Admin/Controller/MarketPercentageController.class.php index e548feb28..1a472138a 100644 --- a/Application/Admin/Controller/MarketPercentageController.class.php +++ b/Application/Admin/Controller/MarketPercentageController.class.php @@ -1437,12 +1437,19 @@ class MarketPercentageController extends ThinkController $data = M("company_belong_game","tab_") ->where($where) ->page($p, $row) + ->order("begin_time DESC") ->select(); foreach ($data as $key => $value) { - $data[$key]["begin_time"] = date("Y-m-01",strtotime($value['time'])); - $data[$key]["end_time"] = date("Y-m-t",strtotime($value['time'])); + $data[$key]["begin_time"] = date("Y-m-d",$value['begin_time']); + + if($value['end_time'] == 0) { + $data[$key]["end_time"] = "永久"; + } else{ + $data[$key]["end_time"] = date("Y-m-d",$value['end_time']); + } + $where_game = $value['game_ids']; @@ -1486,8 +1493,8 @@ class MarketPercentageController extends ThinkController $data = $_POST; - if (!$data['time']) { - $this->ajaxReturn(['msg'=>"请填写生效月份","status"=>0]); + if (!$data['begin_time']) { + $this->ajaxReturn(['msg'=>"起始时间必填","status"=>0]); } if (!$data['game_ids']) { @@ -1497,16 +1504,23 @@ class MarketPercentageController extends ThinkController $data['game_ids'] = array_merge([''],$data['game_ids'],['']); $data['game_ids'] = implode(',',$data['game_ids']); -// $data['time'] = strtotime($data['time']); -// $data['end_time'] = strtotime($data['end_time']); + $data['begin_time'] = strtotime($data['begin_time']); + $data['end_time'] = strtotime($data['end_time']); + + $time_start = $data['begin_time']; + + if($data['end_time']) { + $time_end = $data['end_time']; + } else { + $time_end = 99999999999; + } $belong_game = M("company_belong_game","tab_") - ->where("time='{$data['time']}'") + ->where("((begin_time<={$time_start} and (end_time >={$time_start} or end_time=0)) or (begin_time<={$time_end} and end_time >={$time_end}) or (end_time>={$time_start} and end_time <={$time_end}))") ->select(); if ($belong_game) { - - $this->ajaxReturn(['msg'=>"已添加月份,请勿重复添加","status"=>0]); + $this->ajaxReturn(['msg'=>"重复时间段,请勿重复添加","status"=>0]); } M("company_belong_game","tab_")->add($data); @@ -1527,8 +1541,8 @@ class MarketPercentageController extends ThinkController if (IS_POST) { $data = $_POST; - if (!$data['time']) { - $this->ajaxReturn(['msg'=>"请填写生效月份","status"=>0]); + if (!$data['begin_time']) { + $this->ajaxReturn(['msg'=>"起始时间必填","status"=>0]); } if (!$data['game_ids']) { @@ -1548,18 +1562,27 @@ class MarketPercentageController extends ThinkController $data['game_ids'] = array_merge([''],$data['game_ids'],['']); $data['game_ids'] = implode(',',$data['game_ids']); -// $data['begin_time'] = strtotime($data['begin_time']); -// $data['end_time'] = strtotime($data['end_time']); + + $time_start = strtotime($data['begin_time']); + + if($data['end_time']) { + $time_end = strtotime($data['end_time']); + } else { + $time_end = 99999999999; + } + + $data['begin_time'] = strtotime($data['begin_time']); + $data['end_time'] = strtotime($data['end_time']); $belong_game = M("company_belong_game","tab_") - ->where("time='{$data['time']}' and id != {$id}") + ->where("((begin_time<={$time_start} and (end_time >={$time_start} or end_time=0)) or (begin_time<={$time_end} and end_time >={$time_end}) or (end_time>={$time_start} and end_time <={$time_end})) and id != {$id}") ->select(); if ($belong_game) { - $this->ajaxReturn(['msg'=>"已添加月份,请勿重复添加","status"=>0]); + $this->ajaxReturn(['msg'=>"重复时间段,请勿重复添加","status"=>0]); } -// dump($data);die(); + M("company_belong_game","tab_")->where(['id'=>$id])->save($data); $this->ajaxReturn(['msg'=>"编辑成功","status"=>1]); @@ -1591,12 +1614,11 @@ class MarketPercentageController extends ThinkController } -// dump($game_ids); + $data['ids'] = implode(',',$game_ids); -// dump($data);die(); + $game_ids = json_encode(array_values($game_ids)); -// dump($game_ids); $data['game_ids'] = $game_ids; $data['begin_time'] = date("Y-m-d",$data['begin_time']); diff --git a/Application/Admin/Controller/TimingController.class.php b/Application/Admin/Controller/TimingController.class.php index cebdd231e..3548d0a95 100644 --- a/Application/Admin/Controller/TimingController.class.php +++ b/Application/Admin/Controller/TimingController.class.php @@ -993,9 +993,21 @@ class TimingController extends AdminController { $map['pay_time'] = $_REQUEST['time']; } $spend_map = []; + $time_start = 0; + $time_end = 0; if($_REQUEST['time'] == 'all') { + + $belong_map = []; $map = []; $spend_map['pay_time'] = ['elt',strtotime(date('Y-m-t 23:59:59', strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01')))]; + + } else { + + $time_start = strtotime(date('Y-m-1',strtotime($_REQUEST['time']))); + $time_end = strtotime(date('Y-m-t',strtotime($_REQUEST['time']))); + + $belong_map = "((begin_time<={$time_start} and (end_time >={$time_start} or end_time=0)) or (begin_time<={$time_end} and end_time >={$time_end}) or (end_time>={$time_start} and end_time <={$time_end}))"; + } $data = M("auth_group") @@ -1009,10 +1021,42 @@ class TimingController extends AdminController { ->where("auth.title is not null") ->select(false); + $belong_game = M("company_belong_game","tab_") + ->field("game_ids,begin_time,end_time") + ->where($belong_map) + ->select(); + + if($belong_game) { + unset($spend_map['pay_time']); + } + $unsettlement = $spend_map; + foreach ($belong_game as $key => $value) { + + $value['game_ids'] = explode(',',$value['game_ids']); + foreach ($value['game_ids'] as $k => $v) { + if (!$v) { + unset($value['game_ids'][$k]); + } + + } + $value['game_ids'] = implode(',',$value['game_ids']); + + if (!$spend_map['_string']) { + + $spend_map['_string'] = "(pay_time between {$value['begin_time']} and {$value['end_time']}+86399 and relation_game_id not in({$value['game_ids']}))"; + + } else { + + $spend_map['_string'] .= " or (pay_time between {$value['begin_time']} and {$value['end_time']}+86399 and relation_game_id not in({$value['game_ids']}))"; + + } + + } + $spend = M("spend","tab_") ->field("sum(pay_amount) as pay_amount,FROM_UNIXTIME(pay_time,'%Y-%m') pay_time, substring_index(substring_index(tab_spend.game_name,'(',1),'(',-1) game_name,game_id,relation_game_id,tab_spend.sdk_version, - CASE WHEN substring_index(substring_index(`chain`,'/',2),'/',-1) !='' THEN substring_index(substring_index(`chain`,'/',2),'/',-1) ELSE promote_id END promote_id,pay_way,market_admin_id") + CASE WHEN substring_index(substring_index(`chain`,'/',2),'/',-1) !='' THEN substring_index(substring_index(`chain`,'/',2),'/',-1) ELSE promote_id END promote_id,pay_way,market_admin_id,1 is_settlement") ->join("left join tab_promote on tab_spend.promote_id = tab_promote.id") ->join("left join tab_game game on game.id=tab_spend.game_id") ->where(['tab_spend.pay_status'=>1,'pay_way'=>['egt',0]]) @@ -1020,25 +1064,34 @@ class TimingController extends AdminController { ->group("tab_spend.id") ->select(false); -// $desposit = M("deposit","tab_") -// ->field("sum(pay_amount) as pay_amount,FROM_UNIXTIME(payed_time,'%Y-%m') pay_time, -// substring_index(substring_index(tab_pay_info.game_name,'(',1),'(',-1) game_name,game_id,relation_game_id,tab_deposit.sdk_version, -// CASE WHEN substring_index(substring_index(`chain`,'/',2),'/',-1) !='' THEN substring_index(substring_index(`chain`,'/',2),'/',-1) ELSE tab_pay_info.promote_id END promote_id,tab_deposit.pay_way,market_admin_id") -// ->join("inner join tab_pay_info on tab_pay_info.order_id=tab_deposit.pay_order_number") -// ->join("left join tab_promote on tab_deposit.promote_id = tab_promote.id") -// ->join("left join tab_game game on game.id=tab_pay_info.game_id") -// ->where(['tab_deposit.pay_status'=>1,'tab_deposit.pay_way'=>['egt',1],'pay_source'=>2]) -// ->where($spend_map) -// ->group("tab_deposit.id") -// ->select(false); -// -// $spend = "{$spend} UNION ALL {$desposit}"; + $not_in_spend = M("spend","tab_") + ->field("tab_spend.id id") + ->join("left join tab_promote on tab_spend.promote_id = tab_promote.id") + ->join("left join tab_game game on game.id=tab_spend.game_id") + ->where(['tab_spend.pay_status'=>1,'pay_way'=>['egt',0]]) + ->where($spend_map) + ->group("tab_spend.id") + ->select(false); + + $unsettlement['_string'] = "tab_spend.id not in($not_in_spend)"; + + $unsettlement_spend = M("spend","tab_") + ->field("sum(pay_amount) as pay_amount,FROM_UNIXTIME(pay_time,'%Y-%m') pay_time, + substring_index(substring_index(tab_spend.game_name,'(',1),'(',-1) game_name,game_id,relation_game_id,tab_spend.sdk_version, + CASE WHEN substring_index(substring_index(`chain`,'/',2),'/',-1) !='' THEN substring_index(substring_index(`chain`,'/',2),'/',-1) ELSE promote_id END promote_id,pay_way,market_admin_id,0 is_settlement") + ->join("left join tab_promote on tab_spend.promote_id = tab_promote.id") + ->join("left join tab_game game on game.id=tab_spend.game_id") + ->where(['tab_spend.pay_status'=>1,'pay_way'=>['egt',0]]) + ->where($unsettlement) + ->group("tab_spend.id") + ->select(false); + + $spend = "{$spend} UNION ALL {$unsettlement_spend}"; -// var_dump($desposit);die(); $payway_spend = M()->table("({$spend}) spend") - ->field("sum(pay_amount) as pay_amount,pay_time,promote_id,game_name,game_id,relation_game_id,pay_way,sdk_version,market_admin_id") + ->field("sum(pay_amount) as pay_amount,pay_time,promote_id,game_name,game_id,relation_game_id,pay_way,sdk_version,market_admin_id,is_settlement") ->where($map) - ->group("pay_time,promote_id,game_name,pay_way,market_admin_id") + ->group("pay_time,promote_id,game_name,pay_way,market_admin_id,is_settlement") ->select(); $channel_fee = []; @@ -1088,35 +1141,33 @@ class TimingController extends AdminController { break; } //将时间、推广员id、游戏名、设备类型作为键值标记渠道费用 - if (!$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id']]) { + if (!$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']]) { if (!$value['pay_way']) { - $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id']] = 0; + $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']] = 0; } - $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id']] + $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']] = $value['pay_amount'] * ($pay_rate[$value['pay_way']]/100); } else { - $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id']] - = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id']]+($value['pay_amount'] * ($pay_rate[$value['pay_way']]/100)); + $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']] + = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']]+($value['pay_amount'] * ($pay_rate[$value['pay_way']]/100)); } } $spend = M()->table("({$spend}) spend") - ->field("sum(pay_amount) as pay_amount,pay_time,promote_id,game_name,game_id,relation_game_id,sdk_version,market_admin_id") + ->field("sum(pay_amount) as pay_amount,pay_time,promote_id,game_name,game_id,relation_game_id,sdk_version,market_admin_id,is_settlement") ->where($map) - ->group("pay_time,promote_id,game_name,market_admin_id") + ->group("pay_time,promote_id,game_name,market_admin_id,is_settlement") ->select(false); $promote_data = M()->table("({$spend}) spend") - ->field("pay_time,company_id,company.company_name,account as promote_account,company.company_belong,develop_type,spend.promote_id,spend.game_name,game_id,relation_game_id,spend.pay_amount,auth.real_name,market_admin_id as admin_id,market_percentage,sdk_version") + ->field("pay_time,company_id,company.company_name,account as promote_account,company.company_belong,develop_type,spend.promote_id,spend.game_name,game_id,relation_game_id,spend.pay_amount,auth.real_name,market_admin_id as admin_id,market_percentage,sdk_version,is_settlement") ->join("left join tab_promote promote on spend.promote_id = promote.id") ->join("left join tab_promote_company company on promote.company_id = company.id") ->join("left join ({$data}) auth on auth.uid=market_admin_id") ->where(['develop_type'=>['egt',1],'group_id'=>['in',['11','12','21']]]) ->select(); - // -// dump($tax_radio);die(); $specialPayAmount = []; foreach ($promote_data as $key => $value) { @@ -1144,7 +1195,7 @@ class TimingController extends AdminController { $specialAmount = $specialPayAmount[$value['pay_time']][$value['company_id']."-".$value['promote_id']."-".$value['relation_game_id']]?$specialPayAmount[$value['pay_time']][$value['company_id']."-".$value['promote_id']."-".$value['relation_game_id']]:0; //渠道费用 - $promote_data[$key]['channel_amount'] = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['admin_id']]; + $promote_data[$key]['channel_amount'] = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['admin_id'].$value['is_settlement']]; $tax = 0; //公司税费 foreach($tax_radio as $k => $v) { @@ -1153,18 +1204,19 @@ class TimingController extends AdminController { } } - $belong_game = M("company_belong_game","tab_") - ->field("game_ids") - ->where("time='{$value['pay_time']}'") - ->find(); - - $belong_game = array_values(explode(",",$belong_game['game_ids'])); - - if ((in_array($value['relation_game_id'],$belong_game) && $value['company_belong'] ==1) || $value['company_belong'] !=1) { - $promote_data[$key]['is_settlement']=1; - } else { - $promote_data[$key]['is_settlement']=0; - } +// $belong_game = M("company_belong_game","tab_") +// ->field("game_ids") +// ->where("time='{$value['pay_time']}'") +// ->find(); +// +// $belong_game = array_values(explode(",",$belong_game['game_ids'])); +// +// if ((in_array($value['relation_game_id'],$belong_game) && $value['company_belong'] ==1) || $value['company_belong'] !=1) { +// $promote_data[$key]['is_settlement']=1; +// } else { +// $promote_data[$key]['is_settlement']=0; +// } + $promote_data[$key]['is_settlement'] = $value['is_settlement']; $promote_data[$key]['company_tax'] = ($value['pay_amount']-$promote_data[$key]['cp_amount']- $promote_data[$key]['promote_amount'])*($tax/100); diff --git a/Application/Admin/View/MarketPercentage/addcompanybelonggame.html b/Application/Admin/View/MarketPercentage/addcompanybelonggame.html index 9f9d3cbc7..3e3d1ae93 100644 --- a/Application/Admin/View/MarketPercentage/addcompanybelonggame.html +++ b/Application/Admin/View/MarketPercentage/addcompanybelonggame.html @@ -107,7 +107,8 @@ *生效期限:
- + - +
@@ -223,17 +224,10 @@ $(function(){ $('.time').datetimepicker({ - format: 'yyyy-mm', - language:"zh-CN", - // minView:2, - weekStart: 1, - todayBtn: true, - todayHighlight: false, - startView: 3, - minView: 3, - forceParse: 0, - autoclose:true, - pickerPosition:'bottom-left' + format: 'yyyy-mm-dd', + language: "zh-CN", + minView: 2, + autoclose: true }); $('#submit').click(function (e) { diff --git a/Application/Admin/View/MarketPercentage/companybelonggame.html b/Application/Admin/View/MarketPercentage/companybelonggame.html index b4812e802..ca8e569fa 100644 --- a/Application/Admin/View/MarketPercentage/companybelonggame.html +++ b/Application/Admin/View/MarketPercentage/companybelonggame.html @@ -52,8 +52,8 @@
@@ -127,7 +127,7 @@ {$game_data['original_package_name']|default="--"} {$game_data['relation_game_name']|default="--"} - {$game_data['relation_game_name']|default="--"} + {$game_data['game_type_name']|default="--"} @@ -176,7 +176,7 @@ $(".select_gallery").select2();