From 3b0c9e51e16619e59b58e4ce9870e8f69e89259b Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 21 十月 2025 17:42:11 +0800
Subject: [PATCH] 月台自动叫号处理问题

---
 server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java |  130 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 125 insertions(+), 5 deletions(-)

diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
index 1228ce3..85565d8 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
@@ -2,15 +2,19 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.HttpsUtil;
+import com.doumee.dao.business.dao.SmsEmailMapper;
 import com.doumee.dao.business.model.Bookings;
+import com.doumee.dao.business.model.SmsEmail;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
+import java.awt.print.Book;
 import java.util.*;
 
 /**
@@ -70,8 +74,11 @@
      * @param token
      * @param openIds
      */
-    public void  sendMeetingBookTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
+    public void  sendMeetingBookTemplateNotice(SystemDictDataBiz systemDictDataBiz,Bookings bookings,String tempId, String token, Set<String> openIds){
         if(CollectionUtils.isNotEmpty(openIds)){
+            String jumpUrl = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
+                    Constants.WxUrlParams.MEETING,bookings.getId().toString());
+
             String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
             //鏁翠綋鍙傛暟map
             Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -82,7 +89,7 @@
             thing1.put("value",bookings.getName());
             //浼氳鏃堕棿
             Map<String, Object> time2 = new HashMap<String,Object>();
-            time2.put("value", DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
+            time2.put("value", DateUtil.getFomartDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
             //浼氳鍦扮偣
             Map<String, Object> thing3 = new HashMap<String,Object>();
             thing3.put("value",bookings.getRoomName());
@@ -97,6 +104,7 @@
             paramMap.put("data", dataMap);
             for (String openId:openIds) {
                 paramMap.clear();
+                paramMap.put("url", jumpUrl);
                 paramMap.put("template_id", tempId);
                 paramMap.put("touser", openId);
                 paramMap.put("data", dataMap);
@@ -111,6 +119,113 @@
         }
     }
 
+    public void createBeginWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings, String openId){
+        Map<String,Object> map = new HashMap<>();
+
+        //鏁翠綋鍙傛暟map
+        Map<String, Object> paramMap = new HashMap<String, Object>();
+        //娑堟伅涓婚鏄剧ず鐩稿叧map
+        Map<String, Object> dataMap = new HashMap<String, Object>();
+        //浼氳鍚嶇О
+        Map<String, Object> thing1 = new HashMap<String,Object>();
+        thing1.put("value",bookings.getName());
+        //浼氳鍦扮偣
+        Map<String, Object> thing2 = new HashMap<String,Object>();
+        thing2.put("value",bookings.getRoomName());
+        //浼氳鏃堕棿
+        Map<String, Object> thing3 = new HashMap<String,Object>();
+        thing3.put("value", DateUtil.getFomartDate(bookings.getStartTime(),"yyyy骞碝M鏈坉d鏃H:mm")+"鑷�"+DateUtil.getFomartDate(bookings.getEndTime(),"HH:mm"));
+
+        Integer earlyMin= Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.EARLY_START_WX_NOTICE).getCode());
+
+        Map<String, Object> thing5 = new HashMap<String,Object>();
+        thing5.put("value","鎮ㄦ墍棰勫畾鐨勪細璁鍗冲皢鍦�"+earlyMin+"鍒嗛挓鍚庡紑濮嬶紝璇峰噯鏃跺弬鍔�");
+
+        dataMap.put("thing1",thing1);
+        dataMap.put("thing2",thing2);
+        dataMap.put("thing3",thing3);
+        dataMap.put("thing5",thing5);
+        paramMap.put("data", dataMap);
+
+        paramMap.put("template_id", "xGFnbHwe8W9sIGlD75XROrbKpzV-6HSRqfRHRfxRR6k");
+        paramMap.put("touser", openId);
+        paramMap.put("data", dataMap);
+
+        smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
+                .eq(SmsEmail::getObjType,Constants.FIVE.toString())
+                .eq(SmsEmail::getStatus,Constants.TWO)
+                .eq(SmsEmail::getType,Constants.TWO)
+                .eq(SmsEmail::getObjId,bookings.getId())
+        );
+
+        SmsEmail smsEmail = new SmsEmail();
+        smsEmail.setPhone(openId);
+        smsEmail.setRemark("绛夊緟鍙戦��");
+        smsEmail.setStatus(Constants.TWO);
+        smsEmail.setIsdeleted(Constants.ZERO);
+        smsEmail.setType(Constants.TWO);
+        smsEmail.setObjType(Constants.FIVE.toString());
+        smsEmail.setObjId(bookings.getId());
+        smsEmail.setCreateDate(new Date());
+        smsEmail.setTitle("浼氳鍗冲皢寮�濮嬫彁閱�");
+        smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getStartTime(),-earlyMin),"yyyy-MM-dd HH:mm:ss"));
+        smsEmail.setContent(JSONObject.toJSONString(map));
+    }
+
+
+    public void createEndWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings,  String openId){
+        Map<String,Object> map = new HashMap<>();
+
+        //鏁翠綋鍙傛暟map
+        Map<String, Object> paramMap = new HashMap<String, Object>();
+        //娑堟伅涓婚鏄剧ず鐩稿叧map
+        Map<String, Object> dataMap = new HashMap<String, Object>();
+        //浼氳鍚嶇О
+        Map<String, Object> thing1 = new HashMap<String,Object>();
+        thing1.put("value",bookings.getName());
+        //浼氳鍦扮偣
+        Map<String, Object> thing6 = new HashMap<String,Object>();
+        thing6.put("value",bookings.getRoomName());
+        //浼氳鏃堕棿
+        Map<String, Object> date4 = new HashMap<String,Object>();
+        date4.put("value", DateUtil.getFomartDate(bookings.getEndTime(),"yyyy骞碝M鏈坉d鏃H:mm"));
+
+        Map<String, Object> thing7 = new HashMap<String,Object>();
+        thing7.put("value","鎮ㄧ殑浼氳鍗冲皢缁撴潫锛屽闇�缁х画浣跨敤璇峰嵆浣跨画璁�");
+
+        dataMap.put("thing1",thing1);
+        dataMap.put("thing6",thing6);
+        dataMap.put("date4",date4);
+        dataMap.put("thing7",thing7);
+        paramMap.put("data", dataMap);
+
+        paramMap.put("template_id", "vdIPfwvDCrXOHgQnB6sdE1lGEsJm1oUURfLx6SoLdk0");
+        paramMap.put("touser", openId);
+        paramMap.put("data", dataMap);
+
+        smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
+                .eq(SmsEmail::getObjType,Constants.FIVE.toString())
+                .eq(SmsEmail::getStatus,Constants.TWO)
+                .eq(SmsEmail::getType,Constants.TWO)
+                .eq(SmsEmail::getObjId,bookings.getId())
+        );
+
+        SmsEmail smsEmail = new SmsEmail();
+        smsEmail.setPhone(openId);
+        smsEmail.setRemark("绛夊緟鍙戦��");
+        smsEmail.setStatus(Constants.TWO);
+        smsEmail.setIsdeleted(Constants.ZERO);
+        smsEmail.setType(Constants.TWO);
+        smsEmail.setObjType(Constants.FIVE.toString());
+        smsEmail.setObjId(bookings.getId());
+        smsEmail.setCreateDate(new Date());
+        smsEmail.setTitle("浼氳鍗冲皢寮�濮嬫彁閱�");
+        Integer endMin= Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.OVER_NOTICE_WX).getCode());
+        smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getEndTime(),-endMin),"yyyy-MM-dd HH:mm:ss"));
+        smsEmail.setContent(JSONObject.toJSONString(map));
+    }
+
+
 
     /**
      * 浼氳瀹ゅ彇娑堥�氱煡
@@ -119,8 +234,12 @@
      * @param token
      * @param openIds
      */
-    public void  sendMeetingBookCancelTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
+    public void  sendMeetingBookCancelTemplateNotice(SystemDictDataBiz systemDictDataBiz,Bookings bookings, String tempId, String token, Set<String> openIds){
         if(CollectionUtils.isNotEmpty(openIds)){
+            String jumpUrl = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
+                    Constants.WxUrlParams.MEETING,bookings.getId().toString());
+
+
             String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
             //鏁翠綋鍙傛暟map
             Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -131,7 +250,7 @@
             thing1.put("value",bookings.getName());
             //浼氳鏃堕棿
             Map<String, Object> time6 = new HashMap<String,Object>();
-            time6.put("value", DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
+            time6.put("value", DateUtil.getFomartDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
             //浼氳鍦扮偣
             Map<String, Object> thing2 = new HashMap<String,Object>();
             thing2.put("value",bookings.getRoomName());
@@ -143,9 +262,10 @@
             dataMap.put("time6",time6);
             dataMap.put("thing2",thing2);
             dataMap.put("thing4",thing4);
-            paramMap.put("data", dataMap);
             for (String openId:openIds) {
                 paramMap.clear();
+                paramMap.put("url", jumpUrl);
+                paramMap.put("data", dataMap);
                 paramMap.put("template_id", tempId);
                 paramMap.put("touser", openId);
                 paramMap.put("data", dataMap);

--
Gitblit v1.9.3