[feat] 新增编辑用户信息的内部接口
parent
8bde724310
commit
08299ccd09
4
pom.xml
4
pom.xml
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
|
||||
<name>ruoyi</name>
|
||||
<url>http://www.ruoyi.vip</url>
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<ruoyi.version>3.6.41.0.2</ruoyi.version>
|
||||
<ruoyi.version>3.6.41.0.3</ruoyi.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-api</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.system.api;
|
||||
|
||||
import com.ruoyi.system.api.inner.InnerRemoteUserService;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
|
@ -20,17 +21,8 @@ import com.ruoyi.system.api.model.LoginUser;
|
|||
* @author ruoyi
|
||||
*/
|
||||
@FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class)
|
||||
public interface RemoteUserService
|
||||
public interface RemoteUserService extends InnerRemoteUserService
|
||||
{
|
||||
/**
|
||||
* 通过用户ID查询用户信息
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param source 请求来源
|
||||
* @return 结果
|
||||
*/
|
||||
@GetMapping("/user/detail/{userId}")
|
||||
public R<LoginUser> infoById(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
/**
|
||||
* 通过用户名查询用户信息
|
||||
*
|
||||
|
|
@ -41,15 +33,6 @@ public interface RemoteUserService
|
|||
@GetMapping("/user/info/{username}")
|
||||
public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
/**
|
||||
* 通过手机号查询用户信息
|
||||
*
|
||||
* @param phoneNumber 用户名
|
||||
* @param source 请求来源
|
||||
* @return 结果
|
||||
*/
|
||||
@GetMapping("/user/info/phoneNumber/{phoneNumber:\\d+}")
|
||||
public R<LoginUser> getUserInfoByPhoneNumber(@PathVariable("phoneNumber") String phoneNumber, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
/**
|
||||
* 注册用户信息
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.system.api.factory;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||
|
|
@ -25,9 +26,9 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
|||
log.error("用户服务调用失败:{}", throwable.getMessage());
|
||||
return new RemoteUserService()
|
||||
{
|
||||
@NotNull
|
||||
@Override
|
||||
public R<LoginUser> infoById(Long userId, String source)
|
||||
{
|
||||
public R<LoginUser> infoById_Inner(Long userId, @NotNull String source) {
|
||||
return R.fail("获取用户失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -37,8 +38,9 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
|||
return R.fail("获取用户失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public R<LoginUser> getUserInfoByPhoneNumber(String phoneNumber, String source) {
|
||||
public R<LoginUser> getUserInfoByPhoneNumber_Inner(@NotNull String phoneNumber, @NotNull String source) {
|
||||
return R.fail("获取用户失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -53,6 +55,12 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
|||
{
|
||||
return R.fail("记录用户登录信息失败:" + throwable.getMessage());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public R<LoginUser> edit_Inner(@NotNull LoginUser user, @NotNull String source) {
|
||||
return R.fail("修改用户信息失败:" + throwable.getMessage());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
package com.ruoyi.system.api.inner;
|
||||
|
||||
import com.ruoyi.common.core.constant.SecurityConstants;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.system.api.model.LoginUser;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
public interface InnerRemoteUserService {
|
||||
/**
|
||||
* 通过用户ID查询用户信息
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param source 请求来源
|
||||
* @return 结果
|
||||
*/
|
||||
@GetMapping("/inner/user/detail/{userId}")
|
||||
R<LoginUser> infoById_Inner(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
|
||||
/**
|
||||
* 通过手机号查询用户信息
|
||||
*
|
||||
* @param phoneNumber 用户名
|
||||
* @param source 请求来源
|
||||
* @return 结果
|
||||
*/
|
||||
@GetMapping("/inner/user/info/phoneNumber/{phoneNumber:\\d+}")
|
||||
R<LoginUser> getUserInfoByPhoneNumber_Inner(@PathVariable("phoneNumber") String phoneNumber, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
|
||||
@PutMapping("/inner/user")
|
||||
R<LoginUser> edit_Inner(@RequestBody LoginUser user, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册用户信息
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
@ -914,7 +914,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
// 版本号
|
||||
version: "3.6.41.0.2",
|
||||
version: "3.6.41.0.3",
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-visual</artifactId>
|
||||
<version>3.6.41.0.2</version>
|
||||
<version>3.6.41.0.3</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue