!296 add 新增租户套餐同步功能

* update 修改按钮简化为同步套餐
* update 修改同步租户套餐接口message错误描述
* update 修改同步租户套餐权限字符
* update 修改状态修改权限字符
* add 租户管理新增租户套餐同步功能
This commit is contained in:
Yjoioooo
2023-03-06 11:07:00 +00:00
committed by MichelleChung
parent b4645daf2a
commit 0fdd97203f
5 changed files with 91 additions and 3 deletions

View File

@@ -69,4 +69,9 @@ public interface ISysTenantService {
* 校验有效期
*/
String checkExpireTime(String tenantId);
/**
* 同步租户套餐
*/
Boolean syncTenantPackage(String tenantId, String packageId);
}

View File

@@ -335,4 +335,38 @@ public class SysTenantServiceImpl implements ISysTenantService {
return TenantConstants.NOT_PASS;
}
/**
* 同步租户套餐
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean syncTenantPackage(String tenantId, String packageId) {
TenantHelper.enableIgnore();
SysTenantPackage tenantPackage = sysTenantPackageMapper.selectById(packageId);
List<SysRole> roles = sysRoleMapper.selectList(
new LambdaQueryWrapper<SysRole>().eq(SysRole::getTenantId, tenantId));
List<Long> roleIds = new ArrayList<>(roles.size() - 1);
List<Long> menuIds = StringUtils.splitTo(tenantPackage.getMenuIds(), Convert::toLong);
roles.forEach(item -> {
if (TenantConstants.TENANT_ADMIN_ROLE_KEY.equals(item.getRoleKey())) {
List<SysRoleMenu> roleMenus = new ArrayList<>(menuIds.size());
menuIds.forEach(menuId -> {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(item.getRoleId());
roleMenu.setMenuId(menuId);
roleMenus.add(roleMenu);
});
sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, item.getRoleId()));
sysRoleMenuMapper.insertBatch(roleMenus);
} else {
roleIds.add(item.getRoleId());
}
});
if (!roleIds.isEmpty()) {
sysRoleMenuMapper.delete(
new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, roleIds).notIn(!menuIds.isEmpty(), SysRoleMenu::getMenuId, menuIds));
}
TenantHelper.disableIgnore();
return true;
}
}