package com.smartor.service.impl;
|
|
import com.ruoyi.common.exception.base.BaseException;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DtoConversionUtils;
|
import com.smartor.domain.IvrLibaTargetAssort;
|
import com.smartor.domain.SvyLibScriptCategory;
|
import com.smartor.domain.SvyLibScriptCategoryVO;
|
import com.smartor.mapper.SvyLibScriptCategoryMapper;
|
import com.smartor.service.ISvyLibScriptCategoryService;
|
import io.jsonwebtoken.lang.Collections;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 问卷题目分类Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2023-12-27
|
*/
|
@Slf4j
|
@Service
|
public class SvyLibScriptCategoryServiceImpl implements ISvyLibScriptCategoryService {
|
@Autowired
|
private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper;
|
|
/**
|
* 查询问卷题目分类
|
*
|
* @param id 问卷题目分类主键
|
* @return 问卷题目分类
|
*/
|
@Override
|
public SvyLibScriptCategory selectSvyLibScriptCategoryById(Long id) {
|
return svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(id);
|
}
|
|
/**
|
* 查询问卷题目分类列表
|
*
|
* @param svyLibScriptCategory 问卷题目分类
|
* @return 问卷题目分类
|
*/
|
@Override
|
public List<SvyLibScriptCategoryVO> selectSvyLibScriptCategoryList(SvyLibScriptCategory svyLibScriptCategory) {
|
List<SvyLibScriptCategory> svyLibScriptCategories = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory);
|
// //将pid为空的,过滤掉
|
// svyLibScriptCategories = svyLibScriptCategories.stream().filter(assort -> assort.getPid() != null).collect(Collectors.toList());
|
|
List<SvyLibScriptCategoryVO> SvyLibScriptCategoryVO = DtoConversionUtils.sourceToTarget(svyLibScriptCategories, SvyLibScriptCategoryVO.class);
|
//遍历查出来的数据,通过 id=pid 获取他们的子数据
|
for (SvyLibScriptCategoryVO svyLibScriptCategoryVO : SvyLibScriptCategoryVO) {
|
// if (svyLibScriptCategoryVO.getPid() != null) {
|
// continue;
|
// }
|
SvyLibScriptCategory svyLibScriptCategory1 = new SvyLibScriptCategory();
|
svyLibScriptCategory1.setPid(svyLibScriptCategoryVO.getId());
|
List<SvyLibScriptCategory> svyLibScriptCategories1 = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory1);
|
if (!Collections.isEmpty(svyLibScriptCategories1)) {
|
svyLibScriptCategoryVO.setSvyLibScriptCategoryList(svyLibScriptCategories1);
|
}
|
}
|
return SvyLibScriptCategoryVO;
|
}
|
|
/**
|
* 新增问卷题目分类
|
*
|
* @param svyLibScriptCategory 问卷题目分类
|
* @return 结果
|
*/
|
@Override
|
public int insertSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory) {
|
svyLibScriptCategory.setCreateTime(DateUtils.getNowDate());
|
return svyLibScriptCategoryMapper.insertSvyLibScriptCategory(svyLibScriptCategory);
|
}
|
|
/**
|
* 修改问卷题目分类
|
*
|
* @param svyLibScriptCategory 问卷题目分类
|
* @return 结果
|
*/
|
@Override
|
public int updateSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory) {
|
svyLibScriptCategory.setUpdateTime(DateUtils.getNowDate());
|
return svyLibScriptCategoryMapper.updateSvyLibScriptCategory(svyLibScriptCategory);
|
}
|
|
/**
|
* 批量删除问卷题目分类
|
*
|
* @param ids 需要删除的问卷题目分类主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteSvyLibScriptCategoryByIds(Long[] ids) {
|
Integer i = null;
|
for (Long id : ids) {
|
if (id < 0) {
|
log.info("小于0的值为默认值不能删除:{}", id);
|
continue;
|
}
|
i = svyLibScriptCategoryMapper.deleteSvyLibScriptCategoryById(id);
|
SvyLibScriptCategory svyLibScriptCategory = new SvyLibScriptCategory();
|
svyLibScriptCategory.setPid(id);
|
List<SvyLibScriptCategory> svyLibScriptCategories = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory);
|
if (CollectionUtils.isNotEmpty(svyLibScriptCategories)) {
|
for (SvyLibScriptCategory svyLibScriptCategory1 : svyLibScriptCategories) {
|
svyLibScriptCategory1.setPid(-1L);
|
svyLibScriptCategoryMapper.updateSvyLibScriptCategory(svyLibScriptCategory1);
|
}
|
}
|
}
|
return i;
|
}
|
|
@Override
|
public int insertSvyLibScriptCategoryTree(SvyLibScriptCategoryVO svyLibScriptCategoryVO) {
|
Integer i = null;
|
if (ObjectUtils.isEmpty(svyLibScriptCategoryVO)) {
|
throw new BaseException("入参为空,请检查后,再新增");
|
}
|
Integer seqMax = null;
|
try {
|
seqMax = svyLibScriptCategoryMapper.selectSeqMax();
|
} catch (Exception e) {
|
seqMax = 0;
|
}
|
|
SvyLibScriptCategory svyLibScriptCategory = DtoConversionUtils.sourceToTarget(svyLibScriptCategoryVO, SvyLibScriptCategory.class);
|
svyLibScriptCategory.setSeqno(1);
|
if (seqMax != null) {
|
svyLibScriptCategory.setSeqno(seqMax + 1);
|
}
|
svyLibScriptCategory.setUpdateTime(new Date());
|
svyLibScriptCategory.setCreateTime(new Date());
|
if (svyLibScriptCategory.getPid() == null) svyLibScriptCategory.setPid((long) -1);
|
i = svyLibScriptCategoryMapper.insertSvyLibScriptCategory(svyLibScriptCategory);
|
log.info("问题话术分类库一级树的主键:{}", svyLibScriptCategory.getId());
|
|
//新增二级树
|
if (CollectionUtils.isNotEmpty(svyLibScriptCategoryVO.getSvyLibScriptCategoryList())) {
|
for (SvyLibScriptCategory svyLibScriptCategory1 : svyLibScriptCategoryVO.getSvyLibScriptCategoryList()) {
|
Integer seqMax1 = null;
|
try {
|
seqMax1 = svyLibScriptCategoryMapper.selectSeqMax();
|
} catch (Exception e) {
|
seqMax1 = 0;
|
}
|
svyLibScriptCategory1.setPid(svyLibScriptCategory.getId());
|
svyLibScriptCategory1.setSeqno(1);
|
if (seqMax1 != null) {
|
svyLibScriptCategory1.setSeqno(seqMax1 + 1);
|
}
|
svyLibScriptCategory1.setGuid(svyLibScriptCategoryVO.getGuid());
|
svyLibScriptCategory1.setOrgid(svyLibScriptCategoryVO.getOrgid());
|
svyLibScriptCategoryMapper.insertSvyLibScriptCategory(svyLibScriptCategory1);
|
}
|
}
|
return i;
|
}
|
|
/**
|
* 删除问卷题目分类信息
|
*
|
* @param id 问卷题目分类主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteSvyLibScriptCategoryById(Long id) {
|
return svyLibScriptCategoryMapper.deleteSvyLibScriptCategoryById(id);
|
}
|
}
|