From e54ef5e185c46a35641dce47b792c4f20b98879a Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 02 十一月 2022 19:08:25 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/controller/all/BaseQueryController.java | 209 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 176 insertions(+), 33 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 bfbaf01..1c9ac49 100644 --- a/src/main/java/com/lf/server/controller/all/BaseQueryController.java +++ b/src/main/java/com/lf/server/controller/all/BaseQueryController.java @@ -1,18 +1,24 @@ package com.lf.server.controller.all; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.lf.server.aspect.SysLog; import com.lf.server.entity.all.ResponseMsg; +import com.lf.server.entity.ctrl.IdNameEntity; +import com.lf.server.entity.ctrl.TabEntity; +import com.lf.server.entity.data.DictEntity; +import com.lf.server.entity.data.DomainEntity; import com.lf.server.helper.AesHelper; -import com.lf.server.helper.ClassHelper; 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; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import java.util.List; @@ -22,25 +28,30 @@ * @author WWW */ public class BaseQueryController extends BaseController { + @Autowired + BaseQueryService baseQueryService; + @SysLog() @ApiOperation(value = "鏌ヨ璁板綍鏁�") @ApiImplicitParams({ - @ApiImplicitParam(name = "name", value = "鏄犲皠鍚嶇О", dataType = "String", paramType = "query", example = "dlgAgnp") + @ApiImplicitParam(name = "name", value = "鏄犲皠鍚嶇О", dataType = "String", paramType = "query", example = "dlgAgnp"), + @ApiImplicitParam(name = "filter", value = "杩囨护鏉′欢", dataType = "String", paramType = "query", example = "gid >= 50 and name like '鍘�' and objectid < 5000.0"), + @ApiImplicitParam(name = "wkt", value = "WKT锛堣憲鍚嶆枃鏈級", dataType = "String", paramType = "query", example = "gAPpDbZ53XfoQfvT8dj/uhBWX5os8kBJQ1LrNvH3VX7byFQdUJMPiEr8Fkj0q2i1pw+L8KFrvR0MLXq2xaO21nlQQXmEPofJxpDQZwEWUIFZsToXo1kLRD3t6WQezxWB8YTzXHM20Ba73x/ZuuezVhOFOq1U8HKf1dXQdv7gBzEB6fWMmFDc3FuH8GDDHv3LfT86Gio9VgMO6ohlrUdf3ZKtTHeLSuzGF4t0RZuX97YBNo25IIzpeTfRTXBxfdxA"), + @ApiImplicitParam(name = "srid", value = "绌洪棿寮曠敤鏍囪瘑绗�", dataType = "Integer", paramType = "query", example = "4326") }) @GetMapping({"/selectCount"}) - public ResponseMsg<Long> selectCount(String name) { + public ResponseMsg<Long> selectCount(String name, String filter, String wkt, Integer srid) { try { - if (StringHelper.isEmpty(name)) { - return fail("鍚嶇О绌洪棿鍜屽疄浣撳悕绉颁笉鑳戒负绌�", null); - } - - Object obj = ClassHelper.getBean(name.trim() + "Mapper"); - if (!(obj instanceof BaseMapper)) { + BasicMapper baseMapper = baseQueryService.getBasicMapper(name); + if (baseMapper == null) { return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null); } - BaseMapper baseMapper = (BaseMapper) obj; - long count = baseMapper.selectCount(null); + QueryWrapper wrapper = new QueryWrapper(); + baseQueryService.addFilterWrapper(wrapper, filter); + baseQueryService.addGeomWrapper(baseMapper, wrapper, wkt, srid); + + long count = baseMapper.selectCount(wrapper); return success(count); } catch (Exception ex) { @@ -52,29 +63,27 @@ @ApiOperation(value = "鍒嗛〉鏌ヨ") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "鏄犲皠鍚嶇О", dataType = "String", paramType = "query", example = "dlgAgnp"), + @ApiImplicitParam(name = "filter", value = "杩囨护鏉′欢", dataType = "String", paramType = "query", example = ""), + @ApiImplicitParam(name = "wkt", value = "WKT锛堣憲鍚嶆枃鏈級", dataType = "String", paramType = "query", example = ""), + @ApiImplicitParam(name = "srid", value = "绌洪棿寮曠敤鏍囪瘑绗�", dataType = "Integer", paramType = "query", example = "4326"), @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1"), @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10") }) @GetMapping(value = "/selectByPage") - public ResponseMsg<List<Object>> selectByPage(String name, Integer pageIndex, Integer pageSize) { + public ResponseMsg<List<Object>> selectByPage(String name, String filter, String wkt, Integer srid, Integer pageIndex, Integer pageSize) { try { - if (pageSize < 1 || pageIndex < 1) { - return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null); - } - if (StringHelper.isEmpty(name)) { - return fail("鍚嶇О绌洪棿鍜屽疄浣撳悕绉颁笉鑳戒负绌�", null); - } - - Object obj = ClassHelper.getBean(name.trim() + "Mapper"); - if (!(obj instanceof BaseMapper)) { + BasicMapper baseMapper = baseQueryService.getBasicMapper(name); + if (baseMapper == null) { return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null); } - BaseMapper baseMapper = (BaseMapper) obj; + QueryWrapper wrapper = new QueryWrapper(); + baseQueryService.addFilterWrapper(wrapper, filter); + baseQueryService.addGeomWrapper(baseMapper, wrapper, wkt, srid); + Page<Object> page = new Page<>(pageIndex, pageSize); page.addOrder(OrderItem.asc("gid")); - - IPage<Object> paged = baseMapper.selectPage(page, null); + IPage<Object> paged = baseMapper.selectPage(page, wrapper); return success(paged.getTotal(), paged.getRecords()); } catch (Exception ex) { @@ -91,17 +100,17 @@ @GetMapping(value = "/selectWktById") public ResponseMsg<String> selectWktById(String name, Integer gid) { try { - if (StringHelper.isEmpty(name)) { - return fail("鍚嶇О绌洪棿鍜屽疄浣撳悕绉颁笉鑳戒负绌�", null); - } - - Object obj = ClassHelper.getBean(name.trim() + "Mapper"); - if (!(obj instanceof GeomBaseMapper)) { + GeomBaseMapper baseMapper = baseQueryService.getGeoBaseMapper(name); + if (baseMapper == null) { return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null); } - GeomBaseMapper baseMapper = (GeomBaseMapper) obj; - 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 +120,138 @@ 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 = "/selectFieldFuzzy") + public ResponseMsg<List<String>> selectFieldFuzzy(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); + } + if (!StringHelper.isEmpty(value)) { + value = value.trim().replace("'", ""); + } + + value = StringHelper.getLikeStr2(value); + List<String> rs = baseMapper.selectFieldFuzzy(tab, field, value); + + return success(rs); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } + + @SysLog() + @ApiOperation(value = "妯$硦鎼滅储鐢ㄦ埛") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "鐢ㄦ埛鍚�", dataType = "String", paramType = "query", example = "瀹�") + }) + @GetMapping(value = "/selectUserFuzzy") + public ResponseMsg<List<IdNameEntity>> selectUserFuzzy(String name) { + try { + List<IdNameEntity> rs = baseQueryService.selectUserFuzzy(name); + + return success(rs); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } + + @SysLog() + @ApiOperation(value = "妯$硦鎼滅储鍗曚綅") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "鍗曚綅鍚�", dataType = "String", paramType = "query", example = "鍙�") + }) + @GetMapping(value = "/selectDepFuzzy") + public ResponseMsg<List<IdNameEntity>> selectDepFuzzy(String name) { + try { + List<IdNameEntity> rs = baseQueryService.selectDepFuzzy(name); + + return success(rs); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } + + @SysLog() + @ApiOperation(value = "鏌ヨ鎵�鏈夎〃") + @GetMapping(value = "/selectTabs") + public ResponseMsg<List<TabEntity>> selectTabs() { + try { + List<TabEntity> list = baseQueryService.selectTabs(); + + return success(list); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } + + @SysLog() + @ApiOperation(value = "鏌ヨ瀛楁淇℃伅") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "鏄犲皠鍚嶇О", dataType = "String", paramType = "query", example = "dlgAgnp") + }) + @GetMapping(value = "/selectFields") + public ResponseMsg<List<DictEntity>> selectFields(String name) { + try { + BasicMapper baseMapper = baseQueryService.getBasicMapper(name); + if (baseMapper == null) { + return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null); + } + + String tabName = baseQueryService.getTabName(baseMapper); + if (tabName == null) { + return null; + } + + String[] strs = tabName.split("."); + List<DictEntity> list = baseQueryService.selectFields(strs[0], strs[1]); + + return success(list); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } + + @SysLog() + @ApiOperation(value = "鏌ヨ鍊煎煙淇℃伅") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "鏄犲皠鍚嶇О", dataType = "String", paramType = "query", example = "dlgAgnp") + }) + @GetMapping(value = "/selectDomains") + public ResponseMsg<List<DomainEntity>> selectDomains(String name) { + try { + BasicMapper baseMapper = baseQueryService.getBasicMapper(name); + if (baseMapper == null) { + return fail("鏌ヨ瀵硅薄涓嶅瓨鍦�", null); + } + + String tabName = baseQueryService.getTabName(baseMapper); + if (tabName == null) { + return null; + } + + String[] strs = tabName.split("."); + List<DomainEntity> list = baseQueryService.selectDomains(strs[0], strs[1]); + + return success(list); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } } -- Gitblit v1.9.3