'审核未通过', self::STATUS_WAIT => '待审核', self::STATUS_PASS => '已审核', ]; public function lists() { $params = I('get.'); $promoteAccount = $params['promote_account'] ?? ''; $gameId = $params['game_id'] ?? 0; $status = $params['status'] ?? ''; $page = $params['p'] ? intval($params['p']) : 1; $row = $params['row'] ? intval($params['row']) : 10; $map['_string'] = '1 = 1'; if ($promoteAccount) { $promoteMap['account'] = trim($promoteAccount); $promoteId = M('promote', 'tab_')->where($promoteMap)->getField('id'); $promoteId = $promoteId ?? 0; $map['promote_id'] = $promoteId; } if ($gameId) { $map['game_id'] = intval($gameId); } if ($status !== '') { $map['status'] = intval($status); } $field = 'create_time, update_time'; $promoteGameRatios = D(self::MODEL_NAME)->field($field, true) ->where($map) ->page($page, $row) ->order('update_time desc, id desc') ->select(); $count = D(self::MODEL_NAME)->where($map)->count(); $records = []; if ($promoteGameRatios) { $promoteIds = array_column($promoteGameRatios, 'promote_id'); $gameIds = array_column($promoteGameRatios, 'game_id'); $promoteFiled = 'id, account, mobile_phone, create_time, status, ver_status'; $gameFiled = 'id, game_name, ratio'; $promotes = M('promote', 'tab_')->where(array('id' => ['in', $promoteIds]))->getField($promoteFiled, true); $games = M('game', 'tab_')->where(array('id' => ['in', $gameIds]))->getField($gameFiled, true); foreach ($promoteGameRatios as $promoteGameRatio) { $thisPromoteId = $promoteGameRatio['promote_id']; $thisGameId = $promoteGameRatio['game_id']; $issetPromote = isset($promotes[$thisPromoteId]); $issetGame = isset($games[$thisGameId]); $thisPromoteAccount = '未知'; $thisPromoteMobilePhone = '未知'; $thisPromoteCreateTime = '未知'; $thisPromoteStatus = '未知'; $thisPromoteVerStatus = '未知'; $thisGameName = '未知'; $thisGameRatio = '0.00'; $thisApplicant = getPromoteAccount($promoteGameRatio['applicant_id']); $thisReviewer = $promoteGameRatio['reviewer_id'] ? getPromoteAccount($promoteGameRatio['reviewer_id']) : '待确认'; if ($promoteGameRatio['ratio'] > 0) { $thisBeninTime = date('Y/m/d', $promoteGameRatio['begin_time']); $thisEndTime = date('Y/m/d', $promoteGameRatio['end_time']); } else { $thisBeninTime = date('Y/m/d', $this->getPromoteApplyCreateTime($thisPromoteId, $thisGameId)); $thisEndTime = '永久'; } $validDate = $thisBeninTime . ' - ' . $thisEndTime; if ($issetPromote) { $thisPromoteAccount = $promotes[$thisPromoteId]['account']; $thisPromoteMobilePhone = $promotes[$thisPromoteId]['mobile_phone']; $thisPromoteCreateTime = date('Y-m-d H:i:s', $promotes[$thisPromoteId]['create_time']); $thisPromoteStatus = get_status_title($promotes[$thisPromoteId]['status']); $thisPromoteStatus = $thisPromoteStatus ?? '未知'; $thisPromoteVerStatus = getPromoteVerStatus($promotes[$thisPromoteId]['status'], 2); } if ($issetGame) { $thisGameName = $games[$thisGameId]['game_name']; $thisGameRatio = $games[$thisGameId]['ratio']; $thisGameRatio = $thisGameRatio ?? '0.00'; } $records[] = [ 'id' => $promoteGameRatio['id'], 'promote_id' => $promoteGameRatio['promote_id'], 'promote_account' => $thisPromoteAccount, 'promote_mobile_phone' => $thisPromoteMobilePhone, 'promote_create_time' => $thisPromoteCreateTime, 'promote_status_text' => $thisPromoteStatus, 'promote_ver_status_text' => $thisPromoteVerStatus, 'game_name' => $thisGameName, 'game_ratio' => $thisGameRatio . '%', 'ratio' => $promoteGameRatio['ratio'] . '%', 'valid_date' => $validDate, 'remark' => $promoteGameRatio['remark'], 'status_text' => self::$statusList[$promoteGameRatio['status']], 'applicant' => $thisApplicant ?? '未知', 'reviewer' => $thisReviewer ?? '未知', ]; } } $this->assign('records', $records); $this->assign('count', $count); $this->assign('gameList', getAllGameList()); $this->assign('promoteList', getPromoteByLevel(1)); $this->meta_title = '公会分成管理'; $this->display(); } private function getPromoteApplyCreateTime($promoteId, $gameId) { $map['promote_id'] = $promoteId; $map['game_id'] = $gameId; $createTime = $apply = M('apply', 'tab_')->where($map)->getField('apply_time'); return $createTime; } }