From eb49564ab17c6695d8928d5a63a57c58b3cfd79c Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 11 十二月 2024 18:21:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java |  165 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 122 insertions(+), 43 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 c04756c..be1458c 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,6 @@
 package com.doumee.service.business.impl;
 
-import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,29 +8,25 @@
 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.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.core.utils.*;
 import com.doumee.dao.business.*;
+import com.doumee.dao.business.dao.SmsConfigMapper;
+import com.doumee.dao.business.dao.SmsEmailMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.model.vo.ValidPhoneCodeVO;
 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.util.*;
 import java.util.Date;
-import java.util.List;
-import java.util.Objects;
 
 /**
  * 鐭俊閭欢淇℃伅琛⊿ervice瀹炵幇
@@ -47,11 +43,13 @@
     @Autowired
     @Lazy
     private EmayService emayService;
+    @Autowired
+    private SmsConfigMapper smsConfigMapper;
 
     @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)
@@ -76,6 +74,12 @@
         smsEmailMapper.updateById(model);
     }
 
+
+
+    @Override
+    public     void validPhoneCaptcha(ValidPhoneCodeVO param){
+       isCaptcheValide(smsEmailMapper,param.getPhone(),param.getCode());
+    }
     @Override
     public Integer create(SmsEmail smsEmail) {
         smsEmailMapper.insert(smsEmail);
@@ -95,27 +99,27 @@
         )>=3){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝瓒呭嚭鍙戦�佹鏁帮紝璇风◢鍚庨噸璇曪紒");
         }
-
         String code = Constants.getRandom6Num();
-
-        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(),"瀵逛笉璧凤紝鐭俊楠岃瘉鐮佸彂閫佸け璐ワ紝璇风◢鍚庨噸璇曪紒");
+        SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getObjType,
+                SmsConstants.inventCode).last(" limit 1 "));
+        //寮�鍚煭淇¢�氱煡
+        if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+            if(StringUtils.isNotBlank(smsConfig.getContent())){
+                String content  = smsConfig.getContent().replace("{楠岃瘉鐮亇",code);
+                emayService.sendSmsByHk(smsEmail.getPhone(),content);
+                smsEmail.setRemark(code);
+                smsEmail.setIsdeleted(Constants.ZERO);
+                smsEmail.setCreateDate(new Date());
+                smsEmail.setStatus(Constants.ZERO);
+                smsEmail.setType(Constants.ZERO);
+                smsEmail.setTitle("鐭俊楠岃瘉鐮�");
+                smsEmail.setContent(content);
+                smsEmail.setObjType(Constants.ZERO+"");
+                smsEmailMapper.insert(smsEmail);
+                return smsEmail.getId();
+            }
         }
-
-        smsEmail.setRemark(code);
-        smsEmail.setIsdeleted(Constants.ZERO);
-        smsEmail.setCreateDate(new Date());
-        smsEmail.setStatus(Constants.ZERO);
-        smsEmail.setType(Constants.ZERO);
-        smsEmail.setTitle("鐭俊楠岃瘉鐮�");
-        smsEmail.setContent(content);
-        smsEmail.setObjType(Constants.ZERO+"");
-        smsEmailMapper.insert(smsEmail);
-
-        return smsEmail.getId();
+        return null;
     }
 
 
@@ -252,6 +256,32 @@
         QueryWrapper<SmsEmail> wrapper = new QueryWrapper<>(smsEmail);
         return smsEmailMapper.selectCount(wrapper);
     }
+    @Override
+    public void sendWaitingSmsNotice(){
+        LambdaQueryWrapper<SmsEmail> wrapper = new LambdaQueryWrapper<SmsEmail>()
+                .eq(SmsEmail::getIsdeleted,Constants.ZERO)
+                .eq(SmsEmail::getStatus,Constants.TWO);
+        List<SmsEmail> smsEmails = smsEmailMapper.selectList(wrapper);
+        if(smsEmails!=null && smsEmails.size()>0){
+            for(SmsEmail model : smsEmails){
+                if(model.getPhone() == null){
+                    model.setStatus(Constants.THREE);//鍙戦�佸け璐�
+                    model.setRemark("鎵嬫満鍙蜂负绌猴紝鍙栨秷浠诲姟鍙戦�侊紒");
+                }else{
+                    try {
+                        emayService.sendSmsByHk(model.getPhone(),model.getContent());
+                        model.setStatus(Constants.ONE);//鍙戦�佹垚鍔�
+                        model.setRemark("鐭俊浠诲姟鍙戦�佹垚鍔�");
+                    }catch (Exception e){
+                        model.setStatus(Constants.THREE);//鍙戦�佸け璐�
+                        model.setRemark("鐭俊浠诲姟鍙戦�佸け璐ワ紒"+e.getMessage());
+                    }
+                }
+                model.setEditDate(new Date());
+                smsEmailMapper.updateById(model);
+            }
+        }
+    }
 
     /**
      * 璁垮鐢宠涓氬姟鐭俊閫氱煡
@@ -265,7 +295,7 @@
      * @param msg
      * @param auditUser
      */
-    public static void sendVisitSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+    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,
@@ -319,8 +349,8 @@
      * @param msg
      * @param auditUser
      */
-    public static void sendVisitReportSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
-                                    VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> 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 "));
@@ -362,6 +392,53 @@
         }
     }
 
+    public static void sendVisitReportTimeOutSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper ,
+                                                 SmsConfigMapper smsConfigMapper,
+                                           String objCode, String msg,List<String> mobiles){
+        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();
+                //瓒呮椂鐗规畩澶勭悊
+                if(smsConfig.getCode().equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum)){
+                    //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡姤澶囪溅杈嗘湭绂诲満锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭��
+                    content = content.replace("{鏈绂绘暟閲弣",msg);
+                    sendBusinessSms(emayService,smsEmailMapper,
+                            mobiles,SmsConstants.visitReport,content,0);
+                    return;
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    public static void sendVisitTimeOutSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper ,
+                                                 SmsConfigMapper smsConfigMapper,
+                                                 String objCode, String msg,List<String> mobiles){
+        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();
+                //瓒呮椂鐗规畩澶勭悊
+                if(smsConfig.getCode().equals(SmsConstants.visitContent.visitTimeOutSignOutNum)){
+                    //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡姤澶囪溅杈嗘湭绂诲満锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭��
+                    content = content.replace("{鏈绂绘暟閲弣",msg);
+                    sendBusinessSms(emayService,smsEmailMapper,
+                            mobiles,SmsConstants.visit,content,0);
+                    return;
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
     /**
      * 闅愭偅闅忔墜鎷�
      * @param systemDictDataBiz
@@ -373,8 +450,8 @@
      * @param objCode
      * @param auditUser
      */
-    public static void sendHiddenDangerSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
-                                    HiddenDangerMapper hiddenDangerMapper, Integer objId, String objCode,List<String> 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 "));
@@ -407,8 +484,8 @@
      * @param msg
      * @param userList
      */
-    public static void sendCarUseSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
-                                           CarUseBookMapper carUseBookMapper, Integer objId, String objCode, String msg, List<String> 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,
@@ -423,6 +500,9 @@
                         content = content.replace("{鎻愪氦鐨勫嚭鍙戞椂闂磢",DateUtil.getFomartDate(carUseBook.getStartTime(),"yyyy-MM-dd HH:mm"));
                     }else if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditFail) || objCode.equals(SmsConstants.carUseBookContent.carUseBookCancel)){
                         //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯绘淳杞﹀憳銆�
+                        if(StringUtils.isBlank(msg)){
+                            msg = "鍏朵粬鍘熷洜";
+                        }
                         content = content.replace("{椹冲洖鍘熷洜}",msg);
                         //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡琚彇娑堬紝鍙栨秷鍘熷洜涓猴細{鍙栨秷鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯绘淳杞﹀憳銆�
                         content = content.replace("{鍙栨秷鍘熷洜}",msg);
@@ -448,8 +528,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 "));
@@ -493,8 +573,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鍒嗛挓鍐咃紝鍓嶅線鍥尯绛夊緟鍖虹瓑寰呭彨鍙蜂綔涓氥��
@@ -542,8 +622,7 @@
             smsEmail.setObjType(objType);
             smsEmail.setObjId(objId);
             smsEmailMapper.insert(smsEmail);
-            emayService.sendSingleSms(phone,content);
-
+            emayService.sendSmsByHk(phone,content);
         }
     }
 

--
Gitblit v1.9.3