feiyu02
2022-09-15 3e2159e45e12b2b8af058b68eafeaf082cf3fe85
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
@@ -54,6 +58,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)
@@ -89,6 +94,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
@@ -132,7 +186,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()
            }
@@ -206,4 +260,16 @@
        return UserBaseInfo(userId, userInfo.realname, baseInfo, companyInfo, specialInfo)
    }
    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)
    }
}