package cn.flightfeather.supervision.lightshare.service.impl
|
|
import cn.flightfeather.supervision.common.exception.BizException
|
import cn.flightfeather.supervision.common.utils.Constant
|
import cn.flightfeather.supervision.common.utils.DateUtil
|
import cn.flightfeather.supervision.common.utils.FileUtil
|
import cn.flightfeather.supervision.common.utils.JsonUtil
|
import cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo
|
import cn.flightfeather.supervision.domain.ds1.entity.DeviceLocation
|
import cn.flightfeather.supervision.domain.ds1.repository.DeviceRep
|
import cn.flightfeather.supervision.lightshare.service.DeviceService
|
import org.springframework.stereotype.Service
|
import org.springframework.web.multipart.MultipartFile
|
import java.util.*
|
|
/**
|
*
|
* @date 2024/7/24
|
* @author feiyu02
|
*/
|
@Service
|
class DeviceServiceImpl(private val deviceRep: DeviceRep) : DeviceService {
|
|
companion object{
|
private const val BASE_IMG_PATH = "${Constant.DEFAULT_FILE_PATH}/images/"
|
}
|
|
override fun findDevices(sceneId: String): List<DeviceInfo> {
|
return deviceRep.findDeviceList(sceneId)
|
}
|
|
override fun insertDevice(deviceInfo: DeviceInfo): Int {
|
return deviceRep.insertDevice(deviceInfo)
|
}
|
|
override fun updateDevice(deviceInfo: DeviceInfo): Int {
|
return deviceRep.updateDevice(deviceInfo)
|
}
|
|
override fun findDeviceLocations(deviceId: Int): List<DeviceLocation> {
|
return deviceRep.findLocations(deviceId)
|
}
|
|
override fun insertDeviceLocation(deviceLocation: String, files: Array<MultipartFile>): Int {
|
val obj = JsonUtil.gson.fromJson(deviceLocation, DeviceLocation::class.java)
|
val time = DateUtil.DateToString(obj.dlCreateTime, DateUtil.DateStyle.YYYY_MM_DD)
|
val picPath = FileUtil.saveFiles(files, BASE_IMG_PATH, "device/${obj.dlId}/${time}")
|
obj.dlPicUrl = picPath.joinToString(";")
|
return deviceRep.insertLocation(obj)
|
}
|
|
override fun updateDeviceLocation(
|
deviceLocation: String,
|
deleteImg: List<String>,
|
files: Array<MultipartFile>,
|
): Int {
|
// 获取更新信息
|
val obj = JsonUtil.gson.fromJson(deviceLocation, DeviceLocation::class.java)
|
|
// 获取原位置信息,删除图片路径和对应图片
|
val dL = deviceRep.findLocation(obj.dlId) ?: throw BizException("该设备位置信息不存在,无法修改")
|
val oldImg = dL.dlPicUrl.split(";").toMutableList()
|
deleteImg.forEach {
|
if (oldImg.contains(it)) {
|
if (FileUtil.delFile(BASE_IMG_PATH + it)) {
|
oldImg.remove(it)
|
}
|
}
|
}
|
|
// 保存新增图片
|
val time = DateUtil.DateToString(obj.dlCreateTime, DateUtil.DateStyle.YYYY_MM_DD)
|
val picPath = FileUtil.saveFiles(files, BASE_IMG_PATH, "device/${obj.dlId}/${time}")
|
|
oldImg.addAll(picPath)
|
obj.dlPicUrl = oldImg.joinToString(";")
|
return deviceRep.updateLocation(obj)
|
}
|
}
|