From 57b3b0851b2144073522a43640c2acc9452e1719 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 30 十月 2019 14:52:34 +0800
Subject: [PATCH] 新增接口: 1. 获取车辆轨迹

---
 src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt |   62 ++++++++++++++++---------------
 1 files changed, 32 insertions(+), 30 deletions(-)

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 a72cc1a..dfe8583 100644
--- a/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt
+++ b/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt
@@ -2,6 +2,7 @@
 
 import com.flightfeather.obd.domain.entity.DataStream
 import com.flightfeather.obd.domain.mapper.DataStreamMapper
+import com.flightfeather.obd.domain.mapper.VehicleInfoMapper
 import com.flightfeather.obd.lightshare.bean.DataStreamVo
 import com.flightfeather.obd.lightshare.bean.LatLngVo
 import com.flightfeather.obd.repository.DataStreamRepository
@@ -15,13 +16,14 @@
 import org.springframework.stereotype.Repository
 import tk.mybatis.mapper.entity.Example
 import java.text.SimpleDateFormat
+import java.util.*
 
 /**
  * @author riku
  * Date: 2019/9/17
  */
 @Repository
-class DataStreamDaoImpl(val dataStreamMapper: DataStreamMapper): DataStreamRepository {
+class DataStreamDaoImpl(val dataStreamMapper: DataStreamMapper, val vehicleInfoMapper: VehicleInfoMapper): DataStreamRepository {
 
     override fun saveDataStream(packageData: ObdPackageData): Boolean {
 
@@ -84,12 +86,20 @@
         val example = Example(DataStream::class.java).apply {
             createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {
                 startTime?.let {
-                    val st = sf.parse(startTime)
-                    andGreaterThanOrEqualTo("obdDataTime", st)
+                    try {
+                        val st = sf.parse(startTime)
+                        andGreaterThanOrEqualTo("obdDataTime", st)
+                    } catch (e: Throwable) {
+                        e.printStackTrace()
+                    }
                 }
                 endTime?.let {
-                    val et = sf.parse(endTime)
-                    andLessThanOrEqualTo("obdDataTime", et)
+                    try {
+                        val et = sf.parse(endTime)
+                        andLessThanOrEqualTo("obdDataTime", et)
+                    } catch (e: Throwable) {
+                        e.printStackTrace()
+                    }
                 }
                 orderBy("obdDataTime").desc()
             }
@@ -111,16 +121,24 @@
     }
 
     override fun getDataStreamCount(deviceCode: String, startTime: String?, endTime: String?): Int {
-        val sf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+        val sf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
         val example = Example(DataStream::class.java).apply {
             createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {
                 startTime?.let {
-                    val st = sf.parse(startTime)
-                    andGreaterThanOrEqualTo("obdDataTime", st)
+                    try {
+                        val st = sf.parse(startTime)
+                        andGreaterThanOrEqualTo("obdDataTime", st)
+                    } catch (e: Throwable) {
+                        e.printStackTrace()
+                    }
                 }
                 endTime?.let {
-                    val et = sf.parse(endTime)
-                    andLessThanOrEqualTo("obdDataTime", et)
+                    try {
+                        val et = sf.parse(endTime)
+                        andLessThanOrEqualTo("obdDataTime", et)
+                    } catch (e: Throwable) {
+                        e.printStackTrace()
+                    }
                 }
                 orderBy("obdDataTime").desc()
             }
@@ -129,29 +147,13 @@
         return dataStreamMapper.selectCountByExample(example)
     }
 
-    override fun getCoordinate(deviceCode: String): LatLngVo {
+    override fun getLatestDataStream(deviceCode: String): DataStream? {
         val example = Example(DataStream::class.java).apply {
-            createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {
-                orderBy("obdDataTime").desc()
-            }
+            createCriteria().andEqualTo("obdDeviceCode", deviceCode)
+            orderBy("obdDataTime").desc()
         }
-
         //鑾峰彇鏈�鏂扮殑涓�涓�
         PageHelper.offsetPage<DataStream>(0, 1)
-        val result = dataStreamMapper.selectByExample(example)
-
-        val latLngVo = LatLngVo()
-        if (result.isNotEmpty()) {
-            result[0].let {
-                latLngVo.apply {
-                    this.deviceCode = it.obdDeviceCode
-                    obdDataTime = it.obdDataTime
-                    lat = it.obdLat
-                    lng = it.obdLong
-                }
-            }
-        }
-
-        return latLngVo
+        return dataStreamMapper.selectByExample(example).takeIf { it.isNotEmpty() }?.get(0)
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3