From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 14 十月 2025 16:34:22 +0800
Subject: [PATCH] 改bug

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java |  138 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 108 insertions(+), 30 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 be1458c..b73d4c3 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
@@ -8,16 +8,24 @@
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
 import com.doumee.core.utils.*;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
+import com.doumee.dao.business.dao.MemberMapper;
 import com.doumee.dao.business.dao.SmsConfigMapper;
 import com.doumee.dao.business.dao.SmsEmailMapper;
+import com.doumee.dao.business.join.VisitsJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.model.vo.ValidPhoneCodeVO;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.third.EmayService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -38,6 +46,10 @@
 
     @Autowired
     private SmsEmailMapper smsEmailMapper;
+    @Autowired
+    private SystemUserMapper systemUserMapper;
+    @Autowired
+    private MemberMapper memberMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
@@ -81,6 +93,45 @@
        isCaptcheValide(smsEmailMapper,param.getPhone(),param.getCode());
     }
     @Override
+    public   SystemUser validDriverPhone(ValidPhoneCodeVO param){
+          isCaptcheValide(smsEmailMapper,param.getPhone(),param.getCode());
+
+        SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+                .eq(SystemUser::getDeleted,Constants.ZERO)
+                .and(i->i.eq(SystemUser::getMobile,param.getPhone()).or().eq(SystemUser::getUsername,param.getPhone()))
+                .last("limit 1"));
+       if(systemUser !=null){
+           return  systemUser;
+       }
+        String salt = RandomStringUtils.randomAlphabetic(6);
+        Member member = new Member();
+        member.setCreateDate(new Date());
+        member.setIsdeleted(Constants.ZERO);
+        member.setType(Constants.memberType.driver);
+        member.setPhone(param.getPhone());
+        member.setStatus(Constants.ZERO);
+        member.setOpenid(param.getOpenId());
+        member.setPassward(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
+        memberMapper.insert(member);
+
+        systemUser = new SystemUser();
+        systemUser.setCreateTime(new Date());
+        systemUser.setDeleted(Boolean.FALSE);
+        systemUser.setUsername(param.getPhone());
+        systemUser.setRealname(null);
+        systemUser.setMemberId(member.getId());
+        systemUser.setMobile(param.getPhone());
+        systemUser.setSalt(salt);
+        systemUser.setPassword(member.getPassward());
+        systemUser.setStatus(Constants.ZERO);
+        systemUser.setType(Constants.memberType.driver);
+        systemUser.setSource(Constants.TWO);
+        systemUser.setOpenid(param.getOpenId());
+        systemUserMapper.insert(systemUser);
+        return systemUser;
+    }
+
+    @Override
     public Integer create(SmsEmail smsEmail) {
         smsEmailMapper.insert(smsEmail);
         return smsEmail.getId();
@@ -88,7 +139,7 @@
 
     @Override
     public Integer sendSms(SmsEmail smsEmail) {
-        if(StringUtils.isBlank(smsEmail.getPhone())){
+        if(StringUtils.isBlank(smsEmail.getPhone()) || smsEmail.getPhone().length() != 11 ){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         String nowDate = DateUtil.getFomartDate(new Date(),"yyyy-MM-dd HH:mm:ss");
@@ -224,7 +275,10 @@
             queryWrapper.lambda().eq(SmsEmail::getContent, pageWrap.getModel().getContent());
         }
         if (pageWrap.getModel().getPhone() != null) {
-            queryWrapper.lambda().eq(SmsEmail::getPhone, pageWrap.getModel().getPhone());
+            queryWrapper.lambda().and(wr ->{
+                wr.like(SmsEmail::getPhone, pageWrap.getModel().getPhone())
+                        .or().like(SmsEmail::getEmail, pageWrap.getModel().getPhone());
+            });
         }
         if (pageWrap.getModel().getEmail() != null) {
             queryWrapper.lambda().eq(SmsEmail::getEmail, pageWrap.getModel().getEmail());
@@ -241,13 +295,11 @@
         if (pageWrap.getModel().getObjType() != null) {
             queryWrapper.lambda().eq(SmsEmail::getObjType, pageWrap.getModel().getObjType());
         }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
+        queryWrapper.lambda().ge(Objects.nonNull(pageWrap.getModel().getStartTime()),
+                SmsEmail::getCreateDate, pageWrap.getModel().getStartTime())
+                .le(Objects.nonNull(pageWrap.getModel().getEndTime()),
+                        SmsEmail::getCreateDate, pageWrap.getModel().getEndTime())
+                .orderByDesc(SmsEmail::getCreateDate);
         return PageData.from(smsEmailMapper.selectPage(page, queryWrapper));
     }
 
@@ -264,25 +316,38 @@
         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){
+                if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
+                    if(model.getPhone() == null){
                         model.setStatus(Constants.THREE);//鍙戦�佸け璐�
-                        model.setRemark("鐭俊浠诲姟鍙戦�佸け璐ワ紒"+e.getMessage());
+                        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());
+                        }
                     }
+                }else if(Constants.equalsInteger(model.getType(),Constants.TWO)){
+                    if(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",model.getInfo()).getTime() < System.currentTimeMillis()){
+                        WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                        wxPlatNotice.sendMeetTemplateNotice(systemDictDataBiz,model);
+                        model.setStatus(Constants.ONE);//鍙戦�佹垚鍔�
+                        model.setRemark("寰俊閫氱煡鍙戦�佹垚鍔�");
+                    }else{
+                        model.setStatus(Constants.THREE);//鍙戦�佹垚鍔�
+                        model.setRemark("寰俊閫氱煡鍙戦�佸け璐�");
+                    }
+                }else{
+                    continue;
                 }
                 model.setEditDate(new Date());
                 smsEmailMapper.updateById(model);
             }
         }
     }
-
     /**
      * 璁垮鐢宠涓氬姟鐭俊閫氱煡
      * @param systemDictDataBiz
@@ -296,17 +361,21 @@
      * @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){
+                                    VisitsJoinMapper 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);
+                Visits visits = visitsMapper.selectJoinOne(Visits.class,new MPJLambdaWrapper<Visits>().selectAll(Visits.class)
+                                .selectAs(SystemUser::getMobile,Visits::getReceptMemberMobile)
+                        .leftJoin(SystemUser.class,SystemUser::getMemberId, Visits::getReceptMemberId)
+                        .eq(Visits::getId,objId).last(" limit 1 "));
                 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());
@@ -325,6 +394,10 @@
                         content = content.replace("{鏈绂绘暟閲弣",msg);
                         sendBusinessSms(emayService,smsEmailMapper,
                                 Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitAuditSuccessToVisiter))  {
+                        content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getReceptMemberMobile().split(",")),SmsConstants.visit,content,visits.getId());
                     }else{
                         //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
                         sendBusinessSms(emayService,smsEmailMapper,
@@ -350,26 +423,31 @@
      * @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){
+                                          VisitsJoinMapper 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);
+                Visits visits = visitsMapper.selectJoinOne(Visits.class,new MPJLambdaWrapper<Visits>().selectAll(Visits.class)
+                        .selectAs(SystemUser::getMobile,Visits::getCreateMobile)
+                        .leftJoin(SystemUser.class,SystemUser::getMemberId,Visits::getMemberId)
+                        .eq(Visits::getId,objId)
+                        .last(" limit   1")
+                );
                 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());
+                                Arrays.asList(visits.getCreateMobile().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());
+                                Arrays.asList(visits.getCreateMobile().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"));
@@ -451,13 +529,13 @@
      * @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){
+                                           HiddenDangerMapper hiddenDangerMapper, Integer objId, String objCode, List<String> auditUser,String hiddenParam){
         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();
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent().replace("{闅愭偅绫诲瀷}",hiddenParam);
                 HiddenDanger hiddenDanger = hiddenDangerMapper.selectById(objId);
                 //鎮ㄦ湁涓�鏉°�愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪�
                 //鎮ㄦ彁浜ょ殑銆愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戝凡缁忓鐞嗗畬姣曪紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��

--
Gitblit v1.9.3