whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/service/PermitGroupService.java
@@ -42,12 +42,12 @@
    @Transactional
    public Response<Boolean> add(List<PermitGroup> permitGroupList) {
        //首先校验当前用户所在的权限组,是否存在权限编辑权限 permit_edit_permit
        if (!checkUserPermit()) return new Response<Boolean>().set(1, false, "当前用户没有权限添加权限组");
        if (!checkUserPermit()) return new Response<Boolean>().set(1, false, "当前用户没有权限编辑权限组");
        Response<Boolean> response = new Response();
        //权限互斥,查询已存在的权限组,不允许存在权限完全一样的权限组
        QueryWrapper<PermitGroup> wrapper = Wrappers.query();
        //wrapper.select("permit_group_id","permit_item_name","permit_item_value");
        wrapper.select("permit_group_id","permit_item_value");
        wrapper.select("permit_group_id","permit_item_value").ge("permit_group_id",100);
        List<PermitGroup> existGroupList = mapper.selectList(wrapper);
        Map<Integer, List<PermitGroup>> existGroupListMap = existGroupList.stream().collect(Collectors.groupingBy(PermitGroup::getPermitGroupId));
        Set<Integer> keySet = existGroupListMap.keySet();
@@ -74,7 +74,7 @@
        mapper.insertBatchSomeColumn(permitGroupList);
        return response.set(1,true,"添加成功");
    }
    //验证权限
    private boolean checkUserPermit() {
        Long uId = ActionUtil.getUser().getUId();
        List<String> itemList = permitGroupUserMapper.getItemList(uId);
@@ -84,16 +84,27 @@
        return true;
    }
    //验证指定权限
    public boolean checkUserPermitWithName(String permitName) {
        Long uId = ActionUtil.getUser().getUId();
        List<String> itemList = permitGroupUserMapper.getItemList(uId);
        if (!itemList.contains(permitName)){
            return false;
        }
        return true;
    }
    @Transactional
    public Response<Boolean> update(List<PermitGroup> permitGroupList) {
        //首先校验当前用户所在的权限组,是否存在权限编辑权限 permit_edit_permit
        if (!checkUserPermit()) return new Response<Boolean>().set(1, false, "当前用户没有权限添加权限组");
        if (!checkUserPermit()) return new Response<Boolean>().set(1, false, "当前用户没有权限编辑权限组");
        Response<Boolean> response = new Response<>();
        //权限互斥,查询已存在的权限组,不允许存在权限完全一样的权限组
        //权限互斥,查询已存在的权限组,不允许存在权限完全一样的权限组(应该剔除掉数据库中的自己权限组的校验,可以不更新)
        QueryWrapper<PermitGroup> wrapper = Wrappers.query();
        //wrapper.select("permit_group_id","permit_item_name","permit_item_value");
        wrapper.select("permit_group_id","permit_item_value");
        wrapper.select("permit_group_id","permit_item_value").ge("permit_group_id",100).ne("permit_group_id",permitGroupList.get(0).getPermitGroupId());
        List<PermitGroup> existGroupList = mapper.selectList(wrapper);
        Map<Integer, List<PermitGroup>> existGroupListMap = existGroupList.stream().collect(Collectors.groupingBy(PermitGroup::getPermitGroupId));
        Set<Integer> keySet = existGroupListMap.keySet();
@@ -115,8 +126,8 @@
        }
        //先删除,后增加
        UpdateWrapper<PermitGroup> updateWrapper = Wrappers.update();
        wrapper.eq("permit_group_id",permitGroupList.get(0).getPermitGroupId());
        mapper.delete(wrapper);
        updateWrapper.eq("permit_group_id",permitGroupList.get(0).getPermitGroupId());
        mapper.delete(updateWrapper);
        mapper.insertBatchSomeColumn(permitGroupList);
        return response.set(1,true,"更新成功");
@@ -133,7 +144,8 @@
        //删除权限组对应的用户记录
        UpdateWrapper<PermitGroupUser> groupUserWrapper = Wrappers.update();
        groupUserWrapper.eq("permit_group_id",permitGroupId);
        return permitGroupUserMapper.delete(groupUserWrapper)>0;
        permitGroupUserMapper.delete(groupUserWrapper);
        return true;
    }