From dba4410ebad2ba2e9be53e15fae9c5024e800de8 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sat, 23 Mar 2024 23:58:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manger/controller/SysRoleController.java | 9 ++++++-- .../spzx/manger/mapper/SysRoleUserMapper.java | 21 +++++++++++++++++++ .../spzx/manger/service/SysRoleService.java | 8 +++++++ .../service/impl/SysRoleServiceImpl.java | 19 +++++++++++++++++ .../resources/mapper/SysRoleUserMapper.xml | 17 +++++++++++++++ 5 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysRoleUserMapper.java create mode 100644 spzx-manager/src/main/resources/mapper/SysRoleUserMapper.xml diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysRoleController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysRoleController.java index 7905170..b9020e6 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysRoleController.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysRoleController.java @@ -1,6 +1,7 @@ package com.atguigu.spzx.manger.controller; import com.atguigu.spzx.manger.service.SysRoleService; +import com.atguigu.spzx.model.dto.system.AssginRoleDto; import com.atguigu.spzx.model.dto.system.SysRoleDto; import com.atguigu.spzx.model.entity.system.SysRole; import com.atguigu.spzx.model.vo.result.Result; @@ -54,6 +55,10 @@ public class SysRoleController { return Result.success(allRolesList); } - @Operation(summary = "保存角色数据",description = "保存角色数据信息") - + @Operation(summary = "保存角色数据", description = "保存角色数据信息") + @PostMapping("doAssign") + public Result doAssign(@RequestBody AssginRoleDto assginRoleDto) { + sysRoleService.doAssign(assginRoleDto); + return Result.success(); + } } \ No newline at end of file diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysRoleUserMapper.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysRoleUserMapper.java new file mode 100644 index 0000000..3781c52 --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysRoleUserMapper.java @@ -0,0 +1,21 @@ +package com.atguigu.spzx.manger.mapper; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SysRoleUserMapper { + /** + * 根据用户id删除内容 + * + * @param userId 用户id + */ + void deleteByUserId(Long userId); + + /** + * 分配角色数据 + * + * @param userId 用户id + * @param roleId 角色id + */ + void doAssign(Long userId, Long roleId); +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysRoleService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysRoleService.java index 7bb892d..b340666 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysRoleService.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysRoleService.java @@ -1,5 +1,6 @@ package com.atguigu.spzx.manger.service; +import com.atguigu.spzx.model.dto.system.AssginRoleDto; import com.atguigu.spzx.model.dto.system.SysRoleDto; import com.atguigu.spzx.model.entity.system.SysRole; import com.atguigu.spzx.model.vo.system.AllRolesVo; @@ -43,4 +44,11 @@ public interface SysRoleService { * @return 所有角色信息 */ AllRolesVo findAllRoles(); + + /** + * 保存角色数据 + * + * @param assginRoleDto 请求参数实体类 + */ + void doAssign(AssginRoleDto assginRoleDto); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysRoleServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysRoleServiceImpl.java index 0e96a59..d59172f 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysRoleServiceImpl.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysRoleServiceImpl.java @@ -2,7 +2,9 @@ package com.atguigu.spzx.manger.service.impl; import com.atguigu.constant.MessageConstant; import com.atguigu.spzx.manger.mapper.SysRoleMapper; +import com.atguigu.spzx.manger.mapper.SysRoleUserMapper; import com.atguigu.spzx.manger.service.SysRoleService; +import com.atguigu.spzx.model.dto.system.AssginRoleDto; import com.atguigu.spzx.model.dto.system.SysRoleDto; import com.atguigu.spzx.model.entity.system.SysRole; import com.atguigu.spzx.model.vo.system.AllRolesVo; @@ -20,6 +22,8 @@ public class SysRoleServiceImpl implements SysRoleService { @Autowired private SysRoleMapper sysRoleMapper; @Autowired + private SysRoleUserMapper sysRoleUserMapper; + @Autowired private StringEmptyUtil emptyUtil; /** @@ -84,4 +88,19 @@ public class SysRoleServiceImpl implements SysRoleService { List sysRoleList = sysRoleMapper.findAllRoles(); return AllRolesVo.builder().allRolesList(sysRoleList).build(); } + + /** + * 保存角色数据 + * + * @param assginRoleDto 请求参数实体类 + */ + @Override + public void doAssign(AssginRoleDto assginRoleDto) { + // 删除之前的所有的用户所对应的角色数据 + sysRoleUserMapper.deleteByUserId(assginRoleDto.getUserId()); + // 分配新的角色数据 + assginRoleDto.getRoleIdList().forEach(roleId -> { + sysRoleUserMapper.doAssign(assginRoleDto.getUserId(), roleId); + }); + } } diff --git a/spzx-manager/src/main/resources/mapper/SysRoleUserMapper.xml b/spzx-manager/src/main/resources/mapper/SysRoleUserMapper.xml new file mode 100644 index 0000000..55385df --- /dev/null +++ b/spzx-manager/src/main/resources/mapper/SysRoleUserMapper.xml @@ -0,0 +1,17 @@ + + + + + + + insert into sys_user_role (user_id, role_id, create_time, update_time, is_deleted) + values (#{userId}, #{roleId}, now(), now(), 0) + + + + + delete + from sys_user_role + where user_id = #{userId} + +