初始版本

This commit is contained in:
贾祥聪
2025-08-19 14:16:51 +08:00
commit f937a1f9b9
4373 changed files with 359728 additions and 0 deletions

View File

@@ -0,0 +1,108 @@
<?php
// +----------------------------------------------------------------------
// | likeshop100%开源免费商用商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | 商业版本务必购买商业授权,以免引起法律纠纷
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshopTeam
// +----------------------------------------------------------------------
namespace app\common\cache;
use app\common\enum\coach\CoachEnum;
use app\common\model\coach\Coach;
use app\common\model\coach\CoachUser;
use app\common\model\coach\CoachUserSession;
use app\common\model\coach\ShopUserSession;
class CoachUserTokenCache extends BaseCache
{
private $prefix = 'token_coach_user_';
/**
* @notes 通过token获取缓存用户信息
* @param $token
* @return false|mixed
* @author 令狐冲
* @date 2021/6/30 16:57
*/
public function getCoachUserInfo($token)
{
//直接从缓存获取
$coachUserInfo = $this->get($this->prefix . $token);
if ($coachUserInfo) {
return $coachUserInfo;
}
//从数据获取信息被设置缓存(可能后台清除缓存)
$coachUserInfo = $this->setCoachUserInfo($token);
if ($coachUserInfo) {
return $coachUserInfo;
}
return false;
}
/**
* @notes 通过有效token设置用户信息缓存
* @param $token
* @return array|false|mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author 令狐冲
* @date 2021/7/5 12:12
*/
public function setCoachUserInfo($token)
{
$coachUserSession = CoachUserSession::where([['token', '=', $token], ['expire_time', '>', time()]])->find();
if (empty($coachUserSession)) {
return [];
}
$coachUser = CoachUser::where('id', '=', $coachUserSession->coach_user_id)
->find();
$coachInfo = Coach::where(['coach_user_id'=>$coachUserSession->coach_user_id])
->order('id desc')
->field('id,audit_status')
->findOrEmpty();
$coachUserInfo = [
'coach_user_id' => $coachUser->id,
'coach_id'=> $coachInfo['id'],
'token' => $token,
'sn' => $coachUser->sn,
'account' => $coachUser->account,
'avatar' => $coachUser->avatar,
'terminal' => $coachUserSession->terminal,
'audit_status' => $coachInfo['audit_status'],
'expire_time' => $coachUserSession->expire_time,
];
$this->set($this->prefix . $token, $coachUserInfo, new \DateTime(Date('Y-m-d H:i:s', $coachUserSession->expire_time)));
return $this->getCoachUserInfo($token);
}
/**
* @notes 删除缓存
* @param $token
* @return bool
* @author 令狐冲
* @date 2021/7/3 16:57
*/
public function deleteCoachUserInfo($token)
{
return $this->delete($this->prefix . $token);
}
}