* @version : HUOSDK 8.0 */ namespace huo\logic\member; use huo\controller\agent\AgentCache; use huo\controller\member\MemCache; use huo\model\common\CommonModel; use huo\model\member\MemberModel; use huo\model\member\MgRoleModel; use huolib\constant\CommonConst; use huolib\constant\OrderConst; class MemListLogic extends CommonModel { /** * @param array $param * * @return array */ protected function getWhere($param = []) { $_map = []; $_srart_time = 1; $_end_time = time(); if (!empty($param['start_time'])) { $_srart_time = strtotime($param['start_time']); } if (!empty($param['end_time'])) { $_end_time = strtotime($param['end_time'].'23:59:59'); } $_map['mg_role_model.create_time'] = ['between', [$_srart_time, $_end_time]]; if (!empty($param['mem_id'])) { $_map['mg.mem_id'] = $param['mem_id']; } if (empty($param['mem_id']) && !empty($param['username'])) { $_map['mg.mem_id'] = (new MemberModel())->getIdByUsername(trim($param['username'])); } if (!empty($param['game_id'])) { $_map['mg_role_model.app_id'] = $param['game_id']; } if (!empty($param['app_id'])) { $_map['mg_role_model.app_id'] = $param['app_id']; } if (!empty($param['server_name'])) { $_map['mg_role_model.server_name'] = trim($param['server_name']); } if (!empty($param['role_name'])) { $_map['mg_role_model.role_name'] = ['like', trim($param['role_name']).'%']; } if (!empty($param['mg_mem_id'])) { $_map['mg_role_model.mg_mem_id'] = $param['mg_mem_id']; } if (!empty($param['os'])) { $_map['mg_role_model.os'] = $param['os']; if ('default' == $param['os']){ $_map['mg_role_model.os'] = ''; } } return $_map; } public function getField($agent_id) { return []; } /** * 获取获取记录 * * @param array $param * @param string $page * @param string $order * * @return array */ public function getRoleList($param = [], $page = '1,10', $order = '-mg.create_time') { $_map = $this->getWhere($param); $_field = [ 'mg_role_model.mg_mem_id' => 'mg_mem_id', 'mg_role_model.app_id' => 'app_id', 'mg_role_model.server_id' => 'server_id', 'mg_role_model.server_name' => 'server_name', 'mg_role_model.role_id' => 'role_id', 'mg_role_model.role_name' => 'role_name', 'mg_role_model.role_level' => 'role_level', 'mg_role_model.money' => 'money', 'mg_role_model.combat_num' => 'combat_num', 'mg_role_model.role_vip' => 'role_vip', 'mg_role_model.ext' => 'ext', 'mg_role_model.os' => 'os', 'mg_role_model.create_time' => 'create_time', 'mg_role_model.update_time' => 'update_time', 'mg.mem_id' => 'mem_id', ]; return $this->getList($_field, $_map, $page, $order); } /** * 获取列表 * * @param array $field * @param array $where * @param string $page * @param string $order * * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function getList($field = [], $where, $page = '1,10', $order = '-create_time') { $_map = $where; $_model = new MgRoleModel(); $_count = $_model->with('mg')->where($_map)->count(); if (empty($_count)) { return [ 'count' => 0, 'list' => [] ]; } $_field = $field; if (empty($field)) { $_field = []; } $_order = $_model->orderFilter($order); $_datas = $_model ->with('mg') ->with('game') ->where($where) ->field($_field) ->order($_order) ->page($page) ->select(); if (is_object($_datas)) { $_datas = $_datas->toArray(); } if (empty($_datas)) { return [ 'count' => $_count, 'list' => [] ]; } $_data = []; $_mem_cache = MemCache::ins(); $_agent_cache = AgentCache::ins(); foreach ($_datas as $_k => $_v) { foreach ($field as $_f) { $_data[$_k][$_f] = $_v[$_f]; } $_data[$_k]['gamename'] = !empty($_v['game']) ? $_v['game']['name'] : ''; $_data[$_k]['icon'] = !empty($_v['game']) ? $_v['game']['icon'] : ''; $_data[$_k]['is_default'] = 1; if (!empty($_v['mg'])) { $_mem = $_mem_cache->getInfoById($_v['mg']['mem_id']); $_data[$_k]['username'] = !empty($_mem) ? $_mem['username'] : ''; $_data[$_k]['is_switch'] = !empty($_mem) ? $_mem['is_switch'] : OrderConst::PAY_SWITCH_NO; $_data[$_k]['agent_id'] = ''; $_data[$_k]['agent_name'] = '官方渠道'; $_data[$_k]['is_default'] = $_v['mg']['is_default'] ?? 1; $_data[$_k]['mg_create_time'] = $_v['mg']['create_time']; $_data[$_k]['mg_update_time'] = $_v['mg']['update_time']; if (!empty($_mem['agent_id'])) { $_agent = $_agent_cache->getInfoByAgentId($_mem['agent_id']); $_data[$_k]['agent_id'] = empty($_agent['id']) ? '' : $_agent['id']; $_data[$_k]['agent_name'] = empty($_agent['user_nicename']) ? '' : $_agent['user_nicename']; } } else { $_data[$_k]['username'] = ''; } } return [ 'count' => $_count, 'list' => $_data ]; } }