管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-06-25 f9bfbd64ac5697601f0201ba2884b271b3783cd1
src/main/java/com/lf/server/service/data/PublishService.java
@@ -4,6 +4,7 @@
import com.lf.server.entity.all.ResponseMsg;
import com.lf.server.entity.all.StaticData;
import com.lf.server.entity.ctrl.PubEntity;
import com.lf.server.entity.ctrl.RegisterEntity;
import com.lf.server.entity.data.MetaEntity;
import com.lf.server.entity.data.PublishEntity;
import com.lf.server.helper.RestHelper;
@@ -29,6 +30,9 @@
public class PublishService implements PublishMapper {
    @Value("${sys.exportServer}")
    private String exportServer;
    @Value("${sys.iisHost}")
    private String iisHost;
    @Autowired
    PublishMapper publishMapper;
@@ -78,6 +82,11 @@
    }
    @Override
    public Integer insertPubDown(Integer pubid, Integer downid, Integer createUser) {
        return publishMapper.insertPubDown(pubid, downid, createUser);
    }
    @Override
    public Integer delete(int id) {
        return publishMapper.delete(id);
    }
@@ -118,7 +127,7 @@
    /**
     * 发送发布请求
     */
    public long postForPub(PubEntity entity, String method, HttpServletRequest req) throws Exception {
    public long postForPub(PubEntity entity, String method, HttpServletRequest req) {
        Map<String, Object> map = getMapData(entity);
        String str = RestHelper.postForRest(exportServer + method, map);
@@ -129,6 +138,10 @@
        ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class);
        if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) {
            return 0;
        }
        if (msg.getCount() > 0) {
            serverRegister(msg.getResult(), req);
        }
        return msg.getCount();
@@ -160,6 +173,51 @@
    }
    /**
     * 服务注册
     */
    private void serverRegister(String ids, HttpServletRequest req) {
        List<PublishEntity> list = selectByIds(ids);
        if (null == list || list.isEmpty()) {
            return;
        }
        for (PublishEntity entity : list) {
            String url = entity.getUrl().replace("{host}", iisHost);
            String type = getServerType(entity);
            RegisterEntity reg = fmeService.serverRegister(entity.getName(), url, type, req);
            if (null == reg || StringHelper.isEmpty(reg.getSerialnum())) {
                continue;
            }
            fmeService.serverApply(reg.getSerialnum(), entity.getId(), req);
            entity.setRegid(reg.getHashid());
            update(entity);
        }
    }
    /**
     * 获取服务类型
     */
    private String getServerType(PublishEntity entity) {
        switch (entity.getType()) {
            case "DOM":
                return "TMS服务";
            case "DEM":
                return "三维地形服务";
            case "mpt":
                return "三维场景服务";
            case "las":
            case "laz":
            case "cpt":
                return "三维点云服务";
            default:
                return "三维模型服务";
        }
    }
    /**
     * 删除多条
     */
    public Integer deletes(List<Integer> idList, HttpServletRequest req) {
@@ -180,6 +238,10 @@
        }
        for (PublishEntity entity : list) {
            if (StringHelper.isEmpty(entity.getRegid())) {
                continue;
            }
            try {
                fmeService.deleteRes(entity.getRegid(), req);
            } catch (Exception ex) {