|
@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
+import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
|
|
|
import cn.newfeifan.mall.module.member.service.user.MemberUserService;
|
|
|
import cn.newfeifan.mall.module.system.dal.dataobject.config.SystemConfigDO;
|
|
|
import cn.newfeifan.mall.module.system.dal.dataobject.wechatmsgtemplate.WechatMsgTemplateDO;
|
|
@@ -85,7 +86,7 @@ public class WcChatMessageUtils {
|
|
|
stringRedisTemplate.opsForValue().set(WX_TICK_KEY_APPID, accessToken, expireTime, java.util.concurrent.TimeUnit.SECONDS);
|
|
|
}
|
|
|
|
|
|
- log.info("===========Access_token:{}",accessToken);
|
|
|
+ log.info("===========Access_token:{}", accessToken);
|
|
|
|
|
|
return accessToken;
|
|
|
}
|
|
@@ -93,31 +94,10 @@ public class WcChatMessageUtils {
|
|
|
/**
|
|
|
* 发送微信消息
|
|
|
*
|
|
|
- * @param userId 接口消息的用户id
|
|
|
- * @param data 模板参数
|
|
|
- * @param wechatMsgTemplateId 自定义的消息模板id
|
|
|
+ * @param userId 接口消息的用户id
|
|
|
+ * @param data 模板参数
|
|
|
*/
|
|
|
- private void sendWxgMessage(Long userId, JsonObject data, String wechatMsgTemplateId, Long systemUserId, Long memberUserId, Long objectId) {
|
|
|
-
|
|
|
- // 组装消息内容
|
|
|
- String userOpenId = null;
|
|
|
- if (wechatMsgTemplateId.equals(WcChatMessageTemplateIdEnum.AFTER_SALE_NO_CHECK2.getTemplateId()) ||
|
|
|
- wechatMsgTemplateId.equals(WcChatMessageTemplateIdEnum.ORDER_NO_DELIVERY2.getTemplateId())) {
|
|
|
- //如果该用户没有该消息的权限,则不发送消息
|
|
|
- if (!isHavePermission(systemUserId, wechatMsgTemplateId)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- userOpenId = getOpenIdBySysTemUserId(systemUserId);
|
|
|
- memberUserId = memberUserService.getUserIdBySystemUserId(systemUserId);
|
|
|
- } else {
|
|
|
- userOpenId = getOpenId(userId);
|
|
|
- }
|
|
|
-
|
|
|
- //如果用户没有绑定微信,则不发送消息
|
|
|
- if (userOpenId == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
+ private void sendWxgMessage(Long userId, JsonObject data, String wechatMsgTemplateId, Long systemUserId, Long memberUserId, Long objectId, String userOpenId) {
|
|
|
String templateId = getTemplateId(wechatMsgTemplateId).getWechatMsgTemplateId(); // 模板id
|
|
|
String url = getDoMain(wechatMsgTemplateId, objectId); // 跳转路径(小程序之外)
|
|
|
String client_msg_id = UUID.randomUUID().toString(); // 防重入id
|
|
@@ -185,10 +165,9 @@ public class WcChatMessageUtils {
|
|
|
* @param templateId 自定义消息模板id
|
|
|
* @param params 消息参数
|
|
|
* @param systemUserId 系统用户id
|
|
|
- * @param memberUserId 会员用户id
|
|
|
* @param objectId 对象id
|
|
|
*/
|
|
|
- public void sendWcChatMessage(Long userId, String templateId, List<String> params, Long systemUserId, Long memberUserId, Long objectId) {
|
|
|
+ public void sendWcChatMessage(Long userId, String templateId, List<String> params, Long systemUserId, Long objectId) {
|
|
|
WechatMsgTemplateDO template = getTemplateId(templateId);
|
|
|
String messageTemplateParameters = template.getMessageTemplateParameters();
|
|
|
|
|
@@ -202,8 +181,26 @@ public class WcChatMessageUtils {
|
|
|
List<String> dataParams = Arrays.asList(parts);
|
|
|
JsonObject templateData = getTemplateData(dataParams, params);
|
|
|
|
|
|
- // 发送微信消息
|
|
|
- sendWxgMessage(userId, templateData, templateId, systemUserId, memberUserId, objectId);
|
|
|
+ // 组装消息内容
|
|
|
+ String userOpenId;
|
|
|
+ // 判断系统用户是否有接收消息的权限
|
|
|
+ if (!isHavePermission(systemUserId, templateId)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取系统用户绑定的会员用户集
|
|
|
+ List<MemberUserDO> memberUserDOS = getMemberUserBySystemUserId(systemUserId);
|
|
|
+ for (MemberUserDO memberUserDO : memberUserDOS) {
|
|
|
+ userOpenId = getOpenId(memberUserDO.getId());
|
|
|
+
|
|
|
+ //如果用户没有绑定微信,则不发送消息
|
|
|
+ if (userOpenId == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 发送微信消息
|
|
|
+ sendWxgMessage(userId, templateData, templateId, systemUserId, memberUserDO.getId(), objectId, userOpenId);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -262,11 +259,7 @@ public class WcChatMessageUtils {
|
|
|
return socialUserService.getOpenIdByUserId(userId);
|
|
|
}
|
|
|
|
|
|
- private String getOpenIdBySysTemUserId(Long systemUserId) {
|
|
|
- Long memberUserId = memberUserService.getUserIdBySystemUserId(systemUserId);
|
|
|
- if (memberUserId == null) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- return getOpenId(memberUserId);
|
|
|
+ private List<MemberUserDO> getMemberUserBySystemUserId(Long systemUserId) {
|
|
|
+ return memberUserService.getUserListBySystemUserId(systemUserId);
|
|
|
}
|
|
|
}
|