From 3a5cd3b2104a253ee266be0ab5b986886ed8fd03 Mon Sep 17 00:00:00 2001 From: "kuang.yife" Date: Mon, 9 Oct 2023 00:03:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8Fopenid=E8=BD=AC?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7openid=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/order/OrderController.java | 6 ++-- .../order/OrderDetailController.java | 2 +- .../ghy/web/controller/tool/WxController.java | 33 ++++++++++++++++++- ghy-common/pom.xml | 5 +++ .../com/ghy/common/utils/WechatMsgUtils.java | 2 +- .../resources/mapper/worker/WorkerMapper.xml | 7 ++-- pom.xml | 7 ++++ 7 files changed, 53 insertions(+), 9 deletions(-) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 5bd174ad..6092eb19 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -281,7 +281,7 @@ public class OrderController extends BaseController { // 预约时间 params.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", orderMaster.getExpectTimeStart())); // 消息推送 - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getOpenId(), WxMsgEnum.TEXT, params); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), WxMsgEnum.TEXT, params); } catch (Exception e) { // 暂时不做任何操作。 logger.error(e.getMessage(), e); @@ -453,7 +453,7 @@ public class OrderController extends BaseController { paramsNew.put("thing14", acceptWorker.getName()); // 预约时间 paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", om.getExpectTimeStart())); - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), acceptWorker.getOpenId(), WxMsgEnum.TEXT, paramsNew); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), acceptWorker.getWxOpenId(), WxMsgEnum.TEXT, paramsNew); } catch (Exception e) { logger.error(e.getMessage(), e); } @@ -557,7 +557,7 @@ public class OrderController extends BaseController { // 预约时间 paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", orderMaster.getExpectTimeStart())); // 消息推送 - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getOpenId(), WxMsgEnum.TEXT, paramsNew); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), WxMsgEnum.TEXT, paramsNew); } catch (Exception e) { e.printStackTrace(); } diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index eb31da6a..5fc520ac 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -1050,7 +1050,7 @@ public class OrderDetailController extends BaseController { // 服务区域 paramsNew.put("thing4", om.getAddress()); // 消息推送 - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getOpenId(), WxMsgEnum.TEXT, paramsNew); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), WxMsgEnum.TEXT, paramsNew); } catch (Exception e) { e.printStackTrace(); } diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java b/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java index ba7d0273..9a0312e3 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java @@ -1,5 +1,7 @@ package com.ghy.web.controller.tool; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ghy.common.config.WxConfig; import com.ghy.common.core.controller.BaseController; @@ -29,7 +31,9 @@ import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; /** * @author clunt @@ -196,9 +200,36 @@ public class WxController extends BaseController { if(worker != null && StringUtils.isEmpty(worker.getWxOpenId())){ // 公众号token String wxToken = WechatMsgUtils.getToken(); - String wxUserOpenidList = HttpUtils.sendGet("https://api.weixin.qq.com/cgi-bin/user/get?access_token="+wxToken+"&next_openid=NEXT_OPENID"); + String wxUserOpenidList = HttpUtils.sendGet("https://api.weixin.qq.com/cgi-bin/user/get?access_token="+wxToken+"&next_openid="); logger.info("公众号获取的用户列表集合:{}", wxUserOpenidList); JSONObject wxOpenidJson = JSONObject.parseObject(wxUserOpenidList); + JSONObject openIdListJson = wxOpenidJson.getJSONObject("data"); + List openidList = openIdListJson.getObject("openid", ArrayList.class); + JSONArray openidJsonArray = new JSONArray(); + openidList.forEach(model->{ + JSONObject openidJson = new JSONObject(); + openidJson.put("openid", model); + openidJson.put("lang", "zh_CN"); + openidJsonArray.add(openidJson); + }); + JSONObject jsonParam = new JSONObject(); + jsonParam.put("user_list", openidJsonArray); + String unionUrl = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token="+WechatMsgUtils.getToken();; + logger.info("调用获取用户信息,请求url:{}, 请求body:{}", unionUrl, jsonParam.toJSONString()); + String getUnionResult = HttpUtil.post(unionUrl, jsonParam.toJSONString()); + logger.info("获取公众号union列表:{}", getUnionResult); + JSONObject unionJson = JSONObject.parseObject(getUnionResult); + JSONArray unionJsonArray = unionJson.getJSONArray("user_info_list"); + for (int index = 0 ; indexgson + + cn.hutool + hutool-all + + com.qiniu qiniu-java-sdk diff --git a/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java b/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java index 40fbd149..0f8cf618 100644 --- a/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java +++ b/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java @@ -65,7 +65,7 @@ public class WechatMsgUtils { String sendMsgApi = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token; //整体参数map Map paramMap = new HashMap(); - paramMap.put("touser", "oLvgx6KxLrIy7i_O0pd15wUl2tAI"); + paramMap.put("touser", userOpenId); paramMap.put("page", "index"); switch (mesType) { case TEXT: diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml index 877c6fc7..b631a2d5 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml @@ -9,7 +9,7 @@ - + @@ -31,7 +31,7 @@ SELECT - w.worker_id, w.name, w.account, w.phone, w.password, w.open_id, w.dept_id, w.status, w.worker_logo_url, + w.worker_id, w.name, w.account, w.phone, w.password, w.open_id, w.wx_open_id, w.dept_id, w.status, w.worker_logo_url, w.leader_team_rate, w.leader_team_money, w.create_by, w.create_time, w.update_by, w.update_time, w.remark, w.type, w.store_status, w.alipay_account, w.alipay_name, sd.dept_name, sdc.banner_url @@ -42,7 +42,7 @@ SELECT - w.worker_id, w.name, w.account, w.phone, w.password, w.open_id, w.dept_id, w.status, w.worker_logo_url, + w.worker_id, w.name, w.account, w.phone, w.password, w.open_id, w.wx_open_id, w.dept_id, w.status, w.worker_logo_url, w.leader_team_rate, w.leader_team_money, w.create_by, w.create_time, w.update_by, w.update_time, w.remark, w.type, w.store_status, w.alipay_account, w.alipay_name FROM worker w @@ -152,6 +152,7 @@ type = #{type}, status = #{status}, + wx_open_id = #{wxOpenId}, store_status = #{storeStatus}, account = #{account}, phone = #{phone}, diff --git a/pom.xml b/pom.xml index c66fdf59..de2026c3 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,7 @@ 1.2.10 1.10 4.5.13 + 5.8.22 true @@ -66,6 +67,12 @@ ${qiniu.version} + + cn.hutool + hutool-all + ${hutool.version} + + org.projectlombok lombok