package com.stylefeng.guns.modular.system.service.impl;
|
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.system.dto.LoginWeChatDTO;
|
import com.stylefeng.guns.modular.system.model.AppUser;
|
import com.stylefeng.guns.modular.system.model.User;
|
import com.stylefeng.guns.modular.system.dao.AppUserMapper;
|
import com.stylefeng.guns.modular.system.service.IAppUserService;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.stylefeng.guns.modular.system.util.Md5Util;
|
import com.stylefeng.guns.modular.system.util.RedisUtil;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import com.stylefeng.guns.modular.system.util.UUIDUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.Date;
|
import java.util.HashMap;
|
|
/**
|
* <p>
|
* 用户表 服务实现类
|
* </p>
|
*
|
* @author 无关风月
|
* @since 2024-02-06
|
*/
|
@Service
|
public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> implements IAppUserService {
|
@Autowired
|
private RedisUtil redisUtil;
|
/**
|
* 通过token获取用户信息
|
* @return
|
*/
|
@Override
|
public AppUser getAppUser() {
|
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
HttpServletRequest request = servletRequestAttributes.getRequest();
|
String authorization = request.getHeader("Authorization");
|
// todo 这里注释了一段代码
|
// && authorization.contains("Bearer")
|
if(ToolUtil.isNotEmpty(authorization) && authorization.contains("Bearer ") ){
|
String token = authorization.substring(7);
|
//通过token获取用户id
|
Integer appUserId = getAppUserIdFromToken(token);
|
return this.selectById(appUserId);
|
}
|
return null;
|
}
|
|
|
|
/**
|
* 通过token获取用户id
|
* @param token
|
* @return
|
*/
|
private Integer getAppUserIdFromToken(String token){
|
String key = token;
|
int length = token.length();
|
if(length > 32){
|
key = token.substring(token.length() - 32);
|
}
|
String value = redisUtil.getValue(key);
|
if(ToolUtil.isEmpty(value)){
|
return 0;
|
}
|
return Integer.valueOf(value);
|
}
|
}
|