From 147712b75c7c164240238586e0a433538bb7ef70 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 22 Nov 2023 23:52:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=BA=E6=9E=84=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=85=B3=E8=81=94=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sarRole/controller/TsRoleController.java | 21 +++++ .../adc/da/slrs/sarRole/entity/TsRole.java | 9 ++ .../slrs/sarRole/service/ITsRoleService.java | 8 ++ .../service/impl/TsRoleServiceImpl.java | 20 +++++ .../sarUser/controller/TsUserController.java | 19 ++++ .../slrs/sarUser/entity/UserRoleBatchVO.java | 20 +++++ .../da/slrs/sarUser/entity/UserRoleVO.java | 18 ++++ .../slrs/sarUser/service/ITsUserService.java | 11 ++- .../service/impl/TsUserServiceImpl.java | 86 ++++++++++++++++++- .../mybatis/mapper/sarUser/TsUserMapper.xml | 16 ++-- .../com/adc/da/sys/entity/UserRoleEO.java | 20 ++--- 11 files changed, 225 insertions(+), 23 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleBatchVO.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleVO.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java index ad0efc6e..3f9ab09c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java @@ -6,14 +6,21 @@ import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.login.util.UserUtils; import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarPosition.entity.TsPosition; import com.adc.da.slrs.sarResource.entity.TsResource; import com.adc.da.slrs.sarResource.service.ITsResourceService; import com.adc.da.slrs.sarRole.dao.TsRoleDao; import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO; import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO; import com.adc.da.slrs.sarRole.service.ITsRoleService; +import com.adc.da.slrs.sarUser.entity.UserPositionBatchVO; +import com.adc.da.slrs.sarUser.entity.UserPositionVO; +import com.adc.da.slrs.sarUser.entity.UserRoleBatchVO; +import com.adc.da.slrs.sarUser.entity.UserRoleVO; +import com.adc.da.slrs.sarUser.service.ITsUserService; import com.adc.da.sys.entity.UserEO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ObjectUtils; import org.apache.ibatis.annotations.Delete; @@ -24,6 +31,7 @@ import com.adc.da.slrs.sarRole.entity.TsRole; import io.swagger.annotations.Api; import com.adc.da.base.web.BaseController; +import javax.annotation.Resource; import javax.validation.Valid; import java.util.List; @@ -43,6 +51,8 @@ public class TsRoleController extends BaseController { private ITsRoleService tsRoleService; @Autowired private TsRoleDao tsRoleDao; + @Resource + private ITsUserService tsUserService; @ApiOperation("查询所有角色") @GetMapping @@ -51,6 +61,17 @@ public class TsRoleController extends BaseController { return Result.success(tsRoles); } + /** + * 查询角色(可通过name筛选) + * @param tsRole:筛选信息 + */ + @ApiOperation("查询角色") + @GetMapping("/allPage") + public ResponseMessage> getPosition(TsRole tsRole){ + IPage roles = tsRoleService.getRole(tsRole); + return Result.success(roles); + } + @ApiOperation("根据角色名筛选角色") @GetMapping("/name") public ResponseMessage> getByName(String name){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRole.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRole.java index cd72e305..558d683e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRole.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRole.java @@ -123,5 +123,14 @@ public class TsRole extends BaseEntity { @TableField(exist = false) private String parent; + @TableField(exist = false) + private Integer current; + + @TableField(exist = false) + private Integer pageSize; + + @TableField(exist = false) + private Integer total; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java index 3c9910bb..a13a8c41 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java @@ -4,6 +4,7 @@ import com.adc.da.http.ResponseMessage; import com.adc.da.slrs.sarRole.entity.TsRole; import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO; import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; @@ -86,4 +87,11 @@ public interface ITsRoleService extends IService { * @return List */ List getRootMenuIdsByRoleIds(List roleIds); + + /** + * 分页获取所有角色 + * @param tsRole + * @return + */ + IPage getRole(TsRole tsRole); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java index 9e249a0e..a3f7c711 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java @@ -1,11 +1,13 @@ package com.adc.da.slrs.sarRole.service.impl; +import cn.hutool.core.util.StrUtil; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.slrs.sarMenu.dao.SarMenuDao; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarMenu.service.ISarMenuService; import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService; +import com.adc.da.slrs.sarPosition.entity.TsPosition; import com.adc.da.slrs.sarResource.service.ITsResourceService; import com.adc.da.slrs.sarRole.entity.TsRole; import com.adc.da.slrs.sarRole.dao.TsRoleDao; @@ -17,7 +19,10 @@ import com.adc.da.slrs.sarUser.service.ITsUserService; import com.adc.da.slrs.zlTree.dao.ZlTreeDao; import com.adc.da.slrs.zlTree.entity.ZlTree; import com.adc.da.utils.util.ListUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -289,5 +294,20 @@ public class TsRoleServiceImpl extends ServiceImpl implements return null; } + @Override + public IPage getRole(TsRole tsRole) { + IPage page = new Page<>(tsRole.getCurrent(), tsRole.getPageSize()); + LambdaQueryWrapper roleWrapper = new LambdaQueryWrapper<>(); + roleWrapper.like(StrUtil.isNotBlank(tsRole.getName()), TsRole::getName, tsRole.getName()); + IPage tsRoleIPage = baseMapper.selectPage(page, roleWrapper); + List records = tsRoleIPage.getRecords(); + page.setRecords(records); + page.setTotal(page.getTotal()); + page.setCurrent(tsRole.getCurrent()); + page.setSize(tsRole.getPageSize()); + System.out.println(page.getTotal()); + return page; + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java index a58e9ba2..9affa8e9 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java @@ -71,6 +71,25 @@ public class TsUserController extends BaseController { return tsUserService.setPositionBatchByOrgId(userPositionVO); } + @ApiOperation("配置角色") + @PostMapping("/role") + public ResponseMessage setPosition(@Valid @RequestBody UserRoleVO userRoleVO){ + return tsUserService.setRole(userRoleVO); + } + + + @ApiOperation("配置角色") + @PostMapping("/roleBatch") + public ResponseMessage setPositionBatch(@Valid @RequestBody UserRoleBatchVO userRoleVO){ + return tsUserService.setRoleBatch(userRoleVO); + } + + @ApiOperation("配置角色") + @PostMapping("/roleBatchByOrgId") + public ResponseMessage setPositionBatchByOrgId(@Valid @RequestBody UserRoleBatchVO userRoleVO){ + return tsUserService.setRoleBatchByOrgId(userRoleVO); + } + @ApiOperation("查询当前登录用户权限") @GetMapping("/menu") diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleBatchVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleBatchVO.java new file mode 100644 index 00000000..8353e421 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleBatchVO.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarUser.entity; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2023/11/22 22:50 + */ +@Data +public class UserRoleBatchVO { + @NotNull(message = "userId不能为空") + private List userId; + @NotNull(message = "roleIds不能为空") + private List roleIds; + @NotNull(message = "orgId不能为空") + private String orgId; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleVO.java new file mode 100644 index 00000000..16add0ff --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserRoleVO.java @@ -0,0 +1,18 @@ +package com.adc.da.slrs.sarUser.entity; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2023/11/22 22:50 + */ +@Data +public class UserRoleVO { + @NotNull(message = "userId不能为空") + private String userId; + @NotNull(message = "roleIds不能为空") + private List roleIds; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java index fd625467..160c99cf 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java @@ -3,10 +3,7 @@ package com.adc.da.slrs.sarUser.service; import com.adc.da.http.ResponseMessage; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarResource.entity.TsResource; -import com.adc.da.slrs.sarUser.entity.TsUser; -import com.adc.da.slrs.sarUser.entity.UpDTO; -import com.adc.da.slrs.sarUser.entity.UserPositionBatchVO; -import com.adc.da.slrs.sarUser.entity.UserPositionVO; +import com.adc.da.slrs.sarUser.entity.*; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -92,4 +89,10 @@ public interface ITsUserService extends IService { IPage getAllUsers(TsUser tsUser); String userIdByName(String userId); + + ResponseMessage setRole(UserRoleVO userRoleVO); + + ResponseMessage setRoleBatch(UserRoleBatchVO userRoleVO); + + ResponseMessage setRoleBatchByOrgId(UserRoleBatchVO userRoleVO); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java index 7437c2bd..c3a3b94b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java @@ -79,7 +79,6 @@ public class TsUserServiceImpl extends ServiceImpl implements private IUserRoleEOService userRoleEOService; - public void deleteUser(){ tsUserDao.deleteUser(); }; @@ -550,5 +549,90 @@ public class TsUserServiceImpl extends ServiceImpl implements return userName; } + @Override + public ResponseMessage setRole(UserRoleVO userRoleVO) { + TsUser tsUser=tsUserDao.selectById(userRoleVO.getUserId()); + if(tsUser==null){ + return Result.error("该用户不存在"); + } + // 删除原来的角色关联 + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq("USER_ID",userRoleVO.getUserId()); + userRoleEOService.remove(queryWrapper); + // 设置新的角色关联 + List userRoleEOList=new ArrayList<>(); + userRoleVO.getRoleIds().forEach(roleId -> { + UserRoleEO userRoleEO=new UserRoleEO(); + userRoleEO.setUserId(userRoleVO.getUserId()); + userRoleEO.setRoleId(roleId); + userRoleEOList.add(userRoleEO); + }); + userRoleEOService.saveBatch(userRoleEOList); + return Result.success(); + } + + @Override + public ResponseMessage setRoleBatch(UserRoleBatchVO userRoleVO) { + // 删除原来的角色关联 + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.in("USER_ID",userRoleVO.getUserId()); + userRoleEOService.remove(queryWrapper); + // 设置新的角色关联 + List userRoleEOList=new ArrayList<>(); + userRoleVO.getUserId().forEach(userId -> { + userRoleVO.getRoleIds().forEach(roleId -> { + UserRoleEO userRoleEO=new UserRoleEO(); + userRoleEO.setUserId(userId); + userRoleEO.setRoleId(roleId); + userRoleEOList.add(userRoleEO); + }); + }); + userRoleEOService.saveBatch(userRoleEOList); + return Result.success(); + } + + @Override + public ResponseMessage setRoleBatchByOrgId(UserRoleBatchVO userRoleVO) { + //首先将所有用户查出来 + List orgIds=new ArrayList<>(); + orgIds.add(userRoleVO.getOrgId()); + List middle=new ArrayList<>(); + middle.addAll(orgIds); + boolean Orgflag=true; + while (Orgflag){ + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.in("parent_id",middle); + List tsmiddle=tsInstitutionService.list(queryWrapper); + if (tsmiddle.size()>0){ + tsmiddle.forEach(tsInstitution -> { + middle.add(tsInstitution.getId()); + }); + middle.removeAll(orgIds); + orgIds.addAll(middle); + }else { + tsmiddle.forEach(tsInstitution -> { + middle.add(tsInstitution.getId()); + }); + middle.removeAll(orgIds); + orgIds.addAll(middle); + Orgflag=false; + } + } + orgIds.removeIf(s -> null==s); + List userRoleEOList=new ArrayList<>(); + List allUsers = tsUserDao.getUserUnderInstitutionAll(orgIds); + for (TsUser tsUser : allUsers){ + String userId = tsUser.getUserId(); + // 设置新的角色关联 + userRoleVO.getRoleIds().forEach(roleId -> { + UserRoleEO userRoleEO=new UserRoleEO(); + userRoleEO.setUserId(userId); + userRoleEO.setRoleId(roleId); + userRoleEOList.add(userRoleEO); + }); + } + userRoleEOService.saveBatch(userRoleEOList); + return Result.success(); + } } diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml index bb1bae1c..a55a085b 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml @@ -152,10 +152,10 @@ SELECT ts_user.UNAME,ts_user.USID,ts_user.INSTITUTION_ID , ts_institution.name as institution_name from ts_user left join ts_institution on ts_institution.id=ts_user.INSTITUTION_ID - LEFT JOIN ts_user_position on ts_user.USID = ts_user_position.user_id - WHERE ts_user_position.position_id in ( - SELECT ts_position_role.position_id from ts_position_role - WHERE ts_position_role.role_id = #{role.roleId} ) and ts_user.DISABLE_FLAG = '0' + LEFT JOIN ts_user_role on ts_user.USID = ts_user_role.user_id + WHERE ts_user_role.role_id in ( + SELECT ts_user_role.role_id from ts_user_role + WHERE ts_user_role.role_id = #{role.roleId} ) and ts_user.DISABLE_FLAG = '0' and ts_user.USID like concat(concat('%',#{role.userId}),'%') diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/entity/UserRoleEO.java b/adc-da-sys/src/main/java/com/adc/da/sys/entity/UserRoleEO.java index 29cb745e..e858e5a9 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/entity/UserRoleEO.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/entity/UserRoleEO.java @@ -2,6 +2,9 @@ package com.adc.da.sys.entity; import com.adc.da.base.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; /** @@ -10,10 +13,17 @@ import com.baomidou.mybatisplus.annotation.TableName; * 日期: 2018-09-03
* 版权所有:版权归北京卡达克数据技术中心所有。
*/ +@EqualsAndHashCode(callSuper = true) +@Getter @TableName("TS_USER_ROLE") +@Data public class UserRoleEO extends BaseEntity { + /** + */ private String roleId; + /** + */ private String userId; /** @@ -45,22 +55,12 @@ public class UserRoleEO extends BaseEntity { default: return null; } } - - /** **/ - public String getRoleId() { - return this.roleId; - } /** **/ public void setRoleId(String roleId) { this.roleId = roleId; } - /** **/ - public String getUserId() { - return this.userId; - } - /** **/ public void setUserId(String userId) { this.userId = userId;