@ -42,20 +42,20 @@ class FinancePromoteController extends AdminController
$senddata = [];
//获取各会长的充值方式
$cash = self:: getJoinPromoteData([],$istimeselect);
$cash = $this-> getJoinPromoteData([],$istimeselect);
foreach($cash as $k=>$v){
$senddata[$v['p_id']] = $v;
}
$unsenddata = [];
$uncash = self:: getJoinUnPayPromoteData([],$istimeselect);
$uncash = $this-> getJoinUnPayPromoteData([],$istimeselect);
foreach($uncash as $k=>$v){
$unsenddata[$v['p_id']] = $v;
}
//内冲
$inside = self:: getJoinPromoteData([],$istimeselect,"promote_coin");
$inside = $this-> getJoinPromoteData([],$istimeselect,"promote_coin");
foreach($inside as $k=>$v){
if(array_key_exists($v['p_id'],$senddata)){
$senddata[$v['p_id']]['inside_cash_count']= $v['pay_amount']-$v['back_amount'];
@ -93,7 +93,7 @@ class FinancePromoteController extends AdminController
}
}
$isMarketAdmin = isMarketAdmin();
if(I('admin_id', 0) != 0 || $isMarketAdmin){
if(I('admin_id', 0) != 0 || I('department_id', 0) != 0 || $isMarketAdmin){
$nwtflag = false;
}
if (isset($_REQUEST['promote_id'])) {
@ -113,7 +113,7 @@ class FinancePromoteController extends AdminController
unset($_REQUEST['company_id']);
unset($_REQUEST['company_belong']);
$_REQUEST['promote_id'] = 0;
$gfcash = self:: getJoinPromoteData([],$istimeselect);
$gfcash = $this-> getJoinPromoteData([],$istimeselect);
$senddata[0] = $gfcash[0];
$pmap['status']=1;
@ -142,7 +142,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($senddata as $k=>$v){
$promote = $promotes[$v['p_id']] ?? null;
$v['company_belong'] = $v['company_belong'] ?:0;
@ -156,6 +158,7 @@ class FinancePromoteController extends AdminController
$v['promote_account'] = get_promote_name($v['p_id']);
($v['promote_account']=='官方渠道')?($v['promote_account']=C('OFFICIEL_CHANNEL')):'';
$v['admin_username'] = $adminUsernames[$promote['admin_id']] ?? '无';
$v['admin_department'] = $adminDepartments[$promote['admin_id']] ?? '无';
$v['develop_type_text'] = getCompanyDevelopTypeText($v['develop_type']);
$v['inside_cash_count'] = number_format($v['inside_cash_count'],2,'.','');
$v['allcount'] = number_format($v['cash_count']-0+$v['balance_coin_count']+$v['bind_coin_count'],2,'.','');
@ -179,6 +182,7 @@ class FinancePromoteController extends AdminController
"company_name"=>"推广公司",
"promote_account"=>"会长渠道",
"admin_username"=>"所属市场专员",
"admin_department"=>"所属市场部",
"company_belong"=>"团体类型",
"develop_type_text"=>"开发类型",
"cash_count"=>"游戏现金金额",
@ -219,6 +223,9 @@ class FinancePromoteController extends AdminController
$this->checkListOrCountAuthRestMap($map,[]);
$departments = M('department', 'sys_')->select();
$this->assign('departments', $departments);
//外团占比
$this->assign('outBelong',number_format($outBelong/$count['all_count']*100,2,'.',''));
//内团占比
@ -256,29 +263,16 @@ class FinancePromoteController extends AdminController
}
$isMarketLeader = isMarketLeader();
if ($isMarketLeader) {
$map['promote.admin_id'] = ['gt', 0];
$marketPromoteIds = getPowerPromoteIds();
$map['_string'] = "s.promote_id in ($marketPromoteIds)";
}
if (!empty(I('develop_type'))) {
$map['company.develop_type'] = ['in',I('develop_type')];
}
$adminId = 0;
// $havingPids = [];
$isMarketAdmin = isMarketAdmin();
if ($isMarketAdmin) {
$userAuth = session('user_auth');
$adminId = $userAuth['uid'];
} else {
if (!empty(I('admin_id'))) {
$adminId = I('admin_id');
}
}
/* if ($adminId > 0) {
$havingPids = M('promote', 'tab_')->where(['admin_id' => $adminId])->getField('id', true);
$havingPids = count($havingPids) > 0 ? $havingPids : [0];
} */
$adminIds = getSearchAdminIds();
$isUnMarketAdmin = isUnMarketAdmin();
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')) );
@ -289,8 +283,12 @@ class FinancePromoteController extends AdminController
if ($isMarketLeader) {
$map['s.market_admin_id'] = ['gt', 0];
}
if ($adminId > 0) {
$map['s.market_admin_id'] = $adminId;
if (is_array($adminIds)) {
if ($isUnMarketAdmin) {
$map['promote.admin_id'] = ['in', $adminIds];
} else {
$map['s.market_admin_id'] = ['in', $adminIds];
}
}
$map['s.pay_status']=1;
$map['s.is_check']=2;
@ -340,29 +338,16 @@ class FinancePromoteController extends AdminController
}
$isMarketLeader = isMarketLeader();
if ($isMarketLeader) {
$map['promote.admin_id'] = ['gt', 0];
$marketPromoteIds = getPowerPromoteIds();
$map['_string'] = "s.promote_id in ($marketPromoteIds)";
}
if (!empty(I('develop_type'))) {
$map['company.develop_type'] = ['in',I('develop_type')];
}
$adminId = 0;
// $havingPids = [];
$isMarketAdmin = isMarketAdmin();
if ($isMarketAdmin) {
$userAuth = session('user_auth');
$adminId = $userAuth['uid'];
} else {
if (!empty(I('admin_id'))) {
$adminId = I('admin_id');
}
}
/* if ($adminId > 0) {
$havingPids = M('promote', 'tab_')->where(['admin_id' => $adminId])->getField('id', true);
$havingPids = count($havingPids) > 0 ? $havingPids : [0];
} */
$adminIds = getSearchAdminIds();
$isUnMarketAdmin = isUnMarketAdmin();
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')) );
@ -373,8 +358,12 @@ class FinancePromoteController extends AdminController
if ($isMarketLeader) {
$map['s.market_admin_id'] = ['gt', 0];
}
if ($adminId > 0) {
$map['s.market_admin_id'] = $adminId;
if (is_array($adminIds)) {
if ($isUnMarketAdmin) {
$map['promote.admin_id'] = ['in', $adminIds];
} else {
$map['s.market_admin_id'] = ['in', $adminIds];
}
}
$map['s.pay_status']=1;
// $map['s.is_check']=1;
@ -398,20 +387,9 @@ class FinancePromoteController extends AdminController
if($istimeselect){
$map['s.create_time']=$istimeselect;
}
$adminId = 0;
// $havingPids = [];
$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['promote.admin_id'] = $adminId;
// $havingPids = M('promote', 'tab_')->where(['admin_id' => $adminId])->getField('id', true);
if (is_array($adminIds)) {
$map['promote.admin_id'] = ['in', $adminIds];
// $havingPids = M('promote', 'tab_')->where(['admin_id' => ['in', $adminIds]])->getField('id', true);
// $havingPids = count($havingPids) > 0 ? $havingPids : [0];
}
$map['s.status']=1;
@ -509,16 +487,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 +544,7 @@ class FinancePromoteController extends AdminController
data2csv($data,'渠道统计',array(
"company_name"=>"推广公司",
"promote_account"=>"推广员账号",
"admin_department"=>"所属市场部",
"admin_username"=>"所属市场专员",
"company_belong"=>"团体类型",
"develop_type_text"=>"开发类型",
@ -568,6 +560,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 +575,10 @@ 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();
$isUnMarketAdmin = isUnMarketAdmin();
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 +590,12 @@ 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)) {
if ($isUnMarketAdmin) {
$map['promote.admin_id'] = ['in', $adminIds];
} else {
$map['s.market_admin_id'] = ['in', $adminIds];
}
}
$map['s.pay_status']=1;
$map['s.is_check']=1;
@ -628,21 +619,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 +637,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 +700,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 +713,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 +736,7 @@ class FinancePromoteController extends AdminController
"company_name"=>"推广公司",
"account"=>"会长账号",
"admin_username"=>"所属市场专员",
"admin_department"=>"所属市场部",
"company_belong"=>"团体类型",
"develop_type_text"=>"开发类型",
"game_name"=>"游戏",
@ -781,6 +765,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 +799,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 +875,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 +896,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'])) {
@ -940,6 +919,7 @@ class FinancePromoteController extends AdminController
"sdk_version"=>"设备名称",
"promote_account"=>"所属推广员",
"market_admin_username"=>"所属市场专员",
"admin_department"=>"所属市场部",
"spend_ip"=>"充值ip",
"server_name"=>"游戏区服",
"game_player_name"=>"角色名称",
@ -969,6 +949,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,21 +959,16 @@ 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');
$adminIds = getSearchAdminIds();
$isUnMarketAdmin = isUnMarketAdmin();
if (is_array($adminIds)) {
if ($isUnMarketAdmin) {
$map['promote.admin_id'] = ['in', $adminIds];
} else {
$map['s.market_admin_id'] = ['in', $adminIds];
}
}
if ($adminId > 0) {
$map['s.market_admin_id'] = $adminId;
}
$map['s.pay_status']=1;
$map['s.is_check']=1;
$query = SM("spend","tab_")->alias("s")
@ -1021,21 +999,16 @@ 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');
$adminIds = getSearchAdminIds();
$isUnMarketAdmin = isUnMarketAdmin();
if (is_array($adminIds)) {
if ($isUnMarketAdmin) {
$map['promote.admin_id'] = ['in', $adminIds];
} else {
$map['s.market_admin_id'] = ['in', $adminIds];
}
}
if ($adminId > 0) {
$map['s.market_admin_id'] = $adminId;
}
$query = SM("spend","tab_")->alias("s")
->field("SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,