月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-08-31 fe9b1012e4189bcf48d74ddfa56c6143dd6883f4
src/main/java/com/moon/server/service/data/PublishService.java
@@ -7,16 +7,23 @@
import com.moon.server.entity.ctrl.RegisterEntity;
import com.moon.server.entity.data.MetaEntity;
import com.moon.server.entity.data.PublishEntity;
import com.moon.server.entity.shujian.CreateLayerEntity;
import com.moon.server.entity.shujian.CreateServiceEntity;
import com.moon.server.entity.sys.UserEntity;
import com.moon.server.helper.PathHelper;
import com.moon.server.helper.RestHelper;
import com.moon.server.helper.StringHelper;
import com.moon.server.helper.WebHelper;
import com.moon.server.mapper.data.PublishMapper;
import com.moon.server.service.sys.TokenService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
@@ -34,26 +41,34 @@
    @Value("${sys.iisHost}")
    private String iisHost;
    @Autowired
    @Resource
    PublishMapper publishMapper;
    @Autowired
    @Resource
    FmeService fmeService;
    @Resource
    PathHelper pathHelper;
    @Resource
    TokenService tokenService;
    private final static Log log = LogFactory.getLog(PublishService.class);
    @Override
    public Integer selectCount(String name) {
    public Integer selectCount(String name, String dircode, String type) {
        name = StringHelper.getLikeUpperStr(name);
        dircode = StringHelper.getRightLike(dircode);
        return publishMapper.selectCount(name);
        return publishMapper.selectCount(name, dircode, type);
    }
    @Override
    public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset) {
    public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset) {
        name = StringHelper.getLikeUpperStr(name);
        dircode = StringHelper.getRightLike(dircode);
        return publishMapper.selectByPage(name, limit, offset);
        return publishMapper.selectByPage(name, dircode, type, limit, offset);
    }
    @Override
@@ -69,6 +84,11 @@
    @Override
    public List<PublishEntity> selectByIds(String ids) {
        return publishMapper.selectByIds(ids);
    }
    @Override
    public List<String> selectCodesForDir(String dircode, Integer isDom) {
        return publishMapper.selectCodesForDir(dircode, isDom);
    }
    @Override
@@ -122,6 +142,27 @@
        name = StringHelper.getLikeUpperStr(name);
        return publishMapper.selectMetasByPage(depcode, dircode, verid, types, name, limit, offset);
    }
    public List<Integer> selectLasCs(PubEntity entity, String method, HttpServletRequest req) {
        Map<String, Object> map = getMapData(entity);
        String str = RestHelper.postForRest(exportServer + method, map);
        if (StringHelper.isEmpty(str)) {
            return null;
        }
        ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class);
        if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) {
            return null;
        }
        String rs = msg.getResult();
        if (StringHelper.isEmpty(rs)) {
            return null;
        }
        return StringHelper.strToIntegers(rs);
    }
    /**
@@ -182,6 +223,11 @@
        }
        for (PublishEntity entity : list) {
            // 避免重复注册
            if (null != entity.getUpdateTime()) {
                continue;
            }
            String url = entity.getUrl().replace("{host}", iisHost);
            String type = getServerType(entity);
@@ -208,6 +254,10 @@
                return "三维地形服务";
            case "mpt":
                return "三维场景服务";
            case "las":
            case "laz":
            case "cpt":
                return "三维点云服务";
            default:
                return "三维模型服务";
        }
@@ -245,4 +295,117 @@
            }
        }
    }
    /**
     * 删除发布文件
     */
    public void deleteFiles(List<PublishEntity> list) {
        String lfData = pathHelper.getConfig().getLfData();
        for (PublishEntity pub : list) {
            if (null != pub.getUrl() && pub.getUrl().contains("/SG/")) {
                continue;
            }
            String path = lfData + pub.getPath().replace("\\tileset.json", "");
            File file = new File(path);
            if (!file.exists() || !file.isDirectory()) {
                continue;
            }
            String cmd = String.format("cmd /c rd \"%s\" /s /q", path);
            WebHelper.exec(cmd);
        }
    }
    /**
     * 删除发布文件
     */
    public void deleteFiles(List<Integer> ids, HttpServletRequest req) {
        PubEntity entity = new PubEntity();
        entity.setIds(ids);
        entity.setDircode("00");
        UserEntity ue = tokenService.getCurrentUser(req);
        if (ue != null) {
            entity.setUserId(ue.getId());
            entity.setToken(WebHelper.getToken(req));
        }
        long rows = postForPub(entity, "/Convert/DeleteFiles");
    }
    /**
     * 发送发布请求
     */
    public long postForPub(PubEntity entity, String method) {
        Map<String, Object> map = getMapData(entity);
        String str = RestHelper.postForRest(exportServer + method, map);
        if (StringHelper.isEmpty(str)) {
            return 0;
        }
        ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class);
        if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) {
            return 0;
        }
        return msg.getCount();
    }
    /**
     * 创建数简图层
     */
    public void createShuJianLayer() {
        CreateLayerEntity entity = new CreateLayerEntity(1, 3);
        entity.setCreate_service(0);
        //
        CreateLayerEntity.Layer layer = entity.getLayer();
        layer.setName("");
        //
        CreateLayerEntity.ImagePathList[] imagePathLists = entity.getImage_path_list();
        //
        CreateLayerEntity.ImageList[] imageLists = entity.getImage_list();
        //
    }
    /**
     * 删除数简图层
     */
    public void deleteShuJianLayer() {
    }
    /**
     * 创建数简服务
     */
    public void createShuJianService() {
        CreateServiceEntity entity = new CreateServiceEntity();
        entity.setLayer_list(new Integer[3]);
        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);
    }
    /**
     * 删除数简图层
     */
    public void deleteShuJianService() {
    }
}