123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535 |
- <?php
- /**
- * Agent.php UTF-8
- *
- *
- * @date : 2018/5/10 16:32
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\controller\agent;
- use huo\controller\common\Base;
- use huo\controller\common\HuoSession;
- use huo\logic\agent\AgentGameLogic;
- use huo\logic\agent\AgentLogic;
- use huo\logic\finance\AgentOrderLogic;
- use huo\logic\order\OrderLogic;
- use huo\model\user\RoleModel;
- use huo\model\user\RoleUserModel;
- use huo\model\user\UserModel;
- use huolib\constant\AgentConst;
- use huolib\constant\CommonConst;
- use huolib\constant\MemConst;
- use huolib\status\MemberStatus;
- use huolib\utils\UserUtils;
- use think\Cache;
- use think\Log;
- class Agent extends Base {
- /**
- * 获取渠道基本信息
- *
- * @param $agent_id
- *
- * @return bool
- */
- public function getAgentBaseInfo($agent_id) {
- if (empty($agent_id)) {
- return false;
- }
- $_ac_class = AgentCache::ins();
- $_agent_data = $_ac_class->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- return false;
- }
- $_data['user_login'] = $_agent_data['user_login'];
- $_data['user_nicename'] = $_agent_data['user_nicename'];
- $_data['user_email'] = $_agent_data['user_email'];
- $_data['signature'] = $_agent_data['signature'];
- $_data['role_id'] = $_agent_data['role_id'];
- $_data['role_type'] = (new RoleModel())->getRoleTypeById($_data['role_id']);
- $_data['parent_id'] = $_agent_data['parent_id'];
- $_data['cp_id'] = $_agent_data['cp_id'];
- $_data['user_status'] = $_agent_data['user_status'];
- $_data['mobile'] = $_agent_data['mobile'];
- $_data['avatar'] = $_agent_data['avatar'];
- $_ae_info = $_ac_class->getAgentExtByAgentId($agent_id);
- $_data['ptb_remain'] = $_ae_info['ptb_remain'];
- $_data['share_remain'] = $_ae_info['share_remain'];
- $_data['frozen_amount'] = $_ae_info['frozen_amount'];
- HuoSession::setAgentId($_agent_data['id']);
- return $_data;
- }
- /**
- * 获取统计信息
- *
- * @param $agent_id
- *
- * @return array
- */
- public function getStatisticsTotalInfo($agent_id) {
- $_ae_data = AgentCache::ins()->getAgentExtByAgentId($agent_id);
- if (empty($_ae_data)) {
- $_code = MemberStatus::INVALID_PARAMS;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_agent_ids = (new AgentLogic())->getAgentIds($agent_id, true);
- /* 玩家统计 */
- $_member = (new AgentLogic())->getStaticMem($_agent_ids);
- $_rdata['sum_user_cnt'] = $_member['sum_user_cnt'];
- $_rdata['today_user_cnt'] = $_member['today_user_cnt'];
- $_rdata['yesterday_user_cnt'] = $_member['yesterday_user_cnt'];
- /* 玩家流水统计 */
- $_member = (new OrderLogic())->getStaticMoney($_agent_ids);
- $_rdata['sum_money'] = $_member['sum_money'];
- $_rdata['today_money'] = $_member['today_money'];
- $_rdata['yesterday_money'] = $_member['yesterday_money'];
- /* 流水分成统计 */
- $_role_type = $this->getRoleType($agent_id);
- $_share_money = (new AgentOrderLogic())->getStaticShareMoney($agent_id, $_role_type);
- $_rdata['sum_share_total'] = $_share_money['sum_share_total'];
- $_rdata['today_share_total'] = $_share_money['today_share_total'];
- $_rdata['yesterday_share_total'] = $_share_money['yesterday_share_total'];
- /* 游戏统计 */
- $_game = (new AgentGameLogic())->getStaticGame($agent_id);
- $_rdata['sum_game_cnt'] = $_game['sum_game_cnt'];
- $_rdata['today_game_cnt'] = $_game['today_game_cnt'];
- $_rdata['yesterday_game_cnt'] = $_game['yesterday_game_cnt'];
- $_code = MemberStatus::NO_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code), $_rdata);
- }
- /**
- * 获取父渠道ID
- *
- * @param $agent_id
- *
- * @return int|false
- */
- public function getParentId($agent_id) {
- $_agent_data = AgentCache::ins()->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- return false;
- }
- return $_agent_data['parent_id'];
- }
- /**
- * 获取角色类型
- *
- * @param $agent_id
- *
- * @return int|false
- */
- public function getRoleType($agent_id) {
- $_agent_data = AgentCache::ins()->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- return false;
- }
- $_role_type = (new RoleModel())->getRoleTypeById($_agent_data['role_id']);
- return $_role_type;
- }
- /**
- * 通过用户名获取Id
- *
- * @param string $username
- *
- * @return array|bool
- */
- public function getIdByName($username = '') {
- $_agent_id = (new AgentLogic())->getIdByName($username);
- return $_agent_id;
- }
- /**
- * @param $username
- * @param $password
- *
- * @return array|mixed
- */
- public function login($username, $password) {
- $_login_chk = UserUtils::checkLogin($username, $password);
- if (MemberStatus::NO_ERROR != $_login_chk) {
- Log::write(
- "func=".__FUNCTION__."&class=".__CLASS__."&step=1&username=$username&pwd=$password", Log::NOTICE
- );
- return $this->retErrMsg($_login_chk);
- }
- $_agent_id = $this->getIdByName($username);
- $_agent_data = AgentCache::ins()->getInfoByAgentId($_agent_id);
- if ($_agent_data) {
- $_chk_pwd = cmf_compare_password($password, $_agent_data['user_pass']);
- if (false == $_chk_pwd) {
- $_rs = MemberStatus::USERNAME_OR_PASSWORD_ERR;
- } elseif (MemConst::STATUS_FORBID == $_agent_data['user_status']) {
- $_rs = MemberStatus::ACCOUNT_HALT;
- } else {
- $_rs = MemberStatus::NO_ERROR;
- }
- } else {
- $_rs = MemberStatus::USERNAME_OR_PASSWORD_ERR;
- Log::write(
- "func=".__FUNCTION__."&class=".__CLASS__."&step=2&username=$username&pwd=$password", Log::NOTICE
- );
- return $this->huoError($_rs, MemberStatus::getMsg($_rs));
- }
- if (!isset($_rs)) {
- $_rs = MemberStatus::USERNAME_OR_PASSWORD_ERR;
- }
- if (MemberStatus::NO_ERROR == $_rs) {
- return $this->huoSuccess($_rs, MemberStatus::getMsg($_rs), $this->getAgentBaseInfo($_agent_id));
- } else {
- Log::write("func=".__FUNCTION__."&class=".__CLASS__."&step=3&username=$username&pwd=$password", Log::ERROR);
- return $this->huoError($_rs, MemberStatus::getMsg($_rs));
- }
- }
- /**
- * 更新密码
- *
- * @param $agent_id
- * @param $old_pwd
- * @param $new_pwd
- *
- * @return array
- */
- public function updatePwd($agent_id, $old_pwd, $new_pwd) {
- $_ac_class = AgentCache::ins();
- $_agent_data = $_ac_class->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- $_code = MemberStatus::INVALID_PARAMS;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- /* 校验旧密码 */
- if (false == cmf_compare_password($old_pwd, $_agent_data['user_pass'])) {
- $_code = MemberStatus::PASSWORD_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- return $this->setPwd($agent_id, $new_pwd);
- }
- /**
- * 更新支付密码
- *
- * @param $agent_id
- * @param $old_pwd
- * @param $new_pwd
- *
- * @return array
- */
- public function updatePayPwd($agent_id, $old_pwd, $new_pwd) {
- $_ac_class = AgentCache::ins();
- $_agent_data = $_ac_class->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- $_code = MemberStatus::INVALID_PARAMS;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- /* 校验旧密码 */
- if (cmf_compare_password($old_pwd, $_agent_data['pay_pwd'])) {
- $_code = MemberStatus::PASSWORD_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- return $this->setPwd($agent_id, $new_pwd);
- }
- /**
- * 更新信息
- *
- * @param $agent_id
- * @param $param
- *
- * @return array
- */
- public function updateData($agent_id, $param) {
- $_ac_class = AgentCache::ins();
- $_agent_data = $_ac_class->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- $_code = MemberStatus::INVALID_PARAMS;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_data = [];
- if (isset($param['user_nicename'])) {
- $_data['user_nicename'] = $param['user_nicename'];
- }
- if (isset($param['signature'])) {
- $_data['signature'] = $param['signature'];
- }
- if (isset($param['avatar'])) {
- $_data['avatar'] = $param['avatar'];
- }
- $_data = array_merge($_agent_data, $_data);
- $_rs = $_ac_class->updateAgent($agent_id, $_data);
- if (false === $_rs) {
- $_code = MemberStatus::INNER_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- } else {
- $_code = MemberStatus::NO_ERROR;
- return $this->huoSuccess($_code, MemberStatus::getMsg($_code));
- }
- }
- /**
- * 更新密码
- *
- * @param $agent_id
- * @param $new_pwd
- *
- * @return array
- */
- public function setPwd($agent_id, $new_pwd) {
- $_ac_class = AgentCache::ins();
- $_rs = UserUtils::checkPassword($new_pwd);
- if (MemberStatus::NO_ERROR != $_rs) {
- $_code = $_rs;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_agent_data['user_pass'] = $new_pwd;
- $_rs = $_ac_class->updateAgent($agent_id, $_agent_data);
- if (false === $_rs) {
- $_code = MemberStatus::INNER_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- } else {
- $_code = MemberStatus::NO_ERROR;
- return $this->huoSuccess($_code, MemberStatus::getMsg($_code));
- }
- }
- /**
- * 更新密码
- *
- * @param $agent_id
- * @param $new_pwd
- *
- * @return array
- */
- public function setPayPwd($agent_id, $new_pwd) {
- $_ac_class = AgentCache::ins();
- $_rs = UserUtils::checkPassword($new_pwd);
- if (MemberStatus::NO_ERROR != $_rs) {
- $_code = $_rs;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_agent_data['pay_pwd'] = $new_pwd;
- $_rs = $_ac_class->updateAgent($agent_id, $_agent_data);
- if (false === $_rs) {
- $_code = MemberStatus::INNER_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- } else {
- $_code = MemberStatus::NO_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- }
- /**
- * 校验支付密码
- *
- * @param $agent_id
- * @param $pay_pwd
- *
- * @return array
- */
- public function checkPayPwd($agent_id, $pay_pwd) {
- $_ac_class = AgentCache::ins();
- $_agent_data = $_ac_class->getInfoByAgentId($agent_id);
- /* 校验旧密码 */
- if (false == cmf_compare_password($pay_pwd, $_agent_data['pay_pwd'])) {
- $_code = MemberStatus::PASSWORD_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- } else {
- $_code = MemberStatus::NO_ERROR;
- return $this->huoSuccess($_code, MemberStatus::getMsg($_code));
- }
- }
- /**
- * 添加渠道游戏
- *
- * @param string $agent_name
- * @param string $user_nice
- * @param string $user_pass
- * @param int $prent_id
- * @param int $role_id
- * @param string $email
- * @param int $agent_charge_type
- * @param string $price
- * @param int $cp_id
- * @param int $wx_id
- *
- * @return array
- */
- public function addAgent(
- $agent_name, $user_nice, $user_pass, $prent_id, $role_id = AgentConst::AGENT_ROLE_CPS, $email = '',
- $agent_charge_type = 0, $price = '', $cp_id = 0, $wx_id = 0
- ) {
- $_agent_name = $agent_name;
- $_id = $this->getIdByName($_agent_name);
- if (!empty($_id)) {
- $_code = MemberStatus::USERNAME_EXISTS;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_rs = UserUtils::checkRegister($_agent_name, $user_pass);
- if (MemberStatus::NO_ERROR != $_rs) {
- return $this->huoError($_rs, MemberStatus::getMsg($_rs));
- }
- $_parent_id = $prent_id;
- if (empty($prent_id)) {
- $_parent_id = 1;
- }
- $_role_id = $role_id;
- if (empty($role_id)) {
- $_role_id = AgentConst::AGENT_ROLE_CPS;
- }
- $_data['user_login'] = $agent_name;
- $_data['user_pass'] = $user_pass;
- $_data['pay_pwd'] = $user_pass;
- $_data['user_nicename'] = $user_nice;
- $_data['user_email'] = $email;
- $_data['role_id'] = $_role_id;
- $_data['parent_id'] = $_parent_id;
- /* Modified by chenbingling BEGIN 2020/12/15 ISSUES:#13831 新增mp买量新增字段 */
- $_data['agent_charge_type'] = $agent_charge_type;
- $_data['price'] = $price;
- $_data['cp_id'] = $cp_id;
- $_data['wx_id'] = $wx_id;
- /* END 2020/12/15 ISSUES:#13831 */
- $_rs = (new AgentLogic())->addAgent($_data);
- if (false === $_rs) {
- return $this->huoError();
- }
- /* 添加渠道角色表 */
- $_ru_data = [
- 'role_id' => $_role_id,
- 'user_id' => $_rs
- ];
- (new RoleUserModel())->insert($_ru_data);
- $_rdata['agent_id'] = $_rs;
- $_code = MemberStatus::NO_ERROR;
- Cache::clear('agent_id_name');
- return $this->huoSuccess($_code, MemberStatus::getMsg($_code), $_rdata);
- }
- /**
- * 根据域名获取agent_id
- *
- * @param $site
- *
- * @return int|mixed
- */
- public function getAgentIdBySite($site) {
- if (H5SITE == $site) {
- return 0;
- }
- return (new AgentLogic())->getAgentIdBySite($site);
- }
- /**
- * 获取专属推广信息
- *
- * @param int $agent_id
- *
- * @return array
- */
- public function getSite($agent_id) {
- if (empty($agent_id)) {
- $_code = MemberStatus::INVALID_PARAMS;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_agent_data = AgentCache::ins()->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- $_code = MemberStatus::UID_INVALID;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_site['agent_id'] = $_agent_data['id'];
- $_site['site'] = $_agent_data['user_login'].'.'.H5DOMAIN;
- $_site['user_url'] = $_agent_data['user_url'];
- $_site['site_name'] = $_agent_data['site_name'];
- $_site['logo'] = $_agent_data['logo'];
- $_site['wx_qr'] = $_agent_data['wx_qr'];
- $_site['float_icon'] = $_agent_data['float_icon'];
- $_code = MemberStatus::NO_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code), $_site);
- }
- /**
- * @param int $agent_id
- * @param array $data
- *
- * @return array
- */
- public function editSite($agent_id, $data) {
- $_ac_class = AgentCache::ins();
- $_agent_data = $_ac_class->getInfoByAgentId($agent_id);
- if (empty($_agent_data)) {
- $_code = MemberStatus::UID_INVALID;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_agent_data = array_merge($_agent_data, $data);
- $_rs = $_ac_class->updateAgent($agent_id, $_agent_data);
- if (false === $_rs) {
- $_code = MemberStatus::INNER_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- $_code = MemberStatus::NO_ERROR;
- return $this->huoError($_code, MemberStatus::getMsg($_code));
- }
- /**
- * 查找所有不存在父ID的玩家渠道id_name
- *
- * @param int $role_id
- *
- * @return array
- */
- public function getCpsIdName($role_id = 0) {
- $_map = [];
- if (!empty($role_id)) {
- $_map['role_id'] = $role_id;
- }
- $_map['parent_id'] = 1;
- $_map['user_status'] = CommonConst::STATUS_YES;
- $_rs = (new UserModel())->where($_map)->column("CONCAT(user_login,'(',user_nicename,')')", 'id');
- return $_rs;
- }
- }
|