[feat] 新增编辑用户信息的内部接口

This commit is contained in:
hsdllcw
2024-10-25 16:53:27 +08:00
parent 8bde724310
commit 08299ccd09
28 changed files with 177 additions and 89 deletions

View File

@@ -134,48 +134,6 @@ public class SysUserController extends BaseController
return R.ok(sysUserVo);
}
/**
* 获取当前用户信息
*/
@InnerAuth
@GetMapping("/info/phoneNumber/{phoneNumber:\\d+}")
public R<LoginUser> infoByPhone(@PathVariable("phoneNumber") String phoneNumber)
{
SysUser sysUser = userService.selectUserByPhoneNumber(phoneNumber);
if (StringUtils.isNull(sysUser))
{
return R.fail("用户名或密码错误");
}
// 角色集合
Set<String> roles = permissionService.getRolePermission(sysUser);
// 权限集合
Set<String> permissions = permissionService.getMenuPermission(sysUser);
LoginUser sysUserVo = new LoginUser();
sysUserVo.setSysUser(sysUser);
sysUserVo.setRoles(roles);
sysUserVo.setPermissions(permissions);
return R.ok(sysUserVo);
}
/**
* 根据ID获取用户信息
*/
@InnerAuth
@GetMapping("/detail/{userId}")
public R<LoginUser> infoById(@PathVariable("userId") Long userId)
{
SysUser sysUser = userService.selectUserById(userId);
// 角色集合
Set<String> roles = permissionService.getRolePermission(sysUser);
// 权限集合
Set<String> permissions = permissionService.getMenuPermission(sysUser);
LoginUser sysUserVo = new LoginUser();
sysUserVo.setSysUser(sysUser);
sysUserVo.setRoles(roles);
sysUserVo.setPermissions(permissions);
return R.ok(sysUserVo);
}
/**
* 注册用户信息
*/

View File

@@ -0,0 +1,107 @@
package com.ruoyi.system.controller.inner
import com.ruoyi.common.core.domain.R
import com.ruoyi.common.core.utils.StringUtils
import com.ruoyi.common.log.annotation.Log
import com.ruoyi.common.log.enums.BusinessType
import com.ruoyi.common.security.annotation.InnerAuth
import com.ruoyi.system.api.domain.SysUser
import com.ruoyi.system.api.model.LoginUser
import com.ruoyi.system.service.ISysDeptService
import com.ruoyi.system.service.ISysPermissionService
import com.ruoyi.system.service.ISysRoleService
import com.ruoyi.system.service.ISysUserService
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.validation.annotation.Validated
import org.springframework.web.bind.annotation.*
/**
* 用户信息
*
* @author hsdllcw
*/
@RestController
@RequestMapping("/inner/user")
class InnerSysUserController {
@Autowired
lateinit var userService: ISysUserService
@Autowired
lateinit var permissionService: ISysPermissionService
@Autowired
lateinit var deptService: ISysDeptService
@Autowired
lateinit var roleService: ISysRoleService
/**
* 获取当前用户信息
*/
@InnerAuth
@GetMapping("/info/phoneNumber/{phoneNumber:\\d+}")
fun infoByPhone(@PathVariable("phoneNumber") phoneNumber: String?): R<LoginUser> {
val sysUser: SysUser = userService.selectUserByPhoneNumber(phoneNumber)
if (StringUtils.isNull(sysUser)) {
return R.fail("用户名或密码错误")
}
// 角色集合
val roles: Set<String> = permissionService.getRolePermission(sysUser)
// 权限集合
val permissions: Set<String> = permissionService.getMenuPermission(sysUser)
val sysUserVo = LoginUser()
sysUserVo.sysUser = sysUser
sysUserVo.roles = roles
sysUserVo.permissions = permissions
return R.ok(sysUserVo)
}
/**
* 根据ID获取用户信息
*/
@InnerAuth
@GetMapping("/detail/{userId}")
fun infoById(@PathVariable("userId") userId: Long?): R<LoginUser> {
val sysUser: SysUser = userService.selectUserById(userId)
// 角色集合
val roles: Set<String> = permissionService.getRolePermission(sysUser)
// 权限集合
val permissions: Set<String> = permissionService.getMenuPermission(sysUser)
val sysUserVo = LoginUser()
sysUserVo.sysUser = sysUser
sysUserVo.roles = roles
sysUserVo.permissions = permissions
return R.ok(sysUserVo)
}
/**
* 修改用户
*/
@InnerAuth
@PutMapping
@Log(title = "用户修改本人信息", businessType = BusinessType.UPDATE)
fun edit(@Validated @RequestBody loginUser: LoginUser): R<LoginUser> {
val originUser = userService.selectUserById(loginUser.userid)
val targetUser = loginUser.sysUser
userService.checkUserAllowed(originUser)
userService.checkUserDataScope(originUser.userId)
deptService.checkDeptDataScope(originUser.deptId)
roleService.checkRoleDataScope(*originUser.roleIds)
if (!userService.checkUserNameUnique(targetUser)) {
return error("修改用户'" + targetUser.userName + "'失败,登录账号已存在")
} else if (StringUtils.isNotEmpty(targetUser.phonenumber) && !userService.checkPhoneUnique(targetUser)) {
return error("修改用户'" + targetUser.userName + "'失败,手机号码已存在")
} else if (StringUtils.isNotEmpty(targetUser.email) && !userService.checkEmailUnique(targetUser)) {
return error("修改用户'" + targetUser.userName + "'失败,邮箱账号已存在")
}
originUser.userName = targetUser.userName ?: originUser.userName
originUser.phonenumber = targetUser.phonenumber ?: originUser.phonenumber
originUser.email = targetUser.email ?: originUser.email
originUser.avatar = targetUser.avatar ?: originUser.avatar
originUser.updateBy = originUser.userName
userService.updateUser(originUser)
return R.ok(loginUser)
}
}