From fb1dc85a9ae6a9b8426ec5e29eb0139933ebe233 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期日, 29 九月 2019 11:22:24 +0800
Subject: [PATCH] 新增接口: 1. 获取某设备某时间段的数据流个数

---
 src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdDataServiceImpl.kt |    3 +++
 src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt           |    7 +++++++
 src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt          |   19 +++++++++++++++++++
 src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt          |    8 ++++++++
 src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt            |    5 +++++
 5 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt b/src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt
index 751500b..00d5915 100644
--- a/src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt
+++ b/src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt
@@ -34,8 +34,16 @@
     fun getDataStream(deviceCode: String, pageNum: Int?, pageSize: Int?, startTime: String?, endTime: String?): List<DataStreamVo>
 
     /**
+     * 鏍规嵁缁堢璁惧鐮佽幏鍙栨暟鎹祦鏁版嵁璁℃暟
+     */
+    fun getDataStreamCount(deviceCode: String, startTime: String?, endTime: String?): Int
+
+    /**
      * 鏍规嵁缁堢璁惧鐮佽幏鍙栨渶鏂扮粡绾害
      */
     fun getCoordinate(deviceCode: String): LatLngVo
 
+    /**
+     * 鏍规嵁缁堢璁惧鐮佸強鏃堕棿娈碉紝缁欏嚭姝ゆ鏃堕棿鍐�
+     */
 }
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdDataServiceImpl.kt b/src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdDataServiceImpl.kt
index afe9da7..c2babe3 100644
--- a/src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdDataServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdDataServiceImpl.kt
@@ -33,6 +33,9 @@
     override fun getDataStream(deviceCode: String, pageNum: Int?, pageSize: Int?, startTime: String?, endTime: String?): List<DataStreamVo>
             = dataStreamRepository.getDataStream(deviceCode, pageNum, pageSize, startTime, endTime)
 
+    override fun getDataStreamCount(deviceCode: String, startTime: String?, endTime: String?): Int
+            = dataStreamRepository.getDataStreamCount(deviceCode, startTime, endTime)
+
     override fun getCoordinate(deviceCode: String): LatLngVo
             = dataStreamRepository.getCoordinate(deviceCode)
 }
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt b/src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt
index 04ebc19..e6bcaff 100644
--- a/src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt
+++ b/src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt
@@ -52,6 +52,13 @@
             @RequestParam("endTime", required = false) endTime: String?
     ) = obdDataService.getDataStream(deviceCode, pageNum, pageSize, startTime, endTime)
 
+    @GetMapping("/dataStream/count")
+    fun getDataStreamCount(
+            @RequestParam("deviceCode") deviceCode: String = "",
+            @RequestParam("startTime", required = false) startTime: String?,
+            @RequestParam("endTime", required = false) endTime: String?
+    ) = obdDataService.getDataStreamCount(deviceCode, startTime, endTime)
+
     @GetMapping("/coordinate/{deviceCode}")
     fun getCoordinate(
             @PathVariable("deviceCode") deviceCode: String
diff --git a/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt b/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt
index 45a2dcb..fb4570f 100644
--- a/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt
+++ b/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt
@@ -21,6 +21,11 @@
     fun getDataStream(deviceCode: String, pageNum: Int?, pageSize: Int?, startTime: String?, endTime: String?): List<DataStreamVo>
 
     /**
+     * 鏍规嵁缁堢璁惧鐮佽幏鍙栨暟鎹祦鏁版嵁璁℃暟
+     */
+    fun getDataStreamCount(deviceCode: String, startTime: String?, endTime: String?): Int
+
+    /**
      * 鏍规嵁缁堢璁惧鐮佽幏鍙栨渶鏂扮粡绾害
      */
     fun getCoordinate(deviceCode: String): LatLngVo
diff --git a/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt b/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt
index 927f206..a72cc1a 100644
--- a/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt
+++ b/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt
@@ -110,6 +110,25 @@
         return resultList
     }
 
+    override fun getDataStreamCount(deviceCode: String, startTime: String?, endTime: String?): Int {
+        val sf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+        val example = Example(DataStream::class.java).apply {
+            createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {
+                startTime?.let {
+                    val st = sf.parse(startTime)
+                    andGreaterThanOrEqualTo("obdDataTime", st)
+                }
+                endTime?.let {
+                    val et = sf.parse(endTime)
+                    andLessThanOrEqualTo("obdDataTime", et)
+                }
+                orderBy("obdDataTime").desc()
+            }
+        }
+
+        return dataStreamMapper.selectCountByExample(example)
+    }
+
     override fun getCoordinate(deviceCode: String): LatLngVo {
         val example = Example(DataStream::class.java).apply {
             createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {

--
Gitblit v1.9.3