管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-12-19 552da0d21c1203d5ac8ae6e3c82f4989b8845679
1
已修改3个文件
93 ■■■■ 文件已修改
src/main/java/com/lf/server/controller/show/DataLibController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/all/BaseQueryService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/show/DataLibService.java 71 ●●●●● 补丁 | 查看 | 原始文档 | 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;
    }
}