From 4e7ae7e903a07389607cf47ad8f2bbd5e8ccd8d6 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 30 八月 2023 10:18:50 +0800
Subject: [PATCH] 元数据查询接口添加传感器类型、元数据类型、开始日期、结束日期参数

---
 src/main/java/com/moon/server/entity/all/StaticData.java          |    2 
 src/main/java/com/moon/server/controller/data/MetaController.java |   17 +++++++-
 src/main/java/com/moon/server/mapper/data/MetaMapper.java         |   37 +++++++++++-------
 src/main/java/com/moon/server/service/data/RasterService.java     |    2 
 src/main/java/com/moon/server/service/data/MetaService.java       |    8 ++--
 src/main/resources/mapper/data/MetaMapper.xml                     |   24 ++++++++++++
 6 files changed, 67 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/moon/server/controller/data/MetaController.java b/src/main/java/com/moon/server/controller/data/MetaController.java
index 9de1c7b..46088f4 100644
--- a/src/main/java/com/moon/server/controller/data/MetaController.java
+++ b/src/main/java/com/moon/server/controller/data/MetaController.java
@@ -30,6 +30,7 @@
 import com.moon.server.helper.StringHelper;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -38,6 +39,7 @@
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -76,24 +78,33 @@
             @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 = "sensorType", value = "浼犳劅鍣ㄧ被鍨�", dataType = "Integer", paramType = "query", example = "0"),
+            @ApiImplicitParam(name = "mataType", value = "鍏冩暟鎹被鍨�", dataType = "Integer", paramType = "query", example = "0"),
+            @ApiImplicitParam(name = "startDate", value = "寮�濮嬫棩鏈�", dataType = "Date", paramType = "query", example = "0"),
+            @ApiImplicitParam(name = "endDate", value = "缁撴潫鏃ユ湡", dataType = "Date", paramType = "query", example = "0"),
             @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, String wkt, Integer pageSize, Integer pageIndex) {
+    public ResponseMsg<List<MetaEntity>> selectByPageAndCount(String depcode, String dircode, Integer verid, String name, Integer sensorType, Integer mataType, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startDate, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endDate, String wkt, Integer pageSize, Integer pageIndex) {
         try {
             if (pageSize < 1 || pageIndex < 1) {
                 return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null);
             }
+            if (startDate != null && endDate != null && startDate.getTime() > endDate.getTime()) {
+                Date tmp = startDate;
+                startDate = endDate;
+                endDate = tmp;
+            }
             wkt = metaService.getGeometryFilter(wkt);
 
-            int count = metaService.selectCount(depcode, dircode, verid, name, wkt);
+            int count = metaService.selectCount(depcode, dircode, verid, name, sensorType, mataType, startDate, endDate, wkt);
             if (count == 0) {
                 return success(0, null);
             }
 
-            List<MetaEntity> rs = metaService.selectByPage(depcode, dircode, verid, name, wkt, pageSize, pageSize * (pageIndex - 1));
+            List<MetaEntity> rs = metaService.selectByPage(depcode, dircode, verid, name, sensorType, mataType, startDate, endDate, wkt, pageSize, pageSize * (pageIndex - 1));
 
             return success(count, rs);
         } catch (Exception ex) {
diff --git a/src/main/java/com/moon/server/entity/all/StaticData.java b/src/main/java/com/moon/server/entity/all/StaticData.java
index 0ef5fb3..fa3b9df 100644
--- a/src/main/java/com/moon/server/entity/all/StaticData.java
+++ b/src/main/java/com/moon/server/entity/all/StaticData.java
@@ -196,7 +196,7 @@
 
     public final static String MOON200 = "GCS_Moon_2000";
 
-    public final static List<String> EPSGS = new ArrayList<>(Arrays.asList("EPSG:4326", "EPSG:4490", "ESRI:104903"));
+    public final static List<String> EPSGS = new ArrayList<>(Arrays.asList("EPSG:4326", "EPSG:4490", "EPSG:104903"));
 
     /**
      * 16杩涘埗
diff --git a/src/main/java/com/moon/server/mapper/data/MetaMapper.java b/src/main/java/com/moon/server/mapper/data/MetaMapper.java
index 70ab170..789b703 100644
--- a/src/main/java/com/moon/server/mapper/data/MetaMapper.java
+++ b/src/main/java/com/moon/server/mapper/data/MetaMapper.java
@@ -4,6 +4,7 @@
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -16,28 +17,36 @@
     /**
      * 鏌ヨ璁板綍鏁�
      *
-     * @param depcode 鍗曚綅缂栫爜
-     * @param dircode 鐩綍缂栫爜
-     * @param verid   鐗堟湰ID
-     * @param name    鍚嶇О
-     * @param wkt     WKT
+     * @param depcode    鍗曚綅缂栫爜
+     * @param dircode    鐩綍缂栫爜
+     * @param verid      鐗堟湰ID
+     * @param name       鍚嶇О
+     * @param sensorType 浼犳劅鍣ㄧ被鍨�
+     * @param mataType   鍏冩暟鎹被鍨�
+     * @param startDate  寮�濮嬫棩鏈�
+     * @param endDate    缁撴潫鏃ユ湡
+     * @param wkt        WKT
      * @return 璁板綍鏁�
      */
-    public Integer selectCount(String depcode, String dircode, Integer verid, String name, String wkt);
+    public Integer selectCount(String depcode, String dircode, Integer verid, String name, Integer sensorType, Integer mataType, Date startDate, Date endDate, String wkt);
 
     /**
      * 鍒嗛〉鏌ヨ
      *
-     * @param depcode 鍗曚綅缂栫爜
-     * @param dircode 鐩綍缂栫爜
-     * @param verid   鐗堟湰ID
-     * @param name    鍚嶇О
-     * @param wkt     WKT
-     * @param limit   璁板綍鏁�
-     * @param offset  鍋忕Щ閲�
+     * @param depcode    鍗曚綅缂栫爜
+     * @param dircode    鐩綍缂栫爜
+     * @param verid      鐗堟湰ID
+     * @param name       鍚嶇О
+     * @param sensorType 浼犳劅鍣ㄧ被鍨�
+     * @param mataType   鍏冩暟鎹被鍨�
+     * @param startDate  寮�濮嬫棩鏈�
+     * @param endDate    缁撴潫鏃ユ湡
+     * @param wkt        WKT
+     * @param limit      璁板綍鏁�
+     * @param offset     鍋忕Щ閲�
      * @return 鍒楄〃
      */
-    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, String wkt, Integer limit, Integer offset);
+    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, Integer sensorType, Integer mataType, Date startDate, Date endDate, String wkt, Integer limit, Integer offset);
 
     /**
      * 鏍规嵁GUID鏌ヨGDB
diff --git a/src/main/java/com/moon/server/service/data/MetaService.java b/src/main/java/com/moon/server/service/data/MetaService.java
index 0a81ed8..605be1e 100644
--- a/src/main/java/com/moon/server/service/data/MetaService.java
+++ b/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, String wkt) {
+    public Integer selectCount(String depcode, String dircode, Integer verid, String name, Integer sensorType, Integer mataType, Date startDate, Date endDate, String wkt) {
         depcode = StringHelper.getRightLike(depcode);
         dircode = StringHelper.getRightLike(dircode);
         name = StringHelper.getLikeUpperStr(name);
 
-        return metaMapper.selectCount(depcode, dircode, verid, name, wkt);
+        return metaMapper.selectCount(depcode, dircode, verid, name, sensorType, mataType, startDate, endDate, wkt);
     }
 
     @Override
-    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, String wkt, Integer limit, Integer offset) {
+    public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, Integer sensorType, Integer mataType, Date startDate, Date endDate, 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, wkt, limit, offset);
+        return metaMapper.selectByPage(depcode, dircode, verid, name, sensorType, mataType, startDate, endDate, wkt, limit, offset);
     }
 
     @Override
diff --git a/src/main/java/com/moon/server/service/data/RasterService.java b/src/main/java/com/moon/server/service/data/RasterService.java
index e16e9ff..21f89d2 100644
--- a/src/main/java/com/moon/server/service/data/RasterService.java
+++ b/src/main/java/com/moon/server/service/data/RasterService.java
@@ -67,7 +67,7 @@
             mf.setCoorSys(sr.GetName());
             if (StaticData.MOON200.equals(mf.getCoorSys())) {
                 // EPSG缂栫爜
-                mf.setEpsg("ESRI:" + StaticData.I104903);
+                mf.setEpsg("EPSG:" + StaticData.I104903);
             } else {
                 // EPSG缂栫爜锛歅ROJCS銆丟EOGCS銆丟EOGCS|UNIT 鎴� NULL
                 String code = sr.GetAuthorityCode(null);
diff --git a/src/main/resources/mapper/data/MetaMapper.xml b/src/main/resources/mapper/data/MetaMapper.xml
index 5e89121..e3a0c7b 100644
--- a/src/main/resources/mapper/data/MetaMapper.xml
+++ b/src/main/resources/mapper/data/MetaMapper.xml
@@ -17,6 +17,18 @@
             <if test="name != null">
                 and upper(name) like #{name}
             </if>
+            <if test="sensorType != null">
+                and sensortype = #{sensorType}
+            </if>
+            <if test="mataType != null">
+                and mata_type = #{mataType}
+            </if>
+            <if test="startDate != null">
+                and acq_time >= #{startDate}
+            </if>
+            <if test="endDate != null">
+                and acq_time &lt;= #{endDate}
+            </if>
             <if test="wkt != null">
                 and ${wkt}
             </if>
@@ -40,6 +52,18 @@
             <if test="name != null">
                 and upper(name) like #{name}
             </if>
+            <if test="sensorType != null">
+                and sensortype = #{sensorType}
+            </if>
+            <if test="mataType != null">
+                and mata_type = #{mataType}
+            </if>
+            <if test="startDate != null">
+                and acq_time >= #{startDate}
+            </if>
+            <if test="endDate != null">
+                and acq_time &lt;= #{endDate}
+            </if>
             <if test="wkt != null">
                 and ${wkt}
             </if>

--
Gitblit v1.9.3