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.*;
|
import com.smartor.mapper.IvrLibaScriptAssortMapper;
|
import com.smartor.service.IIvrLibaScriptAssortService;
|
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.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 问题话术分类库
|
* Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2023-12-21
|
*/
|
@Slf4j
|
@Service
|
public class IvrLibaScriptAssortServiceImpl implements IIvrLibaScriptAssortService {
|
@Autowired
|
private IvrLibaScriptAssortMapper ivrLibaScriptAssortMapper;
|
|
/**
|
* 查询问题话术分类库
|
*
|
* @param id 问题话术分类库
|
* 主键
|
* @return 问题话术分类库
|
*/
|
@Override
|
public IvrLibaScriptAssort selectIvrLibaScriptAssortById(Long id) {
|
return ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortById(id);
|
}
|
|
// /**
|
// * 查询问题话术分类库
|
// * 列表
|
// *
|
// * @param ivrLibaScriptAssort 问题话术分类库
|
// * @return 问题话术分类库
|
// */
|
// @Override
|
// public List<IvrLibaScriptAssort> selectIvrLibaScriptAssortList(IvrLibaScriptAssort ivrLibaScriptAssort) {
|
// return ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortList(ivrLibaScriptAssort);
|
// }
|
|
/**
|
* 新增问题话术分类库
|
*
|
* @param ivrLibaScriptAssort 问题话术分类库
|
* @return 结果
|
*/
|
@Override
|
public int insertIvrLibaScriptAssort(IvrLibaScriptAssort ivrLibaScriptAssort) {
|
ivrLibaScriptAssort.setCreateTime(DateUtils.getNowDate());
|
return ivrLibaScriptAssortMapper.insertIvrLibaScriptAssort(ivrLibaScriptAssort);
|
}
|
|
@Override
|
public int insertIvrLibaScriptAssortTree(IvrLibaScriptAssortVO ivrLibaScriptAssortVO) {
|
Integer i = null;
|
if (ObjectUtils.isEmpty(ivrLibaScriptAssortVO)) {
|
throw new BaseException("入参为空,请检查后,再新增");
|
}
|
//获取序号最大值
|
Integer seqMax = null;
|
try {
|
seqMax = ivrLibaScriptAssortMapper.selectSeqMax();
|
} catch (Exception e) {
|
seqMax = 0;
|
}
|
|
IvrLibaScriptAssort ivrLibaScriptAssort = DtoConversionUtils.sourceToTarget(ivrLibaScriptAssortVO, IvrLibaScriptAssort.class);
|
if (seqMax == null) {
|
ivrLibaScriptAssort.setSeqno(1);
|
} else {
|
ivrLibaScriptAssort.setSeqno(seqMax + 1);
|
}
|
i = ivrLibaScriptAssortMapper.insertIvrLibaScriptAssort(ivrLibaScriptAssort);
|
log.info("问题话术分类库一级树的主键:{}", ivrLibaScriptAssort.getId());
|
|
//新增二级树
|
if (CollectionUtils.isNotEmpty(ivrLibaScriptAssortVO.getIvrLibaScriptAssortList())) {
|
for (IvrLibaScriptAssort ivrLibaScriptAssort1 : ivrLibaScriptAssortVO.getIvrLibaScriptAssortList()) {
|
//获取序号最大值
|
Integer seqMax1 = null;
|
try {
|
seqMax1 = ivrLibaScriptAssortMapper.selectSeqMax();
|
} catch (Exception e) {
|
seqMax1 = 0;
|
}
|
ivrLibaScriptAssort1.setPid(ivrLibaScriptAssort.getId());
|
if (seqMax == null) {
|
ivrLibaScriptAssort1.setSeqno(1);
|
} else {
|
ivrLibaScriptAssort1.setSeqno(seqMax1 + 1);
|
}
|
ivrLibaScriptAssort1.setGuid(ivrLibaScriptAssortVO.getGuid());
|
ivrLibaScriptAssort1.setOrgid(ivrLibaScriptAssortVO.getOrgid());
|
ivrLibaScriptAssortMapper.insertIvrLibaScriptAssort(ivrLibaScriptAssort1);
|
}
|
}
|
|
return i;
|
}
|
|
/**
|
* 修改问题话术分类库
|
*
|
* @param ivrLibaScriptAssort 问题话术分类库
|
* @return 结果
|
*/
|
@Override
|
public int updateIvrLibaScriptAssort(IvrLibaScriptAssort ivrLibaScriptAssort) {
|
ivrLibaScriptAssort.setUpdateTime(DateUtils.getNowDate());
|
return ivrLibaScriptAssortMapper.updateIvrLibaScriptAssort(ivrLibaScriptAssort);
|
}
|
|
/**
|
* 批量删除问题话术分类库
|
*
|
* @param ids 需要删除的问题话术分类库
|
* 主键
|
* @return 结果
|
*/
|
@Override
|
public Integer deleteIvrLibaScriptAssortByIds(Long[] ids) {
|
Integer i = null;
|
for (Long id : ids) {
|
if (id < 0) {
|
log.info("该问题话术分类id为默认ID,不能删除,id:{}", id);
|
continue;
|
}
|
i = ivrLibaScriptAssortMapper.deleteIvrLibaScriptAssortById(id);
|
//查询删除id所对就的子数据
|
IvrLibaScriptAssort ivrLibaScriptAssort = new IvrLibaScriptAssort();
|
ivrLibaScriptAssort.setPid(id);
|
List<IvrLibaScriptAssort> ivrLibaScriptAssorts = ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortList(ivrLibaScriptAssort);
|
|
if (CollectionUtils.isNotEmpty(ivrLibaScriptAssorts)) {
|
for (IvrLibaScriptAssort ivrLibaScriptAssort1 : ivrLibaScriptAssorts) {
|
ivrLibaScriptAssort1.setPid(-1L);
|
ivrLibaScriptAssortMapper.updateIvrLibaScriptAssort(ivrLibaScriptAssort1);
|
}
|
}
|
}
|
return i;
|
}
|
|
/**
|
* 删除问题话术分类库
|
* 信息
|
*
|
* @param id 问题话术分类库
|
* 主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteIvrLibaScriptAssortById(Long id) {
|
return ivrLibaScriptAssortMapper.deleteIvrLibaScriptAssortById(id);
|
}
|
|
/**
|
* 查询问题分类列表
|
*
|
* @param ivrLibaScriptAssort 问题分类
|
* @return 问题分类
|
*/
|
@Override
|
public List<IvrLibaScriptAssortVO> selectIvrLibaScriptAssortList(IvrLibaScriptAssort ivrLibaScriptAssort) {
|
List<IvrLibaScriptAssort> ivrLibaScriptAssorts = ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortList(ivrLibaScriptAssort);
|
//将pid为空的,过滤掉
|
// ivrLibaScriptAssorts = ivrLibaScriptAssorts.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList());
|
|
List<IvrLibaScriptAssortVO> ivrLibaScriptAssortVOS = DtoConversionUtils.sourceToTarget(ivrLibaScriptAssorts, IvrLibaScriptAssortVO.class);
|
//遍历查出来的数据,通过 id=pid 获取他们的子数据
|
for (IvrLibaScriptAssortVO ivrLibaScriptAssortVO : ivrLibaScriptAssortVOS) {
|
// if (ivrLibaScriptAssortVO.getPid() != null) {
|
// continue;
|
// }
|
IvrLibaScriptAssort ivrLibaTargetAssort1 = new IvrLibaScriptAssort();
|
ivrLibaTargetAssort1.setPid(ivrLibaScriptAssortVO.getId());
|
List<IvrLibaScriptAssort> ivrLibaScriptAssorts1 = ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortList(ivrLibaTargetAssort1);
|
if (!Collections.isEmpty(ivrLibaScriptAssorts1)) {
|
ivrLibaScriptAssortVO.setIvrLibaScriptAssortList(ivrLibaScriptAssorts1);
|
}
|
}
|
return ivrLibaScriptAssortVOS;
|
}
|
}
|