| | |
| | | package com.doumee.cloud.openapi; |
| | | |
| | | import cn.emay.sdk.util.AES; |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.config.annotation.LoginNoRequired; |
| | | import com.doumee.config.jwt.JwtTokenUtil; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DESUtil; |
| | |
| | | @LoginNoRequired |
| | | @ApiOperation("token解析") |
| | | @GetMapping("/water/decodeToken") |
| | | public ApiResponse<Map<String,Object>> decodeToken(@RequestParam String token) { |
| | | public Map<String,Object> decodeToken(@RequestParam String token) { |
| | | HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest(); |
| | | hkBaseTokenRequest.setToken(token); |
| | | return ApiResponse.success(this.decodeTokenForHk(hkBaseTokenRequest)); |
| | | return this.decodeTokenForHk(hkBaseTokenRequest); |
| | | } |
| | | |
| | | |
| | | public Map<String,Object> decodeTokenForHk(HkBaseTokenRequest hkBaseTokenRequest){ |
| | | Map<String,Object> result = new HashMap<>(); |
| | | result.put("code","0"); |
| | | result.put("msg","success"); |
| | | if(Objects.isNull(hkBaseTokenRequest)||StringUtils.isBlank(hkBaseTokenRequest.getToken())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"token参数为空"); |
| | | result.put("code","-1"); |
| | | result.put("msg","token参数为空"); |
| | | return result; |
| | | } |
| | | String redisToken = (String) redisTemplate.opsForValue().get(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken()); |
| | | if(StringUtils.isBlank(redisToken)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token解析失败"); |
| | | result.put("code","-1"); |
| | | result.put("msg","token参数为空"); |
| | | return result; |
| | | } |
| | | |
| | | String userName = DESUtil.verifyHkToken(hkBaseTokenRequest.getToken()); |
| | | if(StringUtils.isBlank(userName)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"token解析失败"); |
| | | result.put("code","-1"); |
| | | result.put("msg","token参数为空"); |
| | | return result; |
| | | } |
| | | //查询用户信息是否存在 |
| | | SystemUser systemUser = new SystemUser(); |
| | |
| | | systemUser.setDeleted(Boolean.FALSE); |
| | | SystemUser queryBean = systemUserService.findOne(systemUser); |
| | | if(Objects.isNull(queryBean)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"token解析失败"); |
| | | result.put("code","-1"); |
| | | result.put("msg","token参数为空"); |
| | | return result; |
| | | } |
| | | if(Constants.equalsInteger(queryBean.getStatus(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"用户已禁用"); |
| | | result.put("code","-2"); |
| | | result.put("msg","用户已禁用"); |
| | | return result; |
| | | } |
| | | redisTemplate.delete(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken()); |
| | | Map<String,Object> result = new HashMap<>(); |
| | | result.put("userId",userName); |
| | | Map<String,Object> data = new HashMap<>(); |
| | | data.put("userId",userName); |
| | | result.put("data",data); |
| | | return result; |
| | | } |
| | | |