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