feiyu02
2024-09-10 6c7f45871b93ef26d353a5a3596701ac2f39ed9c
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt
@@ -4,8 +4,9 @@
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.domain.ds1.repository.MediaFileRep
import cn.flightfeather.supervision.lightshare.service.MediafileService
import cn.flightfeather.supervision.lightshare.vo.MediafileVo
import cn.flightfeather.supervision.lightshare.vo.MediaFileVo
import com.fasterxml.jackson.core.type.TypeReference
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Service
@@ -13,11 +14,17 @@
import com.fasterxml.jackson.databind.ObjectMapper
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
import java.io.File
@Service
class MediafileServiceImpl(val mediafileMapper: MediafileMapper) : MediafileService {
class MediafileServiceImpl(
    val mediafileMapper: MediafileMapper,
    private val mediaFileRep: MediaFileRep,
    @Value("\${filePath}") var filePath: String,
    @Value("\${imgPath}") var imgPath: String,
) : MediafileService {
    private val logging: Logger = LoggerFactory.getLogger(MediafileServiceImpl::class.java)
@@ -32,20 +39,20 @@
    }
    //根据问题id获取媒体文件
    override fun findByProblemID(id: String): List<MediafileVo> {
        val mediafileVos = mutableListOf<MediafileVo>()
    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()
                val mediafileVo = MediaFileVo()
                BeanUtils.copyProperties(it, mediafileVo)
                mediafileVos.add(mediafileVo)
                mediaFileVos.add(mediafileVo)
            }
        }
        mediafileVos.sortBy { it.savetime }
        return mediafileVos
        mediaFileVos.sortBy { it.savetime }
        return mediaFileVos
    }
    //新增媒体文件
@@ -55,11 +62,11 @@
        val mapper = ObjectMapper()
        //json转object
        val mediafileVos =
            mapper.readValue<List<MediafileVo>>(mediafileVoList, object : TypeReference<List<MediafileVo>>() {})
        val mediaFileVos =
            mapper.readValue<List<MediaFileVo>>(mediafileVoList, object : TypeReference<List<MediaFileVo>>() {})
        if (mediafileVos.isNotEmpty()) {
            mediafileVos.forEach {
        if (mediaFileVos.isNotEmpty()) {
            mediaFileVos.forEach {
                val mediafile = Mediafile()
                BeanUtils.copyProperties(it, mediafile)
@@ -72,11 +79,11 @@
            }
            //根据扩展字段1获取保存路径
            val path = mediafileVos[0].extension1
            val path = mediaFileVos[0].extension1
            for (image in files) {
                val fileName = image.originalFilename
                val filePath = "${Constant.DEFAULT_FILE_PATH}/images/$path/"
                val filePath = "${imgPath}/$path/"
                try {
                    //调用文件保存方法
                    FileUtil.uploadFile(image.bytes, filePath, fileName!!)
@@ -89,17 +96,17 @@
    //根据业务类型ID获取媒体文件
    override fun findByBusinessGUID(businessGuid: String): List<MediafileVo> {
        val mediafileVoList = mutableListOf<MediafileVo>()
    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()
            val mediafileVo = MediaFileVo()
            BeanUtils.copyProperties(it, mediafileVo)
            mediafileVoList.add(mediafileVo)
            mediaFileVoList.add(mediafileVo)
        }
        return mediafileVoList
        return mediaFileVoList
    }
    override fun findOne(id: String): Mediafile = mediafileMapper.selectByPrimaryKey(id)
@@ -117,10 +124,25 @@
        val path = mediafile.extension1
        //File("/Users/liwei/images/${path}/${id}.jpg").delete()
        //先删图片
        val  f = File("${Constant.DEFAULT_FILE_PATH}/images/$path/$id.jpg")
        val f = File("${imgPath}/$path/$id.jpg")
        if (f.exists()) {
            f.delete()
        }
        return mediafileMapper.deleteByPrimaryKey(id)
    }
    override fun deleteList(idList: List<String>): Int {
        var res = 0
        mediaFileRep.findList(idList).forEach {
            //服务器保存路径
            val path = it?.extension1
            //先删图片
            val f = File("${imgPath}/$path/${it?.guid}.jpg")
            if (f.exists()) {
                f.delete()
            }
            res += mediaFileRep.deleteOne(it?.guid)
        }
        return res
    }
}