From 4cb662daa3d2760cc4c892e58f73cbf10b265f6f Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 11 十二月 2020 11:55:56 +0800
Subject: [PATCH] 新增经纬度、和时间的解析逻辑

---
 src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt b/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
index c507354..5c548e2 100644
--- a/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
@@ -3,9 +3,12 @@
 import com.flightfeather.uav.domain.entity.RealTimeData
 import com.flightfeather.uav.domain.mapper.RealTimeDataMapper
 import com.flightfeather.uav.repository.AirDataRepository
+import com.flightfeather.uav.socket.bean.AirData
 import com.flightfeather.uav.socket.bean.AirDataPackage
+import com.flightfeather.uav.socket.eunm.FactorType
 import com.google.gson.Gson
 import org.springframework.stereotype.Repository
+import java.util.*
 
 /**
  * @author riku
@@ -15,7 +18,6 @@
 class AirDataRepositoryImpl(private val realTimeDataMapper: RealTimeDataMapper): AirDataRepository {
 
     override fun saveAirData(dataPackage: AirDataPackage): Int {
-
         val data = RealTimeData().apply {
             deviceCode = dataPackage.deviceCode
             latitude
@@ -25,6 +27,25 @@
             factors = Gson().toJson(dataPackage.dataUnit)
             dataTime = dataPackage.dataTime
         }
+        dataPackage.dataUnit.forEach {
+            if (it is AirData) {
+                when (it.factorId?.toInt()) {
+                    FactorType.LAT.value -> {
+                        data.latitude = it.factorData?.toBigDecimal()
+                    }
+                    FactorType.LNG.value -> {
+                        data.longitude = it.factorData?.toBigDecimal()
+                    }
+                    FactorType.TIME.value -> {
+                        it.factorData?.let { f-> Date(f)}?.let {d ->
+                            data.dataTime = d
+                        }
+                    }
+                }
+            }
+        }
+
+
         realTimeDataMapper.insert(data)
 
         return 0

--
Gitblit v1.9.3