This commit is contained in:
2023-12-03 16:27:51 +08:00
parent 95ea00e643
commit e16914967a
30 changed files with 802 additions and 117 deletions

View File

@@ -27,64 +27,130 @@ import top.fatweb.api.vo.permission.UserWithRoleInfoVo
class UserController(
private val userService: IUserService
) {
/**
* Get current user information
*
* @return Response object includes user information
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see ResponseResult
* @see UserWithPowerInfoVo
*/
@Operation(summary = "获取当前用户信息")
@GetMapping("info")
fun getInfo(): ResponseResult<UserWithPowerInfoVo> {
fun getInfo(): ResponseResult<UserWithPowerInfoVo> =
userService.getInfo()?.let {
return ResponseResult.databaseSuccess(data = it)
} ?: let { return ResponseResult.databaseFail() }
}
ResponseResult.databaseSuccess(data = it)
} ?: let { ResponseResult.databaseFail() }
/**
* Get user by ID
*
* @param id User ID
* @return Response object includes user information
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see ResponseResult
* @see UserWithRoleInfoVo
*/
@Operation(summary = "获取单个用户")
@GetMapping("/{id}")
@PreAuthorize("hasAnyAuthority('system:user:query:one')")
fun getOne(@PathVariable id: Long): ResponseResult<UserWithRoleInfoVo> {
return userService.getOne(id)?.let {
fun getOne(@PathVariable id: Long): ResponseResult<UserWithRoleInfoVo> =
userService.getOne(id)?.let {
ResponseResult.databaseSuccess(data = it)
} ?: let {
throw NoRecordFoundException()
}
}
/**
* Get user paging information
*
* @param userGetParam Get user parameters
* @return Response object includes user paging information
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see UserGetParam
* @see ResponseResult
* @see UserWithRoleInfoVo
*/
@Operation(summary = "获取用户")
@GetMapping
@PreAuthorize("hasAnyAuthority('system:user:query:all')")
fun get(@Valid userGetParam: UserGetParam?): ResponseResult<PageVo<UserWithRoleInfoVo>> {
return ResponseResult.databaseSuccess(
fun get(@Valid userGetParam: UserGetParam?): ResponseResult<PageVo<UserWithRoleInfoVo>> =
ResponseResult.databaseSuccess(
data = userService.getPage(userGetParam)
)
}
/**
* Add user
*
* @param userAddParam Add user parameters
* @return Response object includes user information
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see UserAddParam
* @see ResponseResult
* @see UserWithPasswordRoleInfoVo
*/
@Operation(summary = "添加用户")
@PostMapping
@PreAuthorize("hasAnyAuthority('system:user:add:one')")
fun add(@Valid @RequestBody userAddParam: UserAddParam): ResponseResult<UserWithPasswordRoleInfoVo> {
return userService.add(userAddParam)?.let {
fun add(@Valid @RequestBody userAddParam: UserAddParam): ResponseResult<UserWithPasswordRoleInfoVo> =
userService.add(userAddParam)?.let {
ResponseResult.databaseSuccess(
ResponseCode.DATABASE_INSERT_SUCCESS, data = it
)
} ?: let { ResponseResult.databaseFail(ResponseCode.DATABASE_INSERT_FAILED) }
}
/**
* Update user
*
* @param userUpdateParam Update user parameters
* @return Response object includes user information
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see UserUpdateParam
* @see ResponseResult
* @see UserWithRoleInfoVo
*/
@Operation(summary = "修改用户")
@PutMapping
@PreAuthorize("hasAnyAuthority('system:user:modify:one')")
fun update(@Valid @RequestBody userUpdateParam: UserUpdateParam): ResponseResult<UserWithRoleInfoVo> {
return userService.update(userUpdateParam)?.let {
fun update(@Valid @RequestBody userUpdateParam: UserUpdateParam): ResponseResult<UserWithRoleInfoVo> =
userService.update(userUpdateParam)?.let {
ResponseResult.databaseSuccess(
ResponseCode.DATABASE_UPDATE_SUCCESS, data = it
)
} ?: let { ResponseResult.databaseFail(ResponseCode.DATABASE_UPDATE_FILED) }
}
/**
* Update user password
*
* @param userUpdatePasswordParam Update user password parameters
* @return Response object
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see UserUpdatePasswordParam
* @see ResponseResult
*/
@Operation(summary = "修改密码")
@PatchMapping
@PreAuthorize("hasAnyAuthority('system:user:modify:password')")
fun changePassword(@Valid @RequestBody userChangePasswordParam: UserChangePasswordParam): ResponseResult<Nothing> {
userService.changePassword(userChangePasswordParam)
fun password(@Valid @RequestBody userUpdatePasswordParam: UserUpdatePasswordParam): ResponseResult<Nothing> {
userService.password(userUpdatePasswordParam)
return ResponseResult.databaseSuccess(ResponseCode.DATABASE_UPDATE_SUCCESS)
}
/**
* Delete user by ID
*
* @param id User ID
* @return Response object
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see ResponseResult
*/
@Operation(summary = "删除用户")
@DeleteMapping("/{id}")
@PreAuthorize("hasAnyAuthority('system:user:delete:one')")
@@ -93,6 +159,16 @@ class UserController(
return ResponseResult.databaseSuccess(ResponseCode.DATABASE_DELETE_SUCCESS)
}
/**
* Delete user by list
*
* @param userDeleteParam Delete user parameters
* @return Response object
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
* @see UserDeleteParam
* @see ResponseResult
*/
@Operation(summary = "批量删除用户")
@DeleteMapping
@PreAuthorize("hasAnyAuthority('system:user:delete:multiple')")
@@ -100,5 +176,4 @@ class UserController(
userService.delete(userDeleteParam)
return ResponseResult.databaseSuccess(ResponseCode.DATABASE_DELETE_SUCCESS)
}
}
}