From 71726a1cb05790d6841595ef7daef5173f2cddfa Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 29 三月 2023 09:43:11 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/all/BaseQueryService.java | 148 ++++++++++++++++++++++++++++--------------------- 1 files changed, 84 insertions(+), 64 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 40a1769..65a9fe6 100644 --- a/src/main/java/com/lf/server/service/all/BaseQueryService.java +++ b/src/main/java/com/lf/server/service/all/BaseQueryService.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lf.server.entity.all.RedisCacheKey; 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; @@ -14,7 +16,6 @@ import com.lf.server.mapper.all.BasicMapper; import com.lf.server.mapper.all.GeomBaseMapper; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.cache.RedisCache; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -37,45 +38,7 @@ /** * 琛ㄥ悕Map */ - private static Map<String, String> tabMap = new HashMap<String, String>(3); - - /** - * 鑾峰彇鐖禡apper - * - * @param name Mapper鍚� - * @return BaseMapper - */ - public BasicMapper getBasicMapper(String name) { - if (StringHelper.isEmpty(name)) { - return null; - } - - Object obj = ClassHelper.getBean(name.trim() + "Mapper"); - if (!(obj instanceof BasicMapper)) { - return null; - } - - return (BasicMapper) obj; - } - - /** - * 鑾峰彇绌洪棿鐖禡apper - * - * @param name Mapper鍚� - * @return GeomBaseMapper - */ - public GeomBaseMapper getGeoBaseMapper(String name) { - if (StringHelper.isEmpty(name)) { - return null; - } - - Object obj = ClassHelper.getBean(name.trim() + "Mapper"); - if (!(obj instanceof GeomBaseMapper)) { - return null; - } - - return (GeomBaseMapper) obj; - } + private static Map<String, String> tabMap = new HashMap<>(3); /** * 娣诲姞杩囨护鏉′欢 @@ -110,19 +73,19 @@ /** * 鑾峰彇鍊煎璞� * - * @param value 鍊� + * @param val 鍊� * @return 瀵硅薄 */ - private Object getObjectVal(String value) { - if (StringHelper.isInteger(value)) { - return Long.parseLong(value); + private Object getObjectVal(String val) { + if (StringHelper.isInteger(val)) { + return Long.parseLong(val); } - if (StringHelper.isNumeric(value)) { - return Double.parseDouble(value); + if (StringHelper.isNumeric(val)) { + return Double.parseDouble(val); } - return value.replace("'", ""); + return val.replace("'", ""); } /** @@ -131,30 +94,36 @@ * @param wrapper QueryWrapper * @param field 瀛楁 * @param express 琛ㄨ揪寮� - * @param value 鍊� + * @param val 鍊� */ - private void addWrapper(QueryWrapper wrapper, String field, String express, Object value) { + private void addWrapper(QueryWrapper wrapper, String field, String express, Object val) { + if (StringHelper.isDate(val.toString())) { + wrapper.apply(String.format("%s %s '%s'", field, express, val)); + return; + } + switch (express) { case "like": - wrapper.like(field, value); + wrapper.like("UPPER(" + field + ")", val.toString().toUpperCase()); break; case ">": - wrapper.gt(field, value); + wrapper.gt(field, val); break; case ">=": - wrapper.ge(field, value); + wrapper.ge(field, val); break; case "<>": - wrapper.ne(field, value); + case "!=": + wrapper.ne(field, val); break; case "=": - wrapper.eq(field, value); + wrapper.eq(field, val); break; case "<": - wrapper.lt(field, value); + wrapper.lt(field, val); break; case "<=": - wrapper.le(field, value); + wrapper.le(field, val); break; default: break; @@ -174,7 +143,9 @@ wkt = AesHelper.decrypt(wkt); Integer srid = getSrid((GeomBaseMapper) basicMapper); - wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid)); + if (null != srid) { + wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid)); + } } } @@ -184,7 +155,7 @@ * @param basicMapper 绌洪棿鍩虹Mapper * @return SRID */ - private Integer getSrid(GeomBaseMapper basicMapper) { + public Integer getSrid(GeomBaseMapper basicMapper) { String tab = getTabName(basicMapper); String key = RedisCacheKey.sridKey(tab); @@ -207,7 +178,7 @@ * @param basicMapper Mapper * @return 琛ㄥ悕 */ - public String getTabName(BasicMapper basicMapper) { + public static String getTabName(BasicMapper basicMapper) { String className = ClassHelper.getClassName(basicMapper); if (tabMap.containsKey(className)) { return tabMap.get(className); @@ -222,7 +193,7 @@ * @param className Mapper绫诲悕 * @return 琛ㄥ悕 */ - private String getTabName(String className) { + private static String getTabName(String className) { Class clazz = ClassHelper.getEntityClass(className); if (clazz == null) { return null; @@ -238,23 +209,50 @@ return tabName; } + /** + * 娣诲姞缂撳啿鍖鸿繃婊ゆ潯浠� + * + * @param baseMapper 鐖禡apper + * @param wrapper QueryWrapper + * @param wkt WKT锛堣憲鍚嶆枃鏈級 + */ + 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; + + wrapper.apply(String.format("ST_Intersects(geom, ST_Buffer(ST_GeomFromText('%s', %d), %f, 'endcap=round join=round'))", wkt, srid, buffer)); + } + @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 List<TabEntity> selectTabs() { - return baseQueryMapper.selectTabs(); + public Integer selectTabsForCount(String tab, String field) { + tab = StringHelper.getLikeUpperStr(tab); + + return baseQueryMapper.selectTabsForCount(tab, field); + } + + @Override + public List<TabEntity> selectTabsByPage(String tab, String field, String filters, Integer limit, Integer offset) { + tab = StringHelper.getLikeUpperStr(tab); + + return baseQueryMapper.selectTabsByPage(tab, field, filters, limit, offset); } @Override @@ -266,4 +264,26 @@ public List<DomainEntity> selectDomains(String ns, String tab) { return baseQueryMapper.selectDomains(ns, tab); } + + @Override + public String selectRoute(double x1, double y1, double x2, double y2) { + return baseQueryMapper.selectRoute(x1, y1, x2, y2); + } + + @Override + public List<KeyValueEntity> selectLocation(String wkt) { + return baseQueryMapper.selectLocation(wkt); + } + + @Override + public List<KeyValueEntity> selectDirTypes(String name) { + name = StringHelper.getLikeUpperStr(name); + + return baseQueryMapper.selectDirTypes(name); + } + + @Override + public List<AttachEntity> selectAnnexByTab(String tab, String gids) { + return baseQueryMapper.selectAnnexByTab(tab, gids); + } } -- Gitblit v1.9.3