'审核未通过', self::STATUS_WAIT => '待审核', self::STATUS_PASS => '已审核', ]; public function lists() { $params = I('get.'); $promoteId = $params['promote_id'] ?? 0; $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 ($promoteId) { $map['promote_id'] = intval($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'; $thisStatusText = self::$statusList[$promoteGameRatio['status']]; $thisStatusText = ($promoteGameRatio['status'] == -1) ? '' . $thisStatusText . '' : $thisStatusText; $thisApplicant = getPromoteAccount($promoteGameRatio['applicant_id']); $thisReviewer = $promoteGameRatio['reviewer_id'] ? getPromoteAccount($promoteGameRatio['reviewer_id']) : '待确认'; if ($promoteGameRatio['ratio'] > 0 && $promoteGameRatio['begin_time']) { $thisBeninTime = date('Y/m/d', $promoteGameRatio['begin_time']); } else { $thisBeninTime = date('Y/m/d', $this->getPromoteApplyCreateTime($thisPromoteId, $thisGameId)); } $thisEndTime = $promoteGameRatio['end_time'] ? date('Y/m/d', $promoteGameRatio['end_time']) : '永久'; $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' => $promoteGameRatio['status'], 'status_text' => $thisStatusText, 'applicant' => $thisApplicant ?? '未知', 'reviewer' => $thisReviewer ?? '未知', ]; } } // var_dump(get_defined_constants());die; $this->assign('records', $records); $this->assign('count', $count); $this->assign('gameList', getAllGameList()); $this->assign('promoteList', getPromoteByLevel(1)); $this->assign('statusList', self::$statusList); $this->meta_title = '公会分成管理'; $this->display(); } public function applyRatio() { if ($_POST) { $params = I('post.'); $time = time(); $save['ratio'] = $params['ratio'] ?? 0; $save['begin_time'] = $params['begin_time'] ? strtotime($params['begin_time']) : 0; $save['end_time'] = $params['end_time'] ? strtotime($params['end_time']) : 0; $save['remark'] = $params['remark'] ?? ''; $save['status'] = 0; $save['update_time'] = $time; if (!empty($params['id'])) {//修改 $promoteGameRatio = D(self::MODEL_NAME)->find($params['id']); if (empty($promoteGameRatio)) { $this->error('参数异常'); } $save['id'] = intval($params['id']); $result = D(self::MODEL_NAME)->save($save); } else {//新增 if (empty($params['promote_id'])) { $this->error('请选择会长账号'); } if (empty($params['game_id'])) { $this->error('请选择要申请的游戏'); } $promoteId = intval($params['promote_id']); $gameId = intval($params['game_id']); $map['promote_id'] = $promoteId; $map['game_id'] = $gameId; $promoteGameRatio = D(self::MODEL_NAME)->where($map)->find(); if ($promoteGameRatio) { $this->error('网络异常'); } $save['promote_id'] = $promoteId; $save['game_id'] = $gameId; $save['applicant_id'] = is_login(); $save['create_time'] = $time; $result = D(self::MODEL_NAME)->add($save); } if ($result === false) { $this->error('保存失败'); } else { $this->success('保存成功', U('lists')); } } else { $params = I('get.'); $id = $params['id'] ?? 0; $id = intval($id); $metaTitle = '游戏分成比例申请'; if ($id) { $metaTitle .= '--修改'; $field = 'id, promote_id, game_id, ratio, begin_time, end_time, remark'; $map['id'] = $id; $promoteGameRatio = D(self::MODEL_NAME)->field($field)->where($map)->find(); if (empty($promoteGameRatio)) { $this->error('数据异常'); } $promoteGameRatio['begin_time'] = $promoteGameRatio['begin_time'] ? date('Y-m-d', $promoteGameRatio['begin_time']) : ''; $promoteGameRatio['end_time'] = $promoteGameRatio['end_time'] ? date('Y-m-d', $promoteGameRatio['end_time']) : ''; $gameRatio = M('game', 'tab_')->where(array(['id' => $promoteGameRatio['game_id']]))->getField('ratio'); $gameRatio = ($gameRatio ?? '0.00') . '%'; $this->assign('record', $promoteGameRatio); $this->assign('gameRatio', $gameRatio); } $this->assign('gameList', getAllGameList()); $this->assign('promoteList', getPromoteByLevel(1)); $this->meta_title = $metaTitle; $this->display(); } } public function setStatus($status) { $params = I('post.'); $ids = $params['ids'] ?? []; if (empty($ids)) { $this->error('操作失败'); } if (empty($status) || !in_array($status, [-1, 1])) { $this->error('操作失败'); } $time = time(); $map['id'] = ['in', $ids]; $map['status'] = 0; $save['status'] = $status; $save['reviewer_id'] = is_login(); $save['review_time'] = $time; $save['update_time'] = $time; $result = D(self::MODEL_NAME)->where($map)->save($save); if ($result) { $this->success('操作成功'); } else { $this->error('操作失败'); } } 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; } public function getGameRatio() { $gameId = I('post.game_id', 0); $gameId = intval($gameId); $gameRatio = ''; if ($gameId) { $map['id'] = $gameId; $gameRatio = M('game', 'tab_')->where($map)->getField('ratio'); $gameRatio = ($gameRatio ?? '0.00') . '%'; } $data = [ 'status' => 1, 'ratio' => $gameRatio, ]; $this->ajaxReturn($data); } }