feiyu02
2024-08-15 196bb14112448857a885e32dc4149e308e00b01a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package cn.flightfeather.supervision.domain.repository
 
import cn.flightfeather.supervision.domain.entity.LedgerMediaFile
import cn.flightfeather.supervision.domain.mapper.LedgerMediaFileMapper
import cn.flightfeather.supervision.infrastructure.utils.DateUtil
import cn.flightfeather.supervision.infrastructure.utils.FileUtil
import cn.flightfeather.supervision.infrastructure.utils.UUIDGenerator
import cn.flightfeather.supervision.lightshare.vo.LedgerVo
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Repository
import java.io.FileNotFoundException
import java.util.*
 
@Repository
class LedgerMediaFileRep(private val ledgerMediaFileMapper: LedgerMediaFileMapper) {
 
    @Value("\${imgPath}")
    lateinit var imgPath: String
 
    /**
     * 查询
     * @param lrGuid 台账记录id
     */
    fun select(lrGuid: String): LedgerMediaFile? {
        return ledgerMediaFileMapper.selectOne(LedgerMediaFile().apply { this.lrGuid = lrGuid })
    }
 
    fun saveFile(userId: String, ledgerVo: LedgerVo, files: List<Pair<ByteArray, String>>): String {
        var picPath = ""
        val time = DateUtil.DateToString(ledgerVo.updateDate, DateUtil.DateStyle.YYYY_MM)
 
        files.forEachIndexed { index, file ->
            val fileName = "${ledgerVo.ledgerSubTypeId}-${index + 1}.${file.second}"
            val basePath = imgPath
            val path = "$time/$userId/${ledgerVo.ledgerName}/"
            picPath += if (picPath.isEmpty()) {
                "$path$fileName"
            } else {
                ";$path$fileName"
            }
            try {
                //调用文件保存方法
                FileUtil.uploadFile(file.first, basePath + path, fileName!!)
            } catch (e: FileNotFoundException) {
                e.printStackTrace()
            }
        }
        return picPath
    }
 
    fun insert(ledgerVo: LedgerVo, picPath: String) {
        val ledgerMedia = LedgerMediaFile().apply {
            mfGuid = UUIDGenerator.generate16ShortUUID()
            lrGuid = ledgerVo.id
            mfFiletype = ledgerVo.fileType
            mfPath1 = picPath
            mfDescription1 = ledgerVo.remark1
            mfSavetime = Date()
            mfIsdelete = false
        }
        //插入新的多媒体文件记录数据
        ledgerMediaFileMapper.insert(ledgerMedia)
    }
 
    fun update(ledgerMedia: LedgerMediaFile?) {
        //更新的多媒体文件记录数据
        ledgerMediaFileMapper.updateByPrimaryKey(ledgerMedia)
    }
}