Optimize code. Add kdoc.

This commit is contained in:
2023-12-25 17:27:50 +08:00
parent 31358107c7
commit 15f631971c
27 changed files with 188 additions and 36 deletions

View File

@@ -6,6 +6,7 @@ import top.fatweb.api.param.permission.LoginParam
import top.fatweb.api.param.permission.RegisterParam
import top.fatweb.api.param.permission.VerifyParam
import top.fatweb.api.vo.permission.LoginVo
import top.fatweb.api.vo.permission.RegisterVo
import top.fatweb.api.vo.permission.TokenVo
/**
@@ -21,7 +22,7 @@ interface IAuthenticationService {
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
*/
fun register(registerParam: RegisterParam)
fun register(registerParam: RegisterParam): RegisterVo
/**
* Send verify email

View File

@@ -34,6 +34,7 @@ import top.fatweb.api.util.MailUtil
import top.fatweb.api.util.RedisUtil
import top.fatweb.api.util.WebUtil
import top.fatweb.api.vo.permission.LoginVo
import top.fatweb.api.vo.permission.RegisterVo
import top.fatweb.api.vo.permission.TokenVo
import java.io.StringWriter
import java.time.Instant
@@ -63,13 +64,14 @@ class AuthenticationServiceImpl(
) : IAuthenticationService {
private val logger: Logger = LoggerFactory.getLogger(this::class.java)
@EventLogRecord(EventLog.Event.REGISTER)
@Transactional
override fun register(registerParam: RegisterParam) {
override fun register(registerParam: RegisterParam): RegisterVo {
val user = User().apply {
username = registerParam.username
password = passwordEncoder.encode(registerParam.password)
verify =
"${LocalDateTime.now(ZoneOffset.UTC).toInstant(ZoneOffset.UTC).toEpochMilli()}-${UUID.randomUUID()}"
"${LocalDateTime.now(ZoneOffset.UTC).toInstant(ZoneOffset.UTC).toEpochMilli()}-${UUID.randomUUID()}-${UUID.randomUUID()}-${UUID.randomUUID()}"
locking = 0
enable = 1
}
@@ -82,6 +84,8 @@ class AuthenticationServiceImpl(
})
sendVerifyMail(user.username!!, "http://localhost:5173/verify?code=${user.verify!!}", registerParam.email!!)
return RegisterVo(userId = user.id)
}
@Transactional
@@ -91,7 +95,7 @@ class AuthenticationServiceImpl(
user.verify ?: throw NoVerificationRequiredException()
user.verify =
"${LocalDateTime.now(ZoneOffset.UTC).toInstant(ZoneOffset.UTC).toEpochMilli()}-${UUID.randomUUID()}"
"${LocalDateTime.now(ZoneOffset.UTC).toInstant(ZoneOffset.UTC).toEpochMilli()}-${UUID.randomUUID()}-${UUID.randomUUID()}-${UUID.randomUUID()}"
user.updateTime = LocalDateTime.now(ZoneOffset.UTC)
userService.updateById(user)
@@ -113,11 +117,12 @@ class AuthenticationServiceImpl(
template.merge(velocityContext, stringWriter)
MailUtil.sendSimpleMail(
"激活您的账号", stringWriter.toString(), true,
"验证您的账号", stringWriter.toString(), true,
email
)
}
@EventLogRecord(EventLog.Event.VERIFY)
@Transactional
override fun verify(verifyParam: VerifyParam) {
val user = userService.getById(WebUtil.getLoginUserId()) ?: throw AccessDeniedException("Access Denied")

View File

@@ -28,6 +28,7 @@ import top.fatweb.api.vo.permission.UserWithPasswordRoleInfoVo
import top.fatweb.api.vo.permission.UserWithRoleInfoVo
import java.time.LocalDateTime
import java.time.ZoneOffset
import java.util.*
/**
* User service implement
@@ -111,9 +112,12 @@ class UserServiceImpl(
user.apply {
password = passwordEncoder.encode(rawPassword)
verify = if (userAddParam.verified) null else "${
LocalDateTime.now(ZoneOffset.UTC).toInstant(ZoneOffset.UTC).toEpochMilli()
}-${UUID.randomUUID()}-${UUID.randomUUID()}-${UUID.randomUUID()}"
}
if (baseMapper.insert(user) == 1) {
if (this.save(user)) {
user.userInfo?.let { userInfoService.save(it.apply { userId = user.id }) }
if (!user.roles.isNullOrEmpty()) {
@@ -175,9 +179,16 @@ class UserServiceImpl(
removeGroupIds.removeAll(addGroupIds)
oldGroupList.toSet().let { addGroupIds.removeAll(it) }
baseMapper.updateById(user)
baseMapper.update(
KtUpdateWrapper(User()).eq(User::id, user.id).set(User::expiration, user.expiration)
this.updateById(user)
this.update(
KtUpdateWrapper(User()).eq(User::id, user.id)
.set(
User::verify,
if (userUpdateParam.verified) null else "${
LocalDateTime.now(ZoneOffset.UTC).toInstant(ZoneOffset.UTC).toEpochMilli()
}-${UUID.randomUUID()}-${UUID.randomUUID()}-${UUID.randomUUID()}"
)
.set(User::expiration, user.expiration)
.set(User::credentialsExpiration, user.credentialsExpiration)
)
@@ -230,7 +241,7 @@ class UserServiceImpl(
throw AccessDeniedException("Access denied")
}
val user = baseMapper.selectById(userUpdatePasswordParam.id)
val user = this.getById(userUpdatePasswordParam.id)
user?.let {
val wrapper = KtUpdateWrapper(User())
wrapper.eq(User::id, user.id)
@@ -265,7 +276,7 @@ class UserServiceImpl(
return
}
baseMapper.deleteBatchIds(ids)
this.removeBatchByIds(ids)
userInfoService.remove(KtQueryWrapper(UserInfo()).`in`(UserInfo::userId, ids))
userRoleService.remove(KtQueryWrapper(UserRole()).`in`(UserRole::userId, ids))
userGroupService.remove(KtQueryWrapper(UserGroup()).`in`(UserGroup::userId, ids))