src/main/java/com/lf/server/controller/show/DataLibController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/all/BaseQueryService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/show/DataLibService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lf/server/controller/show/DataLibController.java
@@ -15,10 +15,7 @@ import com.lf.server.entity.data.MetaEntity; import com.lf.server.entity.data.MetaFileEntity; import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.ClassHelper; import com.lf.server.helper.Md5Helper; import com.lf.server.helper.StringHelper; import com.lf.server.helper.WebHelper; import com.lf.server.helper.*; import com.lf.server.mapper.all.BasicMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.data.DownloadService; @@ -283,8 +280,12 @@ if (null == reqEntity || StringHelper.isEmpty(reqEntity.getPwd())) { return fail("密码不能为空"); } if (null == reqEntity.getIds() || reqEntity.getIds().isEmpty()) { return fail("请选择要下载的文件"); if (null == reqEntity.getEntities() || reqEntity.getEntities().isEmpty()) { return fail("请选择要下载的实体名"); } reqEntity.setWkt(AesHelper.decrypt(reqEntity.getWkt())); if (StringHelper.isEmpty(reqEntity.getWkt())) { return fail("请选择要下载的WKT范围"); } if (!downloadService.decryptPwd(reqEntity)) { return fail("密码解密失败", null); @@ -293,13 +294,8 @@ return fail("密码不符合要求"); } List<MetaFileEntity> list = metaService.selectMetaFiles(reqEntity.getIds()); if (null == list || list.isEmpty()) { return fail("没有找到元数据"); } UserEntity ue = tokenService.getCurrentUser(req); String guid = downloadService.zipFiles(ue, list, reqEntity.getPwd()); String guid = dataLibService.createZipFile(ue, reqEntity.getEntities(), reqEntity.getWkt(), reqEntity.getPwd()); return success(guid); } catch (Exception ex) { src/main/java/com/lf/server/service/all/BaseQueryService.java
@@ -147,7 +147,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); src/main/java/com/lf/server/service/show/DataLibService.java
@@ -1,9 +1,19 @@ package com.lf.server.service.show; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.ClassHelper; import com.lf.server.helper.PathHelper; import com.lf.server.helper.StringHelper; import com.lf.server.mapper.all.GeomBaseMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.data.DownloadService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 资料馆 @@ -15,5 +25,66 @@ PathHelper pathHelper; @Autowired BaseQueryService baseQueryService; @Autowired DownloadService downloadService; /** * 创建Zip包 */ public String createZipFile(UserEntity ue, List<String> entities, String wkt, String pwd) { Map<String, List<?>> map = queryData(entities, wkt); if (map.size() == 0) { return null; } return null; } /** * 查询数据 */ private Map<String, List<?>> queryData(List<String> entities, String wkt) { Map<String, List<?>> map = new HashMap<>(5); for (String enity : entities) { try { GeomBaseMapper baseMapper = ClassHelper.getGeoBaseMapper(enity); if (null == baseMapper) { continue; } String tab = BaseQueryService.getTabName(baseMapper); if (StringHelper.isNull(tab)) { continue; } QueryWrapper wrapper = createWrapper(baseMapper, wkt); List<?> list = baseMapper.selectList(wrapper); if (null == list || list.size() == 0) { continue; } if (!map.containsKey(tab)) { map.put(tab, list); } } catch (Exception ex) { // } } return map; } /** * 创建QueryWrapper */ private QueryWrapper createWrapper(GeomBaseMapper baseMapper, String wkt) { QueryWrapper wrapper = new QueryWrapper(); wrapper.select("ST_AsText(geom) as geom"); Integer srid = baseQueryService.getSrid(baseMapper); wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid)); return wrapper; } }