月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-08-25 89f9b7d46346da4f9263d27f6ce20032b9458bd5
元数据管理添加空间过滤条件
已修改4个文件
41 ■■■■ 文件已修改
src/main/java/com/moon/server/controller/data/MetaController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/mapper/data/MetaMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/service/data/MetaService.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/data/MetaMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/controller/data/MetaController.java
@@ -76,22 +76,24 @@
            @ApiImplicitParam(name = "dircode", value = "目录编码", dataType = "String", paramType = "query", example = "00"),
            @ApiImplicitParam(name = "verid", value = "版本ID", dataType = "Integer", paramType = "query", example = "0"),
            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", paramType = "query", example = ""),
            @ApiImplicitParam(name = "wkt", value = "WKT字符串", dataType = "String", paramType = "query", example = "gAPpDbZ53XfoQfvT8dj/uhBWX5os8kBJQ1LrNvH3VX7byFQdUJMPiEr8Fkj0q2i1pw+L8KFrvR0MLXq2xaO21nlQQXmEPofJxpDQZwEWUIFZsToXo1kLRD3t6WQezxWB8YTzXHM20Ba73x/ZuuezVhOFOq1U8HKf1dXQdv7gBzEB6fWMmFDc3FuH8GDDHv3LfT86Gio9VgMO6ohlrUdf3ZKtTHeLSuzGF4t0RZuX97YBNo25IIzpeTfRTXBxfdxA"),
            @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer", paramType = "query", example = "10"),
            @ApiImplicitParam(name = "pageIndex", value = "分页数(从1开始)", dataType = "Integer", paramType = "query", example = "1")
    })
    @GetMapping(value = "/selectByPageAndCount")
    public ResponseMsg<List<MetaEntity>> selectByPageAndCount(String depcode, String dircode, Integer verid, String name, Integer pageSize, Integer pageIndex) {
    public ResponseMsg<List<MetaEntity>> selectByPageAndCount(String depcode, String dircode, Integer verid, String name, String wkt, Integer pageSize, Integer pageIndex) {
        try {
            if (pageSize < 1 || pageIndex < 1) {
                return fail("每页页数或分页数小于1", null);
            }
            wkt = metaService.getGeometryFilter(wkt);
            int count = metaService.selectCount(depcode, dircode, verid, name);
            int count = metaService.selectCount(depcode, dircode, verid, name, wkt);
            if (count == 0) {
                return success(0, null);
            }
            List<MetaEntity> rs = metaService.selectByPage(depcode, dircode, verid, name, pageSize, pageSize * (pageIndex - 1));
            List<MetaEntity> rs = metaService.selectByPage(depcode, dircode, verid, name, wkt, pageSize, pageSize * (pageIndex - 1));
            return success(count, rs);
        } catch (Exception ex) {
src/main/java/com/moon/server/mapper/data/MetaMapper.java
@@ -20,9 +20,10 @@
     * @param dircode 目录编码
     * @param verid   版本ID
     * @param name    名称
     * @param wkt     WKT
     * @return 记录数
     */
    public Integer selectCount(String depcode, String dircode, Integer verid, String name);
    public Integer selectCount(String depcode, String dircode, Integer verid, String name, String wkt);
    /**
     * 分页查询
@@ -31,11 +32,12 @@
     * @param dircode 目录编码
     * @param verid   版本ID
     * @param name    名称
     * @param wkt     WKT
     * @param limit   记录数
     * @param offset  偏移量
     * @return 列表
     */
    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, Integer limit, Integer offset);
    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, String wkt, Integer limit, Integer offset);
    /**
     * 根据GUID查询GDB
src/main/java/com/moon/server/service/data/MetaService.java
@@ -48,21 +48,21 @@
    private final static Log log = LogFactory.getLog(MetaService.class);
    @Override
    public Integer selectCount(String depcode, String dircode, Integer verid, String name) {
    public Integer selectCount(String depcode, String dircode, Integer verid, String name, String wkt) {
        depcode = StringHelper.getRightLike(depcode);
        dircode = StringHelper.getRightLike(dircode);
        name = StringHelper.getLikeUpperStr(name);
        return metaMapper.selectCount(depcode, dircode, verid, name);
        return metaMapper.selectCount(depcode, dircode, verid, name, wkt);
    }
    @Override
    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, Integer limit, Integer offset) {
    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, String wkt, Integer limit, Integer offset) {
        depcode = StringHelper.getRightLike(depcode);
        dircode = StringHelper.getRightLike(dircode);
        name = StringHelper.getLikeUpperStr(name);
        return metaMapper.selectByPage(depcode, dircode, verid, name, limit, offset);
        return metaMapper.selectByPage(depcode, dircode, verid, name, wkt, limit, offset);
    }
    @Override
@@ -642,4 +642,17 @@
        metaDownService.inserts(list);
    }
    /**
     * 获取空间过滤
     */
    public String getGeometryFilter(String wkt) throws Exception {
        if (StringHelper.isEmpty(wkt)) {
            return null;
        }
        wkt = AesHelper.decrypt(wkt);
        return String.format("ST_Intersects(ST_GeomFromText('%s', %d), geom)", wkt, StaticData.I104903);
    }
}
src/main/resources/mapper/data/MetaMapper.xml
@@ -17,6 +17,9 @@
            <if test="name != null">
                and upper(name) like #{name}
            </if>
            <if test="wkt != null">
                and ${wkt}
            </if>
        </where>
    </select>
@@ -37,6 +40,9 @@
            <if test="name != null">
                and upper(name) like #{name}
            </if>
            <if test="wkt != null">
                and ${wkt}
            </if>
        </where>
        order by id desc
        limit #{limit} offset #{offset}