k94314517
2024-09-10 66c49d8b173c5937a2721f8e9b3ae849844f4b72
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -1,13 +1,9 @@
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;
@@ -61,25 +57,32 @@
    @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();
@@ -87,14 +90,19 @@
        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;
    }