Kaynağa Gözat

修改车辆轨迹查询

chenxiaofei 2 ay önce
ebeveyn
işleme
443a7038ff

+ 3 - 3
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -263,9 +263,9 @@ public class AuthServiceImpl implements IAuthService {
         if (StringUtils.isBlank(params.getClientType())) {
             return HttpResult.error(HttpStatus.PARAMETERS_MISSING_CODE, "客户端类型不能为空!");
         }
-        if (StringUtils.isBlank(params.getAccessSpecial()) && params.getSystemType() != SystemTypeEnum.MANAGE.getCode()) {
-            return HttpResult.error(HttpStatus.PARAMETERS_MISSING_CODE, "平台标识不能为空!");
-        }
+//        if (StringUtils.isBlank(params.getAccessSpecial()) && params.getSystemType() != SystemTypeEnum.MANAGE.getCode()) {
+//            return HttpResult.error(HttpStatus.PARAMETERS_MISSING_CODE, "平台标识不能为空!");
+//        }
         if (StringUtils.isBlank(params.getAccount())) {
             return HttpResult.error(HttpStatus.PARAMETERS_MISSING_CODE, "请输入您的账号!");
         }

+ 117 - 117
sckw-common/sckw-common-core/src/main/java/com/sckw/core/filter/RequestCheckFilter.java

@@ -88,124 +88,124 @@ public class RequestCheckFilter implements Filter {
         String accessSpecial = request.getHeader(RequestConstant.ACCESS_SPECIAL);
         String requestUri = request.getRequestURI();
 
-//        /*1、非token校验接口放行*/
-//        if (EXCLUDEPATH.contains(requestUri)) {
-//            filterChain.doFilter(servletRequest, servletResponse);
-//            return;
-//        }
-//
-//        /*2、校验token**/
-//        /*2.1、校验token非空*/
-//        HttpResult result = checkBlank(token, clientType, systemType, accessSpecial, requestUri);
-//        if (result.getCode() != HttpStatus.SUCCESS_CODE) {
-//            ResponseUtil.writer(response, result);
-//            return;
-//        }
-//
-//        /*2.2、token解析*/
-//        Map<String, Object> tokenMap = EncryUtil.descryV2(Global.PRI_KEY, token);
-//        if (tokenMap == null) {
-//            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.TOKEN_INVALID_MESSAGE));
-//            return;
-//        }
-//
-//        /*2.3、从redis获取用户登录token*/
-//        Long userId = StringUtils.isNotBlank(tokenMap.get("userId")) ? NumberUtils.parseLong(tokenMap.get("userId")) : null;
-//        String key = Global.getFullUserTokenKey(clientType, accessSpecial, userId);
-//        String redisUserToken = RedissonUtils.getString(key);
-//        if (StringUtils.isBlank(redisUserToken)) {
-//            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.TOKEN_INVALID_MESSAGE));
-//            return;
-//        }
-//
-//        /*2.4、请求token和redis中token不一致,说明账号在别处登录了*/
-//        if (!token.equals(redisUserToken)) {
-//            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.ACCOUNT_OTHER_LOGIN_MESSAGE));
-//            return;
-//        }
-//
-//        /*3、校验登录用户信息*/
-//        key = Global.getFullUserLoginKey(systemType, userId);
-//        String userInfoStr = RedissonUtils.getString(key);
-//        LoginUserInfo loginUserInfo = StringUtils.isNotBlank(userInfoStr) ? JSON.parseObject(userInfoStr, LoginUserInfo.class) : null;
-//        if (Objects.isNull(loginUserInfo)) {
-//            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.TOKEN_INVALID_MESSAGE));
-//            return;
-//        }
-//        loginUserInfo.setClientType(clientType);
-//
-//        //校验用户账号是否冻结
-//        if (loginUserInfo.getStatus() == Global.YES) {
-//            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, "您的账号已被冻结,请联系系统管理员!"));
-//            return;
-//        }
-//
-//        /*4、登录中的企业信息*/
-//        String loginEntStr = RedissonUtils.getString(Global.getFullUserEntKey(loginUserInfo.getEntId()));
-//        LoginEntInfo loginEntInfo = StringUtils.isNotBlank(loginEntStr) ? JSON.parseObject(loginEntStr, LoginEntInfo.class) : null;
-//        if (SystemTypeEnum.MANAGE.getCode().equals(systemType)) {
-//            //redis 获取客户经理绑定企业ID
-//            String managerKey = Global.getCustomerManagerUserLoginKey(SystemTypeEnum.MANAGE.getCode(), loginUserInfo.getId());
-//            RSet<Object> set = RedissonUtils.getSet(managerKey);
-//            if (Objects.nonNull(set)) {
-//                List authUserIdList = JSONObject.parseObject(set.toString(), List.class);
-//                if (CollectionUtils.isNotEmpty(authUserIdList)) {
-//                    loginUserInfo.setAuthEntIdList(authUserIdList);
-//                }
-//            }
-//            LoginUserHolder.set(loginUserInfo);
-//            LoginEntHolder.set(loginEntInfo);
-//            RedissonUtils.putString(Global.getFullUserTokenKey(clientType, accessSpecial, userId), token, ClientTypeEnum.expireTime(clientType));
-//            RedissonUtils.putString(Global.getFullUserLoginKey(systemType, loginUserInfo.getId()), JSON.toJSONString(loginUserInfo), Global.APP_TOKEN_EXPIRE);
-//            RedissonUtils.putString(Global.getFullUserEntKey(loginEntInfo.getId()), JSON.toJSONString(loginEntInfo), Global.APP_TOKEN_EXPIRE);
-//            filterChain.doFilter(servletRequest, servletResponse);
-//            LoginUserHolder.remove();
-//            return;
-//        }
-//
-//        if ((StringUtils.isBlank(loginEntStr) || loginEntInfo == null) && !Objects.equals(systemType, SystemTypeEnum.MANAGE.getCode())) {
-//            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.UN_LOGIN_MESSAGE));
-//            return;
-//        } else {
-//            //校验用户企业是否冻结
-//            if (Objects.isNull(loginEntInfo) || loginEntInfo.getStatus() == Global.YES) {
-//                ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, "您所属企业已被冻结,请联系系统管理员!"));
-//                return;
-//            }
-//
-//            //校验用户企业审批状态
-//            if (!loginEntInfo.getValid() && !REGISTER.equals(requestUri)) {
-//                if (loginEntInfo.getApproval() == Global.NO) {
-//                    ResponseUtil.writer(response, HttpResult.error(HttpStatus.CODE_60603, HttpStatus.ENTCERTIFICATES_NOT_REGISTER));
-//                    return;
-//                }
-//
-//                if (loginEntInfo.getApproval() == Global.NUMERICAL_THREE) {
-//                    ResponseUtil.writer(response, HttpResult.error(HttpStatus.CODE_60603, HttpStatus.ENTCERTIFICATES_NOT_PASS));
-//                    return;
-//                }
-//
-//                ResponseUtil.writer(response, HttpResult.error(HttpStatus.CODE_60603, HttpStatus.ENTCERTIFICATES_INVAILD));
-//                return;
-//            }
-//        }
-//
-//        /*5、请求权限校验*/
-//        //非管理员有接口权限才放行
-////        if (loginUserInfo.getIsMain() == Global.NO
-////                && !WITHOUTPATH.contains(requestUri)
-////                && !checkMenu(clientType, loginUserInfo.getId(), requestUri)) {
-////            ResponseUtil.writer(response, HttpResult.error(HttpStatus.AUTHORITY_NO_CODE, HttpStatus.ACCESS_FIAL));
-////            return;
-////        }
-//        LoginUserHolder.set(loginUserInfo);
-//        LoginEntHolder.set(loginEntInfo);
-//        RedissonUtils.putString(Global.getFullUserLoginKey(systemType, loginUserInfo.getId()), JSON.toJSONString(loginUserInfo), Global.APP_TOKEN_EXPIRE);
-//        RedissonUtils.putString(Global.getFullUserEntKey(loginEntInfo.getId()), JSON.toJSONString(loginEntInfo), Global.APP_TOKEN_EXPIRE);
-//        RedissonUtils.putString(Global.getFullUserTokenKey(clientType, accessSpecial, userId), token, ClientTypeEnum.expireTime(clientType));
+        /*1、非token校验接口放行*/
+        if (EXCLUDEPATH.contains(requestUri)) {
+            filterChain.doFilter(servletRequest, servletResponse);
+            return;
+        }
+
+        /*2、校验token**/
+        /*2.1、校验token非空*/
+        HttpResult result = checkBlank(token, clientType, systemType, accessSpecial, requestUri);
+        if (result.getCode() != HttpStatus.SUCCESS_CODE) {
+            ResponseUtil.writer(response, result);
+            return;
+        }
+
+        /*2.2、token解析*/
+        Map<String, Object> tokenMap = EncryUtil.descryV2(Global.PRI_KEY, token);
+        if (tokenMap == null) {
+            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.TOKEN_INVALID_MESSAGE));
+            return;
+        }
+
+        /*2.3、从redis获取用户登录token*/
+        Long userId = StringUtils.isNotBlank(tokenMap.get("userId")) ? NumberUtils.parseLong(tokenMap.get("userId")) : null;
+        String key = Global.getFullUserTokenKey(clientType, accessSpecial, userId);
+        String redisUserToken = RedissonUtils.getString(key);
+        if (StringUtils.isBlank(redisUserToken)) {
+            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.TOKEN_INVALID_MESSAGE));
+            return;
+        }
+
+        /*2.4、请求token和redis中token不一致,说明账号在别处登录了*/
+        if (!token.equals(redisUserToken)) {
+            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.ACCOUNT_OTHER_LOGIN_MESSAGE));
+            return;
+        }
+
+        /*3、校验登录用户信息*/
+        key = Global.getFullUserLoginKey(systemType, userId);
+        String userInfoStr = RedissonUtils.getString(key);
+        LoginUserInfo loginUserInfo = StringUtils.isNotBlank(userInfoStr) ? JSON.parseObject(userInfoStr, LoginUserInfo.class) : null;
+        if (Objects.isNull(loginUserInfo)) {
+            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.TOKEN_INVALID_MESSAGE));
+            return;
+        }
+        loginUserInfo.setClientType(clientType);
+
+        //校验用户账号是否冻结
+        if (loginUserInfo.getStatus() == Global.YES) {
+            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, "您的账号已被冻结,请联系系统管理员!"));
+            return;
+        }
+
+        /*4、登录中的企业信息*/
+        String loginEntStr = RedissonUtils.getString(Global.getFullUserEntKey(loginUserInfo.getEntId()));
+        LoginEntInfo loginEntInfo = StringUtils.isNotBlank(loginEntStr) ? JSON.parseObject(loginEntStr, LoginEntInfo.class) : null;
+        if (SystemTypeEnum.MANAGE.getCode().equals(systemType)) {
+            //redis 获取客户经理绑定企业ID
+            String managerKey = Global.getCustomerManagerUserLoginKey(SystemTypeEnum.MANAGE.getCode(), loginUserInfo.getId());
+            RSet<Object> set = RedissonUtils.getSet(managerKey);
+            if (Objects.nonNull(set)) {
+                List authUserIdList = JSONObject.parseObject(set.toString(), List.class);
+                if (CollectionUtils.isNotEmpty(authUserIdList)) {
+                    loginUserInfo.setAuthEntIdList(authUserIdList);
+                }
+            }
+            LoginUserHolder.set(loginUserInfo);
+            LoginEntHolder.set(loginEntInfo);
+            RedissonUtils.putString(Global.getFullUserTokenKey(clientType, accessSpecial, userId), token, ClientTypeEnum.expireTime(clientType));
+            RedissonUtils.putString(Global.getFullUserLoginKey(systemType, loginUserInfo.getId()), JSON.toJSONString(loginUserInfo), Global.APP_TOKEN_EXPIRE);
+            RedissonUtils.putString(Global.getFullUserEntKey(loginEntInfo.getId()), JSON.toJSONString(loginEntInfo), Global.APP_TOKEN_EXPIRE);
+            filterChain.doFilter(servletRequest, servletResponse);
+            LoginUserHolder.remove();
+            return;
+        }
+
+        if ((StringUtils.isBlank(loginEntStr) || loginEntInfo == null) && !Objects.equals(systemType, SystemTypeEnum.MANAGE.getCode())) {
+            ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, HttpStatus.UN_LOGIN_MESSAGE));
+            return;
+        } else {
+            //校验用户企业是否冻结
+            if (Objects.isNull(loginEntInfo) || loginEntInfo.getStatus() == Global.YES) {
+                ResponseUtil.writer(response, HttpResult.error(HttpStatus.TOKEN_INVALID_CODE, "您所属企业已被冻结,请联系系统管理员!"));
+                return;
+            }
+
+            //校验用户企业审批状态
+            if (!loginEntInfo.getValid() && !REGISTER.equals(requestUri)) {
+                if (loginEntInfo.getApproval() == Global.NO) {
+                    ResponseUtil.writer(response, HttpResult.error(HttpStatus.CODE_60603, HttpStatus.ENTCERTIFICATES_NOT_REGISTER));
+                    return;
+                }
+
+                if (loginEntInfo.getApproval() == Global.NUMERICAL_THREE) {
+                    ResponseUtil.writer(response, HttpResult.error(HttpStatus.CODE_60603, HttpStatus.ENTCERTIFICATES_NOT_PASS));
+                    return;
+                }
+
+                ResponseUtil.writer(response, HttpResult.error(HttpStatus.CODE_60603, HttpStatus.ENTCERTIFICATES_INVAILD));
+                return;
+            }
+        }
+
+        /*5、请求权限校验*/
+        //非管理员有接口权限才放行
+        if (loginUserInfo.getIsMain() == Global.NO
+                && !WITHOUTPATH.contains(requestUri)
+                && !checkMenu(clientType, loginUserInfo.getId(), requestUri)) {
+            ResponseUtil.writer(response, HttpResult.error(HttpStatus.AUTHORITY_NO_CODE, HttpStatus.ACCESS_FIAL));
+            return;
+        }
+        LoginUserHolder.set(loginUserInfo);
+        LoginEntHolder.set(loginEntInfo);
+        RedissonUtils.putString(Global.getFullUserLoginKey(systemType, loginUserInfo.getId()), JSON.toJSONString(loginUserInfo), Global.APP_TOKEN_EXPIRE);
+        RedissonUtils.putString(Global.getFullUserEntKey(loginEntInfo.getId()), JSON.toJSONString(loginEntInfo), Global.APP_TOKEN_EXPIRE);
+        RedissonUtils.putString(Global.getFullUserTokenKey(clientType, accessSpecial, userId), token, ClientTypeEnum.expireTime(clientType));
         filterChain.doFilter(servletRequest, servletResponse);
-//        LoginUserHolder.remove();
-//        LoginEntHolder.remove();
+        LoginUserHolder.remove();
+        LoginEntHolder.remove();
     }