From f22c4b9230808fed4fec80c435eccb4c833349a0 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 21 十月 2022 18:36:38 +0800
Subject: [PATCH] 2022.10.21 1.环境守法小程序后台功能首发版本完成

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/UserinfoServiceImpl.kt |  114 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 99 insertions(+), 15 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 21c3102..c371dc0 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,7 @@
 package cn.flightfeather.supervision.lightshare.service.Impl
 
+import cn.flightfeather.supervision.domain.entity.BaseInfo
+import cn.flightfeather.supervision.domain.entity.Company
 import cn.flightfeather.supervision.domain.entity.Userinfo
 import cn.flightfeather.supervision.domain.enumeration.SceneType
 import cn.flightfeather.supervision.domain.mapper.*
@@ -12,15 +14,20 @@
 import org.springframework.stereotype.Service
 import org.springframework.web.multipart.MultipartFile
 import tk.mybatis.mapper.entity.Example
+import java.math.BigDecimal
+import java.util.*
 import javax.servlet.http.HttpServletResponse
 
 @Service
 class UserinfoServiceImpl(
-        val userinfoMapper: UserinfoMapper,
-        val baseInfoMapper: BaseInfoMapper,
-        val companyMapper: CompanyMapper,
-        val restaurantBaseInfoMapper: RestaurantBaseInfoMapper,
-        val vehicleBaseInfoMapper: VehicleBaseInfoMapper
+    val userinfoMapper: UserinfoMapper,
+    val baseInfoMapper: BaseInfoMapper,
+    val companyMapper: CompanyMapper,
+    val restaurantBaseInfoMapper: RestaurantBaseInfoMapper,
+    val vehicleBaseInfoMapper: VehicleBaseInfoMapper,
+    val userMapMapper: UserMapMapper,
+    val personalInfoMapper: PersonalInfoMapper,
+    val userInfoWxMapper: UserInfoWxMapper
 ) : UserinfoService {
 
     //鏍规嵁userinfo鏉′欢鏌ヨ
@@ -36,7 +43,13 @@
         }
     }
 
-    override fun findOne(id: String): Userinfo = userinfoMapper.selectByPrimaryKey(id)
+    override fun findOne(id: String): Userinfo {
+        val userInfo = userinfoMapper.selectByPrimaryKey(id)
+        userMapMapper.selectByPrimaryKey(id)?.let {
+            userInfo?.extension3 = it.svUserId
+        }
+        return userInfo ?: Userinfo()
+    }
 
     override fun findAll(): MutableList<Userinfo> = userinfoMapper.selectAll()
 
@@ -47,6 +60,7 @@
     override fun delete(id: String): Int = userinfoMapper.deleteByPrimaryKey(id)
 
     override fun login(loginRequestVo: LoginRequestVo): AccessToken {
+        if (loginRequestVo.userName.isNullOrEmpty() || loginRequestVo.password.isNullOrEmpty()) return AccessToken()
         val example = Example(Userinfo::class.java)
         val criteria = example.createCriteria()
         criteria.andEqualTo("acountname", loginRequestVo.userName)
@@ -55,6 +69,8 @@
         return AccessToken().apply {
             if (result.isNotEmpty()) {
                 userId = result[0].guid
+                val sUser = userMapMapper.selectByPrimaryKey(userId)
+                sUserId = sUser?.svUserId
                 success = true
             } else {
                 success = false
@@ -80,6 +96,55 @@
                 isenable = true
             }
             save(userInfo)
+            return AccessToken().apply {
+                userId = userInfo.guid
+                success = true
+            }
+        }
+    }
+
+    override fun register2(loginRequestVo: LoginRequestVo): AccessToken {
+        val result = userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
+            createCriteria().andEqualTo("realname", loginRequestVo.userName)
+        })
+        if (result.isNotEmpty()) {
+            return AccessToken().apply { success = false }
+        } else {
+            val userInfo = Userinfo().apply {
+                guid = UUIDGenerator.generate16ShortUUID()
+                acountname = loginRequestVo.userName
+                realname = loginRequestVo.userName
+                password = loginRequestVo.password
+                usertypeid = 3
+                usertype = "浼佷笟"
+                isenable = true
+                extension2 = loginRequestVo.sceneType
+            }
+            val company = Company().apply {
+                ciGuid = UUIDGenerator.generate16ShortUUID()
+                ciName = loginRequestVo.department
+                ciAddress = loginRequestVo.address
+                ciLongitude = BigDecimal.ZERO
+                ciLatitude = BigDecimal.ZERO
+                ciOrgCode = loginRequestVo.orgCode
+                ciBuildDate = Date()
+                ciTelephone = loginRequestVo.telephone
+            }
+            val baseInfo = BaseInfo().apply {
+                biGuid = userInfo.guid
+                biName = userInfo.realname
+                ciGuid = company.ciGuid
+                ciName = company.ciName
+                biTelephone = loginRequestVo.telephone
+                biAddress
+                biCreateTime = Date()
+                biUpdateTime = Date()
+                biExtension1 = userInfo.acountname
+            }
+            save(userInfo)
+            baseInfoMapper.insert(baseInfo)
+            companyMapper.insert(company)
+
             return AccessToken().apply {
                 userId = userInfo.guid
                 success = true
@@ -123,7 +188,7 @@
             val path = "accounts/$userId/"
             try {
                 //璋冪敤鏂囦欢淇濆瓨鏂规硶
-                FileUtil().uploadFile(file.bytes, basePath + path, fileName!!)
+                FileUtil.uploadFile(file.bytes, basePath + path, fileName!!)
             } catch (e: Exception) {
                 e.printStackTrace()
             }
@@ -139,16 +204,21 @@
         }
     }
 
-    override fun changePassword(userId: String, oldPassword: String, newPassword: String): Int {
+    override fun changePassword(userId: String, oldPassword: String, newPassword: String): BaseResponse<String> {
+        if (newPassword.trim() == "") return BaseResponse(false, "鏂板瘑鐮佷笉鑳戒负绌�")
+        if (oldPassword == newPassword) return BaseResponse(false, "鏂板瘑鐮佷笉鑳藉拰鍘熷瘑鐮佺浉鍚�")
+
         val userInfo = findOne(userId)
         return if (oldPassword != userInfo.password) {
-            0
+            BaseResponse(false, "鍘熷瘑鐮侀敊璇�")
         } else {
             val newUserInfo = Userinfo().apply {
                 guid = userInfo.guid
                 password = newPassword
+                remark = "pwChanged"
             }
             update(newUserInfo)
+            BaseResponse(true, "瀵嗙爜淇敼鎴愬姛")
         }
     }
 
@@ -182,19 +252,33 @@
         return result
     }
 
-    override fun getBaseInfo(userId: String): UserBaseInfo {
+    override fun getBaseInfo(userId: String, wxUserId: String?): UserBaseInfo {
         val userInfo = userinfoMapper.selectByPrimaryKey(userId) ?: return UserBaseInfo(userId)
-        val baseInfo = baseInfoMapper.selectByPrimaryKey(userId) ?: return UserBaseInfo(userId)
+        val baseInfo = baseInfoMapper.selectByPrimaryKey(userId)
+        val wxUser = if (wxUserId != null) userInfoWxMapper.selectByPrimaryKey(wxUserId) else null
 
         val mapper = when (userInfo.extension2) {
             SceneType.Restaurant.value.toString() -> restaurantBaseInfoMapper
             SceneType.VehicleRepair.value.toString() -> vehicleBaseInfoMapper
-            else -> restaurantBaseInfoMapper
+            else -> null
         }
 
-        val specialInfo = mapper.selectByPrimaryKey(baseInfo.biGuid)
-        val companyInfo = companyMapper.selectByPrimaryKey(baseInfo.ciGuid)
+        val specialInfo = mapper?.selectByPrimaryKey(baseInfo?.biGuid)
+        val companyInfo = companyMapper.selectByPrimaryKey(if (baseInfo?.ciGuid != null) baseInfo.ciGuid else wxUser?.ciGuid)
+        val personalInfo = personalInfoMapper.selectByPrimaryKey(wxUser?.piGuid)
 
-        return UserBaseInfo(userId, userInfo.realname, baseInfo, companyInfo, specialInfo)
+        return UserBaseInfo(userId, userInfo.realname, baseInfo, companyInfo, specialInfo, personalInfo)
+    }
+
+    override fun search(district: String?, sceneType: Int?, userType: Int?, page: Int, perPage: Int): BaseResponse<List<Userinfo>> {
+        val result = userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
+            createCriteria().apply {
+                district?.let { andEqualTo("extension1", it) }
+                sceneType?.let { andEqualTo("extension2", it) }
+                userType?.let { andEqualTo("usertypeid", it) }
+            }
+        })
+
+        return BaseResponse(true, data = result)
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3