| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 | 
							- <?php
 
- /**
 
-  * AgentLogic.php UTF-8
 
-  *
 
-  *
 
-  * @date    : 2018/5/9 14:33
 
-  *
 
-  * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 
-  * @author  : wuyonghong <wyh@huosdk.com>
 
-  * @version : HUOSDK 8.0
 
-  */
 
- namespace huo\logic\agent;
 
- use huo\controller\agent\Agent;
 
- use huo\model\common\CommonModel;
 
- use huo\model\member\MemberModel;
 
- use huo\model\user\RoleModel;
 
- use huo\model\user\UserModel;
 
- use huolib\constant\AgentConst;
 
- use huolib\constant\CommonConst;
 
- use huolib\tool\Time;
 
- class AgentLogic extends CommonModel {
 
-     /**
 
-      * 通过玩家ID获取玩家信息
 
-      *
 
-      * @param string $agent_id
 
-      *
 
-      * @return array|bool
 
-      */
 
-     public function getInfoByAgentId($agent_id) {
 
-         $_info = (new UserModel())->getUserInfo($agent_id);
 
-         return $_info;
 
-     }
 
-     /**
 
-      * @param $username
 
-      *
 
-      * @return array|bool
 
-      */
 
-     public function getIdByName($username) {
 
-         $_map['user_login'] = $username;
 
-         $_agent_id = (new UserModel())->where($_map)->value('id');
 
-         if (false === $_agent_id) {
 
-             return false;
 
-         }
 
-         if (empty($_agent_id)) {
 
-             return 0;
 
-         }
 
-         return $_agent_id;
 
-     }
 
-     /**
 
-      * 更新数据
 
-      *
 
-      * @param array $data
 
-      *
 
-      * @param int   $agent_id
 
-      *
 
-      * @return bool|mixed
 
-      */
 
-     public function updateAgent($data = [], $agent_id) {
 
-         $_map['id'] = $agent_id;
 
-         $_data = $data;
 
-         if (isset($_data['user_pass']) && cmf_pwd_is_encrypt($_data['user_pass'])) {
 
-             unset($_data['user_pass']);
 
-         }
 
-         if (isset($_data['pay_pwd']) && cmf_pwd_is_encrypt($_data['pay_pwd'])) {
 
-             unset($_data['pay_pwd']);
 
-         }
 
-         return (new UserModel())->updateData($_data, $agent_id);
 
-     }
 
-     /**
 
-      * 获取渠道ID
 
-      *
 
-      * @param int   $agent_id
 
-      * @param bool  $inc_me
 
-      * @param array $role_type
 
-      *
 
-      * @return array
 
-      */
 
-     public function getAgentIds(
 
-         $agent_id = 0, $inc_me = false, $role_type = [AgentConst::ROLE_TYPE_GROUP, AgentConst::ROLE_TYPE_AGENT]
 
-     ) {
 
-         $_role_type = (new Agent())->getRoleType($agent_id);
 
-         $_agent_model = new UserModel();
 
-         if (AgentConst::ROLE_TYPE_ADMIN == $_role_type || AgentConst::ROLE_TYPE_MANAGER == $_role_type) {
 
-             $_role_ids = (new RoleModel())->getIdsByRoleType($role_type);
 
-             $_agent_arr = $_agent_model->getIdsByRoleId($_role_ids);
 
-         } elseif (AgentConst::ROLE_TYPE_PC == $_role_type) {
 
-             if (1 == count($role_type) && in_array(AgentConst::ROLE_TYPE_GROUP, $role_type)) {
 
-                 $_agent_arr = $_agent_model->getSubAgents($agent_id, $inc_me);
 
-             } elseif (1 == count($role_type) && in_array(AgentConst::ROLE_TYPE_AGENT, $role_type)) {
 
-                 $_group_arr = $_agent_model->getSubAgents($agent_id, $inc_me);
 
-                 $_agent_arr = $_agent_model->getSubAgents($_group_arr, false);
 
-             } else {
 
-                 $_group_arr = $_agent_model->getSubAgents($agent_id, $inc_me);
 
-                 $_agent_arr = $_agent_model->getSubAgents($_group_arr, true);
 
-             }
 
-         } elseif (AgentConst::ROLE_TYPE_GROUP == $_role_type) {
 
-             $_role_id = $_agent_model->getRoleIdById($agent_id);
 
-             if (AgentConst::AGENT_ROLE_MP_ACCOUNT == $_role_id) {
 
-                 $_agent_arr = $_agent_model->getSubAgents($agent_id, $inc_me, AgentConst::AGENT_ROLE_MP_AD);
 
-             } else {
 
-                 $_agent_arr = $_agent_model->getSubAgents($agent_id, $inc_me, AgentConst::AGENT_ROLE_MP_AGENT);
 
-             }
 
-         } else {
 
-             $_agent_arr = [$agent_id];
 
-         }
 
-         return $_agent_arr;
 
-     }
 
-     /**
 
-      * 获取渠道Id对应名称
 
-      *
 
-      * @param int   $agent_id
 
-      * @param bool  $inc_me
 
-      * @param array $role_type
 
-      * @param bool  $inc_nice
 
-      *
 
-      * @return array
 
-      */
 
-     public function getIdNames(
 
-         $agent_id, $inc_me = false, $role_type = [AgentConst::ROLE_TYPE_GROUP, AgentConst::ROLE_TYPE_AGENT],
 
-         $inc_nice = false
 
-     ) {
 
-         $_role_type = (new Agent())->getRoleType($agent_id);
 
-         $_role_ids = (new RoleModel())->getIdsByRoleType($role_type);
 
-         $_map['role_id'] = ['in', $_role_ids];
 
-         $_map['user_status'] = AgentConst::USER_STATUS_ACTIVATED;
 
-         $_agent_model = new UserModel();
 
-         if (AgentConst::ROLE_TYPE_PC == $_role_type) {
 
-             if (1 == count($role_type) && in_array(AgentConst::ROLE_TYPE_AGENT, $role_type)) {
 
-                 $_map['id'] = ['in', $_agent_model->getSubAgents($agent_id, $inc_me)];
 
-             } elseif (1 == count($role_type) && in_array(AgentConst::ROLE_TYPE_GROUP, $role_type)) {
 
-                 $_map['parent_id'] = ['in', $_agent_model->getSubAgents($agent_id, $inc_me)];
 
-             } else {
 
-                 $_group_arr = $_agent_model->getSubAgents($agent_id, $inc_me);
 
-                 $_map['parent_id'] = ['in', $_group_arr];
 
-             }
 
-         } elseif (AgentConst::ROLE_TYPE_GROUP == $_role_type) {
 
-             $_agent_arr = $_agent_model->getSubAgents($agent_id, $inc_me);
 
-             $_map['id'] = ['in', $_agent_arr];
 
-         } elseif (AgentConst::ROLE_TYPE_AGENT == $_role_type) {
 
-             $_map['id'] = $agent_id;
 
-         }
 
-         return $_agent_model->getIdNames($_map, $inc_nice);
 
-     }
 
-     public function getIdNamesByRoleId($role_id = [], $inc_nice = false) {
 
-         $_map['role_id'] = ['in', $role_id];
 
-         $_agent_model = new UserModel();
 
-         return $_agent_model->getIdNames($_map, $inc_nice);
 
-     }
 
-     /**
 
-      * 添加渠道
 
-      *
 
-      * @param array $data
 
-      *
 
-      * @return bool|mixed
 
-      */
 
-     public function addAgent($data) {
 
-         $_id = (new UserModel())->addData($data);
 
-         return $_id;
 
-     }
 
-     /**
 
-      * 根据域名获取AgentId
 
-      *
 
-      * @param $site
 
-      *
 
-      * @return int|mixed
 
-      */
 
-     public function getAgentIdBySite($site) {
 
-         if (strpos($site, DOCDOMAIN)) {
 
-             /* 系统分配的域名 */
 
-             $site = str_replace("http://", "", $site);
 
-             $site = str_replace("https://", "", $site);
 
-             $_domain_arr = explode('.', $site);
 
-             $_map['user_login'] = $_domain_arr['0'];
 
-             if (empty($_map['user_login'])) {
 
-                 return 0;
 
-             }
 
-         } else {
 
-             /* 独有域名 */
 
-             $_map['user_url'] = $site;
 
-         }
 
-         $_key = 'agent_site_key_'.$site;
 
-         $_agent_id = (new UserModel())->cache($_key)->where($_map)->value('id');
 
-         if (empty($_agent_id)) {
 
-             return 0;
 
-         }
 
-         return $_agent_id;
 
-     }
 
-     /**
 
-      * 统计总玩家 昨日玩家  今日玩家
 
-      *
 
-      * @param int|array $agent_ids
 
-      *
 
-      * @return array
 
-      *   sum_user_cnt        总玩家数
 
-      *   today_user_cnt      今日玩家数
 
-      *   yesterday_user_cnt  昨日玩家数
 
-      */
 
-     public function getStaticMem($agent_ids) {
 
-         $_agent_ids = $agent_ids;
 
-         if (is_numeric($agent_ids)) {
 
-             $_agent_ids = [$agent_ids];
 
-         }
 
-         $_map = [];
 
-         if (!empty($agent_ids)) {
 
-             $_map['agent_id'] = ['in', $_agent_ids];
 
-         }
 
-         $_mem_model = new MemberModel();
 
-         $_rdata['sum_user_cnt'] = $_mem_model->where($_map)->count();
 
-         list($today_start, $today_end) = Time::today();
 
-         $_map['create_time'] = ['gt', $today_start];
 
-         $_rdata['today_user_cnt'] = $_mem_model->where($_map)->count();
 
-         $_map['create_time'] = ['between', [$today_start - CommonConst::CONST_DAY_SECONDS, $today_start]];
 
-         $_rdata['yesterday_user_cnt'] = $_mem_model->where($_map)->count();
 
-         return $_rdata;
 
-     }
 
- }
 
 
  |