From 907641e56c2085aaa81f267946dc3e3e9fca73e7 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 18 九月 2024 09:39:02 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java | 328 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 283 insertions(+), 45 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java index c6ccb10..76c081a 100644 --- a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java @@ -1,96 +1,334 @@ package com.smartor.service.impl; -import java.util.List; +import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.DtoConversionUtils; +import com.ruoyi.common.utils.StringUtils; +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.*; /** - * 璇濇湳妯℃澘搴揝ervice涓氬姟灞傚鐞� - * - * @author smartor - * @date 2023-03-22 + * 妯℃澘搴揝ervice涓氬姟灞傚鐞� + * + * @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 IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper; + + @Autowired + private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; + + @Autowired + private TempDetpRelevanceMapper tempDetpRelevanceMapper; + /** - * 鏌ヨ璇濇湳妯℃澘搴� - * - * @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) { + //鏂板 + 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) { + IvrLibaTemplateScript ivrLibaTemplateScript = scriptHandle(ivrLibaTemplate, ivrLibaTemplateScriptVO, ivrLibaTemplateScriptVO.getIsoperation()); +// dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), ivrLibaTemplateScriptVO.getIsoperation()); + } else { + IvrLibaTemplateScript ivrLibaTemplateScript = scriptHandle(ivrLibaTemplate, ivrLibaTemplateScriptVO, ivrLibaTemplateVO.getIsoperation()); +// dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), ivrLibaTemplateVO.getIsoperation()); + } + } + } + + //瀵圭瀹よ繘琛屽鐞� + 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; + } + + private IvrLibaTemplateScript scriptHandle(IvrLibaTemplate ivrLibaTemplate, IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO, Integer isoperation) { + IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class); + if (isoperation == 1) { + //鏂板 + ivrLibaTemplateScript.setTemplateid(ivrLibaTemplate.getId()); + ivrLibaTemplateScript.setCreateTime(new Date()); + ivrLibaTemplateScriptMapper.insertIvrLibaTemplateScript(ivrLibaTemplateScript); + //瀵归�夐」鐩繘琛屽鐞� + dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), isoperation); + + } else if (isoperation == 2) { + //淇敼 + ivrLibaTemplateScript.setTemplateid(ivrLibaTemplate.getId()); + ivrLibaTemplateScript.setUpdateTime(new Date()); + ivrLibaTemplateScriptMapper.updateIvrLibaTemplateScript(ivrLibaTemplateScript); + //瀵归�夐」鐩繘琛屽鐞� + dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), isoperation); + + } else if (isoperation == 3) { + //鍒犻櫎 + if (ivrLibaTemplateScriptVO.getId() == null) { + log.info("鍒犻櫎澶辫触,妯℃澘璇濇湳id涓虹┖"); + } else { + ivrLibaTemplateScriptVO.setUpdateTime(new Date()); + ivrLibaTemplateScriptMapper.deleteIvrLibaTemplateScriptByID(ivrLibaTemplateScriptVO.getId()); + } + } + return ivrLibaTemplateScript; + } + + /** + * 閫夐」澶勭悊 + * + * @param ivrLibaTemplateTargetoptionList + * @param ivrLibaTemplateScript + * @param tmpID + */ + private void dealOption(List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptionList, IvrLibaTemplateScript ivrLibaTemplateScript, Long tmpID, Integer isoperation) { + log.info("ivrLibaTemplateScript鐨勫�间负锛歿}" , ivrLibaTemplateScript); + //瀵规ā鏉挎寚鏍囬�夐」杩涜澶勭悊 + Integer lsIsoperation = isoperation; + if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoptionList)) { + for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption : ivrLibaTemplateTargetoptionList) { + if (ivrLibaTemplateTargetoption.getIsoperation() != null) { + isoperation = ivrLibaTemplateTargetoption.getIsoperation(); + } else { + isoperation = lsIsoperation; + } + if (isoperation == 1) { + //鏂板 + ivrLibaTemplateTargetoption.setTemplateID(tmpID); + ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getId()); + if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getDynamiccruxs())) + ivrLibaTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getDynamiccruxs())); + if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getNodynamiccruxs())) + ivrLibaTemplateTargetoption.setNodynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getNodynamiccruxs())); + ivrLibaTemplateTargetOptionMapper.insertIvrLibaTemplateTargetoption(ivrLibaTemplateTargetoption); + } else if (isoperation == 2) { + //淇敼 + ivrLibaTemplateTargetoption.setTemplateID(tmpID); + ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getId()); + if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getDynamiccruxs())) + ivrLibaTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getDynamiccruxs())); + if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getNodynamiccruxs())) + ivrLibaTemplateTargetoption.setNodynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getNodynamiccruxs())); + ivrLibaTemplateTargetOptionMapper.updateIvrLibaTemplateTargetoption(ivrLibaTemplateTargetoption); + } else if (isoperation == 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("鎻愪緵鐨勬潯浠�,鏌ヨ妯℃澘璇︽儏鏁版嵁涓虹┖"); + } + //瀹氫箟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.error("ivrLibaTemplateScriptVO鐨勪富閿甶d涓猴細{}" , ivrLibaTemplateScriptVO.getId()); + IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption(); + ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId()); + List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption); + for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption1 : ivrLibaTemplateTargetoptions) { + ObjectMapper mapper = new ObjectMapper(); + if (!StringUtils.isEmpty(ivrLibaTemplateTargetoption1.getDynamiccruxsJson())) { + try { + ivrLibaTemplateTargetoption1.setDynamiccruxs(mapper.readValue(ivrLibaTemplateTargetoption1.getDynamiccruxsJson(), List.class)); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + if (!StringUtils.isEmpty(ivrLibaTemplateTargetoption1.getNodynamiccruxsJson())) { + try { + ivrLibaTemplateTargetoption1.setNodynamiccruxs(mapper.readValue(ivrLibaTemplateTargetoption1.getNodynamiccruxsJson(), List.class)); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + } + ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions); + } + Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparing(IvrLibaTemplateScriptVO::getSort)); + //鏁版嵁缁勮 + templateVO.setIvrLibaTemplateTagList(ivrLibaTemplateTags); + templateVO.setIvrLibaTemplateScriptVOList(ivrLibaTemplateScriptVOS); + return templateVO; + } + } -- Gitblit v1.9.3