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
@@ -21,7 +22,7 @@
 * 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 +85,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()
            }
@@ -115,12 +124,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()
            }
@@ -154,4 +171,14 @@
        return latLngVo
    }
    override fun getLatestDataStream(deviceCode: String): DataStream? {
        val example = Example(DataStream::class.java).apply {
            createCriteria().andEqualTo("obdDeviceCode", deviceCode)
            orderBy("obdDataTime").desc()
        }
        //获取最新的一个
        PageHelper.offsetPage<DataStream>(0, 1)
        return dataStreamMapper.selectByExample(example).takeIf { it.isNotEmpty() }?.get(0)
    }
}