|
|
@@ -173,7 +173,7 @@ class BaseLogic
|
|
|
$limit = request()->input('limit', 10);
|
|
|
$orderBy = request()->input('orderBy', '');
|
|
|
$orderType = request()->input('orderType', $this->orderType);
|
|
|
- if(empty($orderBy)) {
|
|
|
+ if (empty($orderBy)) {
|
|
|
$orderBy = $this->orderField !== '' ? $this->orderField : $this->model->getPk();
|
|
|
}
|
|
|
$query->order($orderBy, $orderType);
|
|
|
@@ -193,7 +193,7 @@ class BaseLogic
|
|
|
{
|
|
|
$orderBy = request()->input('orderBy', '');
|
|
|
$orderType = request()->input('orderType', $this->orderType);
|
|
|
- if(empty($orderBy)) {
|
|
|
+ if (empty($orderBy)) {
|
|
|
$orderBy = $this->orderField !== '' ? $this->orderField : $this->model->getPk();
|
|
|
}
|
|
|
$query->order($orderBy, $orderType);
|
|
|
@@ -206,92 +206,91 @@ class BaseLogic
|
|
|
* @param $fields
|
|
|
* @return mixed
|
|
|
*/
|
|
|
- public function trandformListColumn($data, $fields=['site', 'agent', 'game', 'auth', 'author', 'media', 'pay_channel', 'game_pay_channel', 'ip']){
|
|
|
+ public function trandformListColumn($data, $fields = ['site', 'agent', 'game', 'auth', 'author', 'media', 'pay_channel', 'game_pay_channel', 'ip'])
|
|
|
+ {
|
|
|
|
|
|
- if(in_array('site', $fields)){
|
|
|
+ if (in_array('site', $fields)) {
|
|
|
$agentSiteList = Db::connect('db_advert')->table('agent_site')->field('id,name')->select()->toArray();
|
|
|
$agentSiteList = array_column($agentSiteList, 'name', 'id');
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
- if(in_array('agent', $fields)){
|
|
|
+ if (in_array('agent', $fields)) {
|
|
|
$agentList = Db::connect('db_advert')->table('agent_list')->field('id,name')->select()->toArray();
|
|
|
$agentList = array_column($agentList, 'name', 'id');
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
- if(in_array('game', $fields)){
|
|
|
+ if (in_array('game', $fields)) {
|
|
|
$gameList = Db::connect('db_center')->table('pf_game')->field('id,name,os,ios_appid')->select()->toArray();
|
|
|
$gameList = array_column($gameList, null, 'id');
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
- if(in_array('auth', $fields)){
|
|
|
+ if (in_array('auth', $fields)) {
|
|
|
$authList = Db::connect('db_system')->table('sa_system_user')->field('id,username')->select()->toArray();
|
|
|
$authList = array_column($authList, 'username', 'id');
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
- if(in_array('author', $fields)){
|
|
|
+ if (in_array('author', $fields)) {
|
|
|
$authorList = Db::connect('db_system')->table('sa_system_user')->field('id,username')->select()->toArray();
|
|
|
$authorList = array_column($authorList, 'username', 'id');
|
|
|
}
|
|
|
- if(in_array('media', $fields)){
|
|
|
+ if (in_array('media', $fields)) {
|
|
|
$mediaList = Db::connect('db_advert')->table('media_list')->field('id,name')->select()->toArray();
|
|
|
$mediaList = array_column($mediaList, 'name', 'id');
|
|
|
}
|
|
|
|
|
|
- if(in_array('pay_channel', $fields)){
|
|
|
- $payChannelList = Db::connect('db_center')->table('pay_channel')->field('id,name')->where('status',1)->select()->toArray();
|
|
|
+ if (in_array('pay_channel', $fields)) {
|
|
|
+ $payChannelList = Db::connect('db_center')->table('pay_channel')->field('id,name')->where('status', 1)->select()->toArray();
|
|
|
$payChannelList = array_column($payChannelList, 'name', 'id');
|
|
|
}
|
|
|
|
|
|
- if(in_array('game_pay_channel', $fields)){
|
|
|
- $gamePayChannelList = Db::connect('db_center')->table('pay_channel')->field('id,name')->where('status',1)->select()->toArray();
|
|
|
+ if (in_array('game_pay_channel', $fields)) {
|
|
|
+ $gamePayChannelList = Db::connect('db_center')->table('pay_channel')->field('id,name')->where('status', 1)->select()->toArray();
|
|
|
$gamePayChannelList = array_column($gamePayChannelList, 'name', 'id');
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- foreach ($data as $key => $value) {
|
|
|
-
|
|
|
-
|
|
|
- if(!empty($agentSiteList) ){
|
|
|
- $data[$key]['site_name'] = $agentSiteList[$value['site_id']] ?? '';
|
|
|
+ foreach ($data as &$value) {
|
|
|
+ if (!empty($agentSiteList)) {
|
|
|
+ $value['site_name'] = $agentSiteList[$value['site_id']] ?? '';
|
|
|
}
|
|
|
- if(!empty($agentList) ){
|
|
|
- $data[$key]['agent_name'] =$agentList[$value['agent_id']] ?? '';
|
|
|
+ if (!empty($agentList)) {
|
|
|
+ $value['agent_name'] = $agentList[$value['agent_id']] ?? '';
|
|
|
}
|
|
|
- if(!empty($gameList) ){
|
|
|
- $data[$key]['game_name'] = $gameList[$value['game_id']]['name'] ?? '';
|
|
|
- $data[$key]['game_os'] = $gameList[$value['game_id']]['os'] ?? '';
|
|
|
- $data[$key]['ios_appid'] = $gameList[$value['game_id']]['ios_appid'] ?? '';
|
|
|
+ if (!empty($gameList)) {
|
|
|
+ $value['game_name'] = $gameList[$value['game_id']]['name'] ?? '';
|
|
|
+ $value['game_os'] = $gameList[$value['game_id']]['os'] ?? '';
|
|
|
+ $value['ios_appid'] = $gameList[$value['game_id']]['ios_appid'] ?? '';
|
|
|
}
|
|
|
|
|
|
- if(!empty($authList) ){
|
|
|
- $data[$key]['auth_name'] = $authList[$value['auth_id']] ?? '';
|
|
|
+ if (!empty($authList)) {
|
|
|
+ $value['auth_name'] = $authList[$value['auth_id']] ?? '';
|
|
|
}
|
|
|
|
|
|
- if(!empty($authorList) ){
|
|
|
- $data[$key]['author_name'] = $authorList[$value['author_id']] ?? '';
|
|
|
+ if (!empty($authorList)) {
|
|
|
+ $value['author_name'] = $authorList[$value['author_id']] ?? '';
|
|
|
}
|
|
|
|
|
|
- if(!empty($mediaList) ){
|
|
|
- $data[$key]['media_name'] = $mediaList[$value['media_id']] ?? '';
|
|
|
+ if (!empty($mediaList)) {
|
|
|
+ $value['media_name'] = $mediaList[$value['media_id']] ?? '';
|
|
|
}
|
|
|
|
|
|
- if(!empty($payChannelList) ){
|
|
|
- $data[$key]['pay_channel_name'] = $payChannelList[$value['pay_channel_id']] ?? '';
|
|
|
+ if (!empty($payChannelList)) {
|
|
|
+ $value['pay_channel_name'] = $payChannelList[$value['pay_channel_id']] ?? '';
|
|
|
}
|
|
|
|
|
|
- if(!empty($gamePayChannelList)){
|
|
|
- $data[$key]['alipay_wap_name'] = $gamePayChannelList[$value['alipay_wap']] ?? '-';
|
|
|
- $data[$key]['inapp_name'] = $gamePayChannelList[$value['inapp']] ?? '-';
|
|
|
- $data[$key]['wechat_wap_name'] = $gamePayChannelList[$value['wechat_wap']] ?? '-';
|
|
|
- $data[$key]['wechat_scan_name'] = $gamePayChannelList[$value['wechat_scan']] ?? '-';
|
|
|
- $data[$key]['wechat_jsapi_name'] = $gamePayChannelList[$value['wechat_jsapi']] ?? '-';
|
|
|
+ if (!empty($gamePayChannelList)) {
|
|
|
+ $value['alipay_wap_name'] = $gamePayChannelList[$value['alipay_wap']] ?? '-';
|
|
|
+ $value['inapp_name'] = $gamePayChannelList[$value['inapp']] ?? '-';
|
|
|
+ $value['wechat_wap_name'] = $gamePayChannelList[$value['wechat_wap']] ?? '-';
|
|
|
+ $value['wechat_scan_name'] = $gamePayChannelList[$value['wechat_scan']] ?? '-';
|
|
|
+ $value['wechat_jsapi_name'] = $gamePayChannelList[$value['wechat_jsapi']] ?? '-';
|
|
|
}
|
|
|
|
|
|
- if(in_array('ip', $fields)){
|
|
|
- $data[$key]['ip'] = getIpLocation($value['ip']) ?? '';
|
|
|
+ if (in_array('ip', $fields)) {
|
|
|
+ $value['ip'] = getIpLocation($value['ip']) ?? '';
|
|
|
}
|
|
|
}
|
|
|
+ unset($value);
|
|
|
+
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
@@ -307,7 +306,7 @@ class BaseLogic
|
|
|
mkdir($full_dir, 0777, true);
|
|
|
}
|
|
|
$ext = $file->getUploadExtension() ?: null;
|
|
|
- $full_path = $full_dir. md5(time()). '.'. $ext;
|
|
|
+ $full_path = $full_dir . md5(time()) . '.' . $ext;
|
|
|
$file->move($full_path);
|
|
|
return $full_path;
|
|
|
}
|
|
|
@@ -345,19 +344,19 @@ class BaseLogic
|
|
|
$userInfo = $userAuthCache->getUserInfo();
|
|
|
// Todo 如果角色权限,超过跳过权限限制
|
|
|
$roleIds = array_column($userInfo['roleList'], 'id');
|
|
|
- if(in_array(1, $roleIds)){
|
|
|
+ if (in_array(1, $roleIds)) {
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
// Todo 1、游戏权限
|
|
|
$authGameList = $userInfo['deptList']['game_list'];
|
|
|
- if($authGameList != '*'){
|
|
|
+ if ($authGameList != '*') {
|
|
|
$authGameIds = explode(',', $authGameList);
|
|
|
|
|
|
- if(!empty($data['game_id'])){
|
|
|
+ if (!empty($data['game_id'])) {
|
|
|
$inputGameIds = is_array($data['game_id']) ? $data['game_id'] : explode(',', $data['game_id']);
|
|
|
$data['game_id'] = array_values(array_intersect($inputGameIds, $authGameIds)); // 如果传入了game_id,则取权限交集
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 如果没传入game_id,则取权限
|
|
|
$data['game_id'] = $authGameIds;
|
|
|
}
|
|
|
@@ -368,22 +367,22 @@ class BaseLogic
|
|
|
$deptId = $userInfo['deptList']['id'];
|
|
|
// 广告权限,自己 or 全部
|
|
|
$authAdPermission = $userInfo['ad_permission'];
|
|
|
- if($authAdPermission){
|
|
|
- if($authAdPermission==1){ // Todo 1、仅自己
|
|
|
+ if ($authAdPermission) {
|
|
|
+ if ($authAdPermission == 1) { // Todo 1、仅自己
|
|
|
$data['auth_id'] = [$userId];
|
|
|
- } elseif($authAdPermission==2) { // Todo 2、自己部门
|
|
|
+ } elseif ($authAdPermission == 2) { // Todo 2、自己部门
|
|
|
$underUserIds = Db::connect('db_system')->table('sa_system_user')->where('dept_id', 'in', $deptId)->column('id');
|
|
|
- if(!empty($data['auth_id'])) { // 如果传入了负责人ID,则取交集
|
|
|
- $data['auth_id'] = array_values(array_intersect( $data['auth_id'], array_values($underUserIds)));
|
|
|
- }else{ // 如果没有传入负责人ID, 则取当前用户以及下面组员
|
|
|
- $data['auth_id'] = array_values($underUserIds);
|
|
|
+ if (!empty($data['auth_id'])) { // 如果传入了负责人ID,则取交集
|
|
|
+ $data['auth_id'] = array_values(array_intersect($data['auth_id'], array_values($underUserIds)));
|
|
|
+ } else { // 如果没有传入负责人ID, 则取当前用户以及下面组员
|
|
|
+ $data['auth_id'] = array_values($underUserIds);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 看指定游戏的自然量
|
|
|
$authNormalGameList = $userInfo['normal_game_list']; // 可看自然量的游戏
|
|
|
- if($authNormalGameList!='*' && $authNormalGameList!='-1' && !empty($data['game_id'])){
|
|
|
+ if ($authNormalGameList != '*' && $authNormalGameList != '-1' && !empty($data['game_id'])) {
|
|
|
// 则取auth_normal_game_list交集
|
|
|
$data['normal_game_id'] = array_values(array_intersect(explode(',', $authNormalGameList), $data['game_id']));
|
|
|
}
|
|
|
@@ -392,39 +391,64 @@ class BaseLogic
|
|
|
}
|
|
|
|
|
|
// Todo 公共 whereRaw 子句
|
|
|
+
|
|
|
+ public function generateYearUnionList($namePrefix, $regDate, $whereRaw = '1=1', $field = '*', $group = null)
|
|
|
+ {
|
|
|
+ $yearRange = getYearRange($regDate[0], $regDate[1]);
|
|
|
+ return $this->generateUnionList($namePrefix, $yearRange, $whereRaw, $field, $group);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function generateUnionList($namePrefix, $range, $whereRaw = '', $field = '*', $group = null)
|
|
|
+ {
|
|
|
+ $sqlParts = [];
|
|
|
+ foreach ($range as $ext) {
|
|
|
+ $tableName = $namePrefix . '_' . $ext;
|
|
|
+ $sqlParts[] = "SELECT * FROM {$tableName} WHERE {$whereRaw}";
|
|
|
+ }
|
|
|
+ $unionSql = implode(" UNION ALL ", $sqlParts);
|
|
|
+ $finalSql = "
|
|
|
+ SELECT {$field} FROM ( {$unionSql} ) AS all_total_day
|
|
|
+ ";
|
|
|
+ if (!empty($group)) {
|
|
|
+ $finalSql .= " GROUP BY {$group}";
|
|
|
+ }
|
|
|
+
|
|
|
+ return Db::connect('db_data_report')->query($finalSql);
|
|
|
+ }
|
|
|
+
|
|
|
protected function getCommonWhereRaw($params): string
|
|
|
{
|
|
|
$eqParams = ["user_name", "media_id", "site_id", "agent_id", "vt", "server_id", "server_name"];
|
|
|
$inParams = ["game_id", "auth_id"];
|
|
|
- $betweenParams = ["tdate", "reg_date", "pay_date"];
|
|
|
- $timeParams = ["reg_time", "pay_time", "login_time"];
|
|
|
+ $betweenParams = ["tdate", "reg_date", "pay_date"];
|
|
|
+ $timeParams = ["reg_time", "pay_time", "login_time"];
|
|
|
$DateTimeParams = ["create_time"];
|
|
|
|
|
|
// Todo And条件
|
|
|
$whereRaw = " 1=1 ";
|
|
|
- foreach ($params as $key => $value){
|
|
|
+ foreach ($params as $key => $value) {
|
|
|
if (in_array($key, $eqParams)) {
|
|
|
$whereRaw .= " AND `{$key}`='{$value}'";
|
|
|
} elseif (in_array($key, $inParams) && !empty($value)) {
|
|
|
$value = is_string($value) ? explode(',', $value) : $value;
|
|
|
- $whereRaw .= " AND `{$key}` IN ('".implode("','", $value)."')";
|
|
|
+ $whereRaw .= " AND `{$key}` IN ('" . implode("','", $value) . "')";
|
|
|
} elseif (in_array($key, $betweenParams) && !empty($value)) {
|
|
|
$whereRaw .= " AND `{$key}` BETWEEN '{$value[0]}' AND '{$value[1]}'";
|
|
|
} elseif (in_array($key, $DateTimeParams) && !empty($value)) {
|
|
|
- $value[0] = $value[0] .' 00:00:00';
|
|
|
- $value[1] = $value[1] .' 23:59:59';
|
|
|
+ $value[0] = $value[0] . ' 00:00:00';
|
|
|
+ $value[1] = $value[1] . ' 23:59:59';
|
|
|
$whereRaw .= " AND `{$key}` BETWEEN '{$value[0]}' AND '{$value[1]}'";
|
|
|
} elseif (in_array($key, $timeParams) && !empty($value)) {
|
|
|
- $value[0] = strtotime($value[0] .' 00:00:00');
|
|
|
- $value[1] = strtotime($value[1] .' 23:59:59');
|
|
|
+ $value[0] = strtotime($value[0] . ' 00:00:00');
|
|
|
+ $value[1] = strtotime($value[1] . ' 23:59:59');
|
|
|
$whereRaw .= " AND `{$key}` BETWEEN '{$value[0]}' AND '{$value[1]}'";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// Todo 自然量走 Or 条件
|
|
|
$whereOr = [];
|
|
|
- if(!empty($params['normal_game_id'])){
|
|
|
- foreach ($params['normal_game_id'] as $gameId){
|
|
|
+ if (!empty($params['normal_game_id'])) {
|
|
|
+ foreach ($params['normal_game_id'] as $gameId) {
|
|
|
$whereOr[] = "(game_id = {$gameId} AND auth_id=0)";
|
|
|
}
|
|
|
}
|
|
|
@@ -432,28 +456,4 @@ class BaseLogic
|
|
|
|
|
|
return $whereRaw . ($whereOr ? " OR {$whereOr}" : "");
|
|
|
}
|
|
|
-
|
|
|
- public function generateYearUnionList($namePrefix, $regDate, $whereRaw = '1=1', $field = '*', $group = null)
|
|
|
- {
|
|
|
- $yearRange = getYearRange($regDate[0], $regDate[1]);
|
|
|
- return $this->generateUnionList($namePrefix, $yearRange, $whereRaw, $field, $group);
|
|
|
- }
|
|
|
-
|
|
|
- public function generateUnionList($namePrefix, $range, $whereRaw = '', $field = '*', $group = null)
|
|
|
- {
|
|
|
- $sqlParts = [];
|
|
|
- foreach ($range as $ext) {
|
|
|
- $tableName = $namePrefix .'_'. $ext;
|
|
|
- $sqlParts[] = "SELECT * FROM {$tableName} WHERE {$whereRaw}";
|
|
|
- }
|
|
|
- $unionSql = implode(" UNION ALL ", $sqlParts);
|
|
|
- $finalSql = "
|
|
|
- SELECT {$field} FROM ( {$unionSql} ) AS all_total_day
|
|
|
- ";
|
|
|
- if (!empty($group)) {
|
|
|
- $finalSql .= " GROUP BY {$group}";
|
|
|
- }
|
|
|
-
|
|
|
- return Db::connect('db_data_report')->query($finalSql);
|
|
|
- }
|
|
|
}
|