package com.moon.server.service.data; import com.alibaba.druid.support.spring.stat.annotation.Stat; import com.moon.server.entity.all.StaticData; import com.moon.server.entity.ctrl.PubEntity; import com.moon.server.entity.data.PublishEntity; import com.moon.server.entity.shujian.*; import com.moon.server.helper.HttpHelper; import com.moon.server.helper.StringHelper; import io.swagger.models.auth.In; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 数简.服务 * @author WWW */ @Service public class ShuJianService { private final static Log log = LogFactory.getLog(ShuJianService.class); @Value("${shujian.ak}") private String ak; @Value("${shujian.url}") private String sjUrl; @Resource PublishService publishService; /** * 分页查询数简的颜色表 */ public void selectSjColorTables(Integer pageSize, Integer pageIndex, HttpServletRequest req, HttpServletResponse res) { try { String url = String.format("%s/sj_raster/v6/api/color_table?%s&page_count=%d&page_num=%d&key=", sjUrl, ak, pageSize, pageIndex); HttpHelper httpHelper = new HttpHelper(); httpHelper.service(req, res, null, url); } catch (Exception ex) { log.error(ex.getMessage(), ex); } } /** * 插入数简服务 */ public Integer insertSjService(PubEntity pubEntity, HttpServletRequest req, HttpServletResponse res) { CreateLayerEntity layerEntity = createLayerEntity(pubEntity); LayerResultEntity layerResult = postLayerEntity(layerEntity); if (null == layerResult || !StaticData.SUCCESS.equals(layerResult.getStatus()) || null == layerResult.getResult().getLayer_id()) { return 0; } CreateServiceEntity serviceEntity = createServiceEntity(pubEntity); ServiceResultEntity serviceResult = postServiceEntity(serviceEntity); if (null == serviceResult || !StaticData.SUCCESS.equals(serviceResult.getStatus()) || null == serviceResult.getResult()) { return 0; } PublishEntity publishEntity = createPublishEntity(pubEntity, layerResult.getResult().getLayer_id(), serviceResult.getResult()); return publishService.insert(publishEntity); } /** * 创建图层实体类 */ public CreateLayerEntity createLayerEntity(PubEntity pubEntity) { CreateLayerEntity entity = new CreateLayerEntity(1, 3); entity.setCreate_service(0); CreateLayerEntity.Layer layer = entity.getLayer(); layer.setName(""); layer.setProjection("ESRI:" + StaticData.I104903); layer.setType(0); layer.setEnhance_type(0); String[] noData = new String[3]; noData[0] = "0"; noData[1] = "0"; noData[2] = "0"; layer.setNodata(noData); CreateLayerEntity.ImagePathList imagePathList = entity.getImage_path_list().get(0); imagePathList.setPath(""); List imageLists = entity.getImage_list(); CreateLayerEntity.ImageList imageList = imageLists.get(0); imageList.setPath(""); return entity; } /** * 发送图层实体类 */ public LayerResultEntity postLayerEntity(CreateLayerEntity layerEntity) { // return new LayerResultEntity(); } /** * 创建服务实体类 */ public CreateServiceEntity createServiceEntity(PubEntity pubEntity) { CreateServiceEntity entity = new CreateServiceEntity(); List layerList = entity.getLayer_list(); CreateServiceEntity.Services services = entity.getService(); services.setName(""); services.setAccess_name(StringHelper.getGuid()); services.setPub_status(1); services.setRect_minx(-180.0); services.setRect_miny(-90.0); services.setRect_maxx(180.0); services.setRect_maxy(90.0); services.setProjection("ESRI:" + StaticData.I104903); services.setSat_id(-1); services.setSensor_id(-1); services.setImage_type(-1); return entity; } /** * 发送图层实体类 */ public ServiceResultEntity postServiceEntity(CreateServiceEntity serviceEntity) { // return new ServiceResultEntity(); } /** * 创建发布实体类 */ public PublishEntity createPublishEntity(PubEntity pub, Integer layerId, Integer serviceId) { PublishEntity entity = new PublishEntity(); entity.setType(pub.getType()); entity.setName(pub.getName()); entity.setMin(pub.getMin()); entity.setMax(pub.getMax()); entity.setBak((StaticData.I104903 == pub.getEpsgCode() ? "ESRI:" : "EPSG:") + pub.getEpsgCode()); entity.setCreateUser(pub.getUserId()); return entity; } /** * 插入数简服务 */ public Integer updateSjService(PubEntity pubEntity, HttpServletRequest req, HttpServletResponse res) { // return 1; } /** * 删除数简服务 */ public Integer deletesSjServices(List ids) { String strs = StringHelper.join(ids, ","); List list = publishService.selectByIds(strs); if (null == list || list.isEmpty()) { return 0; } for (PublishEntity entity : list) { if (null != entity.getLayerid()) { deleteLayer(entity.getLayerid()); } if (null != entity.getServiceid()) { deleteService(entity.getServiceid()); } } return publishService.deletes(strs); } /** * 删除图层 */ public void deleteLayer(Integer id) { try { DeleteEntity entity = new DeleteEntity(); entity.getId_list().add(id); //.. } catch (Exception ex) { log.error(ex.getMessage(), ex); } } /** * 删除服务 */ public void deleteService(Integer id) { try { DeleteEntity entity = new DeleteEntity(); entity.getId_list().add(id); //.. } catch (Exception ex) { log.error(ex.getMessage(), ex); } } }