From 86df207c37502cce1b2043e1c7c0486459eef1d6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 13 三月 2025 19:58:45 +0800
Subject: [PATCH] 党员、诉求评论基础代码

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java |  858 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 819 insertions(+), 39 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
index 320cb9b..9c55423 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
@@ -1,59 +1,839 @@
 package com.panzhihua.common.utlis;
 
+import java.math.BigDecimal;
+import java.util.*;
+
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.http.entity.ContentType;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
+import com.panzhihua.common.constants.WxSubscribeConstants;
+import com.panzhihua.common.model.dtos.wx.TemplateParam;
+import com.panzhihua.common.model.dtos.wx.WxSubscribeDTO;
 
-import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import lombok.extern.slf4j.Slf4j;
 
+@Slf4j
 public class WxUtil {
 
-    //客服消息推送地址
+    // 客服消息推送地址
     public final static String kf_url = "https://api.weixin.qq.com/cgi-bin/message/custom/send";
 
-    public static String sendKfLinkMessage(String openid,String url,String thumbUrl,String access_token)throws Exception{
-        Map<String,Object> map_content = new HashMap<>();
-        map_content.put("title","社区福利一分购");
-        map_content.put("description","点击参与社区一分钱抢购活动");
-        map_content.put("url",url);//跳转地址
-        map_content.put("thumb_url",thumbUrl);//图片地址
-        Map<String,Object> map = new HashMap<>();
-        map.put("touser",openid);
-        map.put("msgtype","link");
-        map.put("link",map_content);
+    public static String sendKfLinkMessage(String openid, String url, String thumbUrl, String access_token)
+        throws Exception {
+        Map<String, Object> map_content = new HashMap<>();
+        map_content.put("title", "社区福利一分购");
+        map_content.put("description", "点击参与社区一分钱抢购活动");
+        map_content.put("url", url);// 跳转地址
+        map_content.put("thumb_url", thumbUrl);// 图片地址
+        Map<String, Object> map = new HashMap<>();
+        map.put("touser", openid);
+        map.put("msgtype", "link");
+        map.put("link", map_content);
         String content = JSON.toJSONString(map);
-        return HttpClientUtil.httpPost(kf_url+"?access_token="+access_token,content);
+        return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content);
     }
 
-    public static String sendKfConetntMessage(String openid,String access_token)throws Exception{
-        Map<String,Object> map_content = new HashMap<>();
-        map_content.put("content","社区福利一分购");
-        Map<String,Object> map = new HashMap<>();
-        map.put("touser",openid);
-        map.put("msgtype","text");
-        map.put("text",map_content);
+    public static String sendKfConetntMessage(String openid, String access_token) throws Exception {
+        Map<String, Object> map_content = new HashMap<>();
+        map_content.put("content", "社区福利一分购");
+        Map<String, Object> map = new HashMap<>();
+        map.put("touser", openid);
+        map.put("msgtype", "text");
+        map.put("text", map_content);
         String content = JSON.toJSONString(map);
-        return HttpClientUtil.httpPost(kf_url+"?access_token="+access_token,content);
+        return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content);
     }
 
-    public static String sendKfImagesMessage(String openid,String access_token,String mediaId)throws Exception{
-        Map<String,Object> map_content = new HashMap<>();
-        map_content.put("media_id",mediaId);
-        Map<String,Object> map = new HashMap<>();
-        map.put("touser",openid);
-        map.put("msgtype","image");
-        map.put("image",map_content);
+    public static String sendKfImagesMessage(String openid, String access_token, String mediaId) throws Exception {
+        Map<String, Object> map_content = new HashMap<>();
+        map_content.put("media_id", mediaId);
+        Map<String, Object> map = new HashMap<>();
+        map.put("touser", openid);
+        map.put("msgtype", "image");
+        map.put("image", map_content);
         String content = JSON.toJSONString(map);
-        return HttpClientUtil.httpPost(kf_url+"?access_token="+access_token,content);
+        return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content);
     }
 
+    /**
+     * 订阅消息推送
+     * 
+     * @param accessToken
+     *            获取会话token
+     * @return 消息推送结果
+     */
+    static void sendSubscribe(String accessToken, WxSubscribeDTO subscribeDTO) throws Exception {
+        String resultString = HttpUtils.wxMessageModeSendUrl(accessToken, subscribeDTO);
+        JSONObject jsonResult = JSON.parseObject(resultString);
+        if (jsonResult != null) {
+            log.info("订阅消息推送返回参数" + jsonResult.toJSONString());
+            int errorCode = jsonResult.getIntValue("errcode");
+            String errorMessage = jsonResult.getString("errmsg");
+            if (errorCode == 0) {
+                log.info("订阅消息推送成功,openId:" + subscribeDTO.getTouser());
+            } else {
+                log.error(
+                    "订阅消息发送失败,错误码:" + errorCode + ",错误信息:" + errorMessage + "用户openid:" + subscribeDTO.getTouser());
+            }
+        }
+    }
+
+    /**
+     * 随手拍奖励到账订阅消息推送
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            随手拍活动标题
+     * @param amount
+     *            奖励金额
+     * @param remark
+     *            备注说明
+     */
+    public static void sendSubscribeJLDZ(String openId, String accessToken, String name, BigDecimal amount,
+        String remark,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("amount3", amount.toString()));// 奖励金额
+        paras.add(new TemplateParam("thing7", remark));// 备注说明
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("随手拍奖励到账订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 活动报名成功订阅消息推送
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param address
+     *            活动地址
+     * @param activityTime
+     *            活动时间
+     * @param signTime
+     *            报名时间
+     */
+    public static void sendSubscribeSQHD(String openId, String accessToken, String name, String address,
+        String activityTime, String signTime) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.BMCG_ID);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("thing2", address));// 活动地址
+        paras.add(new TemplateParam("date3", activityTime));// 活动时间
+        paras.add(new TemplateParam("time8", signTime));// 报名时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("活动报名成功订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 新问卷调查订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param questionnaireName
+     *            问卷名称
+     */
+    public static void sendSubscribeDYWJ(String openId, String accessToken, String name, String questionnaireName) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.DYWJ_ID);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("thing2", questionnaireName));// 问卷名称
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("新问卷调查订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 认证审核订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            认证内容
+     * @param applyTime
+     *            申请时间
+     * @param result
+     *            审核结果
+     */
+    public static void sendSubscribeRZSH(String openId, String accessToken, String name, String applyTime,
+        String result,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", name));// 认证内容
+        paras.add(new TemplateParam("phrase1", result));// 审核结果
+        paras.add(new TemplateParam("date3", applyTime));// 申请时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("认证审核订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 随手拍、邻里圈、微心愿、房源审核状态进度通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            审核项目
+     * @param applyTime
+     *            审核状态
+     * @param result
+     *            审核时间
+     */
+    public static void sendSubscribeSHZT(String openId, String accessToken, String name, String applyTime,
+        String result,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 审核项目
+        paras.add(new TemplateParam("phrase2", result));// 审核状态
+        paras.add(new TemplateParam("time3", applyTime));// 审核时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("审核状态订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 社区活动取消通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param time
+     *            活动时间
+     */
+    public static void sendSubscribeHDQX(String openId, String accessToken, String name, String time,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动标题
+        paras.add(new TemplateParam("date2", time));// 活动时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("活动取消订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 留言回复订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            回复人名称
+     * @param time
+     *            回复时间
+     * @param content
+     *            回复内容
+     */
+    public static void sendSubscribeLYHF(String openId, String accessToken, String name, String time, String content,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing3", content));// 回复内容
+        paras.add(new TemplateParam("name1", name));// 回复者
+        paras.add(new TemplateParam("date2", time));// 回复时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 活动变更订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param changeTime
+     *            活动时间变更
+     * @param changeAddress
+     *            活动地点变更
+     * @param time
+     *            活动时间
+     * @param address
+     *            活动地点
+     */
+    public static void sendSubscribeHDBG(String openId, String accessToken, String name, String changeTime,
+        String changeAddress, String time, String address,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("time2", changeTime));// 活动时间变更
+        paras.add(new TemplateParam("thing3", changeAddress));// 地址变更
+        paras.add(new TemplateParam("time5", time));// 活动时间
+        paras.add(new TemplateParam("thing6", address));// 活动地点
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 活动即将开始订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param time
+     *            活动时间
+     * @param address
+     *            活动地点
+     * @param num
+     *            活动参加人数
+     */
+    public static void sendSubscribeHDJJKS(String openId, String accessToken, String name, String time, String address,
+        String num,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("date2", time));// 活动时间
+        paras.add(new TemplateParam("number3", num));// 参与人数
+        paras.add(new TemplateParam("thing4", address));// 活动地点
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("活动即将开始订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 预约提醒订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     * @param result    预约结果
+     * @param title     预约主题
+     * @param name      预约人
+     * @param time      预约时间
+     */
+    public static void sendSubscribeYYTX(String openId, String accessToken, String result, String title, String name,String time,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase8",result));//预约结果
+        paras.add(new TemplateParam("thing23",title));//预约主题
+        paras.add(new TemplateParam("name5",name));//预约人
+        paras.add(new TemplateParam("date7",time));//预约时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("预约提醒订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 预约提醒订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendSubscribeTXTZ(String openId, String accessToken, String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("time2",DateUtils.getCurrentDateStr()));
+        paras.add(new TemplateParam("thing3","请尽快完善返攀报备,填报当前居住地。"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("预约提醒订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送危险人员订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     * @param dangerMember 风险人员
+     */
+    public static void sendSubscribeDanger(String openId, String accessToken, ComActAcidDangerMemberVO dangerMember, String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        Integer type = dangerMember.getType();
+        paras.add(new TemplateParam("thing2", (type == 1 ? "当前风险人员 " : "当前未填住址人员 ") + dangerMember.getName()));
+        paras.add(new TemplateParam("time3", DateUtils.getCurrentDateStr()));
+        paras.add(new TemplateParam("thing1","新冠疫情"));
+        paras.add(new TemplateParam("thing4", type == 1 ? "新增风险人员" : "新增未填住址人员"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("危险人员订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+
+    /**
+     * 推送危险人员订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     * @param fiveCount 统计数据
+     */
+    public static void sendSubscribeStatics(String openId, String accessToken, FiveCount fiveCount, String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("/packageB/pages/register/reportingStatistics/reportingStatistics");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", "报备总数"+fiveCount.getAllCount()+";"+"风险人员"+fiveCount.getDangerCount()));
+        paras.add(new TemplateParam("time3", DateUtils.getDateFormatString(DateUtils.addDay(new Date(),-1),"yyyy-MM-dd")+"0点到24点"));
+        paras.add(new TemplateParam("thing1","新冠疫情"));
+        paras.add(new TemplateParam("thing4", "社区报备数据统计"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("危险人员订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", "上门洗车"));
+        paras.add(new TemplateParam("thing4", phone));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", "上门洗车"));
+        paras.add(new TemplateParam("thing5", phone));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            log.info(subscribeDTO.toString());
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash3(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing9", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("phone_number10",StrUtil.isBlank(washerMobile) ? "0":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash3(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing9", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("phone_number10",StrUtil.isBlank(washerMobile) ? "0" :washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash4(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing4", status));
+        paras.add(new TemplateParam("thing3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing6",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash4(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing4", status));
+        paras.add(new TemplateParam("thing3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing6",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash6(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase14", status));
+        paras.add(new TemplateParam("name3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing5",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash6(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase14", status));
+        paras.add(new TemplateParam("name3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing5",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * 长期订阅模板消息推送
+     * @param openId
+     * @param accessToken
+     */
+    public static void sendLongTimeTemplate(String openId, String accessToken, String word,String content,String page) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("5f-xcy4lrWy_0kc5H4dj5bgBM-MwsvTwPApA-u3fqsQ");
+        subscribeDTO.setPage(page);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing3", word));
+        paras.add(new TemplateParam("thing6", content));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 商家开始配送后 订单配送通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendStartShipping(String openId, String accessToken, String orderNo){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("ezwzGs3R5DMuKxTyW8xOIQOIsLpW2sS61ZXsfyll7rw");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("character_string2", orderNo));
+        paras.add(new TemplateParam("phrase5", "配送中"));
+        paras.add(new TemplateParam("thing8","您的订单已开始配送"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("商家开始配送后订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 商家送达后 用取货通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendService(String openId, String accessToken, String pointName){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("6RGbNmRrmGNWyeK7UDodYTItNqEnIIdtlgyzeGLI2w8");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase3", "待收货"));
+        paras.add(new TemplateParam("thing7", "您有一个订单已到达自提点,请及时取货"));
+        paras.add(new TemplateParam("thing5",pointName));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("取货通知订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+    /**
+     * 推送 商家发货后 发货通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendDeliverGoodsNotice(String openId, String accessToken, String logisticsCompany , String logisticsNo, String orderNo,String deliverTime){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("PuE0cYU9xUW7Y6XpW-wqz4Hlj1w2mnI_LprsUByJnGg");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", "您有一个订单已发货"));
+        paras.add(new TemplateParam("thing3", logisticsCompany));
+        paras.add(new TemplateParam("character_string4",logisticsNo));
+        paras.add(new TemplateParam("character_string5",orderNo));
+        paras.add(new TemplateParam("time6",deliverTime));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("商家发货后订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 商家处理完退款申请后 订单退款通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendRefundNotice(String openId, String accessToken, String refundNo , String refundAmount, String result){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("GxFV_Oj1Pri4NnPkvKGPIPJsPryG8M6DW9mTHTbIrjE");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("character_string6", refundNo));
+        paras.add(new TemplateParam("amount9", refundAmount));
+        paras.add(new TemplateParam("phrase11",result));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("订单退款通知 订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 新订单提醒 商家收到一个新的订单
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendNewOrderNotice(String openId, String accessToken, String orderNo , String type, String goodsName,String amount,String orderTime){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("3EwAKLw2Xe2o-GDnH-NUGa4nNwqPXsn01hBX8Xp2PbU");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("character_string1", orderNo));
+        paras.add(new TemplateParam("thing5", type));
+        paras.add(new TemplateParam("thing3",goodsName));
+        paras.add(new TemplateParam("amount4",amount));
+        paras.add(new TemplateParam("time2",orderTime));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("新订单提醒 订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 退款申请通知 商家收到一个退款申请
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendNewRefundOrderNotice(String openId, String accessToken, String refundNo , String refundAmount,String orderTime){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("3EwAKLw2Xe2o-GDnH-NUGa4nNwqPXsn01hBX8Xp2PbU");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing5", "您有一个退款订单"));
+        paras.add(new TemplateParam("character_string2", refundNo));
+        paras.add(new TemplateParam("amount3",refundAmount));
+        paras.add(new TemplateParam("time4",orderTime));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("退款申请通知 订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+
+
+    public static void main(String[] args) {
+
+        WxXCXTempSend util = new WxXCXTempSend();
+        try {
+            // String openId = "oMIR-5S9rpsWAVUUrNKoVDQbn5Mw";//zj的openid
+            String openId = "oMIR-5dWyNyWCCKMl7-kYzvyHOjs";// lyq的openid
+            String accessToken = util.getAccessToken();
+            // sendSubscribeHDJJKS(openId,accessToken,"测试活动即将开始标题","2021-08-04 13:00:00","成都市","50");//活动即将开始
+            // sendSubscribeHDQX(openId,accessToken,"取消活动测试标题","2021-08-04 13:00:00");//活动取消
+            // sendSubscribeHDBG(openId,accessToken,"活动名称","2021-08-05","活动变更地址","2021-08-06","活动地址");//活动变更
+            // sendSubscribeRZSH(openId,accessToken,"用户认证审核通知","2021-08-04","通过");//认证审核
+            // sendSubscribeJLDZ(openId,accessToken,"随手拍活动DDD",BigDecimal.TEN,"用户参加随手拍活动奖励");//奖励到账
+            // sendSubscribeLYHF(openId,accessToken,"社区管理员","2021-08-04 11:26:20","勇敢牛牛 不怕困难!");//留言回复
+            // sendSubscribeSHZT(openId,accessToken,"随手拍审核!!","2021-08-04 11:20:00","通过了");//审核状态
+        } catch (Exception e) {
+            System.out.println("错误错误!!!");
+        }
+    }
+
+
 }

--
Gitblit v1.7.1