From e400c6f84ad6e777ae32597d01eb2d0fd79f5e56 Mon Sep 17 00:00:00 2001
From: cp <513960435@qq.com>
Date: 星期四, 21 十一月 2024 15:58:17 +0800
Subject: [PATCH] 完善

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java |  136 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 120 insertions(+), 16 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java
index 7fc00e0..8ef4122 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java
@@ -2,13 +2,14 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.common.sys.entity.User;
 import com.zy.asrs.common.sys.entity.UserLogin;
 import com.zy.asrs.common.sys.service.UserLoginService;
 import com.zy.asrs.common.sys.service.UserService;
 import com.zy.asrs.common.wms.entity.Tag;
-import com.zy.asrs.common.wms.service.ManTagService;
+import com.zy.asrs.common.wms.service.TagService;
 import com.zy.asrs.framework.common.BaseRes;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.controller.AbstractBaseController;
@@ -35,9 +36,9 @@
     @Autowired
     private UserLoginService userLoginService;
     @Autowired
-    private ManTagService manTagService;
+    private TagService tagService;
 
-    protected Long getHostId(){
+    protected Long getHostId() {
         if (getUserId() == 9527) {
             return null;
         }
@@ -56,11 +57,11 @@
         }
     }
 
-    protected Long getUserId(){
+    protected Long getUserId() {
         return Long.parseLong(String.valueOf(request.getAttribute("userId")));
     }
 
-    protected User getUser(){
+    protected User getUser() {
         User user = userService.getById(getUserId());
         if (null == user) {
             throw new CoolException(BaseRes.DENIED);
@@ -68,10 +69,10 @@
         return user;
     }
 
-    protected String getComment(Class<?> cls, String fieldName){
+    protected String getComment(Class<?> cls, String fieldName) {
         Field[] fields = Cools.getAllFields(cls);
-        for (Field field : fields){
-            if (fieldName.equals(field.getName())){
+        for (Field field : fields) {
+            if (fieldName.equals(field.getName())) {
                 return field.getAnnotation(ApiModelProperty.class).value();
             }
         }
@@ -80,6 +81,7 @@
 
     /**
      * 鍒嗛〉缁勮
+     *
      * @param pageNumber
      * @param pageSize
      * @param map
@@ -87,7 +89,7 @@
      * @param <T>
      * @return
      */
-    protected <T> Page<T> toPage(Integer pageNumber, Integer pageSize, Map<String, Object> map, Class<T> cls){
+    protected <T> Page<T> toPage(Integer pageNumber, Integer pageSize, Map<String, Object> map, Class<T> cls) {
         // 鍒嗛〉绱㈠紩鍜屽崟椤垫暟閲忕粍瑁�
         pageNumber = Optional.ofNullable(pageNumber).orElse(1);
         pageSize = Optional.ofNullable(pageSize).orElse(10);
@@ -98,10 +100,8 @@
         // 鍏ㄥ瓧娈垫ā绯婃悳绱� todo
         if (!Cools.isEmpty(map.get("condition"))) {
             Set<String> columns = new HashSet<>();
-            for (Field field : Cools.getAllFields(cls)){
-                if (Modifier.isFinal(field.getModifiers())
-                        || Modifier.isStatic(field.getModifiers())
-                        || Modifier.isTransient(field.getModifiers())){
+            for (Field field : Cools.getAllFields(cls)) {
+                if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers()) || Modifier.isTransient(field.getModifiers())) {
                     continue;
                 }
                 String column = null;
@@ -115,14 +115,118 @@
                     columns.add(column);
                 }
             }
-            columns.forEach(col->map.put(col, map.get("condition")));
+            columns.forEach(col -> map.put(col, map.get("condition")));
         }
 //        page.setCondition(map);
         return page;
     }
 
-    protected Tag getOriginTag(){
-        return manTagService.getTop();
+    protected Tag getOriginTag() {
+        return tagService.getTop(getHostId());
     }
 
+    /**
+     * 鍏ㄥ瓧娈垫ā绯婃悳绱�
+     *
+     * @param cls       妯″瀷绫�
+     * @param set       鎺掗櫎瀛楁闆嗗悎
+     * @param condition 鎼滅储鍐呭
+     */
+    protected <T> void allLike(Class<T> cls, Set<String> set, QueryWrapper<T> wrapper, String condition) {
+        if (Cools.isEmpty(condition)) {
+            return;
+        }
+        final List<String> columns = new ArrayList<>();
+        for (Field field : Cools.getAllFields(cls)) {
+            if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers()) || Modifier.isTransient(field.getModifiers())) {
+                continue;
+            }
+            String column = null;
+            if (field.isAnnotationPresent(TableField.class)) {
+                column = camelToUnderscore(field.getAnnotation(TableField.class).value());
+            }
+            if (Cools.isEmpty(column)) {
+                column = camelToUnderscore(field.getName());
+            }
+            //if (!set.contains(column)) {
+            columns.add(column);
+            //}
+        }
+        if (columns.isEmpty()) {
+            return;
+        }
+
+        wrapper.and(w -> {
+            for (int i = 0; i < columns.size(); i++) {
+                String colums = columns.get(i);
+                if (i == 0) {
+                    w.like(colums, condition);
+                } else {
+                    w.or().like(colums, condition);
+                }
+            }
+        });
+
+//        for (int i=0;i<columns.size();i++){
+//            String colums = columns.get(i);
+//            if (i==0){
+//                wrapper.and(w -> w.like(colums, condition));
+//            } else {
+//                wrapper.or(w -> w.like(colums, condition));
+//            }
+////            wrapper.like(columns.get(i), condition);
+//        }
+    }
+
+    private static String camelToUnderscore(String camelCase) {
+        return camelCase.replaceAll("([a-z])([A-Z])", "$1_$2").toLowerCase();
+    }
+
+//    /**
+//     * 鍏ㄥ瓧娈垫ā绯婃悳绱�
+//     *
+//     * @param cls       妯″瀷绫�
+//     * @param set       鎺掗櫎瀛楁闆嗗悎
+//     * @param condition 鎼滅储鍐呭
+//     */
+//    protected <T> void allLike(Class<T> cls, Set<String> set, LambdaQueryWrapper<T> wrapper, String condition) {
+//        if (Cools.isEmpty(condition)) {
+//            return;
+//        }
+//        final List<String> columns = new ArrayList<>();
+//        for (Field field : Cools.getAllFields(cls)) {
+//            if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers()) || Modifier.isTransient(field.getModifiers())) {
+//                continue;
+//            }
+//            String column = null;
+//            if (field.isAnnotationPresent(TableField.class)) {
+//                column = camelToUnderscore(field.getAnnotation(TableField.class).value());
+//            }
+//            if (Cools.isEmpty(column)) {
+//                column = camelToUnderscore(field.getName());
+//            }
+//            //if (!set.contains(column)) {
+//            columns.add(column);
+//            //}
+//        }
+//        if (columns.isEmpty()) {
+//            return;
+//        }
+//
+//        SFunction<cls, String> columnFunc = Entity::columnName;
+//        wrapper.and(w -> {
+//            for (int i = 0; i < columns.size(); i++) {
+//                String colums = columns.get(i);
+//                if (i == 0) {
+//                    w.like(colums, condition);
+//                } else {
+//                    w.or().like(colums, condition);
+//                }
+//            }
+//        });
+//
+//
+//    }
+
+
 }

--
Gitblit v1.9.1