Răsfoiți Sursa

字典实体

zuy 2 ani în urmă
părinte
comite
39e5412aa7

+ 13 - 0
common/src/main/java/com/kym/common/utils/CommUtil.java

@@ -231,4 +231,17 @@ public class CommUtil {
         }
         return val.toString().trim();
     }
+
+    public static String toDbColumn(String name) {
+        char[] chars = name.toCharArray();
+        StringBuilder sbr = new StringBuilder();
+        for (char ch : chars) {
+            if (Character.isUpperCase(ch)) {
+                sbr.append("_").append(Character.toLowerCase(ch));
+            }else{
+                sbr.append(ch);
+            }
+        }
+        return sbr.toString();
+    }
 }

+ 36 - 1
service/src/main/java/com/kym/service/miniapp/impl/DataDictServiceImpl.java

@@ -1,14 +1,23 @@
 package com.kym.service.miniapp.impl;
 
+import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.util.ReflectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.kym.common.IQuery;
+import com.kym.common.utils.CommUtil;
 import com.kym.entity.miniapp.DataDict;
 import com.kym.mapper.miniapp.DataDictMapper;
 import com.kym.service.miniapp.DataDictService;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
 
 /**
  * <p>
@@ -24,6 +33,32 @@ public class DataDictServiceImpl extends ServiceImpl<DataDictMapper, DataDict> i
     @Override
     public Object list(IQuery<DataDict> query) {
         PageHelper.startPage(query.pageNum, query.pageSize);
-        return new PageInfo<>(list());
+        Wrapper wrapper = getWrapper(query);
+        return new PageInfo<>(list(wrapper));
+    }
+
+    public Wrapper<?> getWrapper(IQuery<?> query) {
+        Object queryObject = query.query;
+        if (null == queryObject) {
+            return new QueryWrapper<>();
+        }
+
+        QueryChainWrapper<?> wrapper = new QueryChainWrapper<>(queryObject.getClass());
+
+        Field[] fields = ClassUtil.getDeclaredFields(queryObject.getClass());
+        if(!CommUtil.isEmptyOrNull(fields)){
+            for (Field field : fields) {
+                int modifiers = field.getModifiers();
+                if(Modifier.isFinal(modifiers)||Modifier.isStatic(modifiers)){
+                    continue;
+                }
+                Object fieldValue = ReflectUtil.getFieldValue(queryObject, field);
+                if(!CommUtil.isEmptyOrNull(fieldValue)){
+                    wrapper.eq(CommUtil.toDbColumn(field.getName()),fieldValue);
+                }
+            }
+        }
+
+        return wrapper;
     }
 }