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.*;
|
import com.smartor.service.IIvrLibaTemplateService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 模板库Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2023-12-23
|
*/
|
@Slf4j
|
@Service
|
public class IvrLibaTemplateServiceImpl implements IIvrLibaTemplateService {
|
@Autowired
|
private IvrLibaTemplateMapper ivrLibaTemplateMapper;
|
|
@Autowired
|
private IvrLibaTemplateTagMapper ivrLibaTemplateTagMapper;
|
|
@Autowired
|
private IvrLibaTemplateTargetMapper ivrLibaTemplateTargetMapper;
|
|
@Autowired
|
private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper;
|
|
@Autowired
|
private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper;
|
|
@Autowired
|
private TempDetpRelevanceMapper tempDetpRelevanceMapper;
|
|
/**
|
* 查询模板库
|
*
|
* @param ID 模板库主键
|
* @return 模板库
|
*/
|
@Override
|
public IvrLibaTemplate selectIvrLibaTemplateByID(Long ID) {
|
return ivrLibaTemplateMapper.selectIvrLibaTemplateByID(ID);
|
}
|
|
/**
|
* 查询模板库列表
|
*
|
* @param ivrLibaTemplate 模板库
|
* @return 模板库
|
*/
|
@Override
|
public List<IvrLibaTemplate> selectIvrLibaTemplateList(IvrLibaTemplate ivrLibaTemplate) {
|
return ivrLibaTemplateMapper.selectIvrLibaTemplateList(ivrLibaTemplate);
|
}
|
|
/**
|
* 新增模板库
|
*
|
* @param ivrLibaTemplate 模板库
|
* @return 结果
|
*/
|
@Override
|
public int insertIvrLibaTemplate(IvrLibaTemplate ivrLibaTemplate) {
|
ivrLibaTemplate.setCreateTime(DateUtils.getNowDate());
|
return ivrLibaTemplateMapper.insertIvrLibaTemplate(ivrLibaTemplate);
|
}
|
|
/**
|
* 修改模板库
|
*
|
* @param ivrLibaTemplate 模板库
|
* @return 结果
|
*/
|
@Override
|
public int updateIvrLibaTemplate(IvrLibaTemplate ivrLibaTemplate) {
|
ivrLibaTemplate.setUpdateTime(DateUtils.getNowDate());
|
return ivrLibaTemplateMapper.updateIvrLibaTemplate(ivrLibaTemplate);
|
}
|
|
/**
|
* 批量删除模板库
|
*
|
* @param IDs 需要删除的模板库主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteIvrLibaTemplateByIDs(Long[] IDs) {
|
Integer i = null;
|
for (Long id : IDs) {
|
i = ivrLibaTemplateMapper.deleteIvrLibaTemplateByID(id);
|
}
|
return i;
|
}
|
|
/**
|
* 删除模板库信息
|
*
|
* @param ID 模板库主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteIvrLibaTemplateByID(Long ID) {
|
return ivrLibaTemplateMapper.deleteIvrLibaTemplateByID(ID);
|
}
|
|
/**
|
* 新增或修改问题详情
|
*
|
* @param ivrLibaTemplateVO
|
* @return
|
*/
|
@Override
|
public Integer saveOrUpdateTemplate(IvrLibaTemplateVO ivrLibaTemplateVO) {
|
Integer i = null;
|
IvrLibaTemplate ivrLibaTemplate = DtoConversionUtils.sourceToTarget(ivrLibaTemplateVO, IvrLibaTemplate.class);
|
if (ivrLibaTemplateVO.getIsoperation() != null && ivrLibaTemplateVO.getIsoperation() == 1) {
|
//新增
|
ivrLibaTemplate.setCreateTime(new Date());
|
ivrLibaTemplateMapper.insertIvrLibaTemplate(ivrLibaTemplate);
|
i = ivrLibaTemplate.getID().intValue();
|
} else if (ivrLibaTemplateVO.getIsoperation() != null && ivrLibaTemplateVO.getIsoperation() == 2) {
|
//修改
|
ivrLibaTemplate.setUpdateTime(new Date());
|
ivrLibaTemplateMapper.updateIvrLibaTemplate(ivrLibaTemplate);
|
i = ivrLibaTemplate.getID().intValue();
|
}
|
log.info("新增或修改模板详情的id为:{}", ivrLibaTemplate.getID());
|
|
//对模板标签进行处理
|
if (CollectionUtils.isNotEmpty(ivrLibaTemplateVO.getIvrLibaTemplateTagList())) {
|
for (IvrLibaTemplateTag ivrLibaTemplateTag : ivrLibaTemplateVO.getIvrLibaTemplateTagList()) {
|
if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 1) {
|
//新增
|
ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getID());
|
ivrLibaTemplateTag.setCreateTime(new Date());
|
ivrLibaTemplateTagMapper.insertIvrLibaTemplateTag(ivrLibaTemplateTag);
|
} else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 2) {
|
//修改
|
ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getID());
|
ivrLibaTemplateTag.setUploadTime(new Date());
|
ivrLibaTemplateTagMapper.updateIvrLibaTemplateTag(ivrLibaTemplateTag);
|
} else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 3) {
|
//删除
|
if (ivrLibaTemplateTag.getId() == null) {
|
log.info("删除失败,模板指标id为空");
|
} else {
|
ivrLibaTemplateTag.setUploadTime(new Date());
|
ivrLibaTemplateTagMapper.deleteIvrLibaTemplateTagById(ivrLibaTemplateTag.getId());
|
}
|
}
|
}
|
}
|
|
//对模板话术和选项进行处理(话术表与指标表进行合并了,)
|
if (CollectionUtils.isNotEmpty(ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList())) {
|
for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList()) {
|
if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 1) {
|
//新增
|
IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class);
|
ivrLibaTemplateScript.setTemplateID(ivrLibaTemplate.getID());
|
ivrLibaTemplateScript.setCreateTime(new Date());
|
ivrLibaTemplateScriptMapper.insertIvrLibaTemplateScript(ivrLibaTemplateScript);
|
//对选项目进行处理
|
dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID());
|
|
} else if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 2) {
|
//修改
|
IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class);
|
ivrLibaTemplateScript.setTemplateID(ivrLibaTemplate.getID());
|
ivrLibaTemplateScript.setUpdateTime(new Date());
|
ivrLibaTemplateScriptMapper.updateIvrLibaTemplateScript(ivrLibaTemplateScript);
|
//对选项目进行处理
|
dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID());
|
|
} else if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 3) {
|
//删除
|
if (ivrLibaTemplateScriptVO.getID() == null) {
|
log.info("删除失败,模板话术id为空");
|
} else {
|
ivrLibaTemplateScriptVO.setUpdateTime(new Date());
|
ivrLibaTemplateScriptMapper.deleteIvrLibaTemplateScriptByID(ivrLibaTemplateScriptVO.getID());
|
}
|
}
|
}
|
}
|
|
//对科室进行处理
|
for (TempDetpRelevance tempDetpRelevance : ivrLibaTemplateVO.getTempDetpRelevances()) {
|
if (tempDetpRelevance.getId() == null) {
|
//新增
|
tempDetpRelevance.setTempid(ivrLibaTemplate.getID());
|
tempDetpRelevance.setType(2L);
|
tempDetpRelevance.setCreateTime(new Date());
|
tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance);
|
} else {
|
tempDetpRelevance.setUpdateTime(new Date());
|
tempDetpRelevanceMapper.updateTempDetpRelevance(tempDetpRelevance);
|
}
|
}
|
|
return i;
|
}
|
|
/**
|
* 选项处理
|
*
|
* @param ivrLibaTemplateTargetoptionList
|
* @param ivrLibaTemplateScript
|
* @param tmpID
|
*/
|
private void dealOption(List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptionList, IvrLibaTemplateScript ivrLibaTemplateScript, Long tmpID) {
|
log.info("ivrLibaTemplateScript的值为:{}", ivrLibaTemplateScript);
|
//对模板指标选项进行处理
|
if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoptionList)) {
|
for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption : ivrLibaTemplateTargetoptionList) {
|
if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 1) {
|
//新增
|
ivrLibaTemplateTargetoption.setTemplateID(tmpID);
|
ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getID());
|
ivrLibaTemplateTargetOptionMapper.insertIvrLibaTemplateTargetoption(ivrLibaTemplateTargetoption);
|
} else if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 2) {
|
//修改
|
ivrLibaTemplateTargetoption.setTemplateID(tmpID);
|
ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getID());
|
ivrLibaTemplateTargetOptionMapper.updateIvrLibaTemplateTargetoption(ivrLibaTemplateTargetoption);
|
} else if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 3) {
|
//删除
|
if (ivrLibaTemplateTargetoption.getId() == null) {
|
log.info("删除失败,模板指标选项id为空");
|
} else {
|
ivrLibaTemplateTargetOptionMapper.deleteIvrLibaTemplateTargetoptionById(ivrLibaTemplateTargetoption.getId());
|
}
|
}
|
}
|
}
|
}
|
|
/**
|
* 查询模板详情根据条件
|
*/
|
@Override
|
public IvrLibaTemplateVO selectInfoByCondition(IvrLibaTemplateVO ivrLibaTemplateVO) {
|
log.info("查询模板详情根据条件的入参为 : {}", ivrLibaTemplateVO);
|
//先根据条件查询问题表信息
|
IvrLibaTemplate ivrLibaTemplate = DtoConversionUtils.sourceToTarget(ivrLibaTemplateVO, IvrLibaTemplate.class);
|
List<IvrLibaTemplate> ivrLibaTemplates = selectIvrLibaTemplateList(ivrLibaTemplate);
|
if (CollectionUtils.isEmpty(ivrLibaTemplates)) {
|
log.info("提供的条件,查询模板详情数据为空:{}", ivrLibaTemplates);
|
throw new BaseException("提供的条件,查询模板详情数据为空");
|
}
|
|
log.info("ivrLibaTemplates的查询结果为:{},数量为 : {}", ivrLibaTemplates.get(0), ivrLibaTemplates.size());
|
//定义IvrLibaTemplateVO 用于返参
|
IvrLibaTemplateVO templateVO = DtoConversionUtils.sourceToTarget(ivrLibaTemplates.get(0), IvrLibaTemplateVO.class);
|
|
//获取tag信息
|
IvrLibaTemplateTag ivrLibaTemplateTag = new IvrLibaTemplateTag();
|
ivrLibaTemplateTag.setTemplateid(ivrLibaTemplates.get(0).getID());
|
List<IvrLibaTemplateTag> ivrLibaTemplateTags = ivrLibaTemplateTagMapper.selectIvrLibaTemplateTagList(ivrLibaTemplateTag);
|
|
//查询话术
|
IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript();
|
ivrLibaTemplateScript.setTemplateID(ivrLibaTemplates.get(0).getID());
|
List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript);
|
List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScripts, IvrLibaTemplateScriptVO.class);
|
|
//通过话术ID获取选项
|
for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOS) {
|
log.info("ivrLibaTemplateScriptVO的主键id为:{}", ivrLibaTemplateScriptVO.getID());
|
IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption();
|
ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getID());
|
List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption);
|
ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions);
|
}
|
|
//数据组装
|
templateVO.setIvrLibaTemplateTagList(ivrLibaTemplateTags);
|
templateVO.setIvrLibaTemplateScriptVOList(ivrLibaTemplateScriptVOS);
|
return templateVO;
|
}
|
|
}
|