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
package cn.flightfeather.supervision.domain.ds1.repository
 
import cn.flightfeather.supervision.common.exception.BizException
import cn.flightfeather.supervision.common.utils.UUIDGenerator
import cn.flightfeather.supervision.domain.ds1.entity.Scense
import cn.flightfeather.supervision.domain.ds1.mapper.ScenseMapper
import cn.flightfeather.supervision.domain.ds1.mapper.UserinfoMapper
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
import java.util.*
 
/**
 * 场景信息数据库相关操作
 */
@Repository
class SceneRep(
    private val scenseMapper: ScenseMapper,
    private val userinfoMapper: UserinfoMapper,
    private val subTaskRep: SubTaskRep,
) {
 
    fun insert(scene: Scense?):Int {
        scene ?: return 0
        if (scene.guid == null) scene.guid = UUIDGenerator.generate16ShortUUID()
        scene.createdate = Date()
        return scenseMapper.insertSelective(scene)
    }
 
    fun findScene(userId: String?): Scense? {
        val user = userinfoMapper.selectByPrimaryKey(userId) ?: throw BizException("用户id不存在")
        return scenseMapper.selectByPrimaryKey(user.dGuid)
    }
 
    fun findScene(sceneId: String? = null, sceneName: String? = null): Scense? {
        return scenseMapper.selectOne(Scense().apply {
            guid = sceneId
            name = sceneName
        })
    }
 
    fun findSceneList(scene: Scense): List<Scense?> {
        return scenseMapper.select(scene)
    }
 
    fun findSceneList(nameList: List<String?>): List<Scense?> {
        return scenseMapper.selectByExample(Example(Scense::class.java).apply {
            createCriteria().andIn("name", nameList)
        })
    }
 
    /**
     * 查找场景
     */
    fun findSceneList(topTaskId: String, sceneTypeId: Int? = null, townCode: String? = null): List<Scense?> {
        return scenseMapper.getSceneByType(topTaskId, sceneTypeId, townCode)
    }
 
    fun findBySubTask(subTaskId: String): Scense? {
        val subtask = subTaskRep.findOne(subTaskId)
        return scenseMapper.selectByPrimaryKey(subtask?.scenseid)
    }
}