From 6a58a5a148c27c9ff66901bfbae6e52c1a56b5d2 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 04 七月 2024 17:17:53 +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..1fa2142 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.info("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::getTargetid));
+ //鏁版嵁缁勮
+ templateVO.setIvrLibaTemplateTagList(ivrLibaTemplateTags);
+ templateVO.setIvrLibaTemplateScriptVOList(ivrLibaTemplateScriptVOS);
+ return templateVO;
+ }
+
}
--
Gitblit v1.9.3