From 0392c333ed3d987cb2ab3dac4e1a972cff405f21 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 25 四月 2024 17:42:08 +0800
Subject: [PATCH] 1. 新增后台任务关联模块 2. 新增自动评分后台任务; 3. 修复部分bug

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImpl.kt |   63 +++++++++++++++++++------------
 1 files changed, 38 insertions(+), 25 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 cb21ee7..2cb6d2f 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,5 +1,6 @@
 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
@@ -9,9 +10,11 @@
 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 org.springframework.beans.BeanUtils
 import org.springframework.stereotype.Service
 import tk.mybatis.mapper.entity.Example
 import kotlin.random.Random
@@ -21,6 +24,8 @@
 class UserinfoServiceImpl(
     val userinfoMapper: UserinfoMapper,
     private val scenseMapper: ScenseMapper,
+    private val userInfoSVRep: UserInfoSVRep,
+    private val userInfoTZRep: UserInfoTZRep,
 ) : UserinfoService {
 
     //鏍规嵁userinfo鏉′欢鏌ヨ
@@ -68,26 +73,7 @@
         findByScene(sceneId)?.let { return it }
 
         scenseMapper.selectByPrimaryKey(sceneId)?.let {
-            val sceneName = it.name ?: return Userinfo()
-            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) {
-                return userInfo
-            }
+            createAccount(it)
         }
         return Userinfo()
     }
@@ -99,7 +85,7 @@
         return null
     }
 
-    private fun getUName(sceneName: String): String {
+    override fun getUName(sceneName: String): String {
         var uName = PinYin.getPinYinHeader(sceneName)
         var suffix = ""
         var repeated: Boolean
@@ -126,11 +112,14 @@
         }
     }
 
-    private fun createAccount(scence: Scense) {
+    override fun createAccount(scence: Scense):Userinfo {
         scence.let {
-            val sceneName = it.name ?: return
-            val uName = getUName(sceneName)
+            // 鍒ゆ柇璇ュ満鏅槸鍚﹀凡鏈夊搴旇处鎴�
+            val user = userInfoSVRep.findUser(it.guid)
+            if (user != null) return Userinfo()
 
+            val sceneName = it.name ?: return Userinfo()
+            val uName = getUName(sceneName)
             val userInfo = Userinfo().apply {
                 guid = UUIDGenerator.generate16ShortUUID()
                 acountname = uName
@@ -146,8 +135,32 @@
 
             val r = userinfoMapper.insert(userInfo)
             if (r == 1) {
-                println("${userInfo.guid}--${userInfo.acountname}--${userInfo.realname}")
+                return userInfo
+            } else {
+                return Userinfo()
             }
         }
     }
+
+    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)
+        }
+        return userinfoTZ
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3