diff --git a/service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java b/service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java index f28a41d..17e1fde 100644 --- a/service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java +++ b/service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java @@ -8,12 +8,17 @@ import com.atguigu.common.utlis.MenuHelper; import com.atguigu.constant.MessageConstant; import com.atguigu.exception.BunnyException; import com.atguigu.model.system.SysMenu; +import com.atguigu.model.system.SysRoleMenu; import com.atguigu.vo.system.AssginMenuVo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.List; /** @@ -88,10 +93,26 @@ public class SysMenuServiceImpl extends ServiceImpl impl /** * 给角色分配权限 * - * @param assginMenuVo 分配条件 + * @param vo 分配条件 */ + @Transactional @Override - public void doAssign(AssginMenuVo assginMenuVo) { + public void doAssign(AssginMenuVo vo) { + // 删除之前的 + sysRoleMenuService.remove(Wrappers.lambdaQuery().eq(SysRoleMenu::getRoleId, vo.getRoleId())); + ArrayList sysRoleMenuArrayList = new ArrayList<>(); + // 为角色分配菜单 + vo.getMenuIdList().forEach(menuId -> { + if (!StringUtils.isEmpty(menuId)) { + SysRoleMenu sysRoleMenu = new SysRoleMenu(); + sysRoleMenu.setRoleId(vo.getRoleId()); + sysRoleMenu.setMenuId(menuId); + sysRoleMenuArrayList.add(sysRoleMenu); + } + }); + + // 批量添加 + sysRoleMenuService.saveBatch(sysRoleMenuArrayList); } }