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
70
71
72
73
74
75
76
77
78
79
80
81
82
package cn.flightfeather.supervision.domain.repository
 
import cn.flightfeather.supervision.domain.entity.BaseInfo
import cn.flightfeather.supervision.domain.entity.UserConfig
import cn.flightfeather.supervision.domain.entity.Userinfo
import cn.flightfeather.supervision.domain.mapper.BaseInfoMapper
import cn.flightfeather.supervision.domain.mapper.UserConfigMapper
import cn.flightfeather.supervision.domain.mapper.UserinfoMapper
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
 
@Repository
class UserConfigRep(
    private val userConfigMapper: UserConfigMapper,
    private val userinfoMapper: UserinfoMapper,
    private val baseInfoMapper: BaseInfoMapper,
) {
 
    fun select(configId: Int): UserConfig? {
        return userConfigMapper.selectByPrimaryKey(configId)
    }
 
    /**
     * 获取用户对应的用户配置信息
     * 针对企业用户
     */
    fun getUserConfig(userInfo: Userinfo, baseInfo: BaseInfo?): List<UserConfig?> {
        val res = userConfigMapper.selectByExample(Example(UserConfig::class.java).apply {
            createCriteria().andEqualTo("ucUserTypeId", userInfo.usertypeid)
            userInfo.userSubTypeId?.let {
                and(createCriteria().orEqualTo("ucUserSubtypeId", it)
                    .orIsNull("ucUserSubtypeId"))
            }
            userInfo.extension1?.let {
                and(createCriteria().orEqualTo("ucDistrictName", it)
                    .orIsNull("ucDistrictName"))
            }
            userInfo.extension2?.let {
                and(createCriteria().orEqualTo("ucSceneRange", it)
                    .orIsNull("ucSceneRange"))
            }
            baseInfo?.biProvinceCode?.let {
                and(createCriteria().orEqualTo("ucProvinceCode", it)
                    .orIsNull("ucProvinceCode"))
            }
            baseInfo?.biCityCode?.let {
                and(createCriteria().orEqualTo("ucCityCode", it)
                    .orIsNull("ucCityCode"))
            }
            baseInfo?.biDistrictCode?.let {
                and(createCriteria().orEqualTo("ucDistrictCode", it)
                    .orIsNull("ucDistrictCode"))
            }
            baseInfo?.biTownCode?.let {
                and(createCriteria().orEqualTo("ucTownCode", it)
                    .orIsNull("ucTownCode"))
            }
            baseInfo?.biAreaCode?.let {
                and(createCriteria().orEqualTo("ucAreaCode", it)
                    .orIsNull("ucAreaCode"))
            }
            baseInfo?.biManagementCompanyId?.let {
                and(createCriteria().orEqualTo("ucManagementCompanyId", it)
                    .orIsNull("ucManagementCompanyId"))
            }
        })
//        return if (res.isNotEmpty()) res[0] else null
        return res
    }
 
    fun getUserConfig(userId: String): List<UserConfig?> {
        val userInfo = userinfoMapper.selectByPrimaryKey(userId) ?: return emptyList()
        val baseInfo = baseInfoMapper.selectByPrimaryKey(userId)
        return getUserConfig(userInfo, baseInfo)
    }
 
    fun getUserConfigBySubType(userId: String): UserConfig? {
        val configId = userinfoMapper.selectByPrimaryKey(userId)?.userSubTypeId ?: return null
        return userConfigMapper.selectByPrimaryKey(configId)
    }
 
}