package cn.flightfeather.supervision.lightshare.service.impl
|
|
import cn.flightfeather.supervision.domain.ds1.entity.Mediafile
|
import cn.flightfeather.supervision.domain.ds1.mapper.MediafileMapper
|
import cn.flightfeather.supervision.common.utils.Constant
|
import cn.flightfeather.supervision.common.utils.FileUtil
|
import cn.flightfeather.supervision.lightshare.service.MediafileService
|
import cn.flightfeather.supervision.lightshare.vo.MediafileVo
|
import com.fasterxml.jackson.core.type.TypeReference
|
import org.springframework.beans.BeanUtils
|
import org.springframework.stereotype.Service
|
import org.springframework.web.multipart.MultipartFile
|
import com.fasterxml.jackson.databind.ObjectMapper
|
import org.slf4j.Logger
|
import org.slf4j.LoggerFactory
|
import java.io.File
|
|
|
@Service
|
class MediafileServiceImpl(val mediafileMapper: MediafileMapper) : MediafileService {
|
|
private val logging: Logger = LoggerFactory.getLogger(MediafileServiceImpl::class.java)
|
|
//根据子任务id及业务类型ID查询
|
override fun findBysubtaskbtid(id: String, btid: String): MutableList<Mediafile>? {
|
val mediafile = Mediafile()
|
mediafile.businesstypeid = btid.toByte()
|
mediafile.iguid = id
|
val mediafilelist = mediafileMapper.select(mediafile)
|
mediafilelist.sortBy { it.savetime }
|
return mediafilelist
|
}
|
|
//根据问题id获取媒体文件
|
override fun findByProblemID(id: String): List<MediafileVo> {
|
val mediafileVos = mutableListOf<MediafileVo>()
|
val mediafile = Mediafile()
|
mediafile.iguid = id
|
val mediafiles = mediafileMapper.select(mediafile)
|
if (mediafiles.isNotEmpty()) {
|
mediafiles.forEach {
|
val mediafileVo = MediafileVo()
|
BeanUtils.copyProperties(it, mediafileVo)
|
mediafileVos.add(mediafileVo)
|
}
|
}
|
mediafileVos.sortBy { it.savetime }
|
return mediafileVos
|
}
|
|
//新增媒体文件
|
override fun addMedifile(mediafileVoList: String, files: Array<MultipartFile>) {
|
logging.info("上传文件方法调用")
|
logging.info("mediafileVoList:" + mediafileVoList)
|
val mapper = ObjectMapper()
|
|
//json转object
|
val mediafileVos =
|
mapper.readValue<List<MediafileVo>>(mediafileVoList, object : TypeReference<List<MediafileVo>>() {})
|
|
if (mediafileVos.isNotEmpty()) {
|
mediafileVos.forEach {
|
val mediafile = Mediafile()
|
BeanUtils.copyProperties(it, mediafile)
|
|
//查询数据库有没有当前数据,有就不新增
|
//次操作解决延迟后手机重复提交问题
|
val reme = mediafileMapper.selectByPrimaryKey(mediafile.guid)
|
if (reme == null) {
|
mediafileMapper.insert(mediafile)
|
}
|
}
|
|
//根据扩展字段1获取保存路径
|
val path = mediafileVos[0].extension1
|
for (image in files) {
|
val fileName = image.originalFilename
|
|
val filePath = "${Constant.DEFAULT_FILE_PATH}/images/$path/"
|
try {
|
//调用文件保存方法
|
FileUtil.uploadFile(image.bytes, filePath, fileName!!)
|
} catch (e: Exception) {
|
// TODO: handle exception
|
}
|
}
|
}
|
}
|
|
|
//根据业务类型ID获取媒体文件
|
override fun findByBusinessGUID(businessGuid: String): List<MediafileVo> {
|
val mediafileVoList = mutableListOf<MediafileVo>()
|
val mediafile = Mediafile()
|
mediafile.businessguid = businessGuid
|
val mediafiles = mediafileMapper.select(mediafile)
|
mediafiles.forEach {
|
val mediafileVo = MediafileVo()
|
BeanUtils.copyProperties(it, mediafileVo)
|
mediafileVoList.add(mediafileVo)
|
}
|
return mediafileVoList
|
}
|
|
override fun findOne(id: String): Mediafile = mediafileMapper.selectByPrimaryKey(id)
|
|
override fun findAll(): MutableList<Mediafile> = mediafileMapper.selectAll()
|
|
override fun save(mediafile: Mediafile): Int = mediafileMapper.updateByPrimaryKey(mediafile)
|
|
override fun update(mediafile: Mediafile): Int = mediafileMapper.updateByPrimaryKey(mediafile)
|
|
//删除媒体文件
|
override fun delete(id: String): Int {
|
val mediafile = mediafileMapper.selectByPrimaryKey(id)
|
//服务器保存路径
|
val path = mediafile.extension1
|
//File("/Users/liwei/images/${path}/${id}.jpg").delete()
|
//先删图片
|
val f = File("${Constant.DEFAULT_FILE_PATH}/images/$path/$id.jpg")
|
if (f.exists()) {
|
f.delete()
|
}
|
return mediafileMapper.deleteByPrimaryKey(id)
|
}
|
}
|