package com.flightfeather.uav.repository.impl
|
|
import com.flightfeather.uav.domain.entity.ObdInfo
|
import com.flightfeather.uav.domain.mapper.ObdInfoMapper
|
import com.flightfeather.uav.repository.ObdInfoRepository
|
import com.flightfeather.uav.socket.bean.ObdPackageData
|
import com.flightfeather.uav.socket.eunm.ObdCommandUnit
|
import com.github.pagehelper.PageHelper
|
import org.springframework.stereotype.Repository
|
import tk.mybatis.mapper.entity.Example
|
|
/**
|
* @author riku
|
* Date: 2019/9/17
|
*/
|
@Repository
|
class ObdInfoDaoImpl(val obdInfoMapper: ObdInfoMapper) : ObdInfoRepository {
|
|
override fun saveObdInfo(packageData: ObdPackageData): Boolean {
|
|
return if (packageData.commandUnit == ObdCommandUnit.RealTimeData.value
|
|| packageData.commandUnit == ObdCommandUnit.ReplacementData.value) {
|
|
val obdInfo = ObdInfo().apply {
|
obdDeviceCode = packageData.deviceCode
|
obdStatus = packageData.commandUnit == ObdCommandUnit.ReplacementData.value
|
}
|
|
packageData.dataUnit.forEach {
|
when (it) {
|
is com.flightfeather.uav.socket.bean.ObdInfo -> {
|
obdInfo.apply {
|
obdDataTime = it.time
|
obdSerialNum = it.serialNum
|
obdProtocol = it.obdProtocol
|
obdMil = it.obdMil
|
obdDiagnosisSupportStatus = it.diagnosisSupportStatus
|
obdDiagnosisReadyStatus = it.diagnosisReadyStatus
|
obdVin = it.obdVin
|
obdCrn = it.obdCrn
|
obdCvn = it.obdCvn
|
obdIupr = it.iupr
|
obdFaultCodeNum = it.obdFaultCodeNum
|
obdFaultCode = it.obdFaultCode
|
}
|
}
|
}
|
}
|
|
obdInfoMapper.insert(obdInfo) == 1
|
} else {
|
false
|
}
|
}
|
|
override fun getObdInfo(deviceCode: String, pageNum: Int?, pageSize: Int?): List<ObdInfo> {
|
val example = Example(ObdInfo::class.java).apply {
|
createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {
|
orderBy("obdDataTime").desc()
|
}
|
}
|
|
//分页
|
val offset = (pageSize?.times(pageNum?.minus(1) ?: 0)) ?: 0
|
PageHelper.offsetPage<ObdInfo>(offset, pageSize ?: 10)
|
return obdInfoMapper.selectByExample(example)
|
}
|
}
|