package com.gkhy.system.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.common.enums.DeleteFlagEnum; import com.gkhy.common.exception.ServiceException; import com.gkhy.common.utils.SecurityUtils; import com.gkhy.system.domain.SysExpertClassify; import com.gkhy.system.mapper.SysExpertClassifyMapper; import com.gkhy.system.service.SysExpertClassifyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** *

* 系统专家分类表 服务实现类 *

* * @author kzy * @since 2023-11-27 16:33:33 */ @Service public class SysExpertClassifyServiceImpl extends ServiceImpl implements SysExpertClassifyService { @Autowired private SysExpertClassifyMapper sysExpertClassifyMapper; @Override public List classifyTree(SysExpertClassify expertClassify) { // LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); // if(StringUtils.isNotBlank(expertClassify.getClassifyName())){ // lambdaQueryWrapper.like(SysExpertClassify::getClassifyName,expertClassify.getClassifyName()); // } // lambdaQueryWrapper.eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode()); // List classifies= list(lambdaQueryWrapper); List classifies = sysExpertClassifyMapper.classifyList(expertClassify); //筛选出所有一级标签 return classifies.stream() .filter(classifyEntity -> classifyEntity.getParentId()==0L) .peek(classifyEntity -> classifyEntity.setChildren(this.listClassifyChildren(classifyEntity,classifies))) .collect(Collectors.toList()); } public List listClassifyChildren(SysExpertClassify classify,List classifies){ //递归查找子类 return classifies.stream() .filter(classifyEntity -> Objects.equals(classifyEntity.getParentId(), classify.getId())) .peek(classifyEntity -> classifyEntity.setChildren(this.listClassifyChildren(classifyEntity,classifies))) .collect(Collectors.toList()); } @Override public int modClassify(SysExpertClassify expertClassify) { //checkParams(expertClassify); expertClassify.setUpdateBy(SecurityUtils.getUsername()); boolean b=updateById(expertClassify); if(!b){ throw new ServiceException("修改专家分类失败"); } return 1; } @Override public int delClassify(Long classifyId) { SysExpertClassify classify = new SysExpertClassify(); classify.setId(classifyId); classify.setDelFlag(DeleteFlagEnum.DELETED.getCode().intValue()); classify.setUpdateBy(SecurityUtils.getUsername()); boolean b=updateById(classify); if(!b){ throw new ServiceException("删除专家分类失败"); } return 1; } @Override public int addClassify(SysExpertClassify expertClassify) { //checkParams(expertClassify); expertClassify.setCreateBy(SecurityUtils.getUsername()); boolean b=save(expertClassify); if(!b){ throw new ServiceException("新增专家分类失败"); } return 1; } @Override public long countByDeptId(Long deptId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysExpertClassify::getDeptId,deptId).eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode()); return baseMapper.selectCount(queryWrapper); } private void checkParams(SysExpertClassify expertClassify){ if(expertClassify==null){ throw new ServiceException("参数错误"); } if(expertClassify.getDeptId() != null){ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysExpertClassify::getDeptId,expertClassify.getDeptId()).eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode()); if (expertClassify.getId() != null){ queryWrapper.ne(SysExpertClassify::getId,expertClassify.getId()); } List sysExpertClassifies = baseMapper.selectList(queryWrapper); if(ObjectUtil.isNotEmpty(sysExpertClassifies)){ throw new ServiceException("该处室已被"+sysExpertClassifies.get(0).getClassifyName()+"专业领域选中,请修改或者重新选择!"); } } } }