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;
|
|
/**
|
* <p>
|
* 系统专家分类表 服务实现类
|
* </p>
|
*
|
* @author kzy
|
* @since 2023-11-27 16:33:33
|
*/
|
@Service
|
public class SysExpertClassifyServiceImpl extends ServiceImpl<SysExpertClassifyMapper, SysExpertClassify> implements SysExpertClassifyService {
|
|
@Autowired
|
private SysExpertClassifyMapper sysExpertClassifyMapper;
|
@Override
|
public List<SysExpertClassify> classifyTree(SysExpertClassify expertClassify) {
|
// LambdaQueryWrapper<SysExpertClassify> lambdaQueryWrapper = Wrappers.<SysExpertClassify>lambdaQuery();
|
// if(StringUtils.isNotBlank(expertClassify.getClassifyName())){
|
// lambdaQueryWrapper.like(SysExpertClassify::getClassifyName,expertClassify.getClassifyName());
|
// }
|
// lambdaQueryWrapper.eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode());
|
// List<SysExpertClassify> classifies= list(lambdaQueryWrapper);
|
List<SysExpertClassify> 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<SysExpertClassify> listClassifyChildren(SysExpertClassify classify,List<SysExpertClassify> 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<SysExpertClassify> 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<SysExpertClassify> 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<SysExpertClassify> sysExpertClassifies = baseMapper.selectList(queryWrapper);
|
if(ObjectUtil.isNotEmpty(sysExpertClassifies)){
|
throw new ServiceException("该处室已被"+sysExpertClassifies.get(0).getClassifyName()+"专业领域选中,请修改或者重新选择!");
|
}
|
}
|
}
|
}
|