* @version : Huosdk 8.0 */ namespace huo\controller\member; use huo\controller\agent\AgentCache; use huo\model\user\UserModel; use huolib\constant\AgentConst; use huolib\constant\MemConst; class MemAgent { /** * 获取玩家自己的渠道ID * * @param int $mem_id 玩家ID * * @return int|mixed 返回渠道ID */ public function getMemAgentId($mem_id = 0) { $_mem_id = $mem_id; if (empty($_mem_id)) { return 0; } $_map['mem_id'] = $_mem_id; $_mem_agent_id = (new UserModel())->getIdByMemId($_mem_id); if (empty($_mem_agent_id)) { $_mem_agent_id = $this->genAgent($_mem_id); } if (empty($_mem_agent_id)) { return 0; } return $_mem_agent_id; } /** * 玩家生成渠道 * * @param int $mem_id 玩家ID * * @return bool|int */ public function genAgent($mem_id) { $_mem_id = $mem_id; if (empty($_mem_id)) { return false; } $_user_map['mem_id'] = $_mem_id; $_user_model = new UserModel(); $_mem_agent_id = $_user_model->getIdByMemId($_mem_id); if (!empty($_mem_agent_id)) { return $_mem_agent_id; } $_mem_info = (new MemCache())->getInfoById($mem_id); $_data['user_login'] = $_mem_id.'_'.uniqid().md5($_mem_id); $_data['user_pass'] = $_mem_id.'_'.uniqid().md5($_mem_id); $_data['pay_pwd'] = $_data['user_pass']; $_data['user_nicename'] = !empty($_mem_info) ? $_mem_info['nickname'] : $_data['user_login']; $_data['avatar'] = !empty($_mem_info) ? $_mem_info['avatar'] : ''; $_data['user_status'] = !empty($_mem_info) ? $_mem_info['status'] : MemConst::STATUS_NORMAL; $_data['mem_id'] = $_mem_id; $_data['parent_id'] = MemCache::ins()->getAgentIdByMemId($mem_id); $_data['role_id'] = AgentConst::AGENT_ROLE_MP_MEMBER;//小游戏玩家渠道 $_rs = $_user_model->addData($_data); if (false !== $_rs) { return $_rs; } return false; } /** * 玩家设定渠道 * * @param int $mem_id 玩家ID * @param int $parent_agent_id 设定的渠道ID * * @return bool|mixed 返回上级玩家ID */ public function setParent($mem_id = 0, $parent_agent_id = 0) { if (empty($mem_id)) { return true; } $_mc_class = MemCache::ins(); $_ac_class = AgentCache::ins(); $_parent_agent_data = $_ac_class->getInfoByAgentId($parent_agent_id); $_parent_mem_id = $_parent_agent_data['mem_id']; /* 更新玩家表中数据 */ $_mem_data = $_mc_class->getInfoById($mem_id); $_mem_data['agent_id'] = $parent_agent_id; $_mem_data['parent_mem_id'] = empty($_parent_mem_id) ? 0 : $_parent_mem_id; $_mc_class->updateMem($mem_id, $_mem_data); /* 查询是否玩家渠道 玩家渠道更新渠道信息 */ $_mem_agent_id = (new UserModel())->getIdByMemId($mem_id); if (empty($_mem_agent_id)) { return true; } $_agent_data = $_ac_class->getInfoByAgentId($_mem_agent_id); $_agent_data['parent_id'] = $parent_agent_id; $_ac_class->updateAgent($_mem_agent_id, $_agent_data); return true; } }