src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt
@@ -6,19 +6,29 @@
import cn.flightfeather.supervision.domain.ds1.entity.Userinfo
import cn.flightfeather.supervision.domain.ds1.mapper.ScenseMapper
import cn.flightfeather.supervision.domain.ds1.mapper.UserinfoMapper
import cn.flightfeather.supervision.domain.ds1.repository.SceneRep
import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
import cn.flightfeather.supervision.domain.ds1.repository.UserInfoSVRep
import cn.flightfeather.supervision.domain.ds2.repository.UserInfoTZRep
import cn.flightfeather.supervision.lightshare.service.UserinfoService
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import org.springframework.stereotype.Service
import tk.mybatis.mapper.entity.Example
import kotlin.random.Random
import kotlin.random.nextInt
@Service
class UserinfoServiceImpl(val userinfoMapper: UserinfoMapper, private val scenseMapper: ScenseMapper) : UserinfoService {
class UserinfoServiceImpl(
    val userinfoMapper: UserinfoMapper,
    private val scenseMapper: ScenseMapper,
) : UserinfoService {
    //根据userinfo条件查询
    override fun findOneByName(userinfo: Userinfo): Userinfo? {
        val example = Example(Userinfo::class.java)
        val criteria = example.createCriteria()
        criteria.andEqualTo("acountname", userinfo.acountname)
                .andEqualTo("password", userinfo.password)
            .andEqualTo("password", userinfo.password)
        val result = userinfoMapper.selectByExample(example)
        return if (result.isNotEmpty()) {
            result[0]
@@ -38,13 +48,19 @@
        return result
    }
    override fun findOne(id: String): Userinfo = userinfoMapper.selectByPrimaryKey(id)
    override fun findOne(id: String): Userinfo? = userinfoMapper.selectByPrimaryKey(id)
    override fun findAll(): MutableList<Userinfo> = userinfoMapper.selectAll()
    override fun save(userinfo: Userinfo): Int = userinfoMapper.insert(userinfo)
    override fun update(userinfo: Userinfo): Int = userinfoMapper.updateByPrimaryKey(userinfo)
    override fun update(userinfo: Userinfo): Int {
        return if (userinfo.guid.isNullOrBlank() || userinfo.acountname.isNullOrBlank() || userinfo.password.isNullOrBlank()) {
            0
        } else {
            userinfoMapper.updateByPrimaryKeySelective(userinfo)
        }
    }
    override fun delete(id: String): Int = userinfoMapper.deleteByPrimaryKey(id)
@@ -85,20 +101,22 @@
    private fun getUName(sceneName: String): String {
        var uName = PinYin.getPinYinHeader(sceneName)
        var repeated = false
        var suffix = ""
        var repeated: Boolean
        var i = 1
        do {
            userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
                createCriteria().andEqualTo("acountname", uName)
                createCriteria().andEqualTo("acountname", uName + suffix)
            }).let {
                repeated = it.isNotEmpty()
                if (repeated) {
                    uName += i
                    suffix = Random.nextInt(100..999).toString()
                }
            }
            i++
        } while (repeated && i < 20)
        return uName
        if (repeated) uName = UUIDGenerator.generateShortUUID()
        return uName + suffix
    }
    override fun autoCreateAccount() {
@@ -108,8 +126,8 @@
        }
    }
    private fun createAccount(sence: Scense) {
        sence.let {
    private fun createAccount(scence: Scense) {
        scence.let {
            val sceneName = it.name ?: return
            val uName = getUName(sceneName)