package cn.flightfeather.supervision.lightshare.service.impl
|
|
import cn.flightfeather.supervision.common.utils.UUIDGenerator
|
import cn.flightfeather.supervision.domain.ds1.entity.Userinfo
|
import cn.flightfeather.supervision.domain.ds1.mapper.UserinfoMapper
|
import cn.flightfeather.supervision.domain.ds2.entity.UserMap
|
import cn.flightfeather.supervision.domain.ds2.entity.UserinfoTZ
|
import cn.flightfeather.supervision.domain.ds2.mapper.UserMapMapper
|
import cn.flightfeather.supervision.domain.ds2.mapper.UserinfoTZMapper
|
import cn.flightfeather.supervision.lightshare.service.UserMapService
|
import org.springframework.stereotype.Service
|
import tk.mybatis.mapper.entity.Example
|
|
@Service
|
class UserMapServiceImpl(
|
private val userMapMapper: UserMapMapper,
|
private val userinfoMapper: UserinfoMapper,
|
private val userinfoTZMapper: UserinfoTZMapper
|
) : UserMapService {
|
|
override fun getTZIdBySceneId(sceneId: String): UserMap {
|
val list = userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
|
createCriteria().andEqualTo("dGuid", sceneId)
|
})
|
if (list.isEmpty()) return UserMap()
|
val userId = list[0].guid
|
val result = userMapMapper.selectByExample(Example(UserMap::class.java).apply {
|
createCriteria().andEqualTo("svUserId", userId)
|
})
|
return if (result.isNotEmpty()) result[0] else UserMap()
|
}
|
|
override fun autoCreateMap() {
|
// 选择需要处理的账户
|
val userList = userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
|
createCriteria().andEqualTo("remark", "静安区")
|
})
|
userList.forEach {
|
// 查找是否已经有账户匹配记录
|
val records = userMapMapper.selectByExample(Example(UserMap::class.java).apply {
|
createCriteria().andEqualTo("svUserId", it.guid)
|
})
|
// 没有记录时,创建匹配记录
|
if (records.isEmpty()) {
|
// 1、 根据两个系统中的用户名称进行精确匹配
|
val tzUsers = userinfoTZMapper.selectByExample(Example(UserinfoTZ::class.java).apply {
|
createCriteria().andEqualTo("realname", it.realname)
|
})
|
if (tzUsers.isNotEmpty()) {
|
val tzU = tzUsers[0]
|
if (userMapMapper.selectByPrimaryKey(tzU.guid) == null) {
|
userMapMapper.insert(UserMap().apply {
|
tzUserId = tzU.guid
|
tzUserName = tzU.realname
|
svUserId = it.guid
|
svUserName = it.realname
|
})
|
}
|
}
|
// 2、 无法精确匹配的,采用默认的编号,插入记录。后续人工修改(暂定)
|
else {
|
if (userMapMapper.selectByExample(Example(UserMap::class.java).apply {
|
createCriteria().andEqualTo("svUserId", it.guid)
|
}).isEmpty()) {
|
val id = "temp" + UUIDGenerator.generateShortUUID()
|
userMapMapper.insert(UserMap().apply {
|
tzUserId = id
|
tzUserName = id
|
svUserId = it.guid
|
svUserName = it.realname
|
})
|
}
|
}
|
}
|
}
|
}
|
}
|