RoleServiceImpl.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.om.service.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.om.entity.po.Menu;
  5. import com.om.entity.po.Role;
  6. import com.om.entity.po.RoleMenu;
  7. import com.om.mapper.RoleMapper;
  8. import com.om.mapper.RoleMenuMapper;
  9. import com.om.service.IMenuService;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import com.om.service.IRoleService;
  14. import java.util.List;
  15. /**
  16. * <p>
  17. * 服务实现类
  18. * </p>
  19. *
  20. * @author 何超
  21. * @since 2022-08-22
  22. */
  23. @Service
  24. public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IRoleService {
  25. @Autowired
  26. RoleMenuMapper roleMenuMapper;
  27. @Autowired
  28. IMenuService menuService;
  29. @Transactional
  30. @Override
  31. public void setRoleMenu(Integer roleId, List<Integer> menuIds) {
  32. //QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<>();
  33. //queryWrapper.eq("role_id", roleId);
  34. //roleMenuMapper.delete(queryWrapper);
  35. // 先删除当前角色id所有的绑定关系
  36. roleMenuMapper.deleteByRoleId(roleId);
  37. // 再把前端传过来的菜单id数组绑定到当前的这个角色id上去
  38. List<Integer> menuIdsCopy = CollUtil.newArrayList(menuIds);
  39. for (Integer menuId : menuIds) {
  40. Menu menu = menuService.getById(menuId);
  41. if (menu.getPid() != null && !menuIdsCopy.contains(menu.getPid())) { // 二级菜单 并且传过来的menuId数组里面没有它的父级id
  42. // 那么我们就得补上这个父级id
  43. RoleMenu roleMenu = new RoleMenu();
  44. roleMenu.setRoleId(roleId);
  45. roleMenu.setMenuId(menu.getPid());
  46. roleMenuMapper.insert(roleMenu);
  47. menuIdsCopy.add(menu.getPid());
  48. }
  49. RoleMenu roleMenu = new RoleMenu();
  50. roleMenu.setRoleId(roleId);
  51. roleMenu.setMenuId(menuId);
  52. roleMenuMapper.insert(roleMenu);
  53. }
  54. }
  55. @Override
  56. public List<Integer> getRoleMenu(Integer roleId) {
  57. return roleMenuMapper.selectByRoleId(roleId);
  58. }
  59. }