From 723d38375c45d24737bfef6f33a9686254abf99b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 17 十月 2024 13:42:27 +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..b88cb6e 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 TemplateDeptMapper 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 (TemplateDept tempDetpRelevance : ivrLibaTemplateVO.getTempDetpRelevances()) {
+            if (tempDetpRelevance.getId() == null) {
+                //鏂板
+                tempDetpRelevance.setTempid(ivrLibaTemplate.getId());
+                tempDetpRelevance.setType(2L);
+                tempDetpRelevance.setCreateTime(new Date());
+                tempDetpRelevanceMapper.insertTemplateDept(tempDetpRelevance);
+            } else {
+                tempDetpRelevance.setUpdateTime(new Date());
+                tempDetpRelevanceMapper.updateTemplateDept(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