package com.gkhy.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.common.utils.StringUtils; import com.gkhy.system.domain.SysExpertClassify; import com.gkhy.system.mapper.SysExpertClassifyMapper; import com.gkhy.system.service.SysExpertClassifyService; 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 { @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); //筛选出所有一级标签 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) { 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()); classify.setUpdateBy(SecurityUtils.getUsername()); boolean b=updateById(classify); if(!b){ throw new ServiceException("删除专家分类失败"); } return 1; } @Override public int addClassify(SysExpertClassify expertClassify) { expertClassify.setCreateBy(SecurityUtils.getUsername()); boolean b=save(expertClassify); if(!b){ throw new ServiceException("新增专家分类失败"); } return 1; } }