From 83b51a5a0774ea8ecb9a06304af3b956a21307c8 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期六, 08 三月 2025 09:06:55 +0800
Subject: [PATCH] CUT库条码T开头,截取后10位

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/CacheFilter.java |  404 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 202 insertions(+), 202 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/CacheFilter.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/CacheFilter.java
index fa4baaf..cc4a02b 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/CacheFilter.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/CacheFilter.java
@@ -1,202 +1,202 @@
-package com.zy.asrs.wms.common.security;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.zy.asrs.framework.common.R;
-import com.zy.asrs.wms.common.annotation.CacheData;
-import com.zy.asrs.wms.common.constant.Constants;
-import com.zy.asrs.wms.common.constant.RedisConstants;
-import com.zy.asrs.wms.common.domain.CacheHitDto;
-import com.zy.asrs.wms.system.entity.User;
-import com.zy.asrs.wms.system.entity.UserLogin;
-import com.zy.asrs.wms.system.service.UserService;
-import com.zy.asrs.wms.utils.EncryptUtils;
-import com.zy.asrs.wms.utils.HttpUtils;
-import com.zy.asrs.wms.utils.RedisUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Component;
-import org.springframework.web.filter.OncePerRequestFilter;
-import org.springframework.web.method.HandlerMethod;
-import org.springframework.web.servlet.HandlerExecutionChain;
-import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-@Component
-public class CacheFilter extends OncePerRequestFilter {
-
-    @Value("${system.enableCache}")
-    private Boolean enableCache;
-    @Autowired
-    private RequestMappingHandlerMapping handlerMapping;
-    @Autowired
-    private RedisUtil redisUtil;
-    @Autowired
-    private UserService userService;
-
-    @Override
-    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
-        // 鑾峰彇褰撳墠璇锋眰鐨勫鐞嗗櫒鏂规硶
-        HandlerExecutionChain handlerChain;
-        try {
-            handlerChain = handlerMapping.getHandler(request);
-            if (handlerChain != null) {
-                Object handler = handlerChain.getHandler();
-                if (handler instanceof HandlerMethod) {
-                    HandlerMethod handlerMethod = (HandlerMethod) handler;
-                    Method method = handlerMethod.getMethod();
-                    if (method.isAnnotationPresent(CacheData.class)) {
-                        CacheData cacheData = method.getAnnotation(CacheData.class);
-                        if (enableCache && cacheData.cache()) {
-                            // 鍒涘缓涓�涓寘瑁呰姹備綋鐨� HttpServletRequestWrapper
-                            CachedBodyHttpServletRequest cachedBodyHttpServletRequest = new CachedBodyHttpServletRequest(request);
-                            // 鍒涘缓涓�涓寘瑁呭搷搴斾綋鐨� HttpServletResponseWrapper
-                            CachedBodyHttpServletResponse cachedBodyHttpServletResponse = new CachedBodyHttpServletResponse(response);
-                            String requestParamCode = getRequestParamCode(cachedBodyHttpServletRequest);
-
-                            User user = getUser();
-                            ArrayList<Long> roleIds = new ArrayList<>();
-                            if (user == null) {
-                                roleIds.add(0L);
-                            }else {
-                                roleIds.addAll(Arrays.asList(user.getUserRoleIds()));
-                            }
-
-                            Object object = null;
-                            for (Long roleId : roleIds) {
-                                Object obj = redisUtil.get(RedisConstants.getCacheKey(RedisConstants.CACHE_DATA, cacheData.tableName(), request.getRequestURI(), requestParamCode, roleId));
-                                if(obj != null){
-                                    object = obj;
-                                    break;
-                                }
-                            }
-
-                            if (object == null) {
-                                chain.doFilter(cachedBodyHttpServletRequest, cachedBodyHttpServletResponse);
-
-                                // 鑾峰彇鍝嶅簲鍐呭
-                                byte[] responseContent = cachedBodyHttpServletResponse.getContent();
-                                String responseBody = new String(responseContent);
-
-                                JSONObject result = JSON.parseObject(responseBody);
-                                if (Integer.parseInt(result.get("code").toString()) == 200) {
-                                    for (Long roleId : roleIds) {
-                                        redisUtil.set(RedisConstants.getCacheKey(RedisConstants.CACHE_DATA, cacheData.tableName(), request.getRequestURI(), requestParamCode, roleId), responseBody, 60 * 60 * 24);
-                                    }
-                                }
-
-                                // 灏嗗搷搴斿唴瀹瑰啓鍥炲師濮嬬殑 HttpServletResponse
-                                response.getOutputStream().write(responseContent);
-                                response.setContentLength(responseContent.length);
-                            }else {
-                                // 灏嗗搷搴斿唴瀹瑰啓鍥炲師濮嬬殑 HttpServletResponse
-                                byte[] responseContent = object.toString().getBytes();
-                                response.setContentType("application/json;charset=UTF-8");
-                                response.getOutputStream().write(responseContent);
-                                response.setContentLength(responseContent.length);
-                            }
-
-                            statisticsCacheHitCount(object, cacheData.tableName(), request.getRequestURI());
-                            return;
-                        }
-                    }
-                }
-            }
-
-            chain.doFilter(request, response);
-        } catch (Exception e) {
-            e.printStackTrace();
-            HttpUtils.responseError(response, Constants.BAD_CREDENTIALS_CODE, Constants.BAD_CREDENTIALS_MSG,
-                    e.toString());
-            return;
-        }
-    }
-
-    private String getRequestParamCode(CachedBodyHttpServletRequest request) throws IOException {
-        // 鑾峰彇璇锋眰鏂规硶
-        String requestMethod = request.getMethod();
-        String md5 = "";
-        // 妫�鏌ヨ姹傛柟娉曞苟澶勭悊
-        if ("POST".equalsIgnoreCase(requestMethod)) {
-            // 妫�鏌ユ槸鍚︿负 form-data 绫诲瀷
-            String contentType = request.getContentType();
-            if (contentType != null && (contentType.startsWith("application/x-www-form-urlencoded") || contentType.startsWith("multipart/form-data"))) {
-                // 澶勭悊 form-data 鍙傛暟
-                Map<String, String[]> parameterMap = request.getParameterMap();
-                String jsonString = JSON.toJSONString(parameterMap);
-                md5 = EncryptUtils.md5(jsonString);
-            } else {
-                // 璇诲彇璇锋眰浣撲腑鐨� JSON 鏁版嵁
-                String jsonRequestBody = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
-                md5 = EncryptUtils.md5(jsonRequestBody);
-            }
-        } else if ("GET".equalsIgnoreCase(requestMethod)) {
-            Map<String, String[]> map = request.getParameterMap();
-            String jsonString = JSON.toJSONString(map);
-            md5 = EncryptUtils.md5(jsonString);
-        }
-        return md5;
-    }
-
-    private User getUser() {
-        try {
-            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-            if (authentication != null) {
-                Object object = authentication.getPrincipal();
-                if (object instanceof User) {
-                    return (User) object;
-                }
-                if(object instanceof UserLogin) {
-                    UserLogin userLogin = (UserLogin) object;
-                    User user = userService.superGetById(userLogin.getUserId());
-                    return user;
-                }
-            }
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-        }
-        return null;
-    }
-
-    private void statisticsCacheHitCount(Object object, String[] tableNames, String requestURI) {
-        statisticsCacheSaveRedis(object, requestURI);
-        for (String tableName : tableNames) {
-            statisticsCacheSaveRedis(object, tableName);
-        }
-    }
-
-    private void statisticsCacheSaveRedis(Object object, String key) {
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        String now = format.format(new Date());
-
-        String urlKey = RedisConstants.STATISTICS_CACHE_DATA + ":" + now + ":" + key;
-        Object urlCache = redisUtil.get(urlKey);
-        CacheHitDto cacheHitDto = new CacheHitDto(0, 0);
-        if (urlCache != null) {
-            cacheHitDto = JSON.parseObject(urlCache.toString(), CacheHitDto.class);
-        }
-
-        if (object == null) {
-            cacheHitDto.setMiss(cacheHitDto.getMiss() + 1);
-        }else {
-            cacheHitDto.setHit(cacheHitDto.getHit() + 1);
-        }
-
-        redisUtil.set(urlKey, JSON.toJSONString(cacheHitDto));
-    }
-}
+package com.zy.asrs.wms.common.security;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.zy.asrs.framework.common.R;
+import com.zy.asrs.wms.common.annotation.CacheData;
+import com.zy.asrs.wms.common.constant.Constants;
+import com.zy.asrs.wms.common.constant.RedisConstants;
+import com.zy.asrs.wms.common.domain.CacheHitDto;
+import com.zy.asrs.wms.system.entity.User;
+import com.zy.asrs.wms.system.entity.UserLogin;
+import com.zy.asrs.wms.system.service.UserService;
+import com.zy.asrs.wms.utils.EncryptUtils;
+import com.zy.asrs.wms.utils.HttpUtils;
+import com.zy.asrs.wms.utils.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerExecutionChain;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Component
+public class CacheFilter extends OncePerRequestFilter {
+
+    @Value("${system.enableCache}")
+    private Boolean enableCache;
+    @Autowired
+    private RequestMappingHandlerMapping handlerMapping;
+    @Autowired
+    private RedisUtil redisUtil;
+    @Autowired
+    private UserService userService;
+
+    @Override
+    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
+        // 鑾峰彇褰撳墠璇锋眰鐨勫鐞嗗櫒鏂规硶
+        HandlerExecutionChain handlerChain;
+        try {
+            handlerChain = handlerMapping.getHandler(request);
+            if (handlerChain != null) {
+                Object handler = handlerChain.getHandler();
+                if (handler instanceof HandlerMethod) {
+                    HandlerMethod handlerMethod = (HandlerMethod) handler;
+                    Method method = handlerMethod.getMethod();
+                    if (method.isAnnotationPresent(CacheData.class)) {
+                        CacheData cacheData = method.getAnnotation(CacheData.class);
+                        if (enableCache && cacheData.cache()) {
+                            // 鍒涘缓涓�涓寘瑁呰姹備綋鐨� HttpServletRequestWrapper
+                            CachedBodyHttpServletRequest cachedBodyHttpServletRequest = new CachedBodyHttpServletRequest(request);
+                            // 鍒涘缓涓�涓寘瑁呭搷搴斾綋鐨� HttpServletResponseWrapper
+                            CachedBodyHttpServletResponse cachedBodyHttpServletResponse = new CachedBodyHttpServletResponse(response);
+                            String requestParamCode = getRequestParamCode(cachedBodyHttpServletRequest);
+
+                            User user = getUser();
+                            ArrayList<Long> roleIds = new ArrayList<>();
+                            if (user == null) {
+                                roleIds.add(0L);
+                            }else {
+                                roleIds.addAll(Arrays.asList(user.getUserRoleIds()));
+                            }
+
+                            Object object = null;
+                            for (Long roleId : roleIds) {
+                                Object obj = redisUtil.get(RedisConstants.getCacheKey(RedisConstants.CACHE_DATA, cacheData.tableName(), request.getRequestURI(), requestParamCode, roleId));
+                                if(obj != null){
+                                    object = obj;
+                                    break;
+                                }
+                            }
+
+                            if (object == null) {
+                                chain.doFilter(cachedBodyHttpServletRequest, cachedBodyHttpServletResponse);
+
+                                // 鑾峰彇鍝嶅簲鍐呭
+                                byte[] responseContent = cachedBodyHttpServletResponse.getContent();
+                                String responseBody = new String(responseContent);
+
+                                JSONObject result = JSON.parseObject(responseBody);
+                                if (Integer.parseInt(result.get("code").toString()) == 200) {
+                                    for (Long roleId : roleIds) {
+                                        redisUtil.set(RedisConstants.getCacheKey(RedisConstants.CACHE_DATA, cacheData.tableName(), request.getRequestURI(), requestParamCode, roleId), responseBody, 60 * 60 * 24);
+                                    }
+                                }
+
+                                // 灏嗗搷搴斿唴瀹瑰啓鍥炲師濮嬬殑 HttpServletResponse
+                                response.getOutputStream().write(responseContent);
+                                response.setContentLength(responseContent.length);
+                            }else {
+                                // 灏嗗搷搴斿唴瀹瑰啓鍥炲師濮嬬殑 HttpServletResponse
+                                byte[] responseContent = object.toString().getBytes();
+                                response.setContentType("application/json;charset=UTF-8");
+                                response.getOutputStream().write(responseContent);
+                                response.setContentLength(responseContent.length);
+                            }
+
+                            statisticsCacheHitCount(object, cacheData.tableName(), request.getRequestURI());
+                            return;
+                        }
+                    }
+                }
+            }
+
+            chain.doFilter(request, response);
+        } catch (Exception e) {
+            e.printStackTrace();
+            HttpUtils.responseError(response, Constants.BAD_CREDENTIALS_CODE, Constants.BAD_CREDENTIALS_MSG,
+                    e.toString());
+            return;
+        }
+    }
+
+    private String getRequestParamCode(CachedBodyHttpServletRequest request) throws IOException {
+        // 鑾峰彇璇锋眰鏂规硶
+        String requestMethod = request.getMethod();
+        String md5 = "";
+        // 妫�鏌ヨ姹傛柟娉曞苟澶勭悊
+        if ("POST".equalsIgnoreCase(requestMethod)) {
+            // 妫�鏌ユ槸鍚︿负 form-data 绫诲瀷
+            String contentType = request.getContentType();
+            if (contentType != null && (contentType.startsWith("application/x-www-form-urlencoded") || contentType.startsWith("multipart/form-data"))) {
+                // 澶勭悊 form-data 鍙傛暟
+                Map<String, String[]> parameterMap = request.getParameterMap();
+                String jsonString = JSON.toJSONString(parameterMap);
+                md5 = EncryptUtils.md5(jsonString);
+            } else {
+                // 璇诲彇璇锋眰浣撲腑鐨� JSON 鏁版嵁
+                String jsonRequestBody = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
+                md5 = EncryptUtils.md5(jsonRequestBody);
+            }
+        } else if ("GET".equalsIgnoreCase(requestMethod)) {
+            Map<String, String[]> map = request.getParameterMap();
+            String jsonString = JSON.toJSONString(map);
+            md5 = EncryptUtils.md5(jsonString);
+        }
+        return md5;
+    }
+
+    private User getUser() {
+        try {
+            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+            if (authentication != null) {
+                Object object = authentication.getPrincipal();
+                if (object instanceof User) {
+                    return (User) object;
+                }
+                if(object instanceof UserLogin) {
+                    UserLogin userLogin = (UserLogin) object;
+                    User user = userService.superGetById(userLogin.getUserId());
+                    return user;
+                }
+            }
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+        return null;
+    }
+
+    private void statisticsCacheHitCount(Object object, String[] tableNames, String requestURI) {
+        statisticsCacheSaveRedis(object, requestURI);
+        for (String tableName : tableNames) {
+            statisticsCacheSaveRedis(object, tableName);
+        }
+    }
+
+    private void statisticsCacheSaveRedis(Object object, String key) {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String now = format.format(new Date());
+
+        String urlKey = RedisConstants.STATISTICS_CACHE_DATA + ":" + now + ":" + key;
+        Object urlCache = redisUtil.get(urlKey);
+        CacheHitDto cacheHitDto = new CacheHitDto(0, 0);
+        if (urlCache != null) {
+            cacheHitDto = JSON.parseObject(urlCache.toString(), CacheHitDto.class);
+        }
+
+        if (object == null) {
+            cacheHitDto.setMiss(cacheHitDto.getMiss() + 1);
+        }else {
+            cacheHitDto.setHit(cacheHitDto.getHit() + 1);
+        }
+
+        redisUtil.set(urlKey, JSON.toJSONString(cacheHitDto));
+    }
+}

--
Gitblit v1.9.1