小程序openid转公众号openid逻辑
This commit is contained in:
parent
1dd6bc0065
commit
3a5cd3b210
|
|
@ -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()));
|
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) {
|
} catch (Exception e) {
|
||||||
// 暂时不做任何操作。
|
// 暂时不做任何操作。
|
||||||
logger.error(e.getMessage(), e);
|
logger.error(e.getMessage(), e);
|
||||||
|
|
@ -453,7 +453,7 @@ public class OrderController extends BaseController {
|
||||||
paramsNew.put("thing14", acceptWorker.getName());
|
paramsNew.put("thing14", acceptWorker.getName());
|
||||||
// 预约时间
|
// 预约时间
|
||||||
paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", om.getExpectTimeStart()));
|
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) {
|
} catch (Exception e) {
|
||||||
logger.error(e.getMessage(), 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()));
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1050,7 +1050,7 @@ public class OrderDetailController extends BaseController {
|
||||||
// 服务区域
|
// 服务区域
|
||||||
paramsNew.put("thing4", om.getAddress());
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package com.ghy.web.controller.tool;
|
package com.ghy.web.controller.tool;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ghy.common.config.WxConfig;
|
import com.ghy.common.config.WxConfig;
|
||||||
import com.ghy.common.core.controller.BaseController;
|
import com.ghy.common.core.controller.BaseController;
|
||||||
|
|
@ -29,7 +31,9 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author clunt
|
* @author clunt
|
||||||
|
|
@ -196,9 +200,36 @@ public class WxController extends BaseController {
|
||||||
if(worker != null && StringUtils.isEmpty(worker.getWxOpenId())){
|
if(worker != null && StringUtils.isEmpty(worker.getWxOpenId())){
|
||||||
// 公众号token
|
// 公众号token
|
||||||
String wxToken = WechatMsgUtils.getToken();
|
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);
|
logger.info("公众号获取的用户列表集合:{}", wxUserOpenidList);
|
||||||
JSONObject wxOpenidJson = JSONObject.parseObject(wxUserOpenidList);
|
JSONObject wxOpenidJson = JSONObject.parseObject(wxUserOpenidList);
|
||||||
|
JSONObject openIdListJson = wxOpenidJson.getJSONObject("data");
|
||||||
|
List<String> 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 ; index<unionJsonArray.size(); index ++){
|
||||||
|
JSONObject json = unionJsonArray.getJSONObject(index);
|
||||||
|
if(json.getString("unionid").equals(unionId)){
|
||||||
|
Worker updateWorker = new Worker();
|
||||||
|
updateWorker.setWorkerId(worker.getWorkerId());
|
||||||
|
updateWorker.setWxOpenId(json.getString("openid"));
|
||||||
|
logger.info("关联后的worker信息:{}", worker);
|
||||||
|
workerService.updateWorker(updateWorker);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,11 @@
|
||||||
<artifactId>gson</artifactId>
|
<artifactId>gson</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-all</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.qiniu</groupId>
|
<groupId>com.qiniu</groupId>
|
||||||
<artifactId>qiniu-java-sdk</artifactId>
|
<artifactId>qiniu-java-sdk</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ public class WechatMsgUtils {
|
||||||
String sendMsgApi = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;
|
String sendMsgApi = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;
|
||||||
//整体参数map
|
//整体参数map
|
||||||
Map<String, Object> paramMap = new HashMap<String, Object>();
|
Map<String, Object> paramMap = new HashMap<String, Object>();
|
||||||
paramMap.put("touser", "oLvgx6KxLrIy7i_O0pd15wUl2tAI");
|
paramMap.put("touser", userOpenId);
|
||||||
paramMap.put("page", "index");
|
paramMap.put("page", "index");
|
||||||
switch (mesType) {
|
switch (mesType) {
|
||||||
case TEXT:
|
case TEXT:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<result property="phone" column="phone"/>
|
<result property="phone" column="phone"/>
|
||||||
<result property="openId" column="open_id"/>
|
<result property="openId" column="open_id"/>
|
||||||
<result property="unionId" column="union_id"/>
|
<result property="unionId" column="union_id"/>
|
||||||
<result property="wxUnionId" column="wx_open_id"/>
|
<result property="wxOpenId" column="wx_open_id"/>
|
||||||
<result property="alipayAccount" column="alipay_account"/>
|
<result property="alipayAccount" column="alipay_account"/>
|
||||||
<result property="alipayName" column="alipay_name"/>
|
<result property="alipayName" column="alipay_name"/>
|
||||||
<result property="password" column="password"/>
|
<result property="password" column="password"/>
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
<sql id="selectWorker">
|
<sql id="selectWorker">
|
||||||
SELECT
|
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.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,
|
w.remark, w.type, w.store_status, w.alipay_account, w.alipay_name,
|
||||||
sd.dept_name, sdc.banner_url
|
sd.dept_name, sdc.banner_url
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
|
|
||||||
<sql id="selectBasic">
|
<sql id="selectBasic">
|
||||||
SELECT
|
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.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
|
w.remark, w.type, w.store_status, w.alipay_account, w.alipay_name
|
||||||
FROM worker w
|
FROM worker w
|
||||||
|
|
@ -152,6 +152,7 @@
|
||||||
<set>
|
<set>
|
||||||
<if test="type != null"> type = #{type},</if>
|
<if test="type != null"> type = #{type},</if>
|
||||||
<if test="status != null"> status = #{status},</if>
|
<if test="status != null"> status = #{status},</if>
|
||||||
|
<if test="wxOpenId != null"> wx_open_id = #{wxOpenId},</if>
|
||||||
<if test="storeStatus != null"> store_status = #{storeStatus},</if>
|
<if test="storeStatus != null"> store_status = #{storeStatus},</if>
|
||||||
<if test="account != null and account != ''"> account = #{account},</if>
|
<if test="account != null and account != ''"> account = #{account},</if>
|
||||||
<if test="phone != null and phone != ''"> phone = #{phone},</if>
|
<if test="phone != null and phone != ''"> phone = #{phone},</if>
|
||||||
|
|
|
||||||
7
pom.xml
7
pom.xml
|
|
@ -40,6 +40,7 @@
|
||||||
<Adapay.version>1.2.10</Adapay.version>
|
<Adapay.version>1.2.10</Adapay.version>
|
||||||
<commons.codec.version>1.10</commons.codec.version>
|
<commons.codec.version>1.10</commons.codec.version>
|
||||||
<httpcomponents.version>4.5.13</httpcomponents.version>
|
<httpcomponents.version>4.5.13</httpcomponents.version>
|
||||||
|
<hutool.version>5.8.22</hutool.version>
|
||||||
<!-- 打包时跳过单元测试 -->
|
<!-- 打包时跳过单元测试 -->
|
||||||
<skipTests>true</skipTests>
|
<skipTests>true</skipTests>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
@ -66,6 +67,12 @@
|
||||||
<version>${qiniu.version}</version>
|
<version>${qiniu.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-all</artifactId>
|
||||||
|
<version>${hutool.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue