| 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        ];    }}
 |