package com.flightfeather.uav.repository.impl
|
|
import com.flightfeather.uav.domain.entity.CarLogin
|
import com.flightfeather.uav.domain.mapper.CarLoginMapper
|
import com.flightfeather.uav.lightshare.bean.CarLoginVo
|
import com.flightfeather.uav.repository.CarLoginRepository
|
import com.flightfeather.uav.socket.bean.CarRegisterData
|
import com.flightfeather.uav.socket.bean.ObdPackageData
|
import com.flightfeather.uav.socket.eunm.ObdCommandUnit
|
import com.github.pagehelper.PageHelper
|
import org.springframework.beans.BeanUtils
|
import org.springframework.stereotype.Repository
|
import tk.mybatis.mapper.entity.Example
|
|
/**
|
* @author riku
|
* Date: 2019/9/17
|
*/
|
@Repository
|
class CarLoginDaoImpl(val carLoginMapper: CarLoginMapper) : CarLoginRepository {
|
|
override fun saveCarLogin(packageData: ObdPackageData): Boolean {
|
|
return if (packageData.commandUnit == ObdCommandUnit.CarRegister.value) {
|
val carLogin = CarLogin().apply {
|
obdDeviceCode = packageData.deviceCode
|
}
|
|
packageData.dataUnit.forEach {
|
when (it) {
|
is CarRegisterData -> carLogin.apply {
|
loginDataTime = it.time
|
loginSerialNum = it.serialNum
|
loginSimCode = it.SIMCode
|
}
|
}
|
}
|
|
carLoginMapper.insert(carLogin) == 1
|
} else {
|
false
|
}
|
}
|
|
override fun getLoginData(deviceCode: String, pageNum: Int?, pageSize: Int?, startTime: String?, endTime: String?): List<CarLoginVo> {
|
val example = Example(CarLogin::class.java).apply {
|
createCriteria().andEqualTo("obdDeviceCode", deviceCode).run {
|
startTime?.let { andGreaterThanOrEqualTo("loginDataTime", it) }
|
endTime?.let { andLessThanOrEqualTo("loginDataTime", it) }
|
orderBy("loginDataTime").desc()
|
}
|
}
|
|
//分页
|
val offset = (pageSize?.times(pageNum?.minus(1) ?: 0)) ?: 0
|
PageHelper.offsetPage<CarLogin>(offset, pageSize ?: 10)
|
val result = carLoginMapper.selectByExample(example)
|
|
val resultList = mutableListOf<CarLoginVo>()
|
result.forEach {
|
val vo = CarLoginVo()
|
BeanUtils.copyProperties(it, vo)
|
resultList.add(vo)
|
}
|
|
return resultList
|
}
|
}
|