微人事——权限设置

2、Dao层

public interface RoleRepository extends JpaRepository<Role,Integer> {
   public List<Role> findAllById(Integer id);
   boolean existsById(Integer id);

	//删除Role表数据
   @Modifying  
   @Transactional
   @Query("delete from  Role where id = :id")
   Integer deleteRole(@Param("id") Integer id);

public interface MenuRepository extends JpaRepository<Menu,Integer> {
    public List<Menu> findAllById(Integer id);
    
    List<Menu> findAllByIdIn(List<Integer> id);
}
public interface MenuroleRepository extends JpaRepository<MenuRole,Integer> {
    public List<MenuRole> findAllById(Integer id);
    public List<MenuRole> findByRidIn(List<Integer> Rids);

    @Query("select menurole.mid from MenuRole menurole where menurole.rid = ?1")
    List<Integer> findMidByRid(Integer id);

    @Modifying
    @Transactional
    @Query(value = "insert into menu_role(rid,mid) values(?1,?2)",nativeQuery = true)
    void addMenuRole(Integer rid,Integer mids);

    @Modifying
    @Transactional
    @Query("delete from MenuRole where rid=?1")
    void deleteByRid(Integer rid);
}

3、Service层

@Service
public class RoleServiceImpl implements RoleService {

    @Autowired
    RoleRepository roleRepository;

    @Override
    public boolean addROle(Role role) {
        Role role1 = roleRepository.save(role);
        return roleRepository.existsById(role1.getId());
    }
}
@Service
public class MenuRoleServiceImpl implements MenuRoleService {

    @Autowired
    MenuroleRepository menuroleRepository;

	//增加多个权限
    @Override
    public Integer updateMenuRole(Integer rid, List<Integer> mids) {
    	menuroleRepository.deleteByRid(rid);
        int s = 0;
        for (int i = 0;i<mids.size();i++){
            menuroleRepository.addMenuRole(rid,mids.get(i));
            s = s + 1;
        }
        return s;
    }
}

4、Controller层

@RestController
@RequestMapping("/system/basic/permiss")
public class PermissController {

    @Autowired
    RoleRepository roleRepository;
    @Autowired
    MenuRepository menuRepository;
    @Autowired
    MenuroleRepository menuroleRepository;
    @Autowired
    RoleService roleService;
    @Autowired
    MenuRoleService menuRoleService;


	//获得所有角色
    @GetMapping("/")
    public List<Role> getAllRoles(){
        return roleRepository.findAll();
    }
	
	//获得所有权限
    @GetMapping("/menus")
    public List<Menu> getAllMenus(){
        return menuRepository.findAll();
    }

	//通过角色查找权限
    @GetMapping("/mids/{rid}")
    public List<Integer> getMidByRid(@PathVariable Integer rid){
        return menuroleRepository.findMidByRid(rid);
    }

	//增加角色
    @PostMapping("/role")
    public RespBean addRole(@RequestBody Role role){
        if (roleService.addROle(role) == true){
            return RespBean.ok("添加成功");
        }
        return RespBean.error("添加失败");
    }
	
	//删除角色
    @DeleteMapping("/role/{rid}")
    public RespBean deleteRoleById(@PathVariable Integer rid){
        if(roleRepository.deleteRole(rid) == 1){
            return RespBean.ok("删除成功");
        }
        return RespBean.error("删除失败");
    }
}

我们利用postman传入的是数组,但是接收的方式不是JSON,我们需要转换。
这里我们需要引入依赖,才能使用==JSON.parseObject()==方法

<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.66</version>
		</dependency>
//更新权限
    @PutMapping("/")
    public RespBean updateMenuRole(@RequestBody String str){
        Integer rid = Integer.parseInt(JSON.parseObject(str).get("rid").toString());
        List<Integer> mids = JSON.parseArray(JSON.parseObject(str).getString("mids"),Integer.class);
        if (menuRoleService.updateMenuRole(rid,mids) == mids.size()){
            return RespBean.ok("更新成功");
        }
        return RespBean.error("更新失败");
    }

测试

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值