| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 | <?php/** * HuoSession.php UTF-8 * 火树Session * * @date    : 2018/5/24 12:01 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : wuyonghong <wyh@huosdk.com> * @version : HUOSDK 8.0 */namespace huo\controller\common;use huo\model\member\MemoauthModel;use huolib\constant\CacheConst;use think\Cache;class HuoSession {    private        $mem_id                       = 0;    private        $app_id                       = 0;    private        $type                         = '';    private        $cache_key                    = CacheConst::CACHE_MEM_SESSION_PREFIX;    private static $token_cache_key              = CacheConst::CACHE_MEM_APP_TOKEN_PREFIX;    private static $cp_role_report_cnt_cache_key = CacheConst::CACHE_CP_ROLE_REPORT_CNT_PREFIX;    public function __construct($mem_id = 0, $app_id = 0) {        $this->mem_id = $mem_id;        $this->app_id = $app_id;        $this->setCacheKey($mem_id, $app_id);    }    /**     * @return string     */    public function getCacheKey() {        return $this->cache_key;    }    /**     * @param int $mem_id     * @param int $app_id     */    public function setCacheKey($mem_id, $app_id) {        $this->cache_key = $this->cache_key.$mem_id.$app_id;    }    private function getCacheData() {        return Cache::get($this->cache_key);    }    private function setCacheData($data) {        return Cache::set($this->cache_key, $data);    }    /**     * 设置第三方Session     * openid     * unionid     * channel     * nickname     * gender     * avatar     * token     *      [     *       access_token     *       expires_in     *     *       ]     * @param $oauth_data     */    public function setOauthSession($oauth_data) {        $_data = $this->getCacheData();        $_data['oauth'] = $oauth_data;        $this->setCacheData($_data);    }    /**     * 获取OpenId     *     * @return string     */    public function getOpenId() {        if (empty($this->mem_id)) {            return '';        }        if (!empty($this->app_id)) {            $_mo_data = (new MemoauthModel())->getInfoByAppMemId($this->app_id, $this->mem_id);            if (!empty($_mo_data) && isset($_mo_data['openid'])) {                return $_mo_data['openid'];            }        } else {            $_data = $this->getCacheData();            if (isset($_data['oauth']) && isset($_data['oauth']['openid'])) {                return $_data['oauth']['openid'];            } else {                return (new MemoauthModel())->getOpenidByMemId($this->type, $this->mem_id);            }        }        return '';    }    /**     * 设置OpenId     *     * @param string $open_id     */    public function setOpenId($open_id) {        $_data = $this->getCacheData();        $_data['oauth']['openid'] = $open_id;        $this->setCacheData($_data);    }    /**     * 设置第三方access_token     *     * @param string $access_token     */    public function setAccessToken($access_token) {        $_data = $this->getCacheData();        $_data['oauth']['access_token'] = $access_token;        $this->setCacheData($_data);    }    /**     * 获取第三方token     *     * @return string     */    public function getAccessToken() {        if (empty($this->mem_id)) {            return '';        }        if (!empty($this->app_id)) {            $_mo_data = (new MemoauthModel())->getInfoByAppMemId($this->app_id, $this->mem_id);            if (!empty($_mo_data) && isset($_mo_data['access_token'])) {                return $_mo_data['access_token'];            }        } else {            $_data = $this->getCacheData();            if (isset($_data['oauth']) && isset($_data['oauth']['access_token'])) {                return $_data['oauth']['access_token'];            }        }        return '';    }    /**     * 设置游戏登陆的mg_mem_id     *     * @param int $mg_mem_id 玩家游戏ID     */    public function setMgMemId($mg_mem_id) {        $_key = $this->app_id.'mg_mem_id';        $_data = $this->getCacheData();        $_data['mem'][$_key] = $mg_mem_id;        $this->setCacheData($_data);    }    /**     *  获取游戏玩家Id  mg_mem_id     *     * @return mixed     */    public function getMgMemId() {        if (empty($this->mem_id)) {            return 0;        }        $_key = $this->app_id.'mg_mem_id';        $_data = $this->getCacheData();        if (isset($_data['mem']) && isset($_data['mem'][$_key])) {            return $_data['mem'][$_key];        }        return '';    }    /**     * @param $agent_id     */    public function setAgentId($agent_id) {        $_data = $this->getCacheData();        $_data['agent']['agent_id'] = $agent_id;        $this->setCacheData($_data);    }    /**     * 获取Session中的agent_id     *     * @return int     */    public function getAgentId() {        if (empty($this->mem_id)) {            return 0;        }        $_data = $this->getCacheData();        if (isset($_data['agent']) && isset($_data['agent']['agent_id'])) {            return $_data['agent']['agent_id'];        }        return 0;    }    /**     * @param int $open_cnt     */    public function setOpenCnt($open_cnt) {        $_data = $this->getCacheData();        $_data['device']['open_cnt'] = $open_cnt;        $this->setCacheData($_data);    }    /**     * 获取Session中的open_cnt     *     * @return mixed     */    public function getOpenCnt() {        if (empty($this->mem_id)) {            return 0;        }        $_data = $this->getCacheData();        if (isset($_data['device']) && isset($_data['device']['open_cnt'])) {            return $_data['device']['open_cnt'];        }        return '';    }    /**     * 设置小号交易token     *     * @param string $pay_token     */    public function setAgToken($pay_token) {        $_data = $this->getCacheData();        $_data['account_deal']['pay_token'] = $pay_token;        $this->setCacheData($_data);    }    /**     * 获取小号交易token     *     * @return mixed     */    public function getAgToken() {        if (empty($this->mem_id)) {            return '';        }        $_data = $this->getCacheData();        if (isset($_data['account_deal']) && isset($_data['account_deal']['pay_token'])) {            return $_data['account_deal']['pay_token'];        }        return '';    }    /**     * 获取小号交易token     *     * @return mixed     */    public function clearAgToken() {        if (empty($this->mem_id)) {            return false;        }        $_data = $this->getCacheData();        if (isset($_data['account_deal']) && isset($_data['account_deal']['pay_token'])) {            unset($_data['account_deal']['pay_token']);        }        return $this->setCacheData($_data);    }    public static function getOpenIdByMemId($mem_id) {        $_cache_key = '';    }    public static function setCpCheckCnt($token, $cnt) {        $_key = self::$token_cache_key.$token;        $_data = Cache::get($_key);        $_data['cnt'] = $cnt;        Cache::set($_key, $_data);    }    public static function getCpCheckCnt($token) {        $_key = self::$token_cache_key.$token;        $_data = Cache::get($_key);        if (empty($_data) || empty($_data['cnt'])) {            return 0;        }        return $_data['cnt'];    }    public static function setCpReleReportCnt($mg_mem_id, $cnt) {        $_key = self::$cp_role_report_cnt_cache_key.$mg_mem_id;        $_data = Cache::get($_key);        $_data['cnt'] = $cnt;        Cache::set($_key, $_data);    }    public static function getCpReleReportCnt($mg_mem_id) {        $_key = self::$cp_role_report_cnt_cache_key.$mg_mem_id;        $_data = Cache::get($_key);        if (empty($_data) || empty($_data['cnt'])) {            return 0;        }        return $_data['cnt'];    }    public static function setAppId($token, $app_id) {        $_key = self::$token_cache_key.$token;        $_data = Cache::get($_key);        $_data['app_id'] = $app_id;        Cache::set($_key, $_data);    }    public static function getAppId($token) {        $_key = self::$token_cache_key.$token;        $_data = Cache::get($_key);        if (empty($_data) || empty($_data['app_id'])) {            return 0;        }        return $_data['app_id'];    }    /**     * @return string     */    public function getType() {        return $this->type;    }    /**     * @param string $type     */    public function setType($type) {        $this->type = $type;    }}
 |