From 1b603d3b281d022baed62967d7d7eba63b454ec2 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 29 十月 2022 16:06:31 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/controller/all/BaseQueryController.java |   49 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/all/BaseQueryController.java b/src/main/java/com/lf/server/controller/all/BaseQueryController.java
index a5221f1..a1d5a1e 100644
--- a/src/main/java/com/lf/server/controller/all/BaseQueryController.java
+++ b/src/main/java/com/lf/server/controller/all/BaseQueryController.java
@@ -1,7 +1,6 @@
 package com.lf.server.controller.all;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,6 +8,7 @@
 import com.lf.server.entity.all.ResponseMsg;
 import com.lf.server.helper.AesHelper;
 import com.lf.server.helper.StringHelper;
+import com.lf.server.mapper.all.BasicMapper;
 import com.lf.server.mapper.all.GeomBaseMapper;
 import com.lf.server.service.all.BaseQueryService;
 import io.swagger.annotations.ApiImplicitParam;
@@ -38,13 +38,13 @@
     @GetMapping({"/selectCount"})
     public ResponseMsg<Long> selectCount(String name, String filter, String wkt, Integer srid) {
         try {
-            BaseMapper baseMapper = baseQueryService.getBaseMapper(name);
+            BasicMapper baseMapper = baseQueryService.getBasicMapper(name);
             if (baseMapper == null) {
                 return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null);
             }
 
             QueryWrapper wrapper = new QueryWrapper();
-            baseQueryService.addFilterWrapper(baseMapper, wrapper, filter);
+            baseQueryService.addFilterWrapper(wrapper, filter);
             baseQueryService.addGeomWrapper(baseMapper, wrapper, wkt, srid);
 
             long count = baseMapper.selectCount(wrapper);
@@ -68,13 +68,13 @@
     @GetMapping(value = "/selectByPage")
     public ResponseMsg<List<Object>> selectByPage(String name, String filter, String wkt, Integer srid, Integer pageIndex, Integer pageSize) {
         try {
-            BaseMapper baseMapper = baseQueryService.getBaseMapper(name);
+            BasicMapper baseMapper = baseQueryService.getBasicMapper(name);
             if (baseMapper == null) {
                 return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null);
             }
 
             QueryWrapper wrapper = new QueryWrapper();
-            baseQueryService.addFilterWrapper(baseMapper, wrapper, filter);
+            baseQueryService.addFilterWrapper(wrapper, filter);
             baseQueryService.addGeomWrapper(baseMapper, wrapper, wkt, srid);
 
             Page<Object> page = new Page<>(pageIndex, pageSize);
@@ -101,7 +101,12 @@
                 return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null);
             }
 
-            String wkt = baseMapper.selectWktById(gid);
+            String tab = baseQueryService.getTabName(baseMapper);
+            if (StringHelper.isNull(tab)) {
+                return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null);
+            }
+
+            String wkt = baseMapper.selectWktById(tab, gid);
             if (!StringHelper.isEmpty(wkt)) {
                 wkt = AesHelper.encrypt(wkt);
             }
@@ -111,4 +116,36 @@
             return fail(ex.getMessage(), null);
         }
     }
+
+    @SysLog()
+    @ApiOperation(value = "妯$硦鎼滅储")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "name", value = "鏄犲皠鍚嶇О", dataType = "String", paramType = "query", example = "dlgAgnp"),
+            @ApiImplicitParam(name = "field", value = "瀛楁", dataType = "String", paramType = "query", example = "name"),
+            @ApiImplicitParam(name = "value", value = "鍊�", dataType = "String", paramType = "query", example = "'鍘�'")
+    })
+    @GetMapping(value = "/selectFuzzy")
+    public ResponseMsg<List<String>> selectFuzzy(String name, String field, String value) {
+        try {
+            BasicMapper baseMapper = baseQueryService.getBasicMapper(name);
+            if (baseMapper == null) {
+                return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null);
+            }
+
+            String tab = baseQueryService.getTabName(baseMapper);
+            if (StringHelper.isNull(tab)) {
+                return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null);
+            }
+            if (StringHelper.isEmpty(field) || StringHelper.isSqlInjection(field)) {
+                return fail("鏌ヨ瀛楁涓嶆纭�", null);
+            }
+
+            value = value == null ? StringHelper.getLikeStr("") : StringHelper.getLikeStr(value.replace("'", ""));
+            List<String> rs = baseMapper.selectFuzzy(tab, field, value);
+
+            return success(rs);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), null);
+        }
+    }
 }

--
Gitblit v1.9.3