package com.gkhy.assess.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.assess.common.enums.DeleteFlagEnum; import com.gkhy.assess.common.exception.ApiException; import com.gkhy.assess.common.utils.StringUtils; import com.gkhy.assess.system.domain.SysExpertClassify; import com.gkhy.assess.system.mapper.SysExpertClassifyMapper; import com.gkhy.assess.system.service.SysExpertClassifyService; import com.gkhy.assess.system.utils.ShiroUtils; 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()); } 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.getClassifyId())) .peek(classifyEntity -> classifyEntity.setChildren(this.listClassifyChildren(classifyEntity,classifies))) .collect(Collectors.toList()); } @Override public int modClassify(SysExpertClassify expertClassify) { expertClassify.setUpdateBy(ShiroUtils.getSysUser().getUsername()); boolean b=updateById(expertClassify); if(!b){ throw new ApiException("修改专家分类失败"); } return 1; } @Override public int delClassify(Long classifyId) { SysExpertClassify classify = new SysExpertClassify(); classify.setClassifyId(classifyId); classify.setDelFlag(DeleteFlagEnum.DELETED.getCode()); boolean b=updateById(classify); if(!b){ throw new ApiException("删除专家分类失败"); } return 1; } @Override public int addClassify(SysExpertClassify expertClassify) { expertClassify.setCreateBy(ShiroUtils.getSysUser().getUsername()); boolean b=save(expertClassify); if(!b){ throw new ApiException("新增专家分类失败"); } return 1; } }