From ac79f032745c975eb77d6fb148ed390f2373559e Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 28 十二月 2023 17:58:52 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java |  259 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 214 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..3487f55 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,265 @@
 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;
 
 /**
- * 璇濇湳妯℃澘搴揝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 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鐨勪富閿甶d涓猴細{}", 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;
+    }
+
 }

--
Gitblit v1.9.3