From c50686f775664c5a722f4b5ad7afde1e5214b14d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 05 十一月 2024 19:07:21 +0800
Subject: [PATCH] 最新版本541200007

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 209 insertions(+), 26 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index 01afdca..c453c2c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -1,6 +1,7 @@
 package com.doumee.service.business.impl;
 
-import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,32 +9,27 @@
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
-import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.SmsConstants;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.PlatformBooksMapper;
-import com.doumee.dao.business.PlatformJobMapper;
-import com.doumee.dao.business.SmsConfigMapper;
-import com.doumee.dao.business.SmsEmailMapper;
+import com.doumee.core.utils.*;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.dao.SmsEmailMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.third.EmayService;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Arrays;
+import java.net.URLEncoder;
+import java.util.*;
 import java.util.Date;
-import java.util.List;
-import java.util.Objects;
 
 /**
  * 鐭俊閭欢淇℃伅琛⊿ervice瀹炵幇
@@ -54,7 +50,7 @@
     @Value("${debug_model}")
     private boolean debugModel;
 
-    public static void isCaptcheValide(SmsEmailMapper smsEmailMapper, String phone, String captche) {
+    public static void isCaptcheValide(com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper, String phone, String captche) {
         SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
                 .eq(SmsEmail::getType, Constants.ZERO)
                 .eq(SmsEmail::getPhone, phone)
@@ -78,6 +74,8 @@
         model.setEditDate(new Date());
         smsEmailMapper.updateById(model);
     }
+
+
 
     @Override
     public Integer create(SmsEmail smsEmail) {
@@ -103,10 +101,11 @@
 
         String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode()+"楠岃瘉鐮佷负锛�"+code+"锛屾楠岃瘉鐮佹湁鏁堜负3鍒嗛挓銆傝鍕挎硠闇�";
 
-        boolean result=   emayService.sendSingleSms(smsEmail.getPhone(),content);
-        if(!result){
-            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐭俊楠岃瘉鐮佸彂閫佸け璐ワ紝璇风◢鍚庨噸璇曪紒");
-        }
+//        boolean result=   emayService.sendSingleSms(smsEmail.getPhone(),content);
+        emayService.sendSmsByHk(smsEmail.getPhone(),content);
+//        if(!result){
+//            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐭俊楠岃瘉鐮佸彂閫佸け璐ワ紝璇风◢鍚庨噸璇曪紒");
+//        }
 
         smsEmail.setRemark(code);
         smsEmail.setIsdeleted(Constants.ZERO);
@@ -256,9 +255,192 @@
         return smsEmailMapper.selectCount(wrapper);
     }
 
+    /**
+     * 璁垮鐢宠涓氬姟鐭俊閫氱煡
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param visitsMapper
+     * @param objId
+     * @param objCode
+     * @param msg
+     * @param auditUser
+     */
+    public static void sendVisitSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                    VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                Visits visits = visitsMapper.selectById(objId);
+                if(Objects.nonNull(visits)){
+                    if(objCode.equals(SmsConstants.visitContent.visitAuditSuccess)){
+                        //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡缁忓鎵归�氳繃锛岃浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍓嶅線闂ㄥ崼瀹よ瀹㈡満绛惧埌鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉
+                        content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitAuditFail)){
+                        //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯昏璁夸汉銆�
+                        content = content.replace("{椹冲洖鍘熷洜}",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOut)){
+                        //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡浜巤鍒版湡鏃堕棿}鍒版湡锛岃鍙婃椂绂诲満骞跺墠寰�闂ㄥ崼瀹よ瀹㈡満绛剧锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉
+                        content = content.replace("{鍒版湡鏃堕棿}",DateUtil.getFomartDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOutNum)) {
+                        //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡湭绛剧锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭��
+                        content = content.replace("{鏈绂绘暟閲弣",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else{
+                        //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                auditUser,SmsConstants.platformBook,content,visits.getId());
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 
     /**
-     * 鐢ㄨ溅鐢宠 鐭俊閫氱煡閰嶇疆
+     * 璁垮鎶ュ涓氬姟鐭俊閫氱煡
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param visitsMapper
+     * @param objId
+     * @param objCode
+     * @param msg
+     * @param auditUser
+     */
+    public static void sendVisitReportSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                          VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                Visits visits = visitsMapper.selectById(objId);
+                if(Objects.nonNull(visits)){
+                    if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditSuccess)){
+                        // 鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡缁忓鎵归�氳繃锛岃閫氱煡璁垮浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍚庝箻鍧恵杞︾墝鍙穧鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉銆�
+                        content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"))
+                                .replace("{杞︾墝鍙穧",visits.getCarNos());
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditFail)){
+                        //鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯诲鎵逛汉銆�
+                        content = content.replace("{椹冲洖鍘熷洜}",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOut)){
+                        //鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡浜巤棰勭害鍏ュ洯缁撴潫鏃堕棿}鍒版湡锛岃鍙婃椂绂诲満锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉
+                        content = content.replace("{棰勭害鍏ュ洯缁撴潫鏃堕棿}",DateUtil.getFomartDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum)) {
+                        //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡姤澶囪溅杈嗘湭绂诲満锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭��
+                        content = content.replace("{鏈绂绘暟閲弣",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else{
+                        //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                auditUser,SmsConstants.platformBook,content,visits.getId());
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 闅愭偅闅忔墜鎷�
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param hiddenDangerMapper
+     * @param objId
+     * @param objCode
+     * @param auditUser
+     */
+    public static void sendHiddenDangerSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                           HiddenDangerMapper hiddenDangerMapper, Integer objId, String objCode, List<String> auditUser){
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                HiddenDanger hiddenDanger = hiddenDangerMapper.selectById(objId);
+                //鎮ㄦ湁涓�鏉°�愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪�
+                //鎮ㄦ彁浜ょ殑銆愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戝凡缁忓鐞嗗畬姣曪紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+                if(Objects.nonNull(hiddenDanger)){
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                auditUser,SmsConstants.platformBook,content,hiddenDanger.getId());
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 鐢ㄨ溅鐢宠
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param carUseBookMapper
+     * @param objId
+     * @param objCode
+     * @param msg
+     * @param userList
+     */
+    public static void sendCarUseSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                     CarUseBookMapper carUseBookMapper, Integer objId, String objCode, String msg, List<String> userList){
+        //鎮ㄦ湁涓�鏉°�愮敤杞︾敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                CarUseBook carUseBook = carUseBookMapper.selectById(objId);
+                if(Objects.nonNull(carUseBook)){
+                    if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditSuccess)){
+                        //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡缁忓鎵归�氳繃锛屽嚭鍙戞椂闂翠负{鎻愪氦鐨勫嚭鍙戞椂闂磢锛岃鎸夋椂鐢ㄨ溅銆傚鐢ㄨ溅璁″垝鏈夊彉锛岃鍙婃椂鑱旂郴娲捐溅鍛樸��
+                        content = content.replace("{鎻愪氦鐨勫嚭鍙戞椂闂磢",DateUtil.getFomartDate(carUseBook.getStartTime(),"yyyy-MM-dd HH:mm"));
+                    }else if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditFail) || objCode.equals(SmsConstants.carUseBookContent.carUseBookCancel)){
+                        //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯绘淳杞﹀憳銆�
+                        content = content.replace("{椹冲洖鍘熷洜}",msg);
+                        //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡琚彇娑堬紝鍙栨秷鍘熷洜涓猴細{鍙栨秷鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯绘淳杞﹀憳銆�
+                        content = content.replace("{鍙栨秷鍘熷洜}",msg);
+                    }
+                    sendBusinessSms(emayService,smsEmailMapper,
+                            userList,SmsConstants.carUse,content,carUseBook.getId());
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 鐗╂祦杞﹂绾� 鐭俊閫氱煡閰嶇疆
      * @param emayService
      * @param smsEmailMapper
      * @param smsConfigMapper
@@ -268,8 +450,8 @@
      * @param msg
      * @param auditUser
      */
-    public static void sendPlatformBookSms(SystemDictDataBiz systemDictDataBiz,EmayService emayService ,SmsEmailMapper smsEmailMapper ,SmsConfigMapper smsConfigMapper,
-            PlatformBooksMapper platformBooksMapper,Integer objId,String objCode,String msg,List<String> auditUser){
+    public static void sendPlatformBookSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                           PlatformBooksMapper platformBooksMapper, Integer objId, String objCode, String msg, List<String> auditUser){
         try{
             SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
                     objCode).last(" limit 1 "));
@@ -280,7 +462,7 @@
                 if(Objects.nonNull(platformBooks)){
                     if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditSuccess)){
                         //鎮ㄧ殑銆愯溅杈嗗叆鍥敵璇枫�戝凡缁忓鎵归�氳繃锛屽叆鍥椂闂翠负{鍏ュ洯鏃堕棿}锛岃鎻愬墠30鍒嗛挓鍓嶅線鐜板満绛惧埌銆傚璁″垝鏈夊彉锛岃鍙婃椂鑱旂郴瀹℃牳浜哄憳銆�
-                        content = content.replace("{鍏ュ洯鏃堕棿}",DateUtil.getDate(platformBooks.getArriveDate(),"yyyy-MM-dd HH:mm"));
+                        content = content.replace("{鍏ュ洯鏃堕棿}",DateUtil.getFomartDate(platformBooks.getArriveDate(),"yyyy-MM-dd HH:mm"));
                         sendBusinessSms(emayService,smsEmailMapper,
                                 Arrays.asList(platformBooks.getDriverPhone().split(",")),SmsConstants.platformBook,content,platformBooks.getId());
                     }else if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditFail) || objCode.equals(SmsConstants.platformBookContent.platformBookCancel)){
@@ -313,8 +495,8 @@
      * @param objCode
      * @param platformName
      */
-    public static void sendPlatformJobSms(SystemDictDataBiz systemDictDataBiz,EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
-                                          PlatformJobMapper platformJobMapper, Integer objId, String objCode, String platformName,String newPlatformName){
+    public static void sendPlatformJobSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                          PlatformJobMapper platformJobMapper, Integer objId, String objCode, String platformName, String newPlatformName){
         //platformJobNewJob	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鏈変竴涓柊鐨勮繍杈撲换鍔★紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
         //platformJobStopJob	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鐨勮繍杈撲换鍔″凡琚彇娑堬紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
         //platformJobCallIn	{杞︾墝鍙穧杞︿富鎮ㄥソ锛岃鍦�10鍒嗛挓鍐咃紝鍓嶅線鍥尯绛夊緟鍖虹瓑寰呭彨鍙蜂綔涓氥��
@@ -362,7 +544,8 @@
             smsEmail.setObjType(objType);
             smsEmail.setObjId(objId);
             smsEmailMapper.insert(smsEmail);
-            emayService.sendSingleSms(phone,content);
+            emayService.sendSmsByHk(phone,content);
+
 
         }
     }

--
Gitblit v1.9.3