riku
2019-09-05 197d6766d056fda4fdf9e1f9ee26de9f9a480ef5
完成警报、阈值的插入、更新、获取等接口
已修改6个文件
已添加10个文件
294 ■■■■■ 文件已修改
src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdAlarmService.kt 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdThresholdValueService.kt 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdAlarmServiceImpl.kt 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdThresholdValueServiceImpl.kt 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdAlarmController.kt 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdThresholdController.kt 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/repository/ObdAlarmRepository.kt 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/repository/ObdDataRepository.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/repository/ObdThresholdValueRepository.kt 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/repository/impl/ObdAlarmDaoImpl.kt 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/repository/impl/ObdThresholdValueDaoImpl.kt 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/socket/ServerHandler.kt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdAlarmService.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.flightfeather.obd.lightshare.service
import com.flightfeather.obd.lightshare.bean.AlarmDataVo
/**
 * @author riku
 * Date: 2019/9/5
 */
interface ObdAlarmService {
    /**
     * æ ¹æ®vin码获取警报数据
     */
    fun getAlarmByVinCode(vinCode: String, pageNum: Int?, pageSize: Int?): MutableList<AlarmDataVo>
}
src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdDataService.kt
@@ -8,6 +8,9 @@
 */
interface ObdDataService {
    /**
     * æ ¹æ®vin码获取对应数据
     */
    fun getDataByVinCode(vinCode: String, pageNum: Int?, pageSize: Int?): MutableList<ObdDataVo>
}
src/main/kotlin/com/flightfeather/obd/lightshare/service/ObdThresholdValueService.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.flightfeather.obd.lightshare.service
import com.flightfeather.obd.lightshare.bean.ThresholdValueVo
/**
 * @author riku
 * Date: 2019/9/5
 */
interface ObdThresholdValueService {
    /**
     * ä¿å­˜
     */
    fun save(thresholdValueVo: ThresholdValueVo): Boolean
    /**
     * æ›´æ–°
     */
    fun update(thresholdValueVo: ThresholdValueVo): Boolean
    /**
     * æ ¹æ®vin码获取对应阈值
     */
    fun getDataByVinCode(vinCode: String): ThresholdValueVo?
}
src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdAlarmServiceImpl.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.flightfeather.obd.lightshare.service.impl
import com.flightfeather.obd.lightshare.bean.AlarmDataVo
import com.flightfeather.obd.lightshare.service.ObdAlarmService
import com.flightfeather.obd.repository.ObdAlarmRepository
import org.springframework.stereotype.Service
/**
 * @author riku
 * Date: 2019/9/5
 */
@Service
class ObdAlarmServiceImpl(val obdAlarmRepository: ObdAlarmRepository) : ObdAlarmService {
    override fun getAlarmByVinCode(vinCode: String, pageNum: Int?, pageSize: Int?): MutableList<AlarmDataVo> {
        return obdAlarmRepository.getAlarmByVinCode(vinCode, pageNum, pageSize)
    }
}
src/main/kotlin/com/flightfeather/obd/lightshare/service/impl/ObdThresholdValueServiceImpl.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.flightfeather.obd.lightshare.service.impl
import com.flightfeather.obd.lightshare.bean.ThresholdValueVo
import com.flightfeather.obd.lightshare.service.ObdThresholdValueService
import com.flightfeather.obd.repository.ObdThresholdValueRepository
import org.springframework.stereotype.Service
/**
 * @author riku
 * Date: 2019/9/5
 */
@Service
class ObdThresholdValueServiceImpl(val obdThresholdValueRepository: ObdThresholdValueRepository) : ObdThresholdValueService {
    override fun save(thresholdValueVo: ThresholdValueVo): Boolean {
        return obdThresholdValueRepository.save(thresholdValueVo)
    }
    override fun update(thresholdValueVo: ThresholdValueVo): Boolean {
        return obdThresholdValueRepository.update(thresholdValueVo)
    }
    override fun getDataByVinCode(vinCode: String): ThresholdValueVo? {
        return obdThresholdValueRepository.getByVinCode(vinCode)
    }
}
src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdAlarmController.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.flightfeather.obd.lightshare.web
import com.flightfeather.obd.lightshare.service.ObdAlarmService
import org.springframework.web.bind.annotation.*
/**
 * @author riku
 * Date: 2019/9/5
 */
@RestController
@RequestMapping("obd/alarm")
class ObdAlarmController(val obdAlarmService: ObdAlarmService) {
    @GetMapping("/{id}")
    fun getAlarmByVinCode(
            @PathVariable("id") id: String,
            @RequestParam("page", required = false) pageNum: Int?,
            @RequestParam("per_page", required = false) pageSize: Int?
    ) = obdAlarmService.getAlarmByVinCode(id, pageNum, pageSize)
}
src/main/kotlin/com/flightfeather/obd/lightshare/web/ObdThresholdController.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.flightfeather.obd.lightshare.web
import com.flightfeather.obd.lightshare.bean.ThresholdValueVo
import com.flightfeather.obd.lightshare.service.ObdThresholdValueService
import org.springframework.web.bind.annotation.*
/**
 * @author riku
 * Date: 2019/9/5
 */
@RestController
@RequestMapping("obd/threshold")
class ObdThresholdController(val obdThresholdValueService: ObdThresholdValueService) {
    @GetMapping("/{id}")
    fun getDataByVinCode(
            @PathVariable("id") id: String
    ) = obdThresholdValueService.getDataByVinCode(id)
    @PostMapping("/update")
    fun update(
            @RequestBody thresholdValueVo: ThresholdValueVo
    ) = obdThresholdValueService.update(thresholdValueVo)
    @PutMapping("/save")
    fun save(
            @RequestBody thresholdValueVo: ThresholdValueVo
    ) = obdThresholdValueService.save(thresholdValueVo)
}
src/main/kotlin/com/flightfeather/obd/repository/ObdAlarmRepository.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.flightfeather.obd.repository
import com.flightfeather.obd.lightshare.bean.AlarmDataVo
/**
 * obd警报相关数据库操作接口
 * @author riku
 * Date: 2019/9/5
 */
interface ObdAlarmRepository {
    /**
     * å­˜å‚¨è­¦æŠ¥æ•°æ®
     */
    fun saveObdAlarm(alarmDataVo: AlarmDataVo): Boolean
    /**
     * é€šè¿‡æ±½è½¦vin码获取警报数据
     */
    fun getAlarmByVinCode(vinCode: String, pageNum: Int?, pageSize: Int?): MutableList<AlarmDataVo>
}
src/main/kotlin/com/flightfeather/obd/repository/ObdDataRepository.kt
@@ -17,7 +17,7 @@
    /**
     * å­˜å‚¨obd数据
     */
    fun saveObdData(data:ObdDataVo)
    fun saveObdData(data: ObdDataVo): Boolean
    /**
     * é€šè¿‡æ±½è½¦vin码获取最新数据
src/main/kotlin/com/flightfeather/obd/repository/ObdThresholdValueRepository.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.flightfeather.obd.repository
import com.flightfeather.obd.lightshare.bean.ThresholdValueVo
/**
 * obd警报阈值相关数据库操作接口
 * @author riku
 * Date: 2019/9/5
 */
interface ObdThresholdValueRepository {
    /**
     * å­˜å‚¨é˜ˆå€¼
     */
    fun save(thresholdValueVo: ThresholdValueVo): Boolean
    /**
     * æ›´æ–°é˜ˆå€¼
     */
    fun update(thresholdValueVo: ThresholdValueVo): Boolean
    /**
     * é€šè¿‡æ±½è½¦vin码获取阈值数据
     */
    fun getByVinCode(vinCode: String): ThresholdValueVo?
}
src/main/kotlin/com/flightfeather/obd/repository/impl/ObdAlarmDaoImpl.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.flightfeather.obd.repository.impl
import com.flightfeather.obd.domain.entity.AlarmData
import com.flightfeather.obd.domain.mapper.AlarmDataMapper
import com.flightfeather.obd.lightshare.bean.AlarmDataVo
import com.flightfeather.obd.repository.ObdAlarmRepository
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/5
 */
@Repository
class ObdAlarmDaoImpl(val alarmDataMapper: AlarmDataMapper) : ObdAlarmRepository {
    override fun saveObdAlarm(alarmDataVo: AlarmDataVo): Boolean {
        val alarmData = AlarmData()
        BeanUtils.copyProperties(alarmDataVo, alarmData)
        return alarmDataMapper.insert(alarmData) == 1
    }
    override fun getAlarmByVinCode(vinCode: String, pageNum: Int?, pageSize: Int?): MutableList<AlarmDataVo> {
        val example = Example(AlarmData::class.java).apply {
            createCriteria().andEqualTo("obdVin", vinCode)
            orderBy("obdTime").desc()
        }
        //分页
        val offset = (pageSize?.times(pageNum?.minus(1) ?: 0)) ?: 0
        PageHelper.offsetPage<AlarmData>(offset, pageSize ?: 10)
        val result = alarmDataMapper.selectByExample(example)
        val resultList = mutableListOf<AlarmDataVo>()
        result.forEach {
            val vo = AlarmDataVo()
            BeanUtils.copyProperties(it, vo)
            resultList.add(vo)
        }
        return resultList
    }
}
src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt
@@ -17,10 +17,10 @@
@Repository
class ObdDataDaoImpl(val obdDataMapper: ObdDataMapper) : ObdDataRepository {
    override fun saveObdData(data: ObdDataVo) {
    override fun saveObdData(data: ObdDataVo): Boolean {
        val obdData = ObdData()
        BeanUtils.copyProperties(data, obdData)
        obdDataMapper.insert(obdData)
        return obdDataMapper.insert(obdData) == 1
    }
    override fun getDataByVinCode(vinCode: String, pageNum: Int?, pageSize: Int?): MutableList<ObdDataVo> {
src/main/kotlin/com/flightfeather/obd/repository/impl/ObdThresholdValueDaoImpl.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.flightfeather.obd.repository.impl
import com.flightfeather.obd.domain.entity.ThresholdValue
import com.flightfeather.obd.domain.mapper.ThresholdValueMapper
import com.flightfeather.obd.lightshare.bean.ThresholdValueVo
import com.flightfeather.obd.repository.ObdThresholdValueRepository
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
/**
 * @author riku
 * Date: 2019/9/5
 */
@Repository
class ObdThresholdValueDaoImpl(val obdThresholdValueMapper: ThresholdValueMapper) : ObdThresholdValueRepository {
    override fun save(thresholdValueVo: ThresholdValueVo): Boolean {
        val thresholdValue = ThresholdValue()
        BeanUtils.copyProperties(thresholdValueVo, thresholdValue)
        return obdThresholdValueMapper.insert(thresholdValue) == 1
    }
    override fun update(thresholdValueVo: ThresholdValueVo): Boolean {
        val thresholdValue = ThresholdValue()
        BeanUtils.copyProperties(thresholdValueVo, thresholdValue)
        return obdThresholdValueMapper.updateByPrimaryKey(thresholdValue) == 1
    }
    override fun getByVinCode(vinCode: String): ThresholdValueVo? {
        val example = Example(ThresholdValue::class.java).apply {
            createCriteria().andEqualTo("obdVin", vinCode)
        }
        val result = obdThresholdValueMapper.selectByExample(example)
        if (result.isNotEmpty()) {
            val vo = ThresholdValueVo()
            BeanUtils.copyProperties(vo, result[0])
            return vo
        }
        return null
    }
}
src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt
@@ -43,7 +43,7 @@
                }
            }
        } catch (e: Throwable) {
            e.printStackTrace()
            println("------收到格式错误的数据:$msg")
        }
    }
}
src/main/kotlin/com/flightfeather/obd/socket/ServerHandler.kt
@@ -22,6 +22,7 @@
    override fun channelRead(ctx: ChannelHandlerContext?, msg: Any?) {
        super.channelRead(ctx, msg)
        println("------收到的原始数据:$msg")
        if (msg is String) {
            MessageManager().dealMsg(msg, ctx)
        }
src/main/resources/application.yml
@@ -1,7 +1,7 @@
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://47.100.191.150:3306/obd?serverTimezone=GMT&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
    url: jdbc:mysql://47.100.191.150:3306/obd?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
    username: obd
    password: obd2019