月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-09-11 636f52fc934cd4fdc61472d786dec14616b2f2fa
src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -7,11 +7,12 @@
import com.moon.server.entity.data.MetaPubEntity;
import com.moon.server.entity.data.PublishEntity;
import com.moon.server.entity.shujian.*;
import com.moon.server.entity.sys.LayerEntity;
import com.moon.server.entity.sys.ResEntity;
import com.moon.server.helper.HttpHelper;
import com.moon.server.helper.PathHelper;
import com.moon.server.helper.RestHelper;
import com.moon.server.helper.StringHelper;
import com.moon.server.service.sys.LayerService;
import com.moon.server.service.sys.ResService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -35,14 +36,20 @@
    @Value("${shujian.ak}")
    String ak;
    @Value("${shujian.url}")
    String sjUrl;
    @Value("${shujian.url1}")
    String sjUrl1;
    @Value("${shujian.url5}")
    String sjUrl5;
    @Value("${shujian.path}")
    String sjPath;
    @Resource
    PathHelper pathHelper;
    @Value("${shujian.domName}")
    String domName;
    @Value("${shujian.demName}")
    String demName;
    @Resource
    ResService resService;
@@ -53,6 +60,9 @@
    @Resource
    PublishService publishService;
    @Resource
    LayerService layerService;
    private final static Log log = LogFactory.getLog(ShuJianService.class);
    public final static List<String> TYPES = new ArrayList<>(Arrays.asList("DOM", "DEM"));
@@ -61,14 +71,30 @@
    private final static String DEM_FORMAT = "%s/sj_raster/v6/terrain_mesh/service/system/%d/%s";
    private final static String API_LAYER = "%s/sj_raster/v6/api/layer?%s&sort=name%%20asc";
    private final static String COLOR_TABLE = "%s/sj_raster/v6/api/color_table?%s&page_count=%d&page_num=%d&key=";
    /**
     * 分页查询数简的颜色表
     */
    public void selectSjColorTables(Integer pageSize, Integer pageIndex, HttpServletRequest req, HttpServletResponse res) {
    public void selectSjColorTables(Integer port, Integer pageSize, Integer pageIndex, HttpServletRequest req, HttpServletResponse res) {
        try {
            String url = String.format(COLOR_TABLE, sjUrl, ak, pageSize, pageIndex);
            String url = String.format(COLOR_TABLE, null == port || 50001 == port ? sjUrl1 : sjUrl5, ak, pageSize, pageIndex);
            HttpHelper httpHelper = new HttpHelper();
            httpHelper.service(req, res, null, url);
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
        }
    }
    /**
     * 查询数简图层
     */
    public void selectSjLayers(Integer port, HttpServletRequest req, HttpServletResponse res) {
        try {
            String url = String.format(API_LAYER, null == port || 50001 == port ? sjUrl1 : sjUrl5, ak);
            HttpHelper httpHelper = new HttpHelper();
            httpHelper.service(req, res, null, url);
@@ -102,7 +128,10 @@
        ResEntity resEntity = createResEntity(publishEntity);
        resService.insert(resEntity);
        return insertMetaPub(pub, publishEntity.getId());
        insertMetaPub(pub, publishEntity.getId());
        layerService.insert(createLayerEntity(resEntity, StaticData.I3));
        return rows;
    }
    /**
@@ -120,7 +149,7 @@
        layer.setProjection(getEpsg(pub));
        layer.setType(TYPES.indexOf(pub.getType()));
        layer.setEnhance_type(pub.getEnhanceType());
        layer.setEnhance_factor(pub.getEnhance_factor());
        layer.setEnhance_factor(pub.getEnhanceFactor());
        layer.setNodata(getNoData(pub, metas));
        layer.setConfig(getColorTableConfig(entity, pub));
@@ -128,11 +157,9 @@
        imagePathList.setPath(sjPath);
        entity.getImage_path_list().add(imagePathList);
        List<CreateLayerEntity.ImageList> imageLists = entity.getImage_list();
        List<String> filters = imagePathList.getFilter();
        for (MetaEntity meta : metas) {
            CreateLayerEntity.ImageList imageList = entity.new ImageList();
            imageList.setPath(meta.getPath().replace("\\", "/"));
            imageLists.add(imageList);
            filters.add(meta.getPath().replace("\\", "/"));
        }
        return entity;
@@ -195,7 +222,7 @@
     */
    public Integer postLayerEntity(CreateLayerEntity layerEntity) {
        Map<String, Object> map = getMapData(layerEntity);
        String url = String.format("%s/sj_raster/v6/api/layer?op=create_ex&%s", sjUrl, ak);
        String url = String.format("%s/sj_raster/v6/api/layer?op=create_ex&%s", sjUrl5, ak);
        LayerResultEntity rs = postForRest(url, map, LayerResultEntity.class);
        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus()) || null == rs.getResult().getLayer_id();
@@ -233,7 +260,7 @@
     */
    public Integer postServiceEntity(CreateServiceEntity serviceEntity) {
        Map<String, Object> map = getMapData(serviceEntity);
        String url = String.format("%s/sj_raster/v6/api/service?op=create_ex&%s", sjUrl, ak);
        String url = String.format("%s/sj_raster/v6/api/service?op=create_ex&%s", sjUrl5, ak);
        ServiceResultEntity rs = postForRest(url, map, ServiceResultEntity.class);
        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus()) || null == rs.getResult();
@@ -250,7 +277,7 @@
        entity.setServiceid(serviceId);
        entity.setEventid(pub.getUuid());
        entity.setName(pub.getName());
        entity.setUrl(String.format(TYPES.get(0).equals(pub.getType()) ? DOM_FORMAT : DEM_FORMAT, sjUrl, serviceId, StaticData.I0));
        entity.setUrl(String.format(TYPES.get(0).equals(pub.getType()) ? DOM_FORMAT : DEM_FORMAT, sjUrl5, serviceId, StaticData.I0));
        entity.setPath(null);
        entity.setType(pub.getType());
        entity.setStatus(3);
@@ -290,6 +317,39 @@
        entity.setDirid(pub.getDirid());
        entity.setCreateUser(pub.getCreateUser());
        entity.setPubid(pub.getId());
        return entity;
    }
    /**
     * 创建图层
     */
    private LayerEntity createLayerEntity(ResEntity resEntity, Integer category) {
        Integer pid = layerService.selectIdByName(StaticData.I1 == resEntity.getData() ? domName : demName);
        Integer orderNum = layerService.selectMaxOrderNumByPid(pid);
        LayerEntity layer = layerService.selectById(pid);
        LayerEntity entity = new LayerEntity();
        entity.setPid(pid);
        entity.setCnName(resEntity.getCnName());
        entity.setEnName(resEntity.getEnName());
        entity.setUrl(resEntity.getProxy());
        // 是否为图层:0-图层组,1-图层
        entity.setIsLayer(1);
        entity.setLevel(null == layer ? 1 : layer.getLevel() + 1);
        entity.setOrderNum(orderNum);
        // 状态:0-停止,1-启用
        entity.setStatus(1);
        entity.setCreateUser(resEntity.getCreateUser());
        entity.setResid(resEntity.getId());
        // 类别:0-URL,1-TMS,2-WMTS,3-WMS,4-WFS,5-Tileset
        entity.setType(StaticData.I1 == resEntity.getData() ? 2 : 0);
        // 数据类型:0-URL,1-DOM,2-DEM
        entity.setData(resEntity.getData());
        // 服务类别:0-其他,1-GisServer,2-GeoServer,3-数简
        entity.setCategory(category);
        // 是/否默认显示
        entity.setIsShow(0);
        return entity;
    }
@@ -372,7 +432,7 @@
        entity.setServiceid(serviceId);
        entity.setEventid(pub.getUuid());
        entity.setUpdateUser(pub.getUserId());
        entity.setUrl(String.format(TYPES.get(0).equals(pub.getType()) ? DOM_FORMAT : DEM_FORMAT, sjUrl, serviceId, StaticData.I0));
        entity.setUrl(String.format(TYPES.get(0).equals(pub.getType()) ? DOM_FORMAT : DEM_FORMAT, sjUrl5, serviceId, StaticData.I0));
        if (StringHelper.isEmpty(entity.getGeom())) {
            entity.setGeom(StaticData.NULL);
        }
@@ -385,13 +445,22 @@
        ResEntity resEntity = resService.selectByPubid(entity.getId());
        if (null == resEntity) {
            resEntity = createResEntity(entity);
            return resService.insert(resEntity);
            resService.insert(resEntity);
        } else {
            resEntity.setUpdateUser(pub.getUserId());
            resEntity.setCnName(entity.getName());
            resEntity.setUrl(entity.getUrl());
            return resService.update(resEntity);
            resService.update(resEntity);
        }
        LayerEntity lyrEntity = layerService.selectByResId(resEntity.getId());
        if (null != lyrEntity) {
            lyrEntity.setCnName(resEntity.getCnName());
            lyrEntity.setUpdateUser(pub.getUserId());
            layerService.update(lyrEntity);
        }
        return entity.getId();
    }
    /**
@@ -446,7 +515,7 @@
            entity.getId_list().add(id);
            Map<String, Object> map = getMapData(entity);
            String url = String.format("%s/sj_raster/v6/api/layer?%s", sjUrl, ak);
            String url = String.format("%s/sj_raster/v6/api/layer?%s", sjUrl5, ak);
            DeleteResultEntity rs = deleteForRest(url, map);
@@ -466,7 +535,7 @@
            entity.getId_list().add(id);
            Map<String, Object> map = getMapData(entity);
            String url = String.format("%s/sj_raster/v6/api/service?%s", sjUrl, ak);
            String url = String.format("%s/sj_raster/v6/api/service?%s", sjUrl5, ak);
            DeleteResultEntity rs = deleteForRest(url, map);