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