From 82baf5d28ce79aa4d3b64956207d247596726924 Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期二, 10 十二月 2024 11:21:33 +0800
Subject: [PATCH] 1. BgTaskStatus状态属性序列化
---
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt | 157 ++++++++++++++++++++++++++++++++--------------------
1 files changed, 97 insertions(+), 60 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 a15ee33..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,9 +47,12 @@
}
}
- 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
@@ -54,13 +74,65 @@
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
@@ -77,66 +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)
- if (repeated) uName = UUIDGenerator.generateShortUUID()
- 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