管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-06-28 a4e74d2684146cb5e3790fddc6d077e52e71205e
发布管理的查询元数据信息时添加DOM和DEM的目录过滤功能
已重命名1个文件
已修改4个文件
71 ■■■■■ 文件已修改
data/db_cx.sql 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/data/PublishController.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/mapper/data/PublishMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/PublishService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/data/PublishMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db_cx.sql
@@ -84,6 +84,8 @@
---------------------------------------------------------------------------------------------- 
-- update lf.sys_publish a set geom = ST_GeomFromText('POINT Z (31.231025 113.223529 12)') where id = 1;
select id from lf.sys_layer where cn_name = '三维地质模型' and pid = (select id from lf.sys_layer where cn_name = '勘察' order by pid limit 1);
src/main/java/com/lf/server/controller/data/PublishController.java
@@ -56,7 +56,7 @@
                return fail("数据类别为空", null);
            }
            String types = getType(type);
            String types = getType(dircode, type);
            int count = publishService.selectMetasByCount(depcode, dircode, verid, types, name);
            if (count == 0) {
                return success(0, null);
@@ -73,12 +73,12 @@
    /**
     * èŽ·å–ç±»åž‹
     */
    private String getType(String type) throws Exception {
    private String getType(String dircode, String type) throws Exception {
        switch (type) {
            case "DOM":
                return "type in ('tif', 'tiff', 'img')";
                return "type in ('tif', 'tiff', 'img')" + getFilter(dircode, type);
            case "DEM":
                return "type in ('tif', 'tiff')";
                return "type in ('tif', 'tiff')" + getFilter(dircode, type);
            case "MPT":
                return "type = 'mpt'";
            case "3DML":
@@ -96,6 +96,34 @@
        }
    }
    /**
     * èŽ·å–è¿‡æ»¤æ¡ä»¶
     */
    private String getFilter(String dircode, String type) {
        dircode = StringHelper.isEmpty(dircode) ? "" : StringHelper.getRightLike(dircode);
        List<String> list = null;
        switch (type) {
            case "DOM":
                list = publishService.selectCodesForDir(dircode, 0);
                break;
            case "DEM":
                list = publishService.selectCodesForDir(dircode, 1);
                break;
            default:
                break;
        }
        if (null == list || list.isEmpty()) {
            return "";
        }
        for (int i = 0, c = list.size(); i < c; i++) {
            list.set(i, "'" + list.get(i) + "'");
        }
        return " and dircode not in (" + StringHelper.join(list, ",") + ")";
    }
    @SysLog()
    @ApiOperation(value = "分页查询并返回记录数")
    @ApiImplicitParams({
src/main/java/com/lf/server/mapper/data/PublishMapper.java
@@ -56,6 +56,15 @@
    public List<PublishEntity> selectByIds(String ids);
    /**
     * æ ¹æ®ç›®å½•查询DOM和DEM的编码
     *
     * @param dircode ç›®å½•
     * @param isDom   1-DOM,0-DEM
     * @return
     */
    public List<String> selectCodesForDir(String dircode, Integer isDom);
    /**
     * æ’入一条
     *
     * @param entity
src/main/java/com/lf/server/service/data/PublishService.java
@@ -72,6 +72,11 @@
    }
    @Override
    public List<String> selectCodesForDir(String dircode, Integer isDom) {
        return publishMapper.selectCodesForDir(dircode, isDom);
    }
    @Override
    public Integer insert(PublishEntity entity) {
        return publishMapper.insert(entity);
    }
src/main/resources/mapper/data/PublishMapper.xml
ÎļþÃû´Ó src/main/resources/mapper/show/PublishMapper.xml ÐÞ¸Ä
@@ -80,6 +80,25 @@
        select * from lf.sys_publish where id in (${ids}) order by id desc;
    </select>
    <select id="selectCodesForDir" resultType="java.lang.String">
        select code
        from lf.sys_dir
        <where>
            <choose>
                <when test="isDom > 0">
                    name in ('DOM', '数字正射影像图')
                </when>
                <otherwise>
                    name in ('DEM', '数字高程模型')
                </otherwise>
            </choose>
            <if test="dircode != null">
                and code like #{dircode}
            </if>
        </where>
        order by code;
    </select>
    <insert id="insert" parameterType="com.lf.server.entity.data.PublishEntity">
        insert into lf.sys_publish
        (regid,name,url,path,type,status,dirid,depid,min,max,json,create_user,create_time,bak)