From baf2cc2ce3dfd1235c012a3750132769fcd9ad2f Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 18 九月 2025 17:02:05 +0800 Subject: [PATCH] 2025.9.18 1. 联合前端调试数据产品接口(待完成) --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt | 166 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 105 insertions(+), 61 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt index bf8a593..49b9890 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt @@ -1,24 +1,41 @@ package cn.flightfeather.supervision.lightshare.service.impl +import cn.flightfeather.supervision.common.utils.Constant import cn.flightfeather.supervision.common.utils.PinYin import cn.flightfeather.supervision.common.utils.UUIDGenerator import cn.flightfeather.supervision.domain.ds1.entity.Scense 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.entity.UserinfoTZ +import cn.flightfeather.supervision.domain.ds2.repository.UserInfoTZRep import cn.flightfeather.supervision.lightshare.service.UserinfoService +import cn.flightfeather.supervision.lightshare.vo.AreaVo +import cn.flightfeather.supervision.lightshare.vo.DataHead +import com.github.pagehelper.PageHelper +import org.springframework.beans.BeanUtils 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, + private val userInfoSVRep: UserInfoSVRep, + private val userInfoTZRep: UserInfoTZRep, +) : 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] @@ -30,31 +47,92 @@ } } - override fun findByType(typeId: Byte): List<Userinfo> { + override fun findByType(typeId: Byte, enable: Boolean?): List<Userinfo> { val result = userinfoMapper.selectByExample(Example(Userinfo::class.java).apply { createCriteria().andEqualTo("usertypeid", typeId) + .apply { + enable?.let { andEqualTo("isenable", it) } + } }) 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) + + override fun search(areaVo: AreaVo, keyword: String, userType: Int?, page: Int?, perPage: Int?) + : Pair<DataHead, List<Userinfo?>> { + val p = PageHelper.startPage<Userinfo>(page ?: 1, perPage ?: 30) + val result = userInfoSVRep.searchUser(areaVo, keyword.trim(), Constant.UserType.fromValue(userType)) + result.forEach { it?.password = null } + return DataHead(p.pageNum, p.pages, p.total) to result + } override fun createAccount(sceneId: String): Userinfo { findByScene(sceneId)?.let { return it } scenseMapper.selectByPrimaryKey(sceneId)?.let { + createAccount(it) + } + return Userinfo() + } + + override fun findByScene(sceneId: String): Userinfo? { + userinfoMapper.selectByExample(Example(Userinfo::class.java).apply { + createCriteria().andEqualTo("dGuid", sceneId) + })?.takeIf { it.isNotEmpty() }?.let { return it[0] } + return null + } + + override fun getUName(sceneName: String): String { + var uName = PinYin.getPinYinHeader(sceneName) + var suffix = "" + var repeated: Boolean + var i = 1 + do { + userinfoMapper.selectByExample(Example(Userinfo::class.java).apply { + createCriteria().andEqualTo("acountname", uName + suffix) + }).let { + repeated = it.isNotEmpty() + if (repeated) { + suffix = Random.nextInt(100..999).toString() + } + } + i++ + } while (repeated && i < 20) + if (repeated) uName = UUIDGenerator.generateShortUUID() + return uName + suffix + } + + override fun autoCreateAccount() { + val sceneList = scenseMapper.selectNoAccountScene() + sceneList.forEach { + createAccount(it) + } + } + + override fun createAccount(scence: Scense):Userinfo { + scence.let { + // 鍒ゆ柇璇ュ満鏅槸鍚﹀凡鏈夊搴旇处鎴� + val user = userInfoSVRep.findUser(it.guid) + if (user != null) return user + val sceneName = it.name ?: return Userinfo() val uName = getUName(sceneName) - val userInfo = Userinfo().apply { guid = UUIDGenerator.generate16ShortUUID() acountname = uName @@ -71,65 +149,31 @@ val r = userinfoMapper.insert(userInfo) if (r == 1) { return userInfo + } else { + return Userinfo() } } - return Userinfo() } - override fun findByScene(sceneId: String): Userinfo? { - userinfoMapper.selectByExample(Example(Userinfo::class.java).apply { - createCriteria().andEqualTo("dGuid", sceneId) - })?.takeIf { it.isNotEmpty() }?.let { return it[0] } - return null - } - - private fun getUName(sceneName: String): String { - var uName = PinYin.getPinYinHeader(sceneName) - var repeated = false - var i = 1 - do { - userinfoMapper.selectByExample(Example(Userinfo::class.java).apply { - createCriteria().andEqualTo("acountname", uName) - }).let { - repeated = it.isNotEmpty() - if (repeated) { - uName += i - } - } - i++ - } while (repeated && i < 20) - return uName - } - - override fun autoCreateAccount() { - val sceneList = scenseMapper.selectNoAccountScene() - sceneList.forEach { - createAccount(it) + override fun createAccountTZ(userinfo: Userinfo, scence: Scense): UserinfoTZ { + val userinfoTZ = UserinfoTZ() + BeanUtils.copyProperties(userinfo, userinfoTZ) + // 浣跨敤鏂扮殑id + userinfoTZ.guid = UUIDGenerator.generate16ShortUUID() + // 娣诲姞鍖哄幙鎻忚堪 + // FIXME: 2024/4/23 鐩墠鍦˙aseInfo鍩虹淇℃伅涓凡瀛樺偍瀹屾暣鐨勮鏀垮尯鍒掞紝鍚庣画搴斿皢姝ゅ璁板綍鍘婚櫎 + userinfoTZ.extension1 = userinfoTZ.remark + userinfoTZ.remark = null + // 鍦烘櫙绫诲瀷杞崲 + userinfoTZ.extension2 = Constant.SceneType.typeMap(scence.typeid)?.toString() + // 鏍规嵁acountname鍜宺ealname杩涜閲嶅鍒ゆ柇 + userInfoTZRep.findOne(UserinfoTZ().apply { + acountname = userinfoTZ.acountname + realname = userinfoTZ.realname + }).takeIf { it == null }.run { + // 褰撴病鏈夋煡璇㈢粨鏋滄椂锛屾彃鍏ユ柊璐︽埛淇℃伅 + userInfoTZRep.insert(userinfoTZ) } - } - - private fun createAccount(sence: Scense) { - sence.let { - val sceneName = it.name ?: return - val uName = getUName(sceneName) - - val userInfo = Userinfo().apply { - guid = UUIDGenerator.generate16ShortUUID() - acountname = uName - realname = sceneName - password = "123456" - usertypeid = 3 - usertype = "浼佷笟" - dGuid = it.guid - departmentname = sceneName - isenable = true - remark = it.districtname - } - - val r = userinfoMapper.insert(userInfo) - if (r == 1) { - println("${userInfo.guid}--${userInfo.acountname}--${userInfo.realname}") - } - } + return userinfoTZ } } \ No newline at end of file -- Gitblit v1.9.3