From 202c08e4c835e4fa00452577d954025045f7961e Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期三, 04 八月 2021 17:29:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into txb

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java |  268 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 268 insertions(+), 0 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..0a33353 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,7 +1,12 @@
 package com.panzhihua.common.utlis;
 
+import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.WxSubscribeConstants;
+import com.panzhihua.common.model.dtos.wx.TemplateParam;
+import com.panzhihua.common.model.dtos.wx.WxSubscribeDTO;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
@@ -10,11 +15,15 @@
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import java.io.*;
+import java.math.BigDecimal;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
+@Slf4j
 public class WxUtil {
 
     //客服消息推送地址
@@ -56,4 +65,263 @@
         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){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.JLFF_ID);
+        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){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.EZSH_ID);
+        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){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.SHZT_ID);
+        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){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.HDQX_ID);
+        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){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.LYHF_ID);
+        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){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.HDBG_ID);
+        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){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.HDJJKS_ID);
+        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());
+        }
+    }
+
+    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.getAppAccessToken();
+//            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