feiyu02
2024-11-19 752e00503f672ddfe2066afb6c235721a3a912b5
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
package cn.flightfeather.supervision.domain.repository
 
import cn.flightfeather.supervision.domain.entity.UserLoginLog
import cn.flightfeather.supervision.domain.entity.Userinfo
import cn.flightfeather.supervision.domain.enumeration.UserType
import cn.flightfeather.supervision.domain.mapper.BaseInfoMapper
import cn.flightfeather.supervision.domain.mapper.UserLoginLogMapper
import cn.flightfeather.supervision.domain.mapper.UserinfoMapper
import cn.flightfeather.supervision.lightshare.vo.BaseResponse
import cn.flightfeather.supervision.lightshare.vo.UserSearchCondition
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
import java.util.*
 
@Repository
class UserInfoRep(
    private val userinfoMapper: UserinfoMapper,
    private val baseInfoMapper: BaseInfoMapper,
    private val userLoginLogMapper: UserLoginLogMapper,
) {
 
    /**
     * 搜索用户
     */
    fun searchUser(condition: UserSearchCondition): List<Userinfo> {
        return userinfoMapper.searchUser(condition)
    }
 
    /**
     * 登录日志记录
     */
    fun loginLog(userId: String?) {
        userId?.let {
            userLoginLogMapper.insert(UserLoginLog().apply {
                ulUserGuid = userId
                ulLoginTime = Date()
            })
        }
    }
 
    /**
     * 初始密码未修改的活跃中的企业用户
     */
    fun pdUnChangeUsers(): List<Userinfo?> {
        return userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
            createCriteria().andEqualTo("usertypeid", UserType.Enterprise.value)
                .andEqualTo("isenable", true)
            and(createCriteria().orIsNull("remark").orNotEqualTo("remark", "pwChanged"))
            and(createCriteria().orIsNull("workno").orNotEqualTo("workno", "test"))
        })
    }
 
    /**
     * 检查用户信息是否重复
     */
    fun checkIsRepeat(userinfo: Userinfo): Pair<Boolean, String> {
        userinfoMapper.selectByPrimaryKey(userinfo.guid)?.run { return Pair(true, "用户id已存在") }
        userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
            createCriteria().andEqualTo("acountname", userinfo.acountname)
        }).run { if (isNotEmpty()) return Pair(true, "用户账户已存在") }
        userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
            createCriteria().andEqualTo("realname", userinfo.realname)
        }).run { if (isNotEmpty()) return Pair(true, "用户昵称已存在") }
        return Pair(false, "用户未重复")
    }
 
    fun getUser(userId: String): Userinfo? {
        return userinfoMapper.selectByPrimaryKey(userId)
    }
}