From ed8c7a5effd0d423ce1118b680ecdca6fe732609 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 02 七月 2025 16:43:13 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/P2022036_Service --- src/main/java/com/lf/server/service/all/BaseQueryService.java | 102 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 77 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/lf/server/service/all/BaseQueryService.java b/src/main/java/com/lf/server/service/all/BaseQueryService.java index 06de9db..94a4e38 100644 --- a/src/main/java/com/lf/server/service/all/BaseQueryService.java +++ b/src/main/java/com/lf/server/service/all/BaseQueryService.java @@ -3,11 +3,13 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lf.server.entity.all.RedisCacheKey; +import com.lf.server.entity.all.StaticData; import com.lf.server.entity.ctrl.IdNameEntity; import com.lf.server.entity.ctrl.KeyValueEntity; 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.entity.sys.AttachEntity; import com.lf.server.helper.AesHelper; import com.lf.server.helper.ClassHelper; import com.lf.server.helper.StringHelper; @@ -17,9 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.TimeUnit; /** @@ -37,7 +37,7 @@ /** * 琛ㄥ悕Map */ - private static Map<String, String> tabMap = new HashMap<String, String>(3); + private static Map<String, String> tabMap = new HashMap<>(3); /** * 娣诲姞杩囨护鏉′欢 @@ -61,12 +61,30 @@ continue; } - String field = str.substring(0, start).trim(); + String field = convertFiled(str.substring(0, start).trim()); String express = str.substring(start + 1, end).trim().toLowerCase(); String value = str.substring(end + 1).trim(); - addWrapper(wrapper, field, express, getObjectVal(value)); + addWrapper(wrapper, field, express, getObjectVal(express, value)); } + } + + /** + * 瀛楁杞崲 + */ + private String convertFiled(String field) { + StringBuilder sb = new StringBuilder(); + for (int i = 0, c = field.length(); i < c; i++) { + char ch = field.charAt(i); + if (Character.isUpperCase(ch)) { + sb.append('_'); + sb.append(Character.toLowerCase(ch)); + } else { + sb.append(ch); + } + } + + return sb.toString(); } /** @@ -75,13 +93,15 @@ * @param val 鍊� * @return 瀵硅薄 */ - private Object getObjectVal(String val) { + private Object getObjectVal(String express, String val) { if (StringHelper.isInteger(val)) { return Long.parseLong(val); } - if (StringHelper.isNumeric(val)) { return Double.parseDouble(val); + } + if (StaticData.IN.equals(express)) { + return val; } return val.replace("'", ""); @@ -124,9 +144,35 @@ case "<=": wrapper.le(field, val); break; + case "in": + if (val.toString().contains(StaticData.SINGLE_QUOTES)) { + wrapper.in(field, getStringList(val.toString())); + } else { + wrapper.in(field, getIntegerList(val.toString())); + } + break; default: break; } + } + + /** + * 鑾峰彇瀛楃涓插垪琛� + */ + private List<String> getStringList(String val) { + return Arrays.asList(val.replace(StaticData.SINGLE_QUOTES, "").split(StaticData.COMMA)); + } + + /** + * 鑾峰彇鏁存暟鍒楄〃 + */ + private List<Integer> getIntegerList(String val) { + List<Integer> list = new ArrayList<>(); + for (String str : val.split(StaticData.COMMA)) { + list.add(Integer.parseInt(str)); + } + + return list; } /** @@ -142,9 +188,7 @@ wkt = AesHelper.decrypt(wkt); Integer srid = getSrid((GeomBaseMapper) basicMapper); - if (null != srid) { - wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid)); - } + wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid)); } } @@ -164,9 +208,10 @@ } Integer srid = basicMapper.selectSrid(tab); - if (srid != null) { - redisService.put(key, srid, 5, TimeUnit.MINUTES); + if (null == srid) { + return StaticData.I4490; } + redisService.put(key, srid, 5, TimeUnit.MINUTES); return srid; } @@ -217,9 +262,6 @@ */ public void addBufferWrapper(GeomBaseMapper baseMapper, QueryWrapper wrapper, String wkt, double buffer) { Integer srid = getSrid(baseMapper); - if (null == srid) { - srid = 4490; - } // buffer = buffer * 0.00000899928 buffer = buffer / 1852 / 60; @@ -228,30 +270,30 @@ @Override public List<IdNameEntity> selectUserFuzzy(String name) { - name = StringHelper.getLikeStr(name); + name = StringHelper.getLikeUpperStr(name); return baseQueryMapper.selectUserFuzzy(name); } @Override public List<IdNameEntity> selectDepFuzzy(String name) { - name = StringHelper.getLikeStr(name); + name = StringHelper.getLikeUpperStr(name); return baseQueryMapper.selectDepFuzzy(name); } @Override - public Integer selectTabsForCount(String tab, String field) { - tab = StringHelper.getLikeStr(tab); + public Integer selectTabsForCount(String tab, String typesFilter, String field) { + tab = StringHelper.getLikeUpperStr(tab); - return baseQueryMapper.selectTabsForCount(tab, field); + return baseQueryMapper.selectTabsForCount(tab, typesFilter, field); } @Override - public List<TabEntity> selectTabsByPage(String tab, String field, String filters, Integer limit, Integer offset) { - tab = StringHelper.getLikeStr(tab); + public List<TabEntity> selectTabsByPage(String tab, String typesFilter, String field, String filters, Integer limit, Integer offset) { + tab = StringHelper.getLikeUpperStr(tab); - return baseQueryMapper.selectTabsByPage(tab, field, filters, limit, offset); + return baseQueryMapper.selectTabsByPage(tab, typesFilter, field, filters, limit, offset); } @Override @@ -276,8 +318,18 @@ @Override public List<KeyValueEntity> selectDirTypes(String name) { - name = StringHelper.getLikeStr(name); + name = StringHelper.getLikeUpperStr(name); return baseQueryMapper.selectDirTypes(name); } + + @Override + public List<KeyValueEntity> selectDirsByTypes(String[] types, String dirs) { + return baseQueryMapper.selectDirsByTypes(types, dirs); + } + + @Override + public List<AttachEntity> selectAnnexByTab(String tab, String gids) { + return baseQueryMapper.selectAnnexByTab(tab, gids); + } } -- Gitblit v1.9.3