ManageService.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.fdkankan.manage.service.impl;
  2. import cn.dev33.satoken.stp.SaLoginConfig;
  3. import cn.dev33.satoken.stp.StpUtil;
  4. import cn.hutool.extra.servlet.ServletUtil;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.fdkankan.manage.common.ResultCode;
  7. import com.fdkankan.common.util.Base64Converter;
  8. import com.fdkankan.common.util.SecurityUtil;
  9. import com.fdkankan.manage.common.RedisKeyUtil;
  10. import com.fdkankan.manage.common.ResultCode;
  11. import com.fdkankan.manage.exception.BusinessException;
  12. import com.fdkankan.manage.service.ISysUserService;
  13. import com.fdkankan.manage.service.IUserService;
  14. import com.fdkankan.manage.vo.request.ManageLoginRequest;
  15. import com.fdkankan.manage.vo.response.ManageLoginResponse;
  16. import com.fdkankan.redis.constant.RedisKey;
  17. import com.fdkankan.redis.util.RedisUtil;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import javax.servlet.http.HttpServletRequest;
  22. @Service
  23. public class ManageService {
  24. @Autowired
  25. IUserService userService;
  26. @Autowired
  27. RedisUtil redisUtil;
  28. public ManageLoginResponse login(String ip,String userName, String password) {
  29. if(StringUtils.isBlank(userName) || StringUtils.isBlank(password)){
  30. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  31. }
  32. //对前端传的密码解密
  33. String passwordMd5 = Base64Converter.decode(Base64Converter.subText(password));
  34. ManageLoginResponse result = userService.getUserByUserNameAndPassword(userName,passwordMd5);
  35. if(result == null){
  36. throw new BusinessException(ResultCode.PASSWORD_ERROR);
  37. }
  38. if(result.getStatus() == 0){
  39. throw new BusinessException(ResultCode.USERNAME_ERROR);
  40. }
  41. StpUtil.login(result.getId(), SaLoginConfig
  42. .setExtra("userId",result.getId())
  43. .setExtra("isAdmin",1)
  44. .setExtra("userName",result.getUserName())
  45. .setExtra("nickName",result.getNickName()));
  46. result.setToken(StpUtil.getTokenValue());
  47. redisUtil.set(String.format(RedisKeyUtil.loginToken ,result.getToken()), JSONObject.toJSONString(result), 2 * 60 * 60);
  48. redisUtil.set(RedisKeyUtil.loginTokenUser+userName, result.getToken(),2 * 60 * 60);
  49. return result;
  50. }
  51. public void logout() {
  52. redisUtil.del(String.format(RedisKeyUtil.loginToken ,StpUtil.getTokenValue()));
  53. StpUtil.logout();
  54. }
  55. }