From 2975b9fe35877f8bc3b5525d7f33db9e0941f249 Mon Sep 17 00:00:00 2001 From: zhengyongxing Date: Tue, 7 Jul 2020 10:35:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E4=B8=9A=E7=BB=A9=E6=8F=90?= =?UTF-8?q?=E6=88=90=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/Admin/Common/extend.php | 43 ++- .../FinancePromoteController.class.php | 10 +- .../MarketPercentageController.class.php | 251 ++++++++++++++++-- .../View/FinancePromote/gameStatistics.html | 2 +- .../Admin/View/FinancePromote/index.html | 2 +- .../View/FinancePromote/promoteUser.html | 6 +- .../Admin/View/MarketPercentage/index.html | 59 +++- .../MarketPercentage/marketstaffsettle.html | 73 ++++- .../personmarketstaffsettle.html | 60 ++++- .../View/MarketPercentage/showbonuslist.html | 14 +- 10 files changed, 459 insertions(+), 61 deletions(-) diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php index e1376ff08..549d65fba 100644 --- a/Application/Admin/Common/extend.php +++ b/Application/Admin/Common/extend.php @@ -2292,6 +2292,32 @@ function a_array_unique($array){ return $data; } } +/** + * 获取团体归属类型其他 + * @author chenzhi 20200219 + * $id 不传返回所有类型列表 + * 传入ID 返回对应的团体类型 + */ +function getCompanyBlongOther($id = -1) +{ + $data = array( + ["id"=>0,'name'=>"内团"], + ["id"=>1,'name'=>"外团"], + ["id"=>2,'name'=>"外团-分发"], + ["id"=>3,'name'=>"无"], + ["id"=>'1,2','name'=>"外团&外团-分发"] + ); + if($id > -1){ + foreach($data as $k=>$v){ + if($v['id'] == $id){ + return $v['name']; + break; + } + } + }else{ + return $data; + } +} /** * 获取公会归属关系 * @author chenzhi 20200219 @@ -2565,6 +2591,11 @@ function isMarketAdmin() function getMarketAdmin() { $map['group_id'] = ['in','11,12,21']; + $admin_id = $_SESSION['onethink_admin']['user_auth']['uid']; + $map['menber.uid'] = $admin_id; + if(is_administrator()||session('user_group_id') == 15) { + unset($map['menber.uid']); + } $data = M("auth_group_access") ->field("real_name,menber.uid,nickname") @@ -2613,7 +2644,17 @@ function getCompanyDevelopTypes() return [ 1 => '自主开发', 2 => '自主开发及维护', - 3 => '只维护' + 3 => '只维护', + ]; +} + +function getCompanyDevelopTypesOther() +{ + return [ + 1 => '自主开发', + 2 => '自主开发及维护', + 3 => '只维护', + '1,2'=>'自主开发&自主开发及维护' ]; } diff --git a/Application/Admin/Controller/FinancePromoteController.class.php b/Application/Admin/Controller/FinancePromoteController.class.php index 742036f1f..3283e31ac 100644 --- a/Application/Admin/Controller/FinancePromoteController.class.php +++ b/Application/Admin/Controller/FinancePromoteController.class.php @@ -241,7 +241,7 @@ class FinancePromoteController extends AdminController } if (isset($_REQUEST['company_belong'])) { $map['promote.company_belong'] = $_REQUEST['company_belong']; - + } $isMarketLeader = isMarketLeader(); if ($isMarketLeader) { @@ -249,7 +249,7 @@ class FinancePromoteController extends AdminController } if (!empty(I('develop_type'))) { - $map['company.develop_type'] = I('develop_type'); + $map['company.develop_type'] = ['in',I('develop_type')]; } $adminId = 0; @@ -357,7 +357,8 @@ class FinancePromoteController extends AdminController $title = ''; if (!empty(I('develop_type'))) { - $map['company.develop_type'] = I('develop_type'); +// $map['company.develop_type'] = I('develop_type'); + $map['company.develop_type'] = ['in',I('develop_type')]; } self::setPromoteMap($map,"s.promote_id",$title); @@ -588,7 +589,8 @@ class FinancePromoteController extends AdminController $map['s.pay_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399]; } if (!empty(I('develop_type'))) { - $map['develop_type'] = I('develop_type'); +// $map['develop_type'] = I('develop_type'); + $map['develop_type'] = ['in',I('develop_type')]; } $isMarketLeader = isMarketLeader(); if ($isMarketLeader) { diff --git a/Application/Admin/Controller/MarketPercentageController.class.php b/Application/Admin/Controller/MarketPercentageController.class.php index 454b799cd..7b893a015 100644 --- a/Application/Admin/Controller/MarketPercentageController.class.php +++ b/Application/Admin/Controller/MarketPercentageController.class.php @@ -15,11 +15,60 @@ class MarketPercentageController extends ThinkController $map = []; - $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):''; +// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):''; $_REQUEST['promote_id']?($map['promote_id'] = $_REQUEST['promote_id']):''; $_REQUEST['relation_game_id']?($map['relation_game_id'] = $_REQUEST['relation_game_id']):''; $_REQUEST['sdk_version']?($map['sdk_version'] = $_REQUEST['sdk_version']):''; + $search_date = []; + if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { + + $end = $_REQUEST['time_end']; + $start = $_REQUEST['time_start']; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end}"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + + } elseif (isset($_REQUEST['time_start'])) { + + $end = date("Y-m",time()); + $start = $_REQUEST['time_start']; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end} -1 month"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + + } elseif (isset($_REQUEST['time_end'])) { + + $end = $_REQUEST['time_end']; + $start = '2019-08'; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end} -1 month"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + } + +// var_dump($map);die(); + $data = M("settleup_marketorder","tab_") ->field("pay_time,promote_account,company_belong,member.real_name,develop_type,game_name, sum(pay_amount) pay_amount,sum(cp_amount) cp_amount,sum(promote_amount) promote_amount, @@ -86,6 +135,10 @@ class MarketPercentageController extends ThinkController 'company_tax' => '公司税费', 'company_profit' => '税后毛利额']; + foreach ($data as $key => $value) { + $data[$key]['pay_time'] = '`'.$data[$key]['pay_time']; + } + $sum['pay_time'] = ''; $sum['promote_account'] = ''; $sum['company_belong'] = '合计'; @@ -95,7 +148,7 @@ class MarketPercentageController extends ThinkController $data = array_merge($data,[$sum]); - data2csv($data,'市场结算管理',$title); + data2csv($data,'市场毛利统计',$title); } $count = M("settleup_marketorder","tab_") @@ -122,10 +175,64 @@ class MarketPercentageController extends ThinkController $map['group_id'] = ['in','11,12,21']; - $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):''; +// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):''; $_REQUEST['admin_id']?($map['admin_id'] = $_REQUEST['admin_id']):''; $_REQUEST['group_id']?($map['level'] = $_REQUEST['group_id']):''; + + $search_date = []; + if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { + + $end = $_REQUEST['time_end']; + $start = $_REQUEST['time_start']; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end}"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + + } elseif (isset($_REQUEST['time_start'])) { + + $end = date("Y-m",time()); + $start = $_REQUEST['time_start']; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end}"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + + } elseif (isset($_REQUEST['time_end'])) { + + $end = $_REQUEST['time_end']; + $start = '2019-08'; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end}"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + } + + $_REQUEST['time_start']?($start_time = date("Y-m-1",strtotime($_REQUEST['time_start']))):''; + $_REQUEST['time_end']?($end_time = date("Y-m-t",strtotime($_REQUEST['time_end']))):''; + + $this->assign('start_time',$start_time); + $this->assign('end_time',$end_time); + $data = M("market_altogether","tab_") ->where($map); @@ -142,7 +249,7 @@ class MarketPercentageController extends ThinkController ->field("tab_market_altogether.*,market_percentage") ->join("left join sys_auth_group_access access on tab_market_altogether.admin_id = access.uid") ->join("left join sys_auth_group auth on access.group_id=auth.id") - ->page($p, $row) +// ->page($p, $row) ->order("pay_time DESC") ->select(); } @@ -169,6 +276,14 @@ class MarketPercentageController extends ThinkController } + $sum = []; + $sum['performance_revenue'] = 0; + $sum['performance_commission'] = 0; + $sum['achievement_bonus'] = 0; + $sum['commission'] = 0; + $sum['extend_commission'] = 0; + $sum['wait_commission'] = 0; + foreach ($data as $key => $value) { $data[$key]['start_time'] = date("Y-m-1",strtotime($value['pay_time'])); @@ -300,6 +415,16 @@ class MarketPercentageController extends ThinkController } } + $data[$key]['extend_commission'] = number_format($data[$key]['extend_commission'],2,'.',''); + $data[$key]['wait_commission'] = number_format($data[$key]['wait_commission'],2,'.',''); + + $sum['performance_revenue'] += $data[$key]['performance_revenue']; + $sum['appraisal_bonuses'] += $data[$key]['appraisal_bonuses']; + $sum['performance_commission'] += $data[$key]['performance_commission']; + $sum['achievement_bonus'] += $data[$key]['achievement_bonus']; + $sum['commission'] += $data[$key]['commission']; + $sum['extend_commission'] += $data[$key]['extend_commission']; + } if ($_REQUEST['export']) { @@ -323,7 +448,7 @@ class MarketPercentageController extends ThinkController foreach ($data as $key => $value) { $line = $key+2; // $develop_commission_ratio = $value['develop_commission_ratio']/100; - + $data[$key]['pay_time'] = '`'.$data[$key]['pay_time']; $data[$key]['performance_commission'] = "=ROUND(J{$line}*(F{$line}/100)+J{$line}*(G{$line}/100),2)"; $data[$key]['achievement_bonus'] = "=ROUND(J{$line}*(H{$line}/100)+J{$line}*(I{$line}/100),2)"; $data[$key]['commission'] = "=ROUND(K{$line}+L{$line},2)"; @@ -332,32 +457,80 @@ class MarketPercentageController extends ThinkController data2csv($data,'市场业绩提成',$title); } -// $arraypage = $p; -// $size = $row;//每页显示的记录数 -// $data = array_slice($data, ($arraypage - 1) * $size, $size); + $arraypage = $p; + $size = $row;//每页显示的记录数 + $data = array_slice($data, ($arraypage - 1) * $size, $size); + $this->assign("sum",$sum); $this->assign("list_data",$data); $this->display("marketstaffsettle"); } public function personMarketStaffSettle($row = 10, $p = 1) { - + var_dump(getMarketAdmin()); $map = []; $map['group_id'] = ['in','11,12,21']; - $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):''; +// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):''; // $_REQUEST['admin_id']?($map['admin_id'] = $_REQUEST['admin_id']):''; $_REQUEST['group_id']?($map['group_id'] = $_REQUEST['group_id']):''; $admin_id = $_SESSION['onethink_admin']['user_auth']['uid']; $map['admin_id'] = $admin_id; - if(is_administrator()) { + if(is_administrator()||session('user_group_id') == 15) { unset($map['admin_id']); $_REQUEST['admin_id']?($map['admin_id'] = $_REQUEST['admin_id']):''; } + $search_date = []; + if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { + + $end = $_REQUEST['time_end']; + $start = $_REQUEST['time_start']; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end}"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + + } elseif (isset($_REQUEST['time_start'])) { + + $end = date("Y-m",time()); + $start = $_REQUEST['time_start']; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end}"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + + } elseif (isset($_REQUEST['time_end'])) { + + $end = $_REQUEST['time_end']; + $start = '2019-08'; + $i = 0; + do { + $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); + $search_date[] = $date; + $i++; + }while ($date < date('Y-m', strtotime("{$end}"))); + + if ($search_date) { + $map['pay_time'] = ['in', $search_date]; + } + } + $data = M("market_altogether","tab_") ->where($map); @@ -382,6 +555,8 @@ class MarketPercentageController extends ThinkController } $this->checkListOrCountAuthRestMap($map,[]); + $sum['performance_revenue'] = 0; + $sum['appraisal_bonuses'] = 0; $sum['company_profit'] = 0; $sum['performance_commission'] = 0; $sum['achievement_bonus'] = 0; @@ -414,6 +589,9 @@ class MarketPercentageController extends ThinkController $data[$key]['commission'] = $data[$key]['performance_commission'] + $data[$key]['achievement_bonus']; $data[$key]['extend_commission'] = $data[$key]['commission'] - $data[$key]['wait_commission']; + $sum['performance_revenue'] += $value['performance_revenue']; + $sum['appraisal_bonuses'] += $value['appraisal_bonuses']; + $sum['company_profit'] += $value['company_profit']; $sum['performance_commission'] += $value['performance_commission']; $sum['achievement_bonus'] += $value['achievement_bonus']; @@ -423,6 +601,16 @@ class MarketPercentageController extends ThinkController } + $sum['performance_revenue'] = number_format($sum['performance_revenue'], 2, '.', ''); + $sum['appraisal_bonuses'] = number_format($sum['appraisal_bonuses'], 2, '.', ''); + + $sum['company_profit'] = number_format($sum['company_profit'], 2, '.', ''); + $sum['performance_commission'] = number_format($sum['performance_commission'], 2, '.', ''); + $sum['achievement_bonus'] = number_format($sum['achievement_bonus'], 2, '.', ''); + $sum['commission'] = number_format($sum['commission'], 2, '.', ''); + $sum['extend_commission'] = number_format($sum['extend_commission'], 2, '.', ''); + $sum['wait_commission'] = number_format($sum['wait_commission'], 2, '.', ''); + $this->assign("sum",$sum); if ($_REQUEST['export']) { @@ -442,6 +630,11 @@ class MarketPercentageController extends ThinkController 'is_send'=>'剩余金额发放状态']; $data = array_merge($data,[$sum]); + + foreach ($data as $key => $value) { + $data[$key]['pay_time'] = '`'.$data[$key]['pay_time']; + } + data2csv($data,'个人总提成列表',$title); } $arraypage = $p; @@ -581,7 +774,7 @@ class MarketPercentageController extends ThinkController $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); $search_date[] = $date; $i++; - }while ($date < date('Y-m', strtotime("{$end} -1 month"))); + }while ($date < date('Y-m', strtotime("{$end}"))); if ($search_date) { $map['pay_time'] = ['in', $search_date]; @@ -596,7 +789,7 @@ class MarketPercentageController extends ThinkController $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); $search_date[] = $date; $i++; - }while ($date < date('Y-m', strtotime("{$end} -1 month"))); + }while ($date < date('Y-m', strtotime("{$end}"))); if ($search_date) { $map['pay_time'] = ['in', $search_date]; @@ -611,12 +804,13 @@ class MarketPercentageController extends ThinkController $date = date('Y-m', strtotime($start . ' + ' . $i . ' month')); $search_date[] = $date; $i++; - }while ($date < date('Y-m', strtotime("{$end} -1 month"))); + }while ($date < date('Y-m', strtotime("{$end}"))); if ($search_date) { $map['pay_time'] = ['in', $search_date]; } } + if($_REQUEST['pay_time']) { if (in_array($_REQUEST['pay_time'],$search_date)) { $map['pay_time'] = $_REQUEST['pay_time']; @@ -629,10 +823,11 @@ class MarketPercentageController extends ThinkController $map['pay_time'] = $_REQUEST['pay_time']; } } - +// var_dump($map);die(); $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(performance_commission) performance_commission,sum(achievement_bonus) achievement_bonus, + sum(wait_performance_commission)+sum(wait_achievement_commission) wait_amount, sum(if(status > 0, wait_performance_commission, '0.00')) + sum(if(status > 0, wait_achievement_commission,'0.00')) wait_extend_commission, sum(if(status = 0, wait_performance_commission, '0.00')) + sum(if(status = 0, wait_achievement_commission, '0.00')) wait_commission, remark,level,status") ->where($map); @@ -643,12 +838,18 @@ class MarketPercentageController extends ThinkController ->group("admin_id") ->select(); } else { - $data = $data->page($p, $row) - ->order("id DESC") + $data = $data +// ->page($p, $row) + ->order("pay_time DESC") ->group("admin_id") ->select(); } + $sum = []; + $sum['pay_amount'] = 0; + $sum['extend_commission'] = 0; + $sum['wait_commission'] = 0; + foreach($data as $key => $value) { if ($value['level'] == 21) { @@ -664,9 +865,20 @@ class MarketPercentageController extends ThinkController $data[$key]['extend_commission'] = number_format($data[$key]['commission'] - $data[$key]['wait_commission'], 2, '.', ''); $data[$key]['pay_amount'] = number_format($data[$key]['pay_amount'] , 2, '.', ''); $data[$key]['wait_commission'] = number_format($data[$key]['wait_commission'] , 2, '.', ''); +// $data[$key]['all_commission'] = $data[$key]['wait_amount'] + ; + + $sum['pay_amount'] += $data[$key]['pay_amount']; + $sum['extend_commission'] += $data[$key]['extend_commission']; + $sum['wait_commission'] += $data[$key]['wait_commission']; + + $sum['commission'] += $data[$key]['commission']; } + $sum['pay_amount'] = number_format($sum['pay_amount'], 2, '.', '');; + $sum['extend_commission'] = number_format($sum['extend_commission'], 2, '.', '');; + $sum['wait_commission'] = number_format($sum['wait_commission'], 2, '.', '');; + if ($_REQUEST['export']) { $title = ['real_name' => '姓名', @@ -690,8 +902,13 @@ class MarketPercentageController extends ThinkController $this->assign('_page', $page); } + $arraypage = $p; + $size = $row;//每页显示的记录数 + $data = array_slice($data, ($arraypage - 1) * $size, $size); + $this->checkListOrCountAuthRestMap($map,[]); + $this->assign("sum",$sum); $this->assign("list_data",$data); $this->display("showbonuslist"); diff --git a/Application/Admin/View/FinancePromote/gameStatistics.html b/Application/Admin/View/FinancePromote/gameStatistics.html index bca97e492..f46117538 100644 --- a/Application/Admin/View/FinancePromote/gameStatistics.html +++ b/Application/Admin/View/FinancePromote/gameStatistics.html @@ -140,7 +140,7 @@
diff --git a/Application/Admin/View/FinancePromote/index.html b/Application/Admin/View/FinancePromote/index.html index 5c6704951..b7bdae4c9 100644 --- a/Application/Admin/View/FinancePromote/index.html +++ b/Application/Admin/View/FinancePromote/index.html @@ -131,7 +131,7 @@
diff --git a/Application/Admin/View/FinancePromote/promoteUser.html b/Application/Admin/View/FinancePromote/promoteUser.html index 027028cf2..21dc5d37a 100644 --- a/Application/Admin/View/FinancePromote/promoteUser.html +++ b/Application/Admin/View/FinancePromote/promoteUser.html @@ -117,11 +117,11 @@
- -
+ +
diff --git a/Application/Admin/View/MarketPercentage/index.html b/Application/Admin/View/MarketPercentage/index.html index 4b1f898b0..b314f0908 100644 --- a/Application/Admin/View/MarketPercentage/index.html +++ b/Application/Admin/View/MarketPercentage/index.html @@ -32,8 +32,8 @@ @@ -51,13 +51,21 @@
-
- + + + + + + + + +
+ +  -  +
+ + +