feiyu02
2022-10-21 f22c4b9230808fed4fec80c435eccb4c833349a0
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,6 +14,8 @@
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
@@ -21,7 +25,9 @@
    val companyMapper: CompanyMapper,
    val restaurantBaseInfoMapper: RestaurantBaseInfoMapper,
    val vehicleBaseInfoMapper: VehicleBaseInfoMapper,
    val userMapMapper: UserMapMapper
    val userMapMapper: UserMapMapper,
    val personalInfoMapper: PersonalInfoMapper,
    val userInfoWxMapper: UserInfoWxMapper
) : UserinfoService {
    //根据userinfo条件查询
@@ -37,7 +43,7 @@
        }
    }
    override fun findOne(id: String): Userinfo{
    override fun findOne(id: String): Userinfo {
        val userInfo = userinfoMapper.selectByPrimaryKey(id)
        userMapMapper.selectByPrimaryKey(id)?.let {
            userInfo?.extension3 = it.svUserId
@@ -97,6 +103,55 @@
        }
    }
    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
            }
        }
    }
    override fun getAddressBook(userId: String): List<FriendVo> {
        val resultList = mutableListOf<FriendVo>()
        val userInfo = findOne(userId)
@@ -149,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, "密码修改成功")
        }
    }
@@ -192,20 +252,22 @@
        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>> {