Quellcode durchsuchen

feature 通用查询优化,兼容in查询

ererkook vor 5 Jahren
Ursprung
Commit
b899a1e324

+ 23 - 11
src/main/java/com/mokamrp/privates/controller/BaseController.java

@@ -75,21 +75,33 @@ public class BaseController<T> {
         if (bindingResult.hasErrors()) {
             return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
-        Iterator fileterIt = indexHandle.getFilter().entrySet().iterator();
+        Iterator<Map.Entry<String, String>> fileterIt = indexHandle.getFilter().entrySet().iterator();
         Wrapper<T> warpper = new EntityWrapper<T>();
         //.@leon where like,=,<>
         while (fileterIt.hasNext()) {
-            Map.Entry entray = (Map.Entry) fileterIt.next();
-            Object key = entray.getKey();
-            Object value = entray.getValue();
+            Map.Entry<String, String> entry = fileterIt.next();
+            String key = entry.getKey();
+            String value = entry.getValue();
             Map<String, String> op = indexHandle.getOp();
-            //.这里sql字段需要驼峰转下划线
-            if (op.get(key) == null || op.get(key).isEmpty() || op.get(key).toString().equals("=")) {
-                warpper = warpper.eq(StringUtils.humpToLine2(key.toString()), value.toString());
-            } else if (op.get(key).toString().equals("like")) {
-                warpper = warpper.like(StringUtils.humpToLine2(key.toString()), "%" + value.toString() + "%");
-            } else if (op.get(key).toString().equals("<>")) {
-                warpper = warpper.ne(StringUtils.humpToLine2(key.toString()), value.toString());
+            // 操作符为空,pass
+            if (op.get(key) == null || op.get(key).isEmpty()) {
+                continue;
+            }
+            // 这里sql字段需要驼峰转下划线
+            String columnName = StringUtils.humpToLine2(key);
+            switch (op.get(key)) {
+                case "=":
+                    warpper = warpper.eq(columnName, value);
+                    break;
+                case "LIKE":
+                    warpper = warpper.like(columnName, "%" + value + "%");
+                    break;
+                case "<>":
+                    warpper = warpper.ne(columnName, value);
+                    break;
+                case "IN(...)":
+                    warpper = warpper.in(columnName, value);
+                    break;
             }
         }
         //.统计数量

+ 1 - 15
src/main/java/com/mokamrp/privates/controller/CorpController.java

@@ -26,21 +26,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/corp")
-public class CorpController {
+public class CorpController extends BaseController<Corp>{
 
-    @Autowired
-    public CorpService corpService;
-
-    /**
-     * 基础查询方法
-     *
-     * @author leon 支持分页offset,limit;简单条件like,=,<>;排序order,sort
-     * @since 1949-10-01
-     */
-    @PostMapping("/index")
-    public Object index(@Valid @RequestBody IndexHandle indexHandle) {
-        IndexBaseRes<Corp> res = corpService.base(indexHandle);
-        return AjaxResult.success("success", res);
-    }
 }
 

+ 1 - 1
src/main/java/com/mokamrp/privates/entity/IndexHandle.java

@@ -16,7 +16,7 @@ public class IndexHandle {
     private Integer limit = 10;
 
     //.@leon 条件字段
-    private Map<String, Object> filter;
+    private Map<String, String> filter;
 
     //.@leon 条件类型 =,like
     private Map<String, String> op;