【7.6.0】【sys】更新角色绑定菜单功能的接口

pull/57/head
fengshuonan 2023-06-18 21:06:24 +08:00
parent 763d6f3e4a
commit fe01b54c2b
3 changed files with 40 additions and 3 deletions

View File

@ -1,7 +1,7 @@
package cn.stylefeng.roses.kernel.sys.modular.role.mapper;
import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenuOptions;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* Mapper
@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author fengshuonan
* @date 2023/06/10 21:29
*/
public interface SysRoleMenuOptionsMapper extends BaseMapper<SysRoleMenuOptions> {
public interface SysRoleMenuOptionsMapper extends CustomBaseMapper<SysRoleMenuOptions> {
}

View File

@ -1,6 +1,7 @@
package cn.stylefeng.roses.kernel.sys.modular.role.service;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleMenuOptionsRequest;
import com.baomidou.mybatisplus.extension.service.IService;
@ -79,4 +80,12 @@ public interface SysRoleMenuOptionsService extends IService<SysRoleMenuOptions>
*/
void removeRoleBindOptions(Long optionsId);
/**
*
*
* @author fengshuonan
* @since 2023/6/18 20:52
*/
void bindRoleMenuOptions(Long roleId, List<SysMenuOptions> sysMenuOptionsList);
}

View File

@ -8,6 +8,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveMenuCallbackApi;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.role.action.RoleAssignOperateAction;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.role.enums.PermissionNodeTypeEnum;
@ -23,6 +24,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@ -33,7 +35,8 @@ import java.util.Set;
* @date 2023/06/10 21:29
*/
@Service
public class SysRoleMenuOptionsServiceImpl extends ServiceImpl<SysRoleMenuOptionsMapper, SysRoleMenuOptions> implements SysRoleMenuOptionsService, RemoveRoleCallbackApi, RoleAssignOperateAction, RemoveMenuCallbackApi {
public class SysRoleMenuOptionsServiceImpl extends ServiceImpl<SysRoleMenuOptionsMapper, SysRoleMenuOptions> implements
SysRoleMenuOptionsService, RemoveRoleCallbackApi, RoleAssignOperateAction, RemoveMenuCallbackApi {
@Override
public void add(SysRoleMenuOptionsRequest sysRoleMenuOptionsRequest) {
@ -74,6 +77,31 @@ public class SysRoleMenuOptionsServiceImpl extends ServiceImpl<SysRoleMenuOption
this.remove(sysRoleMenuOptionsLambdaQueryWrapper);
}
@Override
public void bindRoleMenuOptions(Long roleId, List<SysMenuOptions> sysMenuOptionsList) {
if (ObjectUtil.isEmpty(roleId) || ObjectUtil.isEmpty(sysMenuOptionsList)) {
return;
}
// 清空角色绑定的菜单功能
LambdaQueryWrapper<SysRoleMenuOptions> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysRoleMenuOptions::getRoleId, roleId);
this.remove(queryWrapper);
// 绑定角色的菜单功能
ArrayList<SysRoleMenuOptions> sysRoleMenuOptionList = new ArrayList<>();
for (SysMenuOptions sysMenuOptions : sysMenuOptionsList) {
SysRoleMenuOptions roleMenuOptionItem = new SysRoleMenuOptions();
roleMenuOptionItem.setRoleId(roleId);
roleMenuOptionItem.setMenuOptionId(sysMenuOptions.getMenuOptionId());
roleMenuOptionItem.setMenuId(sysMenuOptions.getMenuId());
roleMenuOptionItem.setAppId(sysMenuOptions.getAppId());
sysRoleMenuOptionList.add(roleMenuOptionItem);
}
this.getBaseMapper().insertBatchSomeColumn(sysRoleMenuOptionList);
}
@Override
public List<SysRoleMenuOptions> findList(SysRoleMenuOptionsRequest sysRoleMenuOptionsRequest) {
LambdaQueryWrapper<SysRoleMenuOptions> wrapper = this.createWrapper(sysRoleMenuOptionsRequest);