diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php index 65c1a46da..7a4e332fa 100644 --- a/Application/Admin/Common/extend.php +++ b/Application/Admin/Common/extend.php @@ -2918,6 +2918,27 @@ function isMarketLeader() return false; } +function getSearchAdminIds($searchAdminParam = 'admin_id', $searchDepartmentParam = 'department_id') +{ + $adminIds = null; + $isMarketAdmin = isMarketAdmin(); + if ($isMarketAdmin) { + $userAuth = session('user_auth'); + $adminIds = [$userAuth['uid']]; + } else { + if (!empty(I($searchAdminParam))) { + $adminIds = [I($searchAdminParam)]; + } + } + + if (is_null($adminIds) && isset($_REQUEST[$searchDepartmentParam])) { + $admins = getMarketAdmin($_REQUEST[$searchDepartmentParam]); + $adminIds = count($admins) ? array_column($admins, 'uid') : [-1]; + } + + return $adminIds; +} + function isMarketAdmin() { if(IS_SUBSITE){ @@ -2939,7 +2960,6 @@ function isMarketAdmin() function getMarketAdmin($departmentId = null) { $map = []; $map['group_id'] = ['in',A("Market","Event")->getNoLeaderMarketGroupId($departmentId)]; - $data = M("auth_group_access") ->field("real_name,menber.uid,nickname") ->join("left join sys_member menber on sys_auth_group_access.uid = menber.uid") diff --git a/Application/Admin/Controller/AjaxController.class.php b/Application/Admin/Controller/AjaxController.class.php index c59a1b101..f141a57dd 100644 --- a/Application/Admin/Controller/AjaxController.class.php +++ b/Application/Admin/Controller/AjaxController.class.php @@ -668,6 +668,9 @@ class AjaxController extends ThinkController{ public function getAdminsByDepartment() { $departmentId = I('department_id', 0); + if ($departmentId <= 0) { + $departmentId = null; + } $admins = getMarketAdmin($departmentId); return $this->ajaxReturn(['status' => 1, 'message' => '获取成功', 'data' => ['admins' => $admins]]); } diff --git a/Application/Admin/Controller/FinancePromoteController.class.php b/Application/Admin/Controller/FinancePromoteController.class.php index 2c63ca9b5..a9fec2004 100644 --- a/Application/Admin/Controller/FinancePromoteController.class.php +++ b/Application/Admin/Controller/FinancePromoteController.class.php @@ -271,22 +271,7 @@ class FinancePromoteController extends AdminController $map['company.develop_type'] = ['in',I('develop_type')]; } - $adminIds = null; - // $havingPids = []; - $isMarketAdmin = isMarketAdmin(); - if ($isMarketAdmin) { - $userAuth = session('user_auth'); - $adminIds = [$userAuth['uid']]; - } else { - if (!empty(I('admin_id'))) { - $adminIds = [I('admin_id')]; - } - } - - if (is_null($adminIds) && isset($_REQUEST['department_id'])) { - $admins = getMarketAdmin($_REQUEST['department_id']); - $adminIds = count($admins) ? array_column($admins, 'uid') : [-1]; - } + $adminIds = getSearchAdminIds(); if($type == "spend"){ if (isset($_REQUEST['game_name']) || isset($_REQUEST['game_type'])) { @@ -357,22 +342,7 @@ class FinancePromoteController extends AdminController $map['company.develop_type'] = ['in',I('develop_type')]; } - $adminIds = null; - // $havingPids = []; - $isMarketAdmin = isMarketAdmin(); - if ($isMarketAdmin) { - $userAuth = session('user_auth'); - $adminIds = [$userAuth['uid']]; - } else { - if (!empty(I('admin_id'))) { - $adminIds = [I('admin_id')]; - } - } - - if (is_null($adminIds) && isset($_REQUEST['department_id'])) { - $admins = getMarketAdmin($_REQUEST['department_id']); - $adminIds = count($admins) ? array_column($admins, 'uid') : [-1]; - } + $adminIds = getSearchAdminIds(); if($type == "spend"){ if (isset($_REQUEST['game_name']) || isset($_REQUEST['game_type'])) { @@ -509,16 +479,29 @@ class FinancePromoteController extends AdminController ); $marketAdmins = []; + $adminDepartments = []; if (count($senddata) > 0) { $promoteIds = array_column($senddata, 'promote_id'); if (count($promoteIds)) { $marketAdmins = getMarketAdminsByPromoteIds($promoteIds); } + + $adminIds = []; + foreach ($marketAdmins as $item) { + if ( $item['admin']) { + $adminIds[] = $item['admin']['id']; + } + } + if (count($adminIds)) { + $adminDepartments = getAdminDepartmentList($adminIds); + } } - + foreach($senddata as $k=>$v){ $promote = $promotes[$v['promote_id']] ?? null; - $v['admin_username'] = isset($marketAdmins[$v['promote_id']]) && $marketAdmins[$v['promote_id']]['admin'] ? $marketAdmins[$v['promote_id']]['admin']['username'] : '无'; + $marketAdmin = $marketAdmins[$v['promote_id']]['admin'] ?? null; + $v['admin_username'] = $marketAdmin ? $marketAdmin['username'] : '无'; + $v['admin_department'] = $marketAdmin && isset($adminDepartments[$marketAdmin['id']]) ? $adminDepartments[$marketAdmin['id']] : '无'; $v['develop_type_text'] = getCompanyDevelopTypeText($v['develop_type']); $v['company_belong'] = getCompanyBlong($v['company_belong']); if(empty($v['company_name'])) $v['company_name']= $this->COMPANY_NAME; @@ -553,6 +536,7 @@ class FinancePromoteController extends AdminController data2csv($data,'渠道统计',array( "company_name"=>"推广公司", "promote_account"=>"推广员账号", + "admin_department"=>"所属市场部", "admin_username"=>"所属市场专员", "company_belong"=>"团体类型", "develop_type_text"=>"开发类型", @@ -568,6 +552,9 @@ class FinancePromoteController extends AdminController $size = $row; $data = array_slice($data, ($arraypage - 1) * $size, $size); + + $departments = M('department', 'sys_')->select(); + $this->assign('departments', $departments); $this->assign('all_count', $allcount); $this->assign('list_data', $data); $this->meta_title = '渠道统计'; @@ -580,18 +567,9 @@ class FinancePromoteController extends AdminController if (isset($_REQUEST['company_id'])) { $map['promote.company_id'] = $_REQUEST['company_id']; } - if ($type == "spend") { - $adminId = 0; - $isMarketAdmin = isMarketAdmin(); - if ($isMarketAdmin) { - $userAuth = session('user_auth'); - $adminId = $userAuth['uid']; - } else { - if (!empty(I('admin_id'))) { - $adminId = I('admin_id'); - } - } + $adminIds = getSearchAdminIds(); + if ($type == "spend") { if (isset($_REQUEST['game_name']) || isset($_REQUEST['game_type'])) { $map["s.game_id"] = array("in",implode(',', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')) ); } @@ -603,8 +581,8 @@ class FinancePromoteController extends AdminController $map['s.market_admin_id'] = ['gt', 0]; $map['promote.admin_id'] = ['gt', 0]; } - if ($adminId) { - $map['s.market_admin_id'] = $adminId; + if (is_array($adminIds)) { + $map['s.market_admin_id'] = ['in', $adminIds]; } $map['s.pay_status']=1; $map['s.is_check']=1; @@ -628,21 +606,10 @@ class FinancePromoteController extends AdminController } $map['s.status']=1; $map['s.source_id']=0; - - $adminId = 0; - $isMarketAdmin = isMarketAdmin(); - if ($isMarketAdmin) { - $userAuth = session('user_auth'); - $adminId = $userAuth['uid']; - } else { - if (!empty(I('admin_id'))) { - $adminId = I('admin_id'); - } - } $isMarketLeader = isMarketLeader(); - if ($adminId > 0) { - $map['promote.admin_id'] = $adminId; + if (is_array($adminIds)) { + $map['promote.admin_id'] = ['in', $adminIds]; } elseif ($isMarketLeader) { $map['promote.admin_id'] = ['gt', 0]; } @@ -657,8 +624,8 @@ class FinancePromoteController extends AdminController ->group('promote_id'); /* $havingPids = []; - if ($adminId > 0) { - $topIds = M('promote', 'tab_')->where(['admin_id' => $adminId])->getField('id', true); + if (is_array($adminIds)) { + $topIds = M('promote', 'tab_')->where(['admin_id' => ['in', $adminIds]])->getField('id', true); $havingPids = getPromoteIdsByTopIds($topIds); $havingPids = count($havingPids) > 0 ? $havingPids : [0]; $query->having('promote_id in (' . implode(',', $havingPids) . ')'); @@ -720,7 +687,9 @@ class FinancePromoteController extends AdminController } } $promotes = index_by_column('id', $promotes); - $adminUsernames = getAdminUsernameList(array_column($promotes, 'admin_id')); + $adminIds = array_column($promotes, 'admin_id'); + $adminUsernames = getAdminUsernameList($adminIds); + $adminDepartments = getAdminDepartmentList($adminIds); foreach ($data as $key => &$value) { $promote = $promotes[$value['p_id']] ?? null; @@ -731,6 +700,7 @@ class FinancePromoteController extends AdminController $value['company_belong'] =getCompanyBlong($value['company_belong']); ($value['account']=='官方渠道')?($value['account']=C('OFFICIEL_CHANNEL')):''; + $value['admin_department'] = $adminDepartments[$promote['admin_id']] ?? '无'; $value['admin_username'] = $adminUsernames[$promote['admin_id']] ?? '无'; $value['develop_type_text'] = getCompanyDevelopTypeText($value['develop_type']); @@ -753,6 +723,7 @@ class FinancePromoteController extends AdminController "company_name"=>"推广公司", "account"=>"会长账号", "admin_username"=>"所属市场专员", + "admin_department"=>"所属市场部", "company_belong"=>"团体类型", "develop_type_text"=>"开发类型", "game_name"=>"游戏", @@ -781,6 +752,8 @@ class FinancePromoteController extends AdminController $sumInside = $totalData['inside_cash_count']; $sumAll = number_format($sumCash + $sumBalance + $sumInside,2,'.',''); + $departments = M('department', 'sys_')->select(); + $this->assign('departments', $departments); $this->assign('sumCash', $sumCash); $this->assign('sumBalance', $sumBalance); $this->assign('sumInside', $sumInside); @@ -813,25 +786,15 @@ class FinancePromoteController extends AdminController $map['pay_order_number'] = $_REQUEST['pay_order_number']; } - $adminId = 0; - $havingPids = []; - $isMarketAdmin = isMarketAdmin(); - if ($isMarketAdmin) { - $userAuth = session('user_auth'); - $adminId = $userAuth['uid']; - } else { - if (!empty(I('admin_id'))) { - $adminId = I('admin_id'); - } - } + $adminIds = getSearchAdminIds(); $isMarketLeader = isMarketLeader(); if ($isMarketLeader) { $map['market_admin_id'] = ['gt', 0]; } - - if ($adminId > 0) { - $map['market_admin_id'] = $adminId; + + if (is_array($adminIds)) { + $map['market_admin_id'] = ['in', $adminIds]; } D("Spend")->addSubsiteWhere($map); /* if (!empty(I('develop_type'))) { @@ -899,7 +862,9 @@ class FinancePromoteController extends AdminController $marketAdmins = []; if (count($data) > 0) { - $marketAdmins = getAdminUsernameList(array_column($data, 'market_admin_id')); + $marketAdminIds = array_column($data, 'market_admin_id'); + $marketAdmins = getAdminUsernameList($marketAdminIds); + $adminDepartments = getAdminDepartmentList($marketAdminIds); } $merchant_data = M("payment_merchant","tab_") @@ -918,6 +883,7 @@ class FinancePromoteController extends AdminController $data[$key]['game_name'] =clearGameNameType($data[$key]['game_name']); $data[$key]['sdk_version'] =getGameTypeName($data[$key]['sdk_version']); $data[$key]['market_admin_username'] = $marketAdmins[$value['market_admin_id']] ?? '无'; + $data[$key]['admin_department'] = $adminDepartments[$value['market_admin_id']] ?? '无'; ($data[$key]['promote_account']=='官方渠道')?($data[$key]['promote_account']=C('OFFICIEL_CHANNEL')):''; if (isset($_REQUEST['export'])) { @@ -969,6 +935,9 @@ class FinancePromoteController extends AdminController if($page) {$this->assign('_page', $page);} $this->meta_title = '游戏订单查看'; + $departments = M('department', 'sys_')->select(); + $this->assign('departments', $departments); + $this->assign('data',$data); $from = I('from', ''); $this->display($from); @@ -976,19 +945,9 @@ class FinancePromoteController extends AdminController private function gameStatisticsData($map, $row = 0, $page = 1) { - $adminId = 0; - $isMarketAdmin = isMarketAdmin(); - if ($isMarketAdmin) { - $userAuth = session('user_auth'); - $adminId = $userAuth['uid']; - } else { - if (!empty(I('admin_id'))) { - $adminId = I('admin_id'); - } - } - - if ($adminId > 0) { - $map['s.market_admin_id'] = $adminId; + $adminIds = getSearchAdminIds(); + if (is_array($adminIds)) { + $map['s.market_admin_id'] = ['in', $adminIds]; } $map['s.pay_status']=1; @@ -1021,19 +980,9 @@ class FinancePromoteController extends AdminController } private function totalGameStatisticsData($map, $join = true) { - $adminId = 0; - $isMarketAdmin = isMarketAdmin(); - if ($isMarketAdmin) { - $userAuth = session('user_auth'); - $adminId = $userAuth['uid']; - } else { - if (!empty(I('admin_id'))) { - $adminId = I('admin_id'); - } - } - - if ($adminId > 0) { - $map['s.market_admin_id'] = $adminId; + $adminIds = getSearchAdminIds(); + if (is_array($adminIds)) { + $map['s.market_admin_id'] = ['in', $adminIds]; } $query = SM("spend","tab_")->alias("s") diff --git a/Application/Admin/View/FinancePromote/gameStatistics.html b/Application/Admin/View/FinancePromote/gameStatistics.html index 099aee315..1cedfba0e 100644 --- a/Application/Admin/View/FinancePromote/gameStatistics.html +++ b/Application/Admin/View/FinancePromote/gameStatistics.html @@ -128,6 +128,16 @@ + +
+ +
+
+
+ +
+ +
+ +
+