|
@@ -2,9 +2,9 @@ package cn.tr.module.sys.tenant.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
-import cn.tr.module.sys.tenant.mapper.SysTenantPackageMenuMapper;
|
|
|
|
|
|
|
+import cn.tr.core.exception.ServiceException;
|
|
|
|
|
+import cn.tr.core.exception.TRExcCode;
|
|
|
import cn.tr.module.sys.tenant.dto.SysTenantPackageDTO;
|
|
import cn.tr.module.sys.tenant.dto.SysTenantPackageDTO;
|
|
|
-import cn.tr.module.sys.tenant.dto.SysTenantPackageMenuDTO;
|
|
|
|
|
import cn.tr.module.sys.tenant.enums.PackageEnum;
|
|
import cn.tr.module.sys.tenant.enums.PackageEnum;
|
|
|
import cn.tr.module.sys.tenant.po.SysTenantPackageMenuPO;
|
|
import cn.tr.module.sys.tenant.po.SysTenantPackageMenuPO;
|
|
|
import cn.tr.module.sys.tenant.repository.SysTenantPackageMenuRepository;
|
|
import cn.tr.module.sys.tenant.repository.SysTenantPackageMenuRepository;
|
|
@@ -12,6 +12,7 @@ import cn.tr.module.sys.tenant.service.ISysTenantPackageMenuService;
|
|
|
import cn.tr.module.sys.tenant.service.ISysTenantPackageService;
|
|
import cn.tr.module.sys.tenant.service.ISysTenantPackageService;
|
|
|
import cn.tr.module.sys.user.dto.SysMenuDTO;
|
|
import cn.tr.module.sys.user.dto.SysMenuDTO;
|
|
|
import cn.tr.module.sys.user.dto.SysRoleDTO;
|
|
import cn.tr.module.sys.user.dto.SysRoleDTO;
|
|
|
|
|
+import cn.tr.module.sys.user.enums.CreateEnum;
|
|
|
import cn.tr.module.sys.user.service.ISysMenuService;
|
|
import cn.tr.module.sys.user.service.ISysMenuService;
|
|
|
import cn.tr.module.sys.user.service.ISysRoleService;
|
|
import cn.tr.module.sys.user.service.ISysRoleService;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -48,19 +49,28 @@ public class SysTenantPackageMenuServiceImpl extends ServiceImpl<SysTenantPacka
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void assignPackageMenu(List<SysTenantPackageMenuDTO> source) {
|
|
|
|
|
- List<SysTenantPackageMenuPO> packageMenus = SysTenantPackageMenuMapper.INSTANCE.toPOList(source);
|
|
|
|
|
|
|
+ public void assignPackageMenu(String packageId,List<String> menuIds) {
|
|
|
|
|
+ SysTenantPackageDTO tenantPackage = tenantPackageService.selectSysTenantPackageById(packageId);
|
|
|
|
|
+ if(StrUtil.equals(tenantPackage.getType(), CreateEnum.sys.name())){
|
|
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"无法对系统套餐进行操作");
|
|
|
|
|
+ }
|
|
|
Collection<SysRoleDTO> sysRoles = roleService.findAllSysRoles();
|
|
Collection<SysRoleDTO> sysRoles = roleService.findAllSysRoles();
|
|
|
- Map<String, List<SysTenantPackageMenuPO>> groupByPackageIdMap = packageMenus
|
|
|
|
|
- .stream()
|
|
|
|
|
- .collect(Collectors.groupingBy(SysTenantPackageMenuPO::getPackageId));
|
|
|
|
|
- groupByPackageIdMap.forEach((packageId,pms)->{
|
|
|
|
|
- baseMapper.delete(
|
|
|
|
|
- new LambdaQueryWrapper<SysTenantPackageMenuPO>().eq(SysTenantPackageMenuPO::getPackageId,packageId)
|
|
|
|
|
- );
|
|
|
|
|
- self.delCacheMenuIdByPackageId(packageId);
|
|
|
|
|
- });
|
|
|
|
|
- this.saveBatch(packageMenus);
|
|
|
|
|
|
|
+ baseMapper.delete(
|
|
|
|
|
+ new LambdaQueryWrapper<SysTenantPackageMenuPO>().eq(SysTenantPackageMenuPO::getPackageId,packageId)
|
|
|
|
|
+ );
|
|
|
|
|
+ self.delCacheMenuIdByPackageId(packageId);
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(menuIds)){
|
|
|
|
|
+ List<SysTenantPackageMenuPO> packageMenus = menuIds
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(menuId -> {
|
|
|
|
|
+ SysTenantPackageMenuPO result = new SysTenantPackageMenuPO();
|
|
|
|
|
+ result.setMenuId(menuId);
|
|
|
|
|
+ result.setPackageId(packageId);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ })
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ this.saveBatch(packageMenus);
|
|
|
|
|
+ }
|
|
|
sysRoles.forEach(role->menuService.delRoleMenusCache(role.getId()));
|
|
sysRoles.forEach(role->menuService.delRoleMenusCache(role.getId()));
|
|
|
}
|
|
}
|
|
|
|
|
|