AuthController.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.gyee.runeconomy.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.alibaba.fastjson.TypeReference;
  4. import com.gyee.common.model.StringUtils;
  5. import com.gyee.runeconomy.dto.R;
  6. import com.gyee.runeconomy.dto.ResultMsg;
  7. import com.gyee.runeconomy.model.vo.TokenVo;
  8. import com.gyee.runeconomy.service.TokenService;
  9. import com.gyee.runeconomy.util.redis.RedisService;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiOperation;
  12. import org.springframework.stereotype.Controller;
  13. import org.springframework.web.bind.annotation.PostMapping;
  14. import org.springframework.web.bind.annotation.RequestBody;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.ResponseBody;
  17. import javax.annotation.Resource;
  18. import java.util.Date;
  19. import java.util.Map;
  20. @Controller
  21. @RequestMapping("/auth")
  22. @Api(value = "权限管理", tags = "权限管理")
  23. public class AuthController {
  24. @Resource
  25. private TokenService tokenService;
  26. @Resource
  27. private RedisService redisService;
  28. @PostMapping("/login")
  29. @ResponseBody
  30. @ApiOperation(value = "使用账号密码登录")
  31. public R login(@RequestBody TokenVo tokenVo) {
  32. if (StringUtils.notEmp(tokenVo)) {
  33. redisService.select(9);
  34. if (redisService.hasKey("userSessions")) {
  35. String cp0String = redisService.get("userSessions");
  36. tokenService.sessionMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, TokenVo>>() {
  37. });
  38. }
  39. if (!tokenService.sessionMap.containsKey(tokenVo.getToken())) {
  40. tokenVo.setTime(new Date());
  41. tokenService.sessionMap.put(tokenVo.getToken(), tokenVo);
  42. String s = JSONObject.toJSONString(tokenService.sessionMap);
  43. redisService.set("userSessions", s);
  44. }
  45. }
  46. return R.data(ResultMsg.ok("ok"));
  47. }
  48. @PostMapping("/logout")
  49. @ApiOperation(value = "登出系统")
  50. @ResponseBody
  51. public R logout(@RequestBody TokenVo tokenVo) {
  52. if (StringUtils.notEmp(tokenVo) && StringUtils.notEmp(tokenVo.getToken())) {
  53. redisService.select(9);
  54. if (redisService.hasKey("userSessions")) {
  55. String cp0String = redisService.get("userSessions");
  56. tokenService.sessionMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, TokenVo>>() {
  57. });
  58. }
  59. if (tokenService.sessionMap.containsKey(tokenVo.getToken())) {
  60. tokenService.sessionMap.remove(tokenVo.getToken());
  61. }
  62. String s = JSONObject.toJSONString(tokenService.sessionMap);
  63. redisService.set("userSessions", s);
  64. if (tokenService.sessionWtMap.containsKey(tokenVo.getToken())) {
  65. tokenService.sessionWtMap.remove(tokenVo.getToken());
  66. }
  67. if (tokenService.sessionWpMap.containsKey(tokenVo.getToken())) {
  68. tokenService.sessionWpMap.remove(tokenVo.getToken());
  69. }
  70. if (tokenService.sessionSubMap.containsKey(tokenVo.getToken())) {
  71. tokenService.sessionSubMap.remove(tokenVo.getToken());
  72. }
  73. if (tokenService.sessionWeMap.containsKey(tokenVo.getToken())) {
  74. tokenService.sessionWeMap.remove(tokenVo.getToken());
  75. }
  76. }
  77. return R.data(ResultMsg.ok("ok"));
  78. }
  79. }