From 97161900acc9a6db23d27e971ab12c72b225407c Mon Sep 17 00:00:00 2001 From: zhengyongxing Date: Thu, 2 Jul 2020 11:47:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E4=B8=93=E5=91=98=E4=B8=9A?= =?UTF-8?q?=E7=BB=A9=E7=AE=A1=E7=90=86bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/Admin/Common/extend.php | 2 +- .../Controller/AdminController.class.php | 6 + .../MarketPercentageController.class.php | 202 ++++++---------- .../Controller/PayChannelController.class.php | 5 + .../Controller/TimingController.class.php | 227 ++++++++++++++---- .../Admin/View/MarketPercentage/index.html | 7 - .../MarketPercentage/marketstaffsettle.html | 2 +- .../personmarketstaffsettle.html | 10 +- 8 files changed, 272 insertions(+), 189 deletions(-) diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php index 8a4a39d86..f79511da6 100644 --- a/Application/Admin/Common/extend.php +++ b/Application/Admin/Common/extend.php @@ -2585,7 +2585,7 @@ function is_sendBonus($pay_time = '',$admin_id = '') { ->where(['pay_time'=>$pay_time,'admin_id'=>$admin_id]) ->find(); - if ($market_altogether['wait_commission'] != '0.00' && $market_altogether['wait_commission']) { + if ($market_altogether && $market_altogether['type'] != 0) { return '已发放'; } else { return '未发放'; diff --git a/Application/Admin/Controller/AdminController.class.php b/Application/Admin/Controller/AdminController.class.php index 55629e82a..d882fae33 100644 --- a/Application/Admin/Controller/AdminController.class.php +++ b/Application/Admin/Controller/AdminController.class.php @@ -649,6 +649,12 @@ class AdminController extends Controller { $this->assign('role_export_check',$this->checkRule($exportRule,array('in','1,2'))); + + + $exportRule = strtolower(MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME."_caculate_check"); + + $this->assign('caculate_check',$this->checkRule($exportRule,array('in','1,2'))); + $countRule = strtolower(MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME."_count_check"); $this->assign($countfield,$this->checkRule($countRule,array('in','1,2'))); diff --git a/Application/Admin/Controller/MarketPercentageController.class.php b/Application/Admin/Controller/MarketPercentageController.class.php index 2fed19c2e..a4eaf5d6b 100644 --- a/Application/Admin/Controller/MarketPercentageController.class.php +++ b/Application/Admin/Controller/MarketPercentageController.class.php @@ -45,6 +45,31 @@ class MarketPercentageController extends ThinkController ->where($map) ->find(); + $this->assign("sum",$sum); + + foreach ($data as $key => $value) { + + if ($value['company_belong'] == 0) { + $data[$key]['company_belong'] = '内团'; + } else if ($value['company_belong'] == 1) { + $data[$key]['company_belong'] = '外团'; + } else if ($value['company_belong'] == 2) { + $data[$key]['company_belong'] = '外团-分发联盟'; + } else { + $data[$key]['company_belong'] = '无'; + } + + if ($value['develop_type'] == 1) { + $data[$key]['develop_type'] = '自主开发'; + } else if ($value['develop_type'] == 2) { + $data[$key]['develop_type'] = '自主开发及维护'; + } else if ($value['develop_type'] == 3) { + $data[$key]['develop_type'] = '只维护'; + } else { + $data[$key]['develop_type'] = '无'; + } + } + if ($_REQUEST['export']) { $title = ['pay_time' => '时间', @@ -72,31 +97,6 @@ class MarketPercentageController extends ThinkController data2csv($data,'市场结算管理',$title); } - $this->assign("sum",$sum); - - foreach ($data as $key => $value) { - - if ($value['company_belong'] == 0) { - $data[$key]['company_belong'] = '内团'; - } else if ($value['company_belong'] == 1) { - $data[$key]['company_belong'] = '外团'; - } else if ($value['company_belong'] == 2) { - $data[$key]['company_belong'] = '外团-分发联盟'; - } else { - $data[$key]['company_belong'] = '无'; - } - - if ($value['develop_type'] == 1) { - $data[$key]['develop_type'] = '自主开发'; - } else if ($value['develop_type'] == 2) { - $data[$key]['develop_type'] = '自主开发及维护'; - } else if ($value['develop_type'] == 3) { - $data[$key]['develop_type'] = '只维护'; - } else { - $data[$key]['develop_type'] = '无'; - } - } - $count = M("settleup_marketorder","tab_") ->where($map) ->group("promote_id,game_name,pay_time") @@ -371,51 +371,6 @@ class MarketPercentageController extends ThinkController ->select(); } -// $all_data = M("settleup_marketorder","tab_") -// ->field("tab_settleup_marketorder.id,pay_time,promote_account,company_belong,member.real_name,develop_type,game_name, -// sum(pay_amount) pay_amount,sum(company_profit) company_profit,group_id,market_percentage,nickname,admin_id, -// sum(if((develop_type = 1 or develop_type = 2), pay_amount, 0)) performance_revenue,sum(if(develop_type = 3, pay_amount, 0)) appraisal_bonuses") -// ->join("left join sys_auth_group_access access on admin_id=access.uid") -// ->join("left join sys_auth_group auth on access.group_id=auth.id") -// ->join("left join sys_member member on access.uid=member.uid") -// ->where(['group_id'=>['in','11,12,21']]) -// ->group("admin_id,pay_time") -// ->select(); -// -// $wait_amount = []; -// foreach ($all_data as $key => $value) { -// -// $sum_amount = $value['performance_revenue'] + $value['appraisal_bonuses']; -// -// $market_percentage = json_decode($value['market_percentage'],true); -// //业绩提成 -// $all_data[$key]['performance_commission'] = -// number_format($value['company_profit']*($market_percentage['develop_commission_ratio']/100) + -// $value['company_profit']*($market_percentage['maintain_commission_ratio']/100), 2, '.', ''); -// -// $sum_amount <$market_percentage['performance_revenue'] ? ($all_data[$key]['performance_commission'] = 0):""; -// //绩效考核奖金 -// $all_data[$key]['achievement_bonus'] = -// number_format($value['company_profit']*($market_percentage['appraisal_bonuses_ratio']/100) + -// $value['company_profit']*($market_percentage['maintain_appraisal_bonuses_ratio']/100), 2, '.', ''); -// $sum_amount <$market_percentage['appraisal_bonuses'] ? ($all_data[$key]['achievement_bonus'] = 0):""; -// //总提成 -// $all_data[$key]['commission'] = number_format($all_data[$key]['performance_commission']+$all_data[$key]['achievement_bonus'], 2, '.', ''); -// //应发金额 -// $all_data[$key]['extend_commission'] = -// number_format($all_data[$key]['performance_commission'] * ($market_percentage['performance_monthly_ratio']/100)+ -// $all_data[$key]['achievement_bonus'] * ($market_percentage['month_bonus_ratio']/100), 2, '.', ''); -// -// //待发金额 -// $all_data[$key]['wait_commission'] = number_format($all_data[$key]['commission'] - ( $all_data[$key]['performance_commission'] * ($market_percentage['performance_monthly_ratio']/100)+ -// $all_data[$key]['achievement_bonus'] * ($market_percentage['month_bonus_ratio']/100) ), 2, '.', ''); -// $wait_amount[$value['admin_id'].$value['pay_time']] = $all_data[$key]['wait_commission']; -// -// } -// dump($data);die(); - $all_data = []; - - $count = M("settleup_marketorder","tab_") ->field("pay_time,promote_account,company_belong,tab_settleup_marketorder.real_name,develop_type,game_name, sum(pay_amount) pay_amount,sum(company_profit) company_profit,group_id,market_percentage,nickname") @@ -484,35 +439,23 @@ class MarketPercentageController extends ThinkController if ($market_percentage['time'] == 1) { if ($month == '07') { -// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03']; $data[$key]['is_send_use'] = 1; } elseif($month == '10') { -// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'04'] + $wait_amount[$value['admin_id'].$yes.'-'.'05'] + $wait_amount[$value['admin_id'].$yes.'-'.'06']; $data[$key]['is_send_use'] = 1; } elseif($month == '04') { -// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12']; $data[$key]['is_send_use'] = 1; } elseif($month == '01') { -// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'07'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'08'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'09']; $data[$key]['is_send_use'] = 1; } } elseif($market_percentage['time'] == 2) { // dump($wait_amount);die(); if ($month == '07') { -// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03'] + -// $wait_amount[$value['admin_id'].$yes.'-'.'04'] + $wait_amount[$value['admin_id'].$yes.'-'.'05'] + $wait_amount[$value['admin_id'].$yes.'-'.'06']; $data[$key]['is_send_use'] = 1; } elseif($month == '01') { -// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'07'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'08'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'09'] + -// $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12']; $data[$key]['is_send_use'] = 1; } } elseif($market_percentage['time'] == 3) { if ($month == '01') { -// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '01'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '02'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '03'] + -// $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '04'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '05'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '06'] + -// $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '07'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '08'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '09'] + -// $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '10'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '11'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '12']; $data[$key]['is_send_use'] = 1; } } else { @@ -524,37 +467,9 @@ class MarketPercentageController extends ThinkController $data[$key]['achievement_bonus'] * ($market_percentage['month_bonus_ratio']/100)), 4, '.', ''),0,-2); $sum['wait_commission'] += $data[$key]['wait_commission']; -// $wait_amount[$value['admin_id'].$value['pay_time']] = $data[$key]['wait_commission']; - -// if ($market_percentage['remain_time'] == 1) { -// if ($month == '07') { -// $data[$key]['wait_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'04'] + $wait_amount[$value['admin_id'].$yes.'-'.'05'] + $wait_amount[$value['admin_id'].$yes.'-'.'06']; -// } elseif($month == '10') { -// $data[$key]['wait_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'07'] + $wait_amount[$value['admin_id'].$yes.'-'.'08'] + $wait_amount[$value['admin_id'].$yes.'-'.'09']; -// } elseif($month == '04') { -// $data[$key]['wait_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03']; -// } elseif($month == '01') { -// $data[$key]['wait_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12']; -// } -//// } elseif($market_percentage['remain_time'] == 2) { -//// if ($month == '07') { -//// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03'] + -//// $wait_amount[$value['admin_id'].$yes.'-'.'04'] + $wait_amount[$value['admin_id'].$yes.'-'.'05'] + $wait_amount[$value['admin_id'].$yes.'-'.'06']; -//// } elseif($month == '01') { -//// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'07'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'08'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'09'] + -//// $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12']; -//// } -//// } elseif($market_percentage['remain_time'] == 3) { -//// $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'01'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'02'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'03'] + -//// $wait_amount[$value['admin_id'].($yes-1).'-'.'04'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'05'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'06'] + -//// $wait_amount[$value['admin_id'].($yes-1).'-'.'07'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'08'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'09'] + -//// $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12']; -// } -// $sum['wait_commission'] += $data[$key]['wait_commission']; - $sum['company_profit'] += $value['company_profit']; } -// dump($data);die(); + $this->assign("sum",$sum); if ($_REQUEST['export']) { @@ -569,8 +484,8 @@ class MarketPercentageController extends ThinkController 'performance_commission' => '业绩提成', 'achievement_bonus' => '绩效考核奖金', 'commission' => '总提成', - 'extend_commission' => '当月应发金额', - 'wait_commission' => '剩余金额', + 'extend_commission' => '本月发放', + 'wait_commission' => '本月未发', 'is_send'=>'剩余金额发放状态']; $data = array_merge($data,[$sum]); @@ -586,6 +501,39 @@ class MarketPercentageController extends ThinkController } + public function insertAllUserBonus($time,$admin_id=0) { + +// $time = $_REQUEST['time']; + $data = M("member") + ->field("access.uid admin_id,real_name,nickname,group_id level,0 pay_amount,0 extend_commission,0 wait_commission") + ->join("left join sys_auth_group_access access on sys_member.uid = access.uid") + ->join("left join sys_auth_group auth on access.group_id=auth.id") + ->where(['group_id'=>['in','11,12,21'],'sys_member.uid'=>$admin_id]) + ->select(); + + + + foreach ($data as $key => $value) { + $value['pay_time'] = $time; + $value['remark'] = '自动发放'; + $value['create_time'] = time(); + + $sign = M("market_altogether","tab_") + ->where(['admin_id'=>$value['admin_id'],'pay_time'=>$time]) + ->find(); + + if (!$sign) { + M("market_altogether","tab_")->add($value); + } else { + M("market_altogether","tab_") + ->where(['admin_id'=>$value['admin_id'],'pay_time'=>$time]) + ->save($value); + } + + } + + } + public function sendBonus() { $map['pay_time'] = $_REQUEST['pay_time']; @@ -595,6 +543,8 @@ class MarketPercentageController extends ThinkController $this->ajaxReturn(['status'=>0,'msg'=>'数据错误']); } + $this->insertAllUserBonus($_REQUEST['pay_time'],$_REQUEST['admin_id']); + $group_config = M("auth_group_access access") ->field("market_percentage") ->join("left join sys_auth_group auth on access.group_id=auth.id") @@ -638,10 +588,13 @@ class MarketPercentageController extends ThinkController ($yes-1).'-'.'07',($yes-1).'-'.'08',($yes-1).'-'.'09',($yes-1).'-'.'10',($yes-1).'-'.'11',($yes-1).'-'.'12']; } + } else { + $where = [date("Y-m",strtotime("last month",strtotime($_REQUEST['pay_time'])))]; } + $where = array_merge($where,[$_REQUEST['pay_time']]); $map['pay_time'] = ['in',$where]; - +// var_dump(date("Y-m",strtotime("last month",strtotime($_REQUEST['pay_time']))));die(); $data = M("settleup_marketorder","tab_") ->field("tab_settleup_marketorder.id,pay_time,promote_account,company_belong,tab_settleup_marketorder.real_name,develop_type,game_name, sum(pay_amount) pay_amount,sum(company_profit) company_profit,group_id,market_percentage,nickname,admin_id, @@ -732,10 +685,9 @@ class MarketPercentageController extends ThinkController $month = date("m",strtotime($value['pay_time'])); $yes = date("Y",strtotime($value['pay_time'])); - + $check_month = date("m",strtotime($_REQUEST['pay_time'])); if ($market_percentage['time'] == 1) { //跨级发放验证当前发放月份 - $check_month = date("m",strtotime($_REQUEST['pay_time'])); if ($month == '07') { $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03']; @@ -779,17 +731,16 @@ class MarketPercentageController extends ThinkController $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '10'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '11'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '12']; } } -// else { -// $data[$key]['is_send_use'] = 1; -// } - + else { + $data[$key]['extend_commission'] +=$wait_amount[$value['admin_id'] . date("Y-m",strtotime("last month",strtotime($_REQUEST['pay_time'])))]; + } $insert['pay_time'] = $data[$key]['pay_time']; $insert['admin_id'] = $data[$key]['admin_id']; $insert['real_name'] = $data[$key]['real_name']; $insert['nickname'] = $data[$key]['nickname']; - $insert['level'] = $data[$key]['level']; + $insert['level'] = $data[$key]['group_id']; $insert['pay_amount'] = $data[$key]['pay_amount']; $insert['extend_commission'] = $data[$key]['extend_commission']; $insert['wait_commission'] = $data[$key]['wait_commission']; @@ -797,7 +748,12 @@ class MarketPercentageController extends ThinkController if ($_REQUEST['all']) { $insert['remark'] = '离职发放'; $insert['type'] = 1; + } elseif($month != $check_month) { + $insert['type'] = 2; + } else { + $insert['type'] = 0; } + $insert['create_time'] = time(); $is_hav = M("market_altogether","tab_") @@ -812,8 +768,6 @@ class MarketPercentageController extends ThinkController $is_add = M("market_altogether","tab_")->add($insert); } -// $is_add = M("market_altogether","tab_")->add($insert); - if (!$is_add) { $this->ajaxReturn(['status'=>0,'msg'=>'发放失败']); } @@ -848,7 +802,7 @@ class MarketPercentageController extends ThinkController $_REQUEST['pay_time']?$map['pay_time'] = $_REQUEST['pay_time']:''; $_REQUEST['real_name']?$map['real_name'] = $_REQUEST['real_name']:''; $_REQUEST['nickname']?$map['nickname'] = $_REQUEST['nickname']:''; - $_REQUEST['level']?$map['level'] = $_REQUEST['level']:''; + $_REQUEST['level']?$map['group_id'] = $_REQUEST['level']:''; $data = M("market_altogether","tab_") ->field("max(pay_time) pay_time,real_name,admin_id,nickname,level,sum(pay_amount) pay_amount,sum(extend_commission) extend_commission, sum(wait_commission) wait_commission,remark,group_id,max(type) type") diff --git a/Application/Admin/Controller/PayChannelController.class.php b/Application/Admin/Controller/PayChannelController.class.php index 1e7f88a79..fe4dfe491 100644 --- a/Application/Admin/Controller/PayChannelController.class.php +++ b/Application/Admin/Controller/PayChannelController.class.php @@ -194,6 +194,9 @@ class PayChannelController extends ThinkController $this->assign('spreadData',$spreadData); + if($map['payed_time']) { + $map['pay_time'] = $map['payed_time']; + } $channelData = $this->getPayChannel($map); $testOrderChannelDatas = $this->getTestOrderPayChannel($maptestorder); $payTypeData['支付宝支付金额'] = 0; @@ -457,6 +460,8 @@ class PayChannelController extends ThinkController ->group('pay_way') ->select(false); +// var_dump($map);die(); + //推广后台充值数据 $spreadMap['order_status'] = array('egt',1); $spreadMap['pay_way'] = array('egt',1); diff --git a/Application/Admin/Controller/TimingController.class.php b/Application/Admin/Controller/TimingController.class.php index 98bad980c..a14d743da 100644 --- a/Application/Admin/Controller/TimingController.class.php +++ b/Application/Admin/Controller/TimingController.class.php @@ -765,7 +765,7 @@ class TimingController extends AdminController { $spend_map = []; if($_REQUEST['time'] == 'all') { $map = []; - $spend_map['pay_time'] = ['elt',strtotime(date('Y-m-t', strtotime('-1 month')))]; + $spend_map['pay_time'] = ['elt',strtotime(date('Y-m-t 23:59:59', strtotime('-1 month')))]; } $data = M("auth_group") @@ -793,7 +793,7 @@ class TimingController extends AdminController { $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") ->where($map) - ->group("pay_time,promote_id,game_name,sdk_version,pay_way") + ->group("pay_time,promote_id,game_name,pay_way") ->select(); $channel_fee = []; @@ -824,15 +824,15 @@ class TimingController extends AdminController { break; } //将时间、推广员id、游戏名、设备类型作为键值标记渠道费用 - if (!$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['sdk_version']]) { + if (!$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name']]) { if (!$value['pay_way']) { - $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['sdk_version']] = 0; + $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name']] = 0; } - $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['sdk_version']] + $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name']] = $value['pay_amount'] * ($pay_rate[$value['pay_way']]/100); } else { - $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['sdk_version']] - = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['sdk_version']]+($value['pay_amount'] * ($pay_rate[$value['pay_way']]/100)); + $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name']] + = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name']]+($value['pay_amount'] * ($pay_rate[$value['pay_way']]/100)); } } @@ -840,7 +840,7 @@ class TimingController extends AdminController { $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") ->where($map) - ->group("pay_time,promote_id,game_name,sdk_version") + ->group("pay_time,promote_id,game_name") ->select(false); $promote_data = M()->table("({$spend}) spend") @@ -878,7 +878,7 @@ class TimingController extends AdminController { //下游流水 $promote_data[$key]['promote_amount'] = $value['pay_amount'] * ($promote_radio * 0.01); //渠道费用 - $promote_data[$key]['channel_amount'] = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['sdk_version']]; + $promote_data[$key]['channel_amount'] = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name']]; //公司税费 $promote_data[$key]['company_tax'] = ($value['pay_amount']-$promote_data[$key]['cp_amount']- $promote_data[$key]['promote_amount'])*($tax_radio/100); //毛利 @@ -895,7 +895,7 @@ class TimingController extends AdminController { unset($promote_data[$key]['market_percentage']); $marker_data = M("settleup_marketorder","tab_") - ->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name'],'sdk_version'=>$value['sdk_version']]) + ->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name']]) ->find(); echo "日期:{$value['pay_time']},游戏:{$value['game_name']},推广员:{$value['promote_account']}\n"; // dump($promote_data[$key]);die(); @@ -904,16 +904,46 @@ class TimingController extends AdminController { ->add($promote_data[$key]); } else { M("settleup_marketorder","tab_") - ->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name'],'sdk_version'=>$value['sdk_version']]) + ->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name']]) ->save($promote_data[$key]); } } -// dump($promote_data); + echo date("Y-m-d H:i:s")."----------------------市场结算管理计算----------------------\n"; } + public function insertAllUserBonus($time) { + +// $time = $_REQUEST['time']; + $data = M("member") + ->field("access.uid admin_id,real_name,nickname,group_id level,0 pay_amount,0 extend_commission,0 wait_commission") + ->join("left join sys_auth_group_access access on sys_member.uid = access.uid") + ->join("left join sys_auth_group auth on access.group_id=auth.id") + ->where(['group_id'=>['in','11,12,21']]) + ->select(); + + foreach ($data as $key => $value) { + $value['pay_time'] = $time; + $value['remark'] = '自动发放'; + $value['create_time'] = time(); + + $sign = M("market_altogether","tab_") + ->where(['admin_id'=>$value['admin_id'],'pay_time'=>$time]) + ->find(); + if (!$sign) { + M("market_altogether","tab_")->add($value); + } else { + M("market_altogether","tab_") + ->where(['admin_id'=>$value['admin_id'],'pay_time'=>$time]) + ->save($value); + } + + } + + } + // public function sendMarketBonus() { @@ -921,9 +951,16 @@ class TimingController extends AdminController { $map['pay_time'] = date("Y-m",strtotime('-1 month')); + + if ($_REQUEST['pay_time']) { $map['pay_time'] = $_REQUEST['pay_time']; } + //所有管理员插入数据 + $this->insertAllUserBonus($map['pay_time']); + + $month = date("m",strtotime($_REQUEST['pay_time'])); + $yes = date("Y",strtotime($_REQUEST['pay_time'])); $all_data = M("settleup_marketorder","tab_") ->field("tab_settleup_marketorder.id,pay_time,promote_account,company_belong,tab_settleup_marketorder.real_name,develop_type,game_name, @@ -964,9 +1001,37 @@ class TimingController extends AdminController { $all_data[$key]['wait_commission'] = substr(number_format($all_data[$key]['commission'] - ( $all_data[$key]['performance_commission'] * ($market_percentage['performance_monthly_ratio']/100)+ $all_data[$key]['achievement_bonus'] * ($market_percentage['month_bonus_ratio']/100) ), 4, '.', ''),0,-2); $wait_amount[$value['admin_id'].$value['pay_time']] = $all_data[$key]['wait_commission']; + $check_month = date("m",strtotime($value['pay_time'])); + $check_yes = date("Y",strtotime($value['pay_time'])); - } + if ($market_percentage['time'] == 1) { + if ($month == '07'&&($check_month=='01'||$check_month=='02'||$check_month=='03')) { + $where['season'][] = $value['pay_time']; + } elseif($month == '10'&&($check_month=='04'||$check_month=='05'||$check_month=='06')) { + $where['season'][] = $value['pay_time']; + } elseif($month == '04'&&($check_month=='01'||$check_month=='02'||$check_month=='03')) { + $where['season'][] = $value['pay_time']; + } elseif($month == '01'&&($check_month=='07'||$check_month=='08'||$check_month=='09')&&$check_yes==($yes-1)) { + $where['season'][] = $value['pay_time']; + } + } elseif($market_percentage['time'] == 2) { + if ($month == '07'&&($check_month=='01'||$check_month=='02'||$check_month=='03'||$check_month=='04'||$check_month=='05'||$check_month=='06')) { + $where['half_year'][] = $value['pay_time']; + } elseif($month == '01'&&($check_month=='07'||$check_month=='08'||$check_month=='09'||$check_month=='10'||$check_month=='11'||$check_month=='12')&&$check_yes==($yes-1)) { + $where['half_year'][] = $value['pay_time']; + } + } elseif($market_percentage['time'] == 3) { + if ($month == '01'&&($check_month=='01'||$check_month=='02'||$check_month=='03'||$check_month=='04'||$check_month=='05'||$check_month=='06')&&$check_yes==($yes-1)) { + $where['year'][] = $value['pay_time']; + } + } else { + if ($check_month==($month-1)) { + $where['month'][] = $value['pay_time']; + } + } + } +// dump($wait_amount);die(); $data = M("settleup_marketorder","tab_") ->field("tab_settleup_marketorder.id,pay_time,promote_account,company_belong,tab_settleup_marketorder.real_name,develop_type,game_name, sum(pay_amount) pay_amount,sum(company_profit) company_profit,group_id,market_percentage,nickname,admin_id, @@ -1014,37 +1079,101 @@ class TimingController extends AdminController { $month = date("m",strtotime($value['pay_time'])); $yes = date("Y",strtotime($value['pay_time'])); + $check_month = date("m",strtotime($_REQUEST['pay_time'])); + + $insert['pay_time'] = $data[$key]['pay_time']; + $insert['admin_id'] = $data[$key]['admin_id']; + $insert['real_name'] = $data[$key]['real_name']; + $insert['nickname'] = $data[$key]['nickname']; + $insert['level'] = $data[$key]['group_id']; + $insert['pay_amount'] = $data[$key]['pay_amount']; + $insert['extend_commission'] = $data[$key]['extend_commission']; + if ($month != $check_month) { + $insert['pay_amount'] = 2; + } + $insert['wait_commission'] = $data[$key]['wait_commission']; + $insert['remark'] = "月初自动发放"; + $insert['create_time'] = time(); + + echo "{$data[$key]['level']}市场专员:{$insert['real_name']}发放应发奖金及绩效:{$insert['extend_commission']}\n"; + + $is_hav = M("market_altogether","tab_") + ->where(['pay_time'=>$data[$key]['pay_time'],'admin_id'=>$data[$key]['admin_id']]) + ->find(); + if (!$is_hav) { + M("market_altogether","tab_")->add($insert); + } else { + M("market_altogether","tab_") + ->where(['pay_time'=>$data[$key]['pay_time'],'admin_id'=>$data[$key]['admin_id']]) + ->save($insert); + } + + } + + //遍历统计数据 + $data = M("market_altogether","tab_") + ->join("left join sys_auth_group_access access on admin_id=access.uid") + ->join("left join sys_auth_group auth on access.group_id=auth.id") + ->join("left join sys_member member on access.uid=member.uid") + ->where(['pay_time'=>$map['pay_time']]) + ->select(); + + foreach($data as $key => $value) { + + $market_percentage = json_decode($value['market_percentage'],true); + + if ($market_percentage['time'] == 1) { + if ($month == '07'&&($check_month=='01'||$check_month=='02'||$check_month=='03')) { + $where['season'][] = $value['pay_time']; + } elseif($month == '10'&&($check_month=='04'||$check_month=='05'||$check_month=='06')) { + $where['season'][] = $value['pay_time']; + } elseif($month == '04'&&($check_month=='01'||$check_month=='02'||$check_month=='03')) { + $where['season'][] = $value['pay_time']; + } elseif($month == '01'&&($check_month=='07'||$check_month=='08'||$check_month=='09')&&$check_yes==($yes-1)) { + $where['season'][] = $value['pay_time']; + } + + } elseif($market_percentage['time'] == 2) { + if ($month == '07'&&($check_month=='01'||$check_month=='02'||$check_month=='03'||$check_month=='04'||$check_month=='05'||$check_month=='06')) { + $where['half_year'][] = $value['pay_time']; + } elseif($month == '01'&&($check_month=='07'||$check_month=='08'||$check_month=='09'||$check_month=='10'||$check_month=='11'||$check_month=='12')&&$check_yes==($yes-1)) { + $where['half_year'][] = $value['pay_time']; + } + } elseif($market_percentage['time'] == 3) { + if ($month == '01'&&($check_month=='01'||$check_month=='02'||$check_month=='03'||$check_month=='04'||$check_month=='05'||$check_month=='06')&&$check_yes==($yes-1)) { + $where['year'][] = $value['pay_time']; + } + } else { + if ($check_month==($month-1)) { + $where['month'][] = $value['pay_time']; + } + } + if ($market_percentage['time'] == 1) { //跨级发放验证当前发放月份 - $check_month = date("m",strtotime($_REQUEST['pay_time'])); + if ($where['season']) { + M("market_altogether","tab_") + ->where(['pay_time'=>['in',array_unique($where['season'])],'admin_id'=>$value['admin_id']]) + ->save(['type'=>2]); + } if ($month == '07') { $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03']; - if ($_REQUEST['all']&&$check_month==$month) { - $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'04'] + - $wait_amount[$value['admin_id'].$yes.'-'.'05'] + $wait_amount[$value['admin_id'].$yes.'-'.'06'] + $data[$key]['wait_commission']; - } } elseif($month == '10') { $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'04'] + $wait_amount[$value['admin_id'].$yes.'-'.'05'] + $wait_amount[$value['admin_id'].$yes.'-'.'06']; - if ($_REQUEST['all']&&$check_month==$month) { - $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'07'] + - $wait_amount[$value['admin_id'].$yes.'-'.'08'] + $wait_amount[$value['admin_id'].$yes.'-'.'09'] + $data[$key]['wait_commission']; - } } elseif($month == '04') { $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12']; - if ($_REQUEST['all']&&$check_month==$month) { - $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + - $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03'] + $data[$key]['wait_commission']; - } } elseif($month == '01') { $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'07'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'08'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'09']; - if ($_REQUEST['all']&&$check_month==$month) { - $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + - $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12'] + $data[$key]['wait_commission']; - } } } elseif($market_percentage['time'] == 2) { + if ($where['half_year']) { + M("market_altogether","tab_") + ->where(['pay_time'=>['in',array_unique($where['half_year'])],'admin_id'=>$value['admin_id']]) + ->save(['type'=>2]); + } + if ($month == '07') { $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'].$yes.'-'.'01'] + $wait_amount[$value['admin_id'].$yes.'-'.'02'] + $wait_amount[$value['admin_id'].$yes.'-'.'03'] + $wait_amount[$value['admin_id'].$yes.'-'.'04'] + $wait_amount[$value['admin_id'].$yes.'-'.'05'] + $wait_amount[$value['admin_id'].$yes.'-'.'06']; @@ -1053,37 +1182,33 @@ class TimingController extends AdminController { $wait_amount[$value['admin_id'].($yes-1).'-'.'10'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'11'] + $wait_amount[$value['admin_id'].($yes-1).'-'.'12']; } } elseif($market_percentage['time'] == 3) { + + if ($where['year']) { + M("market_altogether","tab_") + ->where(['pay_time'=>['in',array_unique($where['year'])],'level'=>$value['admin_id']]) + ->save(['type'=>2]); + } + if ($month == '01') { $data[$key]['extend_commission'] += $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '01'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '02'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '03'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '04'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '05'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '06'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '07'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '08'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '09'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '10'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '11'] + $wait_amount[$value['admin_id'] . ($yes - 1) . '-' . '12']; } + } else { + if ($where['month']) { + M("market_altogether","tab_") + ->where(['pay_time'=>['in',array_unique($where['month'])],'admin_id'=>$value['admin_id']]) + ->save(['type'=>2]); + } + $data[$key]['extend_commission'] +=$wait_amount[$value['admin_id'] . date("Y-m",strtotime("last month",strtotime($_REQUEST['pay_time'])))]; } - $insert['pay_time'] = $data[$key]['pay_time']; - $insert['admin_id'] = $data[$key]['admin_id']; - $insert['real_name'] = $data[$key]['real_name']; - $insert['nickname'] = $data[$key]['nickname']; - $insert['level'] = $data[$key]['level']; - $insert['pay_amount'] = $data[$key]['pay_amount']; - $insert['extend_commission'] = $data[$key]['extend_commission']; - $insert['wait_commission'] = $data[$key]['wait_commission']; - $insert['remark'] = "月初自动发放"; - $insert['create_time'] = time(); - - echo "{$data[$key]['level']}市场专员:{$insert['real_name']}发放应发奖金及绩效:{$insert['extend_commission']}\n"; + $update['extend_commission'] = $data[$key]['extend_commission']; - $is_hav = M("market_altogether","tab_") + M("market_altogether","tab_") ->where(['pay_time'=>$data[$key]['pay_time'],'admin_id'=>$data[$key]['admin_id']]) - ->find(); - if (!$is_hav) { - M("market_altogether","tab_")->add($insert); - } else { - M("market_altogether","tab_") - ->where(['pay_time'=>$data[$key]['pay_time'],'admin_id'=>$data[$key]['admin_id']]) - ->save($insert); - } + ->save($update); } diff --git a/Application/Admin/View/MarketPercentage/index.html b/Application/Admin/View/MarketPercentage/index.html index 7ac00ff44..4b1f898b0 100644 --- a/Application/Admin/View/MarketPercentage/index.html +++ b/Application/Admin/View/MarketPercentage/index.html @@ -75,13 +75,6 @@ -
- -
diff --git a/Application/Admin/View/MarketPercentage/marketstaffsettle.html b/Application/Admin/View/MarketPercentage/marketstaffsettle.html index eeb114d27..9ed35f668 100644 --- a/Application/Admin/View/MarketPercentage/marketstaffsettle.html +++ b/Application/Admin/View/MarketPercentage/marketstaffsettle.html @@ -122,7 +122,7 @@ {$data['appraisal_bonuses']|default='0.00'} {$data['performance_commission']|default='0.00'} {$data['achievement_bonus']|default='0.00'} - {$data['commission']|default='0.00'} + {$data['commission']|default='0.00'} {$data['extend_commission']|default='0.00'} {$data['wait_commission']|default='0.00'} diff --git a/Application/Admin/View/MarketPercentage/personmarketstaffsettle.html b/Application/Admin/View/MarketPercentage/personmarketstaffsettle.html index 851ede673..f4d9b2ee2 100644 --- a/Application/Admin/View/MarketPercentage/personmarketstaffsettle.html +++ b/Application/Admin/View/MarketPercentage/personmarketstaffsettle.html @@ -40,9 +40,9 @@
- + 重算 - +
@@ -83,7 +83,7 @@ 业绩提成 绩效考核奖金 总提成 - 本月应发 + 本月发放 本月未发 剩余金额发放状态 操作 @@ -117,11 +117,11 @@ - - +