月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-09-14 f2710a490b9e1642d9b4d32c8bcf1e0461b1cd3e
src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@@ -76,6 +77,8 @@
    private final static String MISSION_STATUS = "%s/sj_raster/v6/api/mission/%d?op=get_status&%s";
    private final static String COLOR_TABLE = "%s/sj_raster/v6/api/color_table?%s&page_count=%d&page_num=%d&key=";
    private final static String IMAGE_INFO = "%s/sj_raster/v6/api/image?%s&key=&page_num=1&page_count=1000&layer_id=%d";
    /**
     * 分页查询数简的颜色表
@@ -636,4 +639,65 @@
        return flag ? null : rs.getResult();
    }
    /**
     * 更新数简图层的拉伸方式
     */
    public Integer updateSjLayerStretch(PubEntity entity) {
        PublishEntity pub = publishService.selectByLayerId(entity.getLayerId());
        if (null == pub || null == pub.getLayerid()) {
            return 0;
        }
        ImageResultEntity ir = selectImageInfo(pub.getLayerid());
        if (null == ir || null == ir.getResult() || null == ir.getResult().getItem_list()) {
            return 0;
        }
        List<ImageResultEntity.Image> itemList = ir.getResult().getItem_list();
        for (ImageResultEntity.Image image : itemList) {
            Integer imgId = updateImageLayerStretch(image.getData_id(), entity);
        }
        pub.setUpdateUser(entity.getUserId());
        if (null == pub.getGeom()) {
            pub.setGeom("null");
        }
        return publishService.update(pub);
    }
    /**
     * 根据图层ID查询影像信息
     */
    public ImageResultEntity selectImageInfo(Integer layerId) {
        try {
            String url = String.format(IMAGE_INFO, sjUrl5, ak, layerId);
            RestTemplate rest = RestHelper.getRestTemplate();
            ResponseEntity<ImageResultEntity> resp = rest.getForEntity(url, ImageResultEntity.class);
            return resp.getBody();
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return null;
        }
    }
    /**
     * 更新影像图层的拉伸方式
     */
    private Integer updateImageLayerStretch(Integer imageLayerId, PubEntity entity) {
        String url = String.format("%s/sj_raster/v6/api/image/%d?op=update&%s", sjUrl5, imageLayerId, ak);
        Map<String, Object> map = new HashMap<>(3);
        map.put("tile_rgb", entity.getTile_rgb());
        map.put("enhance_type", entity.getEnhanceType());
        map.put("enhance_factor", entity.getEnhanceFactor());
        ServiceResultEntity rs = postForRest(url, map, ServiceResultEntity.class);
        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus());
        return flag ? null : rs.getResult();
    }
}