123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <?php
- /**
- * MemListLogic.php UTF-8
- * 玩家列表逻辑处理
- *
- * @date : 2018/5/19 15:00
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @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
- ];
- }
- }
|