| | |
| | | package com.smartor.service.impl; |
| | | |
| | | import java.util.List; |
| | | 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 com.smartor.mapper.IvrLibaTemplateMapper; |
| | | import com.smartor.domain.IvrLibaTemplate; |
| | | import com.smartor.service.IIvrLibaTemplateService; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 话术模板库Service业务层处理 |
| | | * 模板库Service业务层处理 |
| | | * |
| | | * @author smartor |
| | | * @date 2023-03-22 |
| | | * @author ruoyi |
| | | * @date 2023-12-23 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class IvrLibaTemplateServiceImpl implements IIvrLibaTemplateService |
| | | { |
| | | 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; |
| | | |
| | | /** |
| | | * 查询话术模板库 |
| | | * 查询模板库 |
| | | * |
| | | * @param templateID 话术模板库主键 |
| | | * @return 话术模板库 |
| | | * @param ID 模板库主键 |
| | | * @return 模板库 |
| | | */ |
| | | @Override |
| | | public IvrLibaTemplate selectIvrLibaTemplateByTemplateID(String templateID) |
| | | { |
| | | return ivrLibaTemplateMapper.selectIvrLibaTemplateByTemplateID(templateID); |
| | | public IvrLibaTemplate selectIvrLibaTemplateByID(Long ID) { |
| | | return ivrLibaTemplateMapper.selectIvrLibaTemplateByID(ID); |
| | | } |
| | | |
| | | /** |
| | | * 查询话术模板库列表 |
| | | * 查询模板库列表 |
| | | * |
| | | * @param ivrLibaTemplate 话术模板库 |
| | | * @return 话术模板库 |
| | | * @param ivrLibaTemplate 模板库 |
| | | * @return 模板库 |
| | | */ |
| | | @Override |
| | | public List<IvrLibaTemplate> selectIvrLibaTemplateList(IvrLibaTemplate ivrLibaTemplate) |
| | | { |
| | | public List<IvrLibaTemplate> selectIvrLibaTemplateList(IvrLibaTemplate ivrLibaTemplate) { |
| | | return ivrLibaTemplateMapper.selectIvrLibaTemplateList(ivrLibaTemplate); |
| | | } |
| | | |
| | | /** |
| | | * 新增话术模板库 |
| | | * 新增模板库 |
| | | * |
| | | * @param ivrLibaTemplate 话术模板库 |
| | | * @param ivrLibaTemplate 模板库 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int insertIvrLibaTemplate(IvrLibaTemplate ivrLibaTemplate) |
| | | { |
| | | public int insertIvrLibaTemplate(IvrLibaTemplate ivrLibaTemplate) { |
| | | ivrLibaTemplate.setCreateTime(DateUtils.getNowDate()); |
| | | return ivrLibaTemplateMapper.insertIvrLibaTemplate(ivrLibaTemplate); |
| | | } |
| | | |
| | | /** |
| | | * 修改话术模板库 |
| | | * 修改模板库 |
| | | * |
| | | * @param ivrLibaTemplate 话术模板库 |
| | | * @param ivrLibaTemplate 模板库 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int updateIvrLibaTemplate(IvrLibaTemplate ivrLibaTemplate) |
| | | { |
| | | public int updateIvrLibaTemplate(IvrLibaTemplate ivrLibaTemplate) { |
| | | ivrLibaTemplate.setUpdateTime(DateUtils.getNowDate()); |
| | | return ivrLibaTemplateMapper.updateIvrLibaTemplate(ivrLibaTemplate); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除话术模板库 |
| | | * 批量删除模板库 |
| | | * |
| | | * @param templateIDs 需要删除的话术模板库主键 |
| | | * @param IDs 需要删除的模板库主键 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteIvrLibaTemplateByTemplateIDs(String[] templateIDs) |
| | | { |
| | | return ivrLibaTemplateMapper.deleteIvrLibaTemplateByTemplateIDs(templateIDs); |
| | | public int deleteIvrLibaTemplateByIDs(Long[] IDs) { |
| | | Integer i = null; |
| | | for (Long id : IDs) { |
| | | i = ivrLibaTemplateMapper.deleteIvrLibaTemplateByID(id); |
| | | } |
| | | return i; |
| | | } |
| | | |
| | | /** |
| | | * 删除话术模板库信息 |
| | | * 删除模板库信息 |
| | | * |
| | | * @param templateID 话术模板库主键 |
| | | * @param ID 模板库主键 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteIvrLibaTemplateByTemplateID(String templateID) |
| | | { |
| | | return ivrLibaTemplateMapper.deleteIvrLibaTemplateByTemplateID(templateID); |
| | | 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) { |
| | | //新增 |
| | | i = ivrLibaTemplateMapper.insertIvrLibaTemplate(ivrLibaTemplate); |
| | | } else if (ivrLibaTemplateVO.getIsoperation() != null && ivrLibaTemplateVO.getIsoperation() == 2) { |
| | | //修改 |
| | | i = ivrLibaTemplateMapper.updateIvrLibaTemplate(ivrLibaTemplate); |
| | | } |
| | | 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()); |
| | | ivrLibaTemplateTagMapper.insertIvrLibaTemplateTag(ivrLibaTemplateTag); |
| | | } else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 2) { |
| | | //修改 |
| | | ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getID()); |
| | | ivrLibaTemplateTagMapper.updateIvrLibaTemplateTag(ivrLibaTemplateTag); |
| | | } else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 3) { |
| | | //删除 |
| | | if (ivrLibaTemplateTag.getId() == null) { |
| | | log.info("删除失败,模板指标id为空"); |
| | | } else { |
| | | 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()); |
| | | ivrLibaTemplateScriptMapper.insertIvrLibaTemplateScript(ivrLibaTemplateScript); |
| | | //对选项目进行处理 |
| | | dealOption(ivrLibaTemplateScriptVO.getIvrLibaTemplateTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID()); |
| | | |
| | | } else if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 2) { |
| | | //修改 |
| | | IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class); |
| | | ivrLibaTemplateScript.setTemplateID(ivrLibaTemplate.getID()); |
| | | ivrLibaTemplateScriptMapper.updateIvrLibaTemplateScript(ivrLibaTemplateScript); |
| | | //对选项目进行处理 |
| | | dealOption(ivrLibaTemplateScriptVO.getIvrLibaTemplateTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID()); |
| | | |
| | | } else if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 3) { |
| | | //删除 |
| | | if (ivrLibaTemplateScriptVO.getID() == null) { |
| | | log.info("删除失败,模板话术id为空"); |
| | | } else { |
| | | ivrLibaTemplateTagMapper.deleteIvrLibaTemplateTagById(ivrLibaTemplateScriptVO.getID()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return i; |
| | | } |
| | | |
| | | /** |
| | | * 选项处理 |
| | | * |
| | | * @param ivrLibaTemplateTargetoptionList |
| | | * @param ivrLibaTemplateScript |
| | | * @param tmpID |
| | | */ |
| | | private void dealOption(List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptionList, IvrLibaTemplateScript ivrLibaTemplateScript, Long tmpID) { |
| | | //对模板指标选项进行处理 |
| | | if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoptionList)) { |
| | | for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption : ivrLibaTemplateTargetoptionList) { |
| | | if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 1) { |
| | | //新增 |
| | | ivrLibaTemplateTargetoption.setTemplateID(tmpID); |
| | | ivrLibaTemplateTargetoption.setTargetid(ivrLibaTemplateScript.getTargetid()); |
| | | ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getScriptid()); |
| | | ivrLibaTemplateTargetOptionMapper.insertIvrLibaTemplateTargetoption(ivrLibaTemplateTargetoption); |
| | | } else if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 2) { |
| | | //修改 |
| | | ivrLibaTemplateTargetoption.setTemplateID(tmpID); |
| | | ivrLibaTemplateTargetoption.setTargetid(ivrLibaTemplateScript.getTargetid()); |
| | | ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getScriptid()); |
| | | 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.setIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoptions); |
| | | } |
| | | |
| | | //数据组装 |
| | | templateVO.setIvrLibaTemplateTagList(ivrLibaTemplateTags); |
| | | templateVO.setIvrLibaTemplateScriptVOList(ivrLibaTemplateScriptVOS); |
| | | return templateVO; |
| | | } |
| | | |
| | | } |