From a9158d83c155e79e6be9daaa5651936121e2cfb6 Mon Sep 17 00:00:00 2001 From: otto <731554297@qq.com> Date: Thu, 20 Apr 2023 14:21:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(ruoyi=E6=94=AF=E6=8C=81=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=9C=A8=E5=A4=9A=E7=BB=84=E7=BB=87=E4=B8=AD=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E8=83=BD=E5=8A=9B):=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=8E=E9=83=A8=E9=97=A8=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E5=AF=B9=E5=A4=9A=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、用户与部门及部门对应角色的关联对象移动至公共模块 2、新增Fegin接口:通过用户名查询用户下组织及组织对应角色列表 关联Issue:https://www.gitlink.org.cn/Gitlink/forgeplus/issues/2780 --- .../ruoyi/system/api/RemoteUserService.java | 15 ++++ .../system/api}/domain/SysUserDeptRole.java | 73 ++++++++++++++++--- .../factory/RemoteUserFallbackFactory.java | 8 ++ .../ruoyi/auth/service/SysLoginService.java | 5 +- .../ruoyi/common/core/utils/SortUtils.java | 4 +- .../controller/SysUserDeptRoleController.java | 17 ++++- .../dto/SysUserDeptRoleByDeptInput.java | 2 +- .../dto/SysUserDeptRoleByUserInput.java | 2 +- .../system/mapper/SysUserDeptRoleMapper.java | 4 +- .../service/ISysUserDeptRoleService.java | 4 +- .../impl/SysUserDeptRoleServiceImpl.java | 7 +- .../mapper/system/SysUserDeptRoleMapper.xml | 15 +++- 12 files changed, 130 insertions(+), 26 deletions(-) rename {ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system => ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api}/domain/SysUserDeptRole.java (53%) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java index bdf637d6c..bec111f4f 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java @@ -4,11 +4,14 @@ import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.domain.SysUserDeptRole; import com.ruoyi.system.api.factory.RemoteUserFallbackFactory; import com.ruoyi.system.api.model.LoginUser; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 用户服务 * @@ -31,6 +34,7 @@ public interface RemoteUserService * 通过用户名查询用户信息 * * @param username 用户名 + * @param source 请求来源 * @return 结果 */ @GetMapping("/user/getSysUserByUserName/{username}") @@ -40,6 +44,7 @@ public interface RemoteUserService * 通过用户Id查询用户信息 * * @param userId 用户Id + * @param source 请求来源 * @return 结果 */ @GetMapping("/user/getSysUserByUserId/{userId}") @@ -61,9 +66,19 @@ public interface RemoteUserService * 通过GitLinkToken获取本系统Token * * @param cookie + * @param source 请求来源 * @return 返回本系统Token */ @PostMapping("/user/getSysUserTokenByGitLinkCookie") public R getSysUserTokenByGitLinkCookie(@RequestHeader("cookie") String cookie, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 通过用户名查询用户下组织及组织对应角色列表 + * + * @param userName 用户名 + * @param source 请求来源 + * @return 用户下组织及组织对应角色列表 + */ + @GetMapping("/userByUserName/{userName}/list") + public R> getSysUserDeptRoleListByUserName(@PathVariable("userName") String userName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserDeptRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUserDeptRole.java similarity index 53% rename from ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserDeptRole.java rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUserDeptRole.java index b1d3f7536..8f3ba1bb1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserDeptRole.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUserDeptRole.java @@ -1,23 +1,12 @@ -package com.ruoyi.system.domain; +package com.ruoyi.system.api.domain; -import com.ruoyi.system.api.domain.SysDept; -import com.ruoyi.system.api.domain.SysRole; -import com.ruoyi.system.api.domain.SysUser; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.NoArgsConstructor; import java.util.Objects; - /** - * 用户与部门及部门内角色关联对象 sys_user_dept_role - * * @author otto - * @date 2023-04-11 */ -@Data -@NoArgsConstructor @ApiModel("用户与部门及部门对应角色的关联对象") public class SysUserDeptRole { @@ -73,4 +62,64 @@ public class SysUserDeptRole { public int hashCode() { return Objects.hash(deptId, userId, roleId); } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public SysDept getSysDept() { + return sysDept; + } + + public void setSysDept(SysDept sysDept) { + this.sysDept = sysDept; + } + + public SysUser getSysUser() { + return sysUser; + } + + public void setSysUser(SysUser sysUser) { + this.sysUser = sysUser; + } + + public SysRole getSysRole() { + return sysRole; + } + + public void setSysRole(SysRole sysRole) { + this.sysRole = sysRole; + } + + @Override + public String toString() { + return "SysUserDeptRole{" + + "deptId=" + deptId + + ", userId=" + userId + + ", roleId=" + roleId + + ", sysDept=" + sysDept + + ", sysUser=" + sysUser + + ", sysRole=" + sysRole + + '}'; + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java index d01af2b75..295792786 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java @@ -3,12 +3,15 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.domain.SysUserDeptRole; import com.ruoyi.system.api.model.LoginUser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import java.util.List; + /** * 用户服务降级处理 * @@ -50,6 +53,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory getSysUserTokenByGitLinkCookie(String cookie, String source) { return R.fail("获取用户Token失败:" + throwable.getMessage()); } + + @Override + public R> getSysUserDeptRoleListByUserName(String userName, String source) { + return R.fail("查询用户下组织及组织对应角色列表失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index 431c264ed..0994bc09f 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -1,7 +1,5 @@ package com.ruoyi.auth.service; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.SecurityConstants; @@ -17,6 +15,8 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * 登录校验方法 @@ -97,6 +97,7 @@ public class SysLoginService throw new ServiceException("对不起,您的账号:" + username + " 已停用"); } passwordService.validate(user, password); + recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); return userInfo; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SortUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SortUtils.java index a7bc1b54e..7d1e233b7 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SortUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SortUtils.java @@ -50,9 +50,9 @@ public class SortUtils { } } catch (NoSuchFieldException e) { - throw new ServiceException(String.format("没用指定字段[%s]", param)); + throw new ServiceException(String.format("指定的排序字段不存在[%s]", param)); } catch (IllegalAccessException e) { - throw new ServiceException(String.format("访问字段非法,请检查字段[%s]权限", param)); + throw new ServiceException(String.format("访问排序字段非法,请检查排序字段[%s]权限", param)); } return 1; }; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserDeptRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserDeptRoleController.java index e1c73eb19..538578c33 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserDeptRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserDeptRoleController.java @@ -1,11 +1,13 @@ package com.ruoyi.system.controller; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.system.domain.SysUserDeptRole; +import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.system.api.domain.SysUserDeptRole; import com.ruoyi.system.domain.dto.SysUserDeptRoleByDeptInput; import com.ruoyi.system.domain.dto.SysUserDeptRoleByUserInput; import com.ruoyi.system.service.ISysUserDeptRoleService; @@ -14,6 +16,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; import java.util.List; @@ -101,6 +104,18 @@ public class SysUserDeptRoleController extends BaseController { return getDataTable(list); } + /** + * 通过用户名查询用户下组织及组织对应角色列表 + */ +// @RequiresPermissions("system:SysUserDeptRole:list") + @ApiIgnore + @InnerAuth + @GetMapping("/userByUserName/{userName}/list") + public R> getSysUserDeptRoleListByUserName(@PathVariable("userName") String userName) { + List list = sysUserDeptRoleService.selectSysUserDeptRoleListByUserName(userName); + return R.ok(list); + } + /** * 用户下批量新增组织及在组织中的角色 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByDeptInput.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByDeptInput.java index 40f485410..b8f215bea 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByDeptInput.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByDeptInput.java @@ -1,6 +1,6 @@ package com.ruoyi.system.domain.dto; -import com.ruoyi.system.domain.SysUserDeptRole; +import com.ruoyi.system.api.domain.SysUserDeptRole; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByUserInput.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByUserInput.java index 6c1d0bc5c..cd657008a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByUserInput.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SysUserDeptRoleByUserInput.java @@ -1,6 +1,6 @@ package com.ruoyi.system.domain.dto; -import com.ruoyi.system.domain.SysUserDeptRole; +import com.ruoyi.system.api.domain.SysUserDeptRole; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptRoleMapper.java index edf7571ce..0f3917b14 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptRoleMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptRoleMapper.java @@ -1,6 +1,6 @@ package com.ruoyi.system.mapper; -import com.ruoyi.system.domain.SysUserDeptRole; +import com.ruoyi.system.api.domain.SysUserDeptRole; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -83,4 +83,6 @@ public interface SysUserDeptRoleMapper { List selectSysUserDeptRoleListByUserId(@Param("userId") Long userId, @Param("deptName") String deptName, @Param("roleName") String roleName); int deleteSysUserDeptRoleListByUserIdAndDeptIds(@Param("userId") Long userId, @Param("deptIds") Long[] deptIds); + + List selectSysUserDeptRoleListByUserName(String userName); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptRoleService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptRoleService.java index 7f0fcab88..b5bd0319a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptRoleService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptRoleService.java @@ -1,6 +1,6 @@ package com.ruoyi.system.service; -import com.ruoyi.system.domain.SysUserDeptRole; +import com.ruoyi.system.api.domain.SysUserDeptRole; import com.ruoyi.system.domain.dto.SysUserDeptRoleByDeptInput; import com.ruoyi.system.domain.dto.SysUserDeptRoleByUserInput; import org.apache.ibatis.annotations.Param; @@ -82,4 +82,6 @@ public interface ISysUserDeptRoleService { int updateSysUserDeptRoleByUser(Long userId, SysUserDeptRoleByUserInput[] sysUserDeptRoleByUserInputs); int deleteSysUserDeptRoleListByUserIdAndDeptIds(Long userId, Long[] deptIds); + + List selectSysUserDeptRoleListByUserName(String userName); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptRoleServiceImpl.java index aaadd2a22..4b2c7e7dd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptRoleServiceImpl.java @@ -4,7 +4,7 @@ import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; -import com.ruoyi.system.domain.SysUserDeptRole; +import com.ruoyi.system.api.domain.SysUserDeptRole; import com.ruoyi.system.domain.dto.SysUserDeptRoleByDeptInput; import com.ruoyi.system.domain.dto.SysUserDeptRoleByUserInput; import com.ruoyi.system.mapper.SysDeptMapper; @@ -214,6 +214,11 @@ public class SysUserDeptRoleServiceImpl implements ISysUserDeptRoleService { return sysUserDeptRoleMapper.deleteSysUserDeptRoleListByUserIdAndDeptIds(userId, deptIds); } + @Override + public List selectSysUserDeptRoleListByUserName(String userName) { + return sysUserDeptRoleMapper.selectSysUserDeptRoleListByUserName(userName); + } + private SysUser selectSysUserById(Long userId) { SysUser sysUser = sysUserMapper.selectUserById(userId); if (sysUser == null) { diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserDeptRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserDeptRoleMapper.xml index 77789514b..da2e4e34b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserDeptRoleMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserDeptRoleMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -82,7 +82,7 @@ - + - + insert into sys_user_dept_role dept_id, @@ -139,7 +146,7 @@ - + update sys_user_dept_role role_id = #{roleId},