diff --git a/Application/Admin/Controller/ArticleController.class.php b/Application/Admin/Controller/ArticleController.class.php index e85f25567..cf37c0992 100644 --- a/Application/Admin/Controller/ArticleController.class.php +++ b/Application/Admin/Controller/ArticleController.class.php @@ -918,6 +918,7 @@ class ArticleController extends AdminController { if ($_POST['type'] == 1 ) { $_POST['pop_time'] = strtotime($_POST['pop_time']); } + if ($id) { $pop_rules_model = M('document_pop_rules');//M('$this->$model_name','tab_'); $res = $pop_rules_model->where(['id'=>$id])->save($_POST); @@ -943,11 +944,49 @@ class ArticleController extends AdminController { if (!$rule) { return $this->error('记录不存在'); } + if (empty($rule['document_route'])) { + $doc = "当前无文档"; + }else { + $document_route_arr = explode("/", $rule['document_route']); + $doc = $document_route_arr[2]; + } + + $this->assign("doc", $doc); $rule['pop_time'] = $rule['type'] == 1 ? date("Y-m-d", $rule['pop_time']) : $rule['pop_time']; $this->assign('rule', $rule); } } $this->display('pop_rule_edit'); } + + public function uploadDoc() { + $id = $_REQUEST['id']; + if(@is_uploaded_file($_FILES['file']['tmp_name'])){ + $upfile = $_FILES["file"]; + + $name = $upfile["name"]; + $type = $upfile["type"]; + $size = $upfile["size"]; + $tmp_name = $upfile["tmp_name"]; + $savePath = $_SERVER['DOCUMENT_ROOT'].__ROOT__.'/Uploads/Documents/'; + if (is_dir($savePath)) { + move_uploaded_file($tmp_name,$savePath.$name); + }else { + mkdir($savePath, 0777, true); + move_uploaded_file($tmp_name,$savePath.$name); + } + $file_name = $savePath.$name; + $error=$upfile["error"];//上传后系统返回的值 + $data['document_route'] = 'Uploads/Documents/'.$name; + $updateres = M('document_pop_rules')->where(['id' => $id])->save($data); + if ($updateres) { + $backData['code'] = 10000; + $backData['filename'] = $name; + }else { + $backData['code'] = 10001; + } + $this->ajaxReturn(json_encode($backData,TRUE)); + } + } } diff --git a/Application/Admin/Controller/ExportController.class.php b/Application/Admin/Controller/ExportController.class.php index 2d48c4a3c..82eb0728a 100644 --- a/Application/Admin/Controller/ExportController.class.php +++ b/Application/Admin/Controller/ExportController.class.php @@ -2265,7 +2265,7 @@ class ExportController extends Controller $re_data['pay_time'] = set_show_time($order_detail['pay_time']); $re_data['payed_time'] = set_show_time($order_detail['payed_time']); } elseif($v['tab'] == 'deposit') { - $order_detail = M('deposit', 'tab_')->field('create_time,payed_time,user_account,promote_account,pay_amount,pay_way')->where(['pay_order_number' => $v['pay_order_number']])->find(); + $order_detail = M('deposit', 'tab_')->field('create_time,payed_time,user_account,promote_account,pay_amount,pay_way')->where(['pay_order_number' => $v['pay_order_number']])->find(); $re_data['pay_time'] = set_show_time($order_detail['create_time']); $re_data['payed_time'] = set_show_time($order_detail['payed_time']); } @@ -2475,7 +2475,7 @@ class ExportController extends Controller break; case 28: $xlsCell = array( - "账号ID","玩家账号", "账户平台币", "累计使用平台币", "累计充值平台币", "后台发放平台币" + "账号ID","玩家账号", "平台币余额", "平台币直充余额", "平台币直充支出", "平台币直充金额", "后台发放平台币" ); $params = I('get.'); @@ -2545,54 +2545,94 @@ class ExportController extends Controller ->field('id, account') ->where($map) ->count(); - + $perSize = 1000;//每次查询的条数 $pages = ceil($count / $perSize); for($i = 1; $i <= $pages; $i++) { - $datas = M('user', 'tab_') - ->field('id, account') - ->where($map) - ->limit(($i-1)*$perSize ,$perSize) - ->select(); + // $datas = M('user', 'tab_') + // ->field('id, account') + // ->where($map) + // ->limit(($i-1)*$perSize ,$perSize) + // ->select(); + $map5['v.pay_type'] = 1; + $map5['v.create_time'] = $map['create_time']; + $map5[] = ['u.id = v.user_id'] ; + + $map6[] = ['u.id = v.user_id']; + $map6['v.pay_type'] = 2; + $map6['v.create_time'] = $map['create_time']; + + $map7[] = ['u.id = v.user_id']; + $map7['v.pay_type'] = 3; + $map7['v.create_time'] = $map['create_time']; + + $map8[] = ['u.id = v.user_id']; + $map8['v.create_time'] = $map['create_time']; + + $map9[] = ['u.id = v.user_id']; + $map9['v.pay_type'] = 3; + if (!empty($map['create_time'][1][1])) { + $map9['v.create_time'] = ['elt', $map['create_time'][1][1] ]; + } + if (!empty($map['create_time'][1][0]) && empty($map['create_time'][1][1])) { + $map9['v.create_time'] = ['egt', $map['create_time'][1][0] ]; + } + + + $valueQuery5 = M('value_detail_log', 'tab_')->alias('v')->field('IFNULL(sum(abs(v.value)), 0) as spend_value') + ->where($map5)->buildSql(); + $valueQuery6 = M('value_detail_log', 'tab_')->alias('v')->field('sum(v.value) as spend_value') + ->where($map6)->buildSql(); + $valueQuery7 = M('value_detail_log', 'tab_')->alias('v')->field('sum(v.value) as spend_value') + ->where($map7)->buildSql(); + $valueQuery8 = M('value_detail_log', 'tab_')->alias('v')->field('after_value')->where($map8)->order('create_time desc')->limit(1)->buildSql(); + $valueQuery9 = M('value_detail_log', 'tab_')->alias('v')->field('IFNULL(sum(abs(v.value)), 0) as spend_value') + ->where($map9)->buildSql(); + $datas = M('user', 'tab_')->alias('u')->field("u.id, u.account, {$valueQuery8} as totalvalue, {$valueQuery5} as spendvalue, {$valueQuery6} as deposit, {$valueQuery7} as promoteCoin , if (({$valueQuery8}) - ({$valueQuery9}) > 0, ({$valueQuery8}) - ({$valueQuery9}), 0) as restvalue")->where($map)->limit(($i-1)*$perSize ,$perSize)->order('restvalue desc')->group('u.id')->select(); + $query = M('user', 'tab_')->alias('u')->field("u.id, u.account, {$valueQuery8} as totalvalue, {$valueQuery5} as spendvalue, {$valueQuery6} as deposit, {$valueQuery7} as promoteCoin , if (({$valueQuery8}) - ({$valueQuery9}) > 0, ({$valueQuery8}) - ({$valueQuery9}), 0) as restvalue")->where($map)->order('id desc')->group('u.id')->buildSql(); + $allTotalValue1 = M()->alias('t')->table($query)->sum('t.totalvalue'); + $allRestValue = M()->alias('rest')->table($query)->sum('rest.restvalue'); $allDatas = []; foreach($datas as $key => $data) { $allDatas['user_id'] = $data['id']; $allDatas['user_account'] = $data['account']; $spend = M('value_detail_log', 'tab_')->where(['user_id'=>$data['id'], 'pay_type'=>1])->sum('value'); - $map5['user_id'] = $data['id']; - $map5['pay_type'] = 1; - $map5['create_time'] = $map['create_time']; - $spend = M('value_detail_log', 'tab_')->where($map5)->sum('value'); - + // $map5['user_id'] = $data['id']; + // $map5['pay_type'] = 1; + // $map5['create_time'] = $map['create_time']; + // $spend = M('value_detail_log', 'tab_')->where($map5)->sum('value'); + $spend = $data['spendvalue']; if(empty($spend)) { $spend = '0.00'; }else { $spend = number_format(abs($spend),2,'.',''); } - $map6['user_id'] = $data['id']; - $map6['pay_type'] = 2; - $map6['create_time'] = $map['create_time']; - $deposit = M('value_detail_log', 'tab_')->where($map6)->sum('value'); + // $map6['user_id'] = $data['id']; + // $map6['pay_type'] = 2; + // $map6['create_time'] = $map['create_time']; + // $deposit = M('value_detail_log', 'tab_')->where($map6)->sum('value'); + $deposit = $data['deposit']; if(empty($deposit)) { $deposit = '0.00'; } - $map7['user_id'] = $id; - $map7['pay_type'] = 3; - $map7['create_time'] = $map['create_time']; - $promoteCoin = M('value_detail_log', 'tab_')->where($map7)->sum('value'); + // $map7['user_id'] = $id; + // $map7['pay_type'] = 3; + // $map7['create_time'] = $map['create_time']; + // $promoteCoin = M('value_detail_log', 'tab_')->where($map7)->sum('value'); + $promoteCoin = $data['promotecoin']; if(empty($promoteCoin)) { $promoteCoin = '0.00'; } - - $map8['user_id'] = $data['id']; - $map8['create_time'] = $map['create_time']; - $newValueByTimeDatas = M('value_detail_log', 'tab_')->field('after_value')->where($map8)->order('create_time desc')->limit(1)->select(); - if(empty($newValueByTimeDatas)) { - $aValue = '0.00'; - }else { - $aValue = $newValueByTimeDatas[0]['after_value']; + $restValue = $data['restvalue']; + if(empty($restValue)) { + $restValue = '0.00'; + } + $alltotalvalue = $data['totalvalue']; + if(empty($alltotalvalue)) { + $alltotalvalue = '0.00'; } - $allDatas['bind_balance'] = $aValue; + $allDatas['bind_balance'] = $alltotalvalue; + $allDatas['rest_value'] = $restValue ; $allDatas['spend_amount'] = $spend; $allDatas['deposit_amount'] = $deposit; $allDatas['coin_amount'] = $promoteCoin; @@ -2608,7 +2648,8 @@ class ExportController extends Controller } $alldatas1['user_id'] = "汇总(检索时间内所有数据的统计)"; $alldatas1['user_account'] = ""; - $alldatas1['bind_balance'] = $banlaceTotal; + $alldatas1['bind_balance'] = $allTotalValue1; + $alldatas1['restvalue'] = $allRestValue; $alldatas1['spend_amount'] = abs($totalSpend); $alldatas1['deposit_amount'] = $deposit1; $alldatas1['coin_amount'] = $promoteCoin; @@ -2679,7 +2720,6 @@ class ExportController extends Controller ->where($map) ->limit(($i-1)*$perSize ,$perSize) ->select(); - foreach ($valueDetailDatas as $key => $valueDetailData) { $vlaueDetailData['order_number'] = $valueDetailData['order_number']; $vlaueDetailData['create_time'] = date('Y-m-d H:i:s', $valueDetailData['create_time']); @@ -2697,14 +2737,22 @@ class ExportController extends Controller } $vlaueDetailData['value'] = $valueDetailData['value']; $vlaueDetailData['after_value'] = $valueDetailData['after_value']; + $map8['user_id'] = $id; + $map8['create_time'] = $map['create_time']; + $newValueByTimeDatas = M('value_detail_log', 'tab_')->field('after_value')->where($map8)->group('user_id')->select(); + $aValue = $newValueByTimeDatas['after_value']; + $allDatas['bind_balance'] = $aValue; + $allDatas['spend_amount'] = $spend; + $allDatas['deposit_amount'] = $deposit; + $allDatas['coin_amount'] = $promoteCoin; mb_convert_variables('GBK', 'UTF-8', $vlaueDetailData); fputcsv($fp, $vlaueDetailData); } - unset($vlaueDetailDatas);//释放变量的内存 - //刷新输出缓冲到浏览器 - ob_flush(); - flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 + + + // mb_convert_variables('GBK', 'UTF-8', $allDatas); + // fputcsv($fp, $allDatas); } if($t >= 0 ) { $fuhao = '+'; @@ -8983,6 +9031,7 @@ class ExportController extends Controller array('status','状态'), array('user_account','游戏账号'), array('creator','创单人'), + array('handler','接单人'), array('created_time', '创单时间'), array('score', '分数'), array('attachment_type', '附件') @@ -8994,6 +9043,7 @@ class ExportController extends Controller $item['type'] = $item['type'] == 1 ? '资源' : '反馈'; $item['status'] = $item['status'] == 1 ? '完成' : '处理中'; $item['creator'] = get_admin_name($item['creator_id']); + $item['handler'] = get_admin_name($item['handler_id']); $item['created_time'] = date('Y-m-d H:i:s', $item['created_time']); $item['attachment_type'] = empty($item['attachment_url']) ? '无' : '有'; $item['order_no'] = "\t{$item['order_no']}"; @@ -9024,24 +9074,61 @@ class ExportController extends Controller $map['p.id'] = I('promote_id'); } - $pdlMap = ""; + $pdlMap = ""; + $weekMap = ''; if ($startTime = I('create_time_start')) { $startTime = strtotime($startTime); - $pdlMap .= " and pdl.create_time >={$startTime}"; + $pdlMap .= " and pdl.create_time >={$startTime}"; + $weekMap .= " and register_time >={$startTime}"; } if ($endTime = I('create_time_end')) { $endTime = strtotime($endTime) + 86400; - $pdlMap .= " and pdl.create_time < {$endTime}"; + $pdlMap .= " and pdl.create_time < {$endTime}"; + $weekMap .= " and register_time < {$endTime}"; + } + + + if ($startTime = I('create_time_start')) { + $startTime = strtotime($startTime); + $pdlMap .= " and pdl.create_time >={$startTime}"; + $weekMap .= " and register_time >={$startTime}"; } - if ($info['level'] == PromoteModel::LEVEL_GROUP_LEADER) { - $xlsData = M('promote', 'tab_')->alias('p') - ->field('p.id, p.level, p.account, count(pdl.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') - ->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left') - ->where($map) - ->group('p.id') - ->select(); + if ($level == PromoteModel::LEVEL_TEAM_MEMBER) { + $xlsData = M('promote', 'tab_')->alias('p') + ->field('p.id, p.level, p.account') + ->where($map) + ->select(); + + if ($xlsData) { + $beginThisweek = mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")); + $endThisweek = mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y")); + if (empty($weekMap)) { + $weekMap = " and register_time between $beginThisweek and $endThisweek"; + } + foreach ($xlsData as &$item) { + $item['ioscount'] = M('user', 'tab_')->where('device_type = 2 and promote_id = ' . $item['id'])->count(); + $item['weekcount'] = M('user', 'tab_')->where("device_type = 2 and promote_id = {$item['id']}" . $weekMap)->count(); + $itemCount = M('package_download_log', 'tab_')->alias('pdl') + ->field('count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') + ->where("promote_id={$item['id']} $pdlMap")->select(); + $item['signcount'] = $itemCount[0]['signcount'] ?? 0; + $item['tfcount'] = $itemCount[0]['tfcount'] ?? 0; + $item['supersigncount'] = $itemCount[0]['supersigncount'] ?? 0; + } + // $promoters = M('promote', 'tab_')->alias('p')->field('p.id, p.level, p.account')->where($map)->select(); + // $pids = implode(',', array_column($promoters, 'id')); + // $total[0]['ioscount'] = M('user', 'tab_')->where("device_type = 2 and promote_id in ($pids)")->count(); + // $total[0]['weekcount'] = M('user', 'tab_')->where("device_type = 2 and promote_id in ($pids)" . $weekMap)->count(); + // $totalCount = M('package_download_log', 'tab_')->alias('pdl') + // ->field('count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') + // ->where("promote_id in ($pids) $pdlMap")->select(); + // $total[0]['signcount'] = $totalCount[0]['signcount'] ?? 0; + // $total[0]['tfcount'] = $totalCount[0]['tfcount'] ?? 0; + // $total[0]['supersigncount'] = $totalCount[0]['supersigncount'] ?? 0; + } + } else { $xlsData = M('promote', 'tab_')->alias('p') ->field('p.id, p.level, p.account, count(if(p2.level = '.($level+1).', 1, null)) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') @@ -9051,14 +9138,28 @@ class ExportController extends Controller ->group('p.id') ->select(); } - $xlsCell = array( - array('account', PromoteModel::$levelArr[$level]."账号"), - array('lowercount', PromoteModel::$levelArr[$level+1]."数量"), - array('tfcount', 'TF下载数'), - array('supersigncount', "超级签下载数"), - array('signcount', "企业签下载数"), - ); - + + if ($level == PromoteModel::LEVEL_TEAM_MEMBER) { + foreach($xlsData as &$item) { + $item['tfcount'] = $item['tfcount'] . "(" . (empty($item['ioscount']) ? 0 : round( ($item['tfcount'] / $item['ioscount']) * 100 , 2)) . ")%"; + } + $xlsCell = array( + array('account', PromoteModel::$levelArr[$level]."账号"), + array('ioscount', "iOS用户总数"), + array('weekcount', "新增iOS用户总数"), + array('tfcount', 'TF下载数/iOS用户总数'), + array('supersigncount', "超级签下载数"), + array('signcount', "企业签下载数"), + ); + } else { + $xlsCell = array( + array('account', PromoteModel::$levelArr[$level]."账号"), + array('lowercount', PromoteModel::$levelArr[$level+1]."数量"), + array('tfcount', 'TF下载数'), + array('supersigncount', "超级签下载数"), + array('signcount', "企业签下载数"), + ); + } $this->exportAddOperationLog('Statistics/packDownload','统计-IOS下载统计-导出'); $this->exportExcel($xlsName, $xlsCell, $xlsData); } @@ -9157,4 +9258,95 @@ class ExportController extends Controller $this->exportExcel($xlsName, $xlsCell, $list); } + public function exportWorkOrderStatistics() + { + $order = ''; + if ($_REQUEST['data_order'] != '') { + $data_order = reset(explode(',', $_REQUEST['data_order'])); + $data_order_type = end(explode(',', $_REQUEST['data_order'])); + $this->assign('userarpu_order', $data_order); + $this->assign('userarpu_order_type', $data_order_type); + $order = 'order by ' . $data_order_type . " " . ($data_order == 3 ? 'desc' : 'asc'); + } + $map = '1=1'; + if (!empty(I('nickname'))) { + $map .= " and t.nickname = '" . I('nickname') . "'"; + } + // 获取所有传单或者接单用户id + $userids = M('work_order_info', 'tab_') + ->field("concat(creator_id, ',', handler_id) as userid") + ->join('sys_member as t on creator_id = t.uid or handler_id = t.uid') + ->where($map) + ->select(); + if (empty($userids)) { + $list = []; + $count = 0; + } else { + $userids = implode(',', array_unique(array_filter(explode(',', implode(',', array_column($userids, 'userid')))))); + $count = count($userids); + $list = M('work_order_info', 'tab_')->query("SELECT + t.id, + t.nickname, + sum(total_create_count) as total_create_count, + sum(total_accepted_count) as total_accepted_count, + sum(total_handle_count) as total_handle_count, + sum(total_complete_count) as total_complete_count + FROM + ( + SELECT + u.uid as id, + u.nickname, + count(*) AS total_create_count, + count( + + IF (i.`handler_id` > 0, 1, NULL) + ) AS total_accepted_count, + NULL AS total_handle_count, + NULL AS total_complete_count + FROM + sys_member u + JOIN tab_work_order_info i ON i.creator_id = u.uid + WHERE + u.uid in ({$userids}) + GROUP BY u.uid + UNION + SELECT + u.uid as id, + u.nickname, + NULL AS total_create_count, + NULL AS total_accepted_count, + count(*) AS total_handle_count, + count(IF(i.`status` = 1, 1, NULL)) AS total_complete_count + FROM + sys_member u + JOIN tab_work_order_info i ON i.handler_id = u.uid + WHERE + u.uid in ({$userids}) + GROUP BY u.uid + ) AS t + where {$map} + GROUP BY t.id + $order"); + } + if ($list) { + foreach ($list as &$item) + { + $item['total_create_count'] = $item['total_create_count'] ?? 0; + $item['total_accepted_count'] = $item['total_accepted_count'] ?? 0; + $item['total_handle_count'] = $item['total_handle_count'] ?? 0; + $item['total_complete_count'] = $item['total_complete_count'] ?? 0; + } + } + $xlsName = '工单统计报表'; + $xlsCell = array( + array('nickname', "账号"), + array('total_create_count', "发布工单数"), + array('total_accepted_count', '被接手工单数'), + array('total_handle_count', "接手工单数"), + array('total_complete_count', "完成工单数"), + ); + + $this->exportAddOperationLog('Statistics/exportWorkOrderStatistics','用户-工单统计-导出'); + $this->exportExcel($xlsName, $xlsCell, $list); + } } diff --git a/Application/Admin/Controller/FinanceController.class.php b/Application/Admin/Controller/FinanceController.class.php index af36e5c70..1ce945076 100644 --- a/Application/Admin/Controller/FinanceController.class.php +++ b/Application/Admin/Controller/FinanceController.class.php @@ -1243,6 +1243,10 @@ class FinanceController extends ThinkController $nowTime = date('Y-m-d'); $initBegTime = date('Y-m-d', strtotime('-6 day', strtotime($nowTime))); $initEndTime = date('Y-m-d', time()); + $sort = $_REQUEST['sort']; + if (empty($sort)) { + $sort = 13; + } if(!empty($_REQUEST['user_account'])) { $map['account'] = $_REQUEST['user_account']; $map0['account'] = $_REQUEST['user_account']; @@ -1266,11 +1270,102 @@ class FinanceController extends ThinkController $map['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); } - $datas = M('user', 'tab_') - ->field('id, account') - ->where($map0) - ->page($page,$row) - ->select(); + $order = 'id desc'; + if ($sort == 1) { + $order = 'spendvalue desc'; + } + if ($sort == 2) { + $order = 'deposit desc'; + } + if ($sort == 3 || $sort == 5) { + $order = 'spendvalue desc'; + } + + if ($sort == 4) { + $order = 'spendvalue asc'; + } + + if ($sort == 6) { + $order = 'deposit desc'; + } + if ($sort == 7) { + $order = 'deposit asc'; + } + + if ($sort == 9) { + $order = 'promoteCoin desc'; + } + if ($sort == 10) { + $order = 'promoteCoin asc'; + } + + if ($sort == 11) { + $order = 'id asc'; + } + if ($sort == 12) { + $order = 'id desc'; + } + + if ($sort == 16) { + $order = 'restvalue desc'; + } + if ($sort == 17) { + $order = 'restvalue asc'; + } + + if ($sort == 19) { + $order = 'totalvalue desc'; + } + if ($sort == 20) { + $order = 'totalvalue asc'; + } + $this->assign('sorting', $sort); + $map5['v.pay_type'] = 1; + $map5['v.create_time'] = $map['create_time']; + $map5[] = ['u.id = v.user_id'] ; + + $map6[] = ['u.id = v.user_id']; + $map6['v.pay_type'] = 2; + $map6['v.create_time'] = $map['create_time']; + + $map7[] = ['u.id = v.user_id']; + $map7['v.pay_type'] = 3; + $map7['v.create_time'] = $map['create_time']; + + $map8[] = ['u.id = v.user_id']; + $map8['v.create_time'] = $map['create_time']; + + $map9[] = ['u.id = v.user_id']; + $map9['v.pay_type'] = 3; + if (!empty($map['create_time'][1][1])) { + $map9['v.create_time'] = ['elt', $map['create_time'][1][1] ]; + } + if (!empty($map['create_time'][1][0]) && empty($map['create_time'][1][1])) { + $map9['v.create_time'] = ['egt', $map['create_time'][1][0] ]; + } + + $valueQuery5 = M('value_detail_log', 'tab_')->alias('v')->field('IFNULL(sum(abs(v.value)), 0) as spend_value') + ->where($map5)->buildSql(); + $valueQuery6 = M('value_detail_log', 'tab_')->alias('v')->field('sum(v.value) as spend_value') + ->where($map6)->buildSql(); + $valueQuery7 = M('value_detail_log', 'tab_')->alias('v')->field('sum(v.value) as spend_value') + ->where($map7)->buildSql(); + $valueQuery9 = M('value_detail_log', 'tab_')->alias('v')->field('IFNULL(sum(abs(v.value)), 0) as spend_value') + ->where($map9)->buildSql(); + $valueQuery8 = M('value_detail_log', 'tab_')->alias('v')->field('after_value')->where($map8)->order('create_time desc')->limit(1)->buildSql(); + $datas = M('user', 'tab_')->alias('u')->field("u.id, u.account, {$valueQuery8} as totalvalue, {$valueQuery5} as spendvalue, {$valueQuery6} as deposit, {$valueQuery7} as promoteCoin , if (({$valueQuery8}) - ({$valueQuery9}) > 0, ({$valueQuery8}) - ({$valueQuery9}), 0) as restvalue")->where($map0)->page($page,$row)->order($order)->group('u.id')->select(); + $query = M('user', 'tab_')->alias('u')->field("u.id, u.account, {$valueQuery8} as totalvalue, {$valueQuery5} as spendvalue, {$valueQuery6} as deposit, {$valueQuery7} as promoteCoin , if (({$valueQuery8}) - ({$valueQuery9}) > 0, ({$valueQuery8}) - ({$valueQuery9}), 0) as restvalue")->where($map0)->order($order)->group('u.id')->buildSql(); + $allTotalValue1 = M()->alias('t')->table($query)->sum('t.totalvalue'); + $allRestValue = M()->alias('rest')->table($query)->sum('rest.restvalue'); + + // var_dump($datas);die(); + // $datas = M('user', 'tab_') + // ->field('id, account') + // ->where($map0) + // ->page($page,$row) + // ->order('id desc') + // ->select(); + $count = M('user', 'tab_') ->field('id, account') ->where($map) @@ -1280,35 +1375,37 @@ class FinanceController extends ThinkController $ids = [-100]; } $allDatas = []; + foreach($datas as $key => $data) { $id = $data['id']; $account = $data['account']; $allDatas[$key]['user_id'] = $id; $allDatas[$key]['user_account'] = $account; - $map5['user_id'] = $id; - $map5['pay_type'] = 1; - $map5['create_time'] = $map['create_time']; - $spend = M('value_detail_log', 'tab_')->where($map5)->sum('value'); + $spend = $data['spendvalue']; if(empty($spend)) { $spend = '0.00'; }else { $spend = number_format(abs($spend),2,'.',''); } - $map6['user_id'] = $id; - $map6['pay_type'] = 2; - $map6['create_time'] = $map['create_time']; - $deposit = M('value_detail_log', 'tab_')->where($map6)->sum('value'); + $deposit = $data['deposit']; if(empty($deposit)) { $deposit = '0.00'; } - $map7['user_id'] = $id; - $map7['pay_type'] = 3; - $map7['create_time'] = $map['create_time']; - $promoteCoin = M('value_detail_log', 'tab_')->where($map7)->sum('value'); + $promoteCoin = $data['promotecoin']; if(empty($promoteCoin)) { $promoteCoin = '0.00'; } + $restValue = $data['restvalue']; + if(empty($restValue)) { + $restValue = '0.00'; + } + $alltotalvalue = $data['totalvalue']; + if(empty($alltotalvalue)) { + $alltotalvalue = '0.00'; + } // $allDatas[$key]['bind_balance'] = $bind_balance; + $allDatas[$key]['after_value'] = $alltotalvalue ; + $allDatas[$key]['rest_value'] = $restValue ; $allDatas[$key]['spend_amount'] = $spend; $allDatas[$key]['deposit_amount'] = $deposit; $allDatas[$key]['coin_amount'] = $promoteCoin; @@ -1327,36 +1424,35 @@ class FinanceController extends ThinkController $map3['create_time'] = $map['create_time']; $map3['pay_type'] = 3; $allpromoteCoin = M('value_detail_log', 'tab_')->where($map3)->sum('value'); - $allpromoteCoin = empty($promoteCoin) ? '0.00' : number_format($allpromoteCoin,2,'.',''); - + $allpromoteCoin = empty($allpromoteCoin) ? '0.00' : number_format($allpromoteCoin,2,'.',''); $map4['create_time'] = $map['create_time']; if($_REQUEST['user_account']) { $banlace = M('value_detail_log', 'tab_')->field('user_id, after_value')->where($map4)->order('create_time desc')->limit(1)->select(); }else { $banlace = M('value_detail_log', 'tab_')->field('user_id, after_value')->where($map4)->order('create_time desc')->select(); } - $banlaceTotal = '0.00'; - foreach($banlace as $k222 => $vvv) { - $banlaceTotal += $vvv['after_value']; - } - $banlaceTotal = number_format($banlaceTotal,2,'.',''); + // $banlaceTotal = '0.00'; + // foreach($banlace as $k222 => $vvv) { + // $banlaceTotal += $vvv['after_value']; + // } + // $banlaceTotal = number_format($banlaceTotal,2,'.',''); $map['user_id'] = ['in', $ids]; - $newValueByTimeDatas = M('value_detail_log', 'tab_')->field('user_id, after_value, create_time')->where($map)->order('create_time desc')->limit(1)->select(); - - // var_dump($newValueByTimeDatas);die(); - foreach ($allDatas as $k => $allData) { - $allDatas[$k]['after_value'] = "0.00"; - foreach ($newValueByTimeDatas as $key1 => $newValueByTimeData ) { - if (intval($allData['user_id']) == intval($newValueByTimeData['user_id'])) { - $allDatas[$k]['after_value'] = $newValueByTimeData['after_value']; - break; - }else { - $allDatas[$k]['after_value'] = "0.00"; + // $newValueByTimeDatas = M('value_detail_log', 'tab_')->field('user_id, after_value, create_time')->where($map)->order('create_time desc')->limit(1)->select(); + // var_dump($newValueByTimeDatas); + // // var_dump($newValueByTimeDatas);die(); + // foreach ($allDatas as $k => $allData) { + // $allDatas[$k]['after_value'] = "0.00"; + // foreach ($newValueByTimeDatas as $key1 => $newValueByTimeData ) { + // if (intval($allData['user_id']) == intval($newValueByTimeData['user_id'])) { + // $allDatas[$k]['after_value'] = $newValueByTimeData['after_value']; + // break; + // }else { + // $allDatas[$k]['after_value'] = "0.00"; - } - } + // } + // } - } + // } $page = set_pagination($count,$row); if($page) {$this->assign('_page', $page);} if(empty($_REQUEST['timestart']) && empty($_REQUEST['timeend']) && empty(I('user_account'))) { @@ -1366,12 +1462,12 @@ class FinanceController extends ThinkController $this->assign('starttime', $_REQUEST['timestart']); $this->assign('endtime', $_REQUEST['timeend']); } - $this->assign('banlaceTotal', $banlaceTotal); + $this->assign('banlaceTotal', $allTotalValue1); $this->assign('total', $totalSpend); $this->assign('deposit', $deposit); $this->assign('promoteCoin', $allpromoteCoin); $this->assign('data', $allDatas); - + $this->assign('resttotal', $allRestValue); $this->display(); } diff --git a/Application/Admin/Controller/PresidentDepositController.class.php b/Application/Admin/Controller/PresidentDepositController.class.php index 20aaa4397..1ed56c59a 100644 --- a/Application/Admin/Controller/PresidentDepositController.class.php +++ b/Application/Admin/Controller/PresidentDepositController.class.php @@ -273,12 +273,12 @@ class PresidentDepositController extends ThinkController if ($amount > 100000000) { return $this->error('金额过高'); } - if ($payer == '') { + /* if ($payer == '') { return $this->error('请输入付款人'); } if ($payAccount == '') { return $this->error('请输入付款账号'); - } + } */ $data = []; $data['pay_way'] = $payType == 2 ? 4 : $payWay; diff --git a/Application/Admin/Controller/StatisticsController.class.php b/Application/Admin/Controller/StatisticsController.class.php index ec158d31b..bda8b0c38 100644 --- a/Application/Admin/Controller/StatisticsController.class.php +++ b/Application/Admin/Controller/StatisticsController.class.php @@ -1162,29 +1162,68 @@ class StatisticsController extends ThinkController { $count = M('promote', 'tab_')->alias('p')->where($map)->count(); $pdlMap = ""; + $weekMap = ''; if ($startTime = I('create_time_start')) { $startTime = strtotime($startTime); $pdlMap .= " and pdl.create_time >={$startTime}"; + $weekMap .= " and register_time >={$startTime}"; } if ($endTime = I('create_time_end')) { $endTime = strtotime($endTime) + 86400; $pdlMap .= " and pdl.create_time < {$endTime}"; + $weekMap .= " and register_time <= {$endTime}"; } - if ($info['level'] == PromoteModel::LEVEL_GROUP_LEADER) { + if ($level == PromoteModel::LEVEL_TEAM_MEMBER) { + $beginThisweek = mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")); + $endThisweek = mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y")); + if (empty($weekMap)) { + $weekMap = " and register_time between $beginThisweek and $endThisweek"; + } $list = M('promote', 'tab_')->alias('p') - ->field('p.id, p.level, p.account, count(pdl.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') - ->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left') - ->where($map) - ->page($p, $row) - ->group('p.id') - ->select(); - $total = M('promote', 'tab_')->alias('p') - ->field('count(pdl.id) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') - ->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left') - ->where($map) - ->select(); + ->field('p.id, p.level, p.account') + ->where($map) + ->page($p, $row) + ->select(); + + if ($list) { + foreach ($list as &$item) { + $item['ioscount'] = M('user', 'tab_')->where('device_type = 2 and promote_id = ' . $item['id'])->count(); + $item['weekcount'] = M('user', 'tab_')->where("device_type = 2 and promote_id = {$item['id']}" . $weekMap)->count(); + $itemCount = M('package_download_log', 'tab_')->alias('pdl') + ->field('count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') + ->where("promote_id={$item['id']} $pdlMap")->select(); + $item['signcount'] = $itemCount[0]['signcount'] ?? 0; + $item['tfcount'] = $itemCount[0]['tfcount'] ?? 0; + $item['supersigncount'] = $itemCount[0]['supersigncount'] ?? 0; + } + $promoters = M('promote', 'tab_')->alias('p')->field('p.id, p.level, p.account')->where($map)->select(); + $pids = implode(',', array_column($promoters, 'id')); + $total[0]['ioscount'] = M('user', 'tab_')->where("device_type = 2 and promote_id in ($pids)")->count(); + $total[0]['weekcount'] = M('user', 'tab_')->where("device_type = 2 and promote_id in ($pids)" . $weekMap)->count(); + $totalCount = M('package_download_log', 'tab_')->alias('pdl') + ->field('count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') + ->where("promote_id in ($pids) $pdlMap")->select(); + $total[0]['signcount'] = $totalCount[0]['signcount'] ?? 0; + $total[0]['tfcount'] = $totalCount[0]['tfcount'] ?? 0; + $total[0]['supersigncount'] = $totalCount[0]['supersigncount'] ?? 0; + } + // $list = M('promote', 'tab_')->alias('p') + // ->field('p.id, p.level, p.account, count(u.id) as iosCount, count(if (u.register_time between '. $beginThisweek . ' and ' . $endThisweek .', 1, null)) as weekCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') + // ->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left') + // ->join("tab_user u on u.promote_id = p.id and u.device_type=2", 'left') + // ->where($map) + // ->page($p, $row) + // ->group('p.id') + // ->select(); + + // $total = M('promote', 'tab_')->alias('p') + // ->field('count(distinct(u.id)) as iosCount, count(distinct(if (u.register_time between '. $beginThisweek . ' and ' . $endThisweek .', 1, null))) as weekCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') + // ->join("tab_package_download_log pdl on pdl.promote_id = p.id $pdlMap", 'left') + // ->join("tab_user u on u.promote_id = p.id and u.device_type=2") + // ->where($map) + // ->select(); } else { $list = M('promote', 'tab_')->alias('p') ->field('p.id, p.level, p.account, count(if(p2.level = '.($level+1).', 1, null)) as lowerCount, count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') @@ -1209,7 +1248,12 @@ class StatisticsController extends ThinkController { $this->assign('_page', $page); } - $promoters = M('promote', 'tab_')->field('id, account')->where(array_merge(['level'=>$level], $pid ? ['parent_id'=>$pid] : []))->select(); + if ($pid && $level) { + $promoters = M('promote', 'tab_')->field('id, account')->where("level= $level and chain like '{$info['chain']}{$pid}/%'")->select(); + } else { + $promoters = M('promote', 'tab_')->field('id, account')->where(array_merge(['level'=>$level], $pid ? ['parent_id'=>$pid] : []))->select(); + } + unset($typeArr[0]); $this->assign('promoters', $promoters); $this->assign('types', $typeArr); @@ -1245,14 +1289,17 @@ class StatisticsController extends ThinkController { $map['pdl.type'] = I('type'); } + $weekMap = ''; if ($startTime = I('create_time_start')) { $startTime = strtotime($startTime); $map['_string'] .= " and pdl.create_time >={$startTime}"; + $weekMap .= " and register_time >={$startTime}"; } if ($endTime = I('create_time_end')) { $endTime = strtotime($endTime) + 86400; $map['_string'] .= " and pdl.create_time < {$endTime}"; + $weekMap .= " and register_time <= {$endTime}"; } $list = M('package_download_log', 'tab_')->alias('pdl') @@ -1263,12 +1310,28 @@ class StatisticsController extends ThinkController { ->page($p, $row) ->select(); + $beginThisweek = mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")); + $endThisweek = mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y")); + if (empty($weekMap)) { + $weekMap = " and register_time between $beginThisweek and $endThisweek"; + } + $total = M('package_download_log', 'tab_')->alias('pdl') ->field('count(if(pdl.type = 1, 1, null)) as signCount, count(if(pdl.type = 2, 1, null)) as tfCount, count(if(pdl.type = 3, 1, null)) as superSignCount') ->join('tab_promote p on p.id = pdl.promote_id') + //->join('tab_user u on u.id = pdl.user_id', 'left') + ->where($map) + ->select(); + + $promoters = M('package_download_log', 'tab_')->alias('pdl') + ->field('pdl.promote_id') + ->join('tab_promote p on p.id = pdl.promote_id') ->join('tab_user u on u.id = pdl.user_id', 'left') ->where($map) ->select(); + $pids = implode(',', array_unique(array_filter(array_column($promoters, 'promote_id')))); + $total[0]['ioscount'] = $promoters ? M('user', 'tab_')->where("device_type = 2 and promote_id in ($pids)")->count() : 0; + $total[0]['weekcount'] = $promoters ? M('user', 'tab_')->where("device_type = 2 and promote_id in ($pids)" . $weekMap)->count() : 0; $count = M('package_download_log', 'tab_')->alias('pdl') ->join('tab_promote p on p.id = pdl.promote_id') diff --git a/Application/Admin/Controller/ToolController.class.php b/Application/Admin/Controller/ToolController.class.php index a567dc2c4..7fda82955 100644 --- a/Application/Admin/Controller/ToolController.class.php +++ b/Application/Admin/Controller/ToolController.class.php @@ -21,6 +21,7 @@ class ToolController extends ThinkController { { $name = $_POST['name']; $config = I('config'); + $data = array('config'=>json_encode($config),'template'=>$_POST['template'],'status'=>$_POST['status']); $map['name']=$name; diff --git a/Application/Admin/Controller/WorkOrderController.class.php b/Application/Admin/Controller/WorkOrderController.class.php index 14f43e449..2c13724ab 100644 --- a/Application/Admin/Controller/WorkOrderController.class.php +++ b/Application/Admin/Controller/WorkOrderController.class.php @@ -103,7 +103,7 @@ class WorkOrderController extends ThinkController $info['role_name'] = I('role_names')[$i]; $info['resource_num'] = I('apply_resources')[$i]; $info['order_no'] = $info['type'] . date('YmdHis'). $i. rand(10, 99) . $info['creator_id']; - $info['handler_id'] = $info['creator_id']; + //$info['handler_id'] = $info['creator_id']; $ins = M('work_order_info', 'tab_')->add($info); if (!$ins) {M('work_order_info', 'tab_')->rollback(); $this->error("创建失败");} @@ -113,7 +113,7 @@ class WorkOrderController extends ThinkController // 添加一条附件信息 $attachement_info = $data; $attachement_info['attachment_url'] = I('attachment_url', ''); - $attachement_info['handler_id'] = $attachement_info['creator_id']; + //$attachement_info['handler_id'] = $attachement_info['creator_id']; $attachement_info['order_no'] = $attachement_info['type'] . date('YmdHis'). rand(100, 999) . $attachement_info['creator_id']; $ins = M('work_order_info', 'tab_')->add($attachement_info); if (!$ins) {M('work_order_info', 'tab_')->rollback(); $this->error("创建失败");} @@ -126,16 +126,16 @@ class WorkOrderController extends ThinkController if (empty(I('user_account')) || empty(I('role_name')) || empty(I('feedback'))) { $this->error('请填写必填的数据'); } - if (empty('handler_id')) { - $this->error('请选择处理人'); - } + // if (empty('handler_id')) { + // $this->error('请选择处理人'); + // } $user = M('user', 'tab_')->where(['account'=>I('user_account')])->find(); if (empty($user)) $this->error("账号不存在"); $data['attachment_url'] = I('attachment_url', ''); $data['user_account'] = I('user_account'); $data['role_name'] = I('role_name'); $data['feedback'] = I('feedback'); - $data['handler_id'] = I('handler_id'); + //$data['handler_id'] = I('handler_id'); $data['remark'] = I('remark', ''); $data['process_log'] = json_encode([['title'=>sprintf('%s于 %s 创建了工单%s,工单状态处理中。', get_admin_name($data['creator_id']), date('Y-m-d H:i:s'), $data['order_no']), 'type'=>1]]); $ins = M('work_order_info', 'tab_')->add($data); @@ -203,7 +203,7 @@ class WorkOrderController extends ThinkController private function modifyProcessLog($oldData, $newData) { - $key = ['game_name'=>'游戏名称', 'server_name'=>'区服名称', 'role_name'=>'角色名称', 'user_account'=>'玩家账号', 'feedback'=>'反馈原因', 'handler_id'=>'处理人', 'remark'=>'备注', 'status'=>'状态', 'attachment_url'=>'附件']; + $key = ['game_name'=>'游戏名称', 'server_name'=>'区服名称', 'role_name'=>'角色名称', 'user_account'=>'玩家账号', 'feedback'=>'反馈原因', 'handler_id'=>'接单人员', 'remark'=>'备注', 'status'=>'状态', 'attachment_url'=>'附件']; $log = []; foreach ($newData as $k => $v) { if (array_key_exists($k, $oldData) && array_key_exists($k, $key) && $oldData[$k] != $newData[$k]) { @@ -254,7 +254,7 @@ class WorkOrderController extends ThinkController if (!I('resource_num')) $this->error('请填写申请资源数量'); } - $data['handler_id'] = $data['creator_id'] = is_login(); + $data['creator_id'] = is_login(); $data['created_time'] = time(); $data['type'] = $info['type']; $data['server_id'] = $info['server_id']; @@ -314,7 +314,7 @@ class WorkOrderController extends ThinkController // 删除 public function delete($ids) { - $delete = M('work_order_info', 'tab_')->where(['id'=>['in', $ids]])->save(['status'=>2]); + $delete = M('work_order_info', 'tab_')->where(['id'=>['in', $ids]])->delete(); return $delete ? $this->success('删除成功') : $this->error('删除失败'); } @@ -329,4 +329,109 @@ class WorkOrderController extends ThinkController $delete = M('work_order_info', 'tab_')->where(['id'=>$id])->save($data); return $delete ? $this->success('成功完成工单') : $this->error('更新失败'); } + + public function take($id) + { + $info = M('work_order_info', 'tab_')->where(['id'=>$id])->find(); + if (empty($info)) $this->error('未找到该资源'); + $userid = is_login(); + if ($info['status'] == 1) { + $this->error('工单已完成'); + } + if (!empty($info['handler_id'])) { + if ($info['handler_id'] != $userid) { + $this->error('工单已被他人领取'); + } else { + $this->error('请勿重复领取工单'); + } + } + if ($info['type'] == 2) { + $process_log = json_decode($info['process_log'], true) ?: []; + $log = ['title'=>sprintf("%s于%s 接取了工单%s", get_admin_name(is_login()), date('Y-m-d H:i:s'), $info['order_no']), 'detail'=>$log, 'type'=>2]; + $data['process_log'] = json_encode(array_merge($process_log, [$log])); + } + $data['handler_id'] = $userid; + $upt = M('work_order_info', 'tab_')->where(['id'=>$id])->save($data); + return $upt ? $this->success('成功接取工单') : $this->error('接单失败'); + } + + public function statistics($row = 10, $p = 1) + { + $limit = ($p-1)*$row . ", {$row}"; + $order = ''; + if ($_REQUEST['data_order'] != '') { + $data_order = reset(explode(',', $_REQUEST['data_order'])); + $data_order_type = end(explode(',', $_REQUEST['data_order'])); + $this->assign('userarpu_order', $data_order); + $this->assign('userarpu_order_type', $data_order_type); + $order = 'order by ' . $data_order_type . " " . ($data_order == 3 ? 'desc' : 'asc'); + } + $map = '1=1'; + if (!empty(I('nickname'))) { + $map .= " and t.nickname = '" . I('nickname') . "'"; + } + // 获取所有传单或者接单用户id + $userids = M('work_order_info', 'tab_') + ->field("concat(creator_id, ',', handler_id) as userid") + ->join('sys_member as t on creator_id = t.uid or handler_id = t.uid') + ->where($map) + ->select(); + if (empty($userids)) { + $list = []; + $count = 0; + } else { + $userids = implode(',', array_unique(array_filter(explode(',', implode(',', array_column($userids, 'userid')))))); + $count = count($userids); + $list = M('work_order_info', 'tab_')->query("SELECT + t.id, + t.nickname, + sum(total_create_count) as total_create_count, + sum(total_accepted_count) as total_accepted_count, + sum(total_handle_count) as total_handle_count, + sum(total_complete_count) as total_complete_count + FROM + ( + SELECT + u.uid as id, + u.nickname, + count(*) AS total_create_count, + count( + + IF (i.`handler_id` > 0, 1, NULL) + ) AS total_accepted_count, + NULL AS total_handle_count, + NULL AS total_complete_count + FROM + sys_member u + JOIN tab_work_order_info i ON i.creator_id = u.uid + WHERE + u.uid in ({$userids}) + GROUP BY u.uid + UNION + SELECT + u.uid as id, + u.nickname, + NULL AS total_create_count, + NULL AS total_accepted_count, + count(*) AS total_handle_count, + count(IF(i.`status` = 1, 1, NULL)) AS total_complete_count + FROM + sys_member u + JOIN tab_work_order_info i ON i.handler_id = u.uid + WHERE + u.uid in ({$userids}) + GROUP BY u.uid + ) AS t + where {$map} + GROUP BY t.id + $order + limit {$limit}"); + } + $page = set_pagination($count, $row); + if ($page) { + $this->assign('_page', $page); + } + $this->assign('list_data', $list); + $this->display('statistics'); + } } \ No newline at end of file diff --git a/Application/Admin/View/Article/pop_rule_edit.html b/Application/Admin/View/Article/pop_rule_edit.html index 3232af106..c019ce359 100644 --- a/Application/Admin/View/Article/pop_rule_edit.html +++ b/Application/Admin/View/Article/pop_rule_edit.html @@ -14,6 +14,24 @@ + +
账号 | +
+
+ ![]() |
+
+
+ ![]() |
+
+
+ ![]() |
+
+
+ ![]() |
+ aOh! 暂时还没有内容! | +
---|---|---|---|---|
{$data.nickname} | ++ | + | + | + |