ludc
2024-01-24 c327574106f470c72638e9f34c7f8cd26d78a2bf
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/ClassifyAuthServiceImpl.java
@@ -2,10 +2,12 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.feign.ICodeClassifyClient;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.system.dto.ClassifyAuthDTO;
import com.vci.ubcs.system.entity.ClassifyAuth;
import com.vci.ubcs.system.entity.Menu;
import com.vci.ubcs.system.mapper.ClassifyAuthMapper;
@@ -44,17 +46,28 @@
   /**
    * 分类授权保存接口
    * @param classifyAuthList
    * @param classifyAuthListDTO
    * @return
    */
   @Override
   @Transactional(rollbackFor = Exception.class)
   public R submit(List<ClassifyAuth> classifyAuthList) {
      if(classifyAuthList.isEmpty()){
   public R submit(ClassifyAuthDTO classifyAuthListDTO) throws ServiceException{
      // 是清空授权列表
      if(classifyAuthListDTO.getIsCLear()){
         if(Func.isEmpty(classifyAuthListDTO.getClassifyId())){
            return R.fail("清空授权列表时,未获取的分类id");
         }
         this.classifyAuthMapper.delete(Wrappers.<ClassifyAuth>update()
            .lambda().eq(ClassifyAuth::getClassifyId, classifyAuthListDTO.getClassifyId())
         );
         return R.success("授权列表清空成功");
      }
      if(!classifyAuthListDTO.getIsCLear() && classifyAuthListDTO.getClassifyAuthList().isEmpty()){
         R.fail("授权列表不能为空!");
      }
      // 判重,查看是否存在同一个classid下配置了相同的角色
      Map<String, Long> roleidCounts = classifyAuthList.stream()
      Map<String, Long> roleidCounts = classifyAuthListDTO.getClassifyAuthList().stream()
         .collect(Collectors.groupingBy(ClassifyAuth::getRoleId, Collectors.counting()));
      // 检查是否有roleid出现次数大于1的情况
@@ -65,17 +78,17 @@
      }
      // 如果传过来的集合中该分类id下删除了部分角色的授权,就需要将该库中classifyId下不存在的数据删掉
      List<String> roleIds = classifyAuthList.stream().map(ClassifyAuth::getRoleId).collect(Collectors.toList());
      List<String> roleIds = classifyAuthListDTO.getClassifyAuthList().stream().map(ClassifyAuth::getRoleId).collect(Collectors.toList());
      // 删除
      LambdaUpdateWrapper<ClassifyAuth> updateWrapper = Wrappers.<ClassifyAuth>update()
         .lambda().eq(ClassifyAuth::getClassifyId, classifyAuthList.get(0).getClassifyId())
         .lambda().eq(ClassifyAuth::getClassifyId, classifyAuthListDTO.getClassifyAuthList().get(0).getClassifyId())
         .notIn(ClassifyAuth::getRoleId, roleIds);
      try {
         this.classifyAuthMapper.delete(updateWrapper);
      }catch (Exception e){
         throw new ServiceException("分类授权过程中出现错误,错误原因:"+e.getMessage());
      }
      return R.status(saveOrUpdateBatch(classifyAuthList));
      return R.status(saveOrUpdateBatch(classifyAuthListDTO.getClassifyAuthList()));
   }
   /**