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/lightshare/service/impl/ObdDataServiceImpl.kt | 30 ++++++++++++++-
src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt | 8 ++++
src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt | 29 +-------------
src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt | 5 ++
src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt | 5 --
5 files changed, 43 insertions(+), 34 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 dbcd2e2..51d6d79 100644
--- a/src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt
+++ b/src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt
@@ -44,6 +44,11 @@
fun getCoordinate(deviceCode: String): LatLngVo
/**
+ * 鏍规嵁缁堢璁惧鐮佷互鍙婃椂闀縯 鑾峰彇t涔嬪墠鍒扮幇鍦ㄧ殑鎵�鏈夎建杩瑰潗鏍�
+ */
+ fun getTrack(deviceCode: String, startTime: String, endTime: String): List<LatLngVo>
+
+ /**
* 鑾峰彇鏈�鏂扮殑杞﹁締鍧愭爣淇℃伅
*/
fun getLatestCoordinate(pageNum: Int?, pageSize: Int?): List<LatLngVo>
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 f843a60..1c1ccfa 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
@@ -49,8 +49,34 @@
override fun getDataStreamCount(deviceCode: String, startTime: String?, endTime: String?): Int
= dataStreamRepository.getDataStreamCount(deviceCode, startTime, endTime)
- override fun getCoordinate(deviceCode: String): LatLngVo
- = dataStreamRepository.getCoordinate(deviceCode)
+ override fun getCoordinate(deviceCode: String): LatLngVo{
+ val latLngVo = LatLngVo()
+ dataStreamRepository.getLatestDataStream(deviceCode)?.let {
+ latLngVo.apply {
+ this.deviceCode = it.obdDeviceCode
+ obdDataTime = it.obdDataTime
+ lat = it.obdLat
+ lng = it.obdLong
+ }
+ }
+
+ return latLngVo
+ }
+
+ override fun getTrack(deviceCode: String, startTime: String, endTime: String): List<LatLngVo> {
+ val resultList = mutableListOf<LatLngVo>()
+ //2019.10.30 鐩墠鍓嶇瀹夊崜璁惧畾鏈�闀胯幏鍙栫殑鏃堕暱涓�6灏忔椂鍓嶈嚦鐜板湪鐨勬暟鎹紝鎸夌収obd 姣�10绉掍腑浜х敓涓�鏉℃暟鎹紝鏈�澶�4 * 360 = 1440 鏉�
+ dataStreamRepository.getDataStream(deviceCode, 1, 1500, startTime, endTime).forEach {
+ val latLngVo = LatLngVo().apply {
+ this.deviceCode = it.obdDeviceCode
+ obdDataTime = it.obdDataTime
+ lat = it.obdLat
+ lng = it.obdLong
+ }
+ resultList.add(latLngVo)
+ }
+ return resultList
+ }
override fun getLatestCoordinate(pageNum: Int?, pageSize: Int?): List<LatLngVo> {
val resultList = mutableListOf<LatLngVo>()
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 8c902e4..37fb916 100644
--- a/src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt
+++ b/src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdDataController.kt
@@ -2,6 +2,7 @@
import com.flightfeather.obd.lightshare.service.ObdDataService
import org.springframework.web.bind.annotation.*
+import java.time.Duration
/**
* @author riku
@@ -64,6 +65,13 @@
@PathVariable("deviceCode") deviceCode: String
) = obdDataService.getCoordinate(deviceCode)
+ @GetMapping("/coordinate/track")
+ fun getTrack(
+ @RequestParam("deviceCode") deviceCode: String,
+ @RequestParam("startTime") startTime: String,
+ @RequestParam("endTime") endTime: String
+ ) = obdDataService.getTrack(deviceCode, startTime, endTime)
+
@GetMapping("/coordinate/latest")
fun getCoordinate(
@RequestParam("page", required = false) pageNum: Int?,
diff --git a/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt b/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt
index 2e3bf1c..9f2df62 100644
--- a/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt
+++ b/src/main/kotlin/com/flightfeather/obd/repository/DataStreamRepository.kt
@@ -27,11 +27,6 @@
fun getDataStreamCount(deviceCode: String, startTime: String?, endTime: String?): Int
/**
- * 鏍规嵁缁堢璁惧鐮佽幏鍙栨渶鏂扮粡绾害
- */
- fun getCoordinate(deviceCode: String): LatLngVo
-
- /**
* 鑾峰彇涓�杈嗚溅鏈�鏂扮殑涓�鏉$姸鎬佷俊鎭�
*/
fun getLatestDataStream(deviceCode: String): DataStream?
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 9fcd476..dfe8583 100644
--- a/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt
+++ b/src/main/kotlin/com/flightfeather/obd/repository/impl/DataStreamDaoImpl.kt
@@ -16,6 +16,7 @@
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
import java.text.SimpleDateFormat
+import java.util.*
/**
* @author riku
@@ -120,7 +121,7 @@
}
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 {
@@ -144,32 +145,6 @@
}
return dataStreamMapper.selectCountByExample(example)
- }
-
- override fun getCoordinate(deviceCode: String): LatLngVo {
- val example = Example(DataStream::class.java).apply {
- createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {
- 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
}
override fun getLatestDataStream(deviceCode: String): DataStream? {
--
Gitblit v1.9.3