package com.lxzn.ucenter.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lxzn.framework.domain.ucenter.*; import com.lxzn.framework.domain.ucenter.ext.MenuExt; import com.lxzn.framework.domain.ucenter.request.RoleRequest; import com.lxzn.framework.domain.ucenter.response.RoleCode; import com.lxzn.framework.exception.ExceptionCast; import com.lxzn.framework.model.response.CommonCode; import com.lxzn.framework.model.response.CommonJsonTree; import com.lxzn.framework.model.response.QueryPageResponseResult; import com.lxzn.framework.utils.ValidateUtil; import com.lxzn.ucenter.dao.RoleMapper; import com.lxzn.ucenter.service.*; import com.lxzn.ucenter.service.support.MenuButtonTreeWrapper; import com.lxzn.ucenter.service.support.MenuPermissonTreeWrapper; import com.lxzn.ucenter.service.support.ObjectButtonTreeWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; @Service public class RoleServiceImpl extends ServiceImpl implements IRoleService { @Autowired private IMenuPermissionService menuPermissionService; @Autowired private IButtonPermissionService buttonPermissionService; @Autowired private IMenuButtonPermissionService menuButtonPermissionService; @Autowired private IObjectButtonPermissionService objectButtonPermissionService; @Autowired private IMenuService menuService; @Autowired private IObjectService objectService; @Autowired private IMenuButtonService menuButtonService; @Autowired private IObjectButtonService objectButtonService; @Autowired private IButtonService buttonService; @Autowired private IUserRoleService userRoleService; @Override @Transactional(rollbackFor = {Exception.class}) public boolean addRole(Role role) { if(role == null) ExceptionCast.cast(CommonCode.INVALID_PARAM); if(!ValidateUtil.validateString(role.getRoleCode())) ExceptionCast.cast(RoleCode.ROLE_CODE_NONE); if(!ValidateUtil.validateString(role.getRoleName())) ExceptionCast.cast(RoleCode.ROLE_NAME_NONE); Role en = this.getByRoleCode(role.getRoleCode()); if(en != null) ExceptionCast.cast(RoleCode.ROLE_CODE_EXIST); return super.save(role); } @Override public Role getByRoleCode(String roleCode) { if(!ValidateUtil.validateString(roleCode)) return null; List roleList = super.lambdaQuery().eq(Role::getRoleCode, roleCode).list(); if(roleList == null || roleList.isEmpty()) return null; return roleList.get(0); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean assignMenus(String roleId, String[] menuIds) { if(!ValidateUtil.validateString(roleId)) ExceptionCast.cast(RoleCode.ROLE_ID_NONE); Role role = super.getById(roleId); if(role == null) ExceptionCast.cast(RoleCode.ROLE_NOT_EXIST); if(menuIds == null || menuIds.length < 1) ExceptionCast.cast(RoleCode.ROLE_MENU_NONE); List ids = new ArrayList<>(menuIds.length); Collections.addAll(ids, menuIds); Collection menuList = menuService.listByIds(ids); if(menuList == null || menuList.isEmpty() || menuList.size() != menuIds.length) ExceptionCast.cast(CommonCode.INVALID_PARAM); boolean b = menuPermissionService.deleteByRoleId(roleId); if(!b) ExceptionCast.cast(CommonCode.FAIL); List menuPermissions = new ArrayList<>(); menuList.forEach(item -> { final MenuPermission en = new MenuPermission(); en.setRoleId(role.getRoleId()); en.setMenuId(item.getMenuId()); menuPermissions.add(en); }); if(!menuPermissions.isEmpty()) return menuPermissionService.saveBatch(menuPermissions); return b; } @Override @Transactional(rollbackFor = {Exception.class}) public boolean assignSysButton(String roleId, String[] buttonIds) { if(!ValidateUtil.validateString(roleId)) ExceptionCast.cast(RoleCode.ROLE_ID_NONE); Role role = super.getById(roleId); if(role == null) ExceptionCast.cast(RoleCode.ROLE_NOT_EXIST); if(buttonIds == null || buttonIds.length < 1) { boolean b = buttonPermissionService.deleteByRoleId(roleId); if(!b) ExceptionCast.cast(CommonCode.FAIL); return b; } List ids = new ArrayList<>(buttonIds.length); Collections.addAll(ids, buttonIds); Collection