月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-09-08 427948b7d9b5df305ac6bf0045081773006a5448
src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -9,15 +9,13 @@
import com.moon.server.entity.shujian.*;
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.ResService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@@ -36,11 +34,14 @@
    @Value("${shujian.ak}")
    String ak;
    @Value("${shujian.url}")
    String sjUrl;
    @Value("${shujian.url1}")
    String sjUrl1;
    @Resource
    PathHelper pathHelper;
    @Value("${shujian.url5}")
    String sjUrl5;
    @Value("${shujian.path}")
    String sjPath;
    @Resource
    ResService resService;
@@ -59,14 +60,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);
@@ -114,21 +131,21 @@
        entity.setCreate_service(0);
        CreateLayerEntity.Layer layer = entity.getLayer();
        layer.setName(pub.getName());
        layer.setName(pub.getName() + "_" + pub.getTime());
        layer.setProjection(getEpsg(pub));
        layer.setType(TYPES.indexOf(pub.getType()));
        layer.setEnhance_type(pub.getEnhanceType());
        layer.setEnhance_factor(pub.getEnhanceFactor());
        layer.setNodata(getNoData(pub, metas));
        layer.setConfig(getColorTableConfig(entity, pub));
        CreateLayerEntity.ImagePathList imagePathList = entity.new ImagePathList();
        imagePathList.setPath(pathHelper.getConfig().getUploadPath());
        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());
            imageLists.add(imageList);
            filters.add(meta.getPath().replace("\\", "/"));
        }
        return entity;
@@ -148,7 +165,7 @@
    /**
     * 获取 nodata
     */
    private List<String> getNoData(PubEntity pub, List<MetaEntity> metas) {
    private List<Integer> getNoData(PubEntity pub, List<MetaEntity> metas) {
        int bands = 1;
        for (MetaEntity meta : metas) {
            if (StringHelper.isEmpty(meta.getBands())) {
@@ -164,12 +181,26 @@
            }
        }
        List<String> list = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < bands; i++) {
            list.add(String.valueOf(pub.getNodata()));
            list.add(pub.getNodata());
        }
        return list;
    }
    /**
     * 获取颜色表的配置
     */
    private CreateLayerEntity.Config getColorTableConfig(CreateLayerEntity entity, PubEntity pub) {
        if (null == pub.getColorTable() && null == pub.getGradientColorTable()) {
            return null;
        }
        Integer type = null != pub.getColorTable() ? 0 : 1;
        List<?> levels = null != pub.getColorTable() ? pub.getColorTable() : pub.getGradientColorTable();
        return entity.new Config(type, levels);
    }
    /**
@@ -177,7 +208,7 @@
     */
    public Integer postLayerEntity(CreateLayerEntity layerEntity) {
        Map<String, Object> map = getMapData(layerEntity);
        String url = String.format("%s/sj_raster/v6/api/layer?%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();
@@ -194,7 +225,7 @@
        layerList.add(layerId);
        CreateServiceEntity.Services services = entity.getService();
        services.setName(pub.getName());
        services.setName(pub.getName() + "_" + pub.getTime());
        services.setAccess_name(pub.getUuid());
        services.setPub_status(1);
        services.setRect_minx(-180.0);
@@ -215,7 +246,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();
@@ -232,7 +263,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);
@@ -352,7 +383,9 @@
        entity.setLayerid(layerId);
        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, sjUrl5, serviceId, StaticData.I0));
        if (StringHelper.isEmpty(entity.getGeom())) {
            entity.setGeom(StaticData.NULL);
        }
@@ -367,6 +400,7 @@
            resEntity = createResEntity(entity);
            return resService.insert(resEntity);
        } else {
            resEntity.setUpdateUser(pub.getUserId());
            resEntity.setCnName(entity.getName());
            resEntity.setUrl(entity.getUrl());
            return resService.update(resEntity);
@@ -391,7 +425,6 @@
        if (null == pub.getEpsg() || 0 == pub.getEpsg()) {
            pub.setEpsg(entity.getEpsg());
        }
    }
    /**
@@ -412,8 +445,9 @@
                deleteService(entity.getServiceid());
            }
        }
        publishService.deletes(strs);
        return publishService.deletes(strs);
        return list.size();
    }
    /**
@@ -425,7 +459,7 @@
            entity.getId_list().add(id);
            Map<String, Object> map = getMapData(entity);
            String url = String.format("%s/sj_raster/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);
@@ -445,7 +479,7 @@
            entity.getId_list().add(id);
            Map<String, Object> map = getMapData(entity);
            String url = String.format("%s/sj_raster/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);
@@ -469,8 +503,13 @@
     * delete请求(Rest)
     */
    public DeleteResultEntity deleteForRest(String url, Map<String, Object> map) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<?> entity = new HttpEntity<>(map, headers);
        RestTemplate rest = RestHelper.getRestTemplate();
        ResponseEntity<DeleteResultEntity> rs = rest.exchange(url, HttpMethod.DELETE, null, DeleteResultEntity.class, map);
        ResponseEntity<DeleteResultEntity> rs = rest.exchange(url, HttpMethod.DELETE, entity, DeleteResultEntity.class);
        return rs.getBody();
    }