Browse Source

订阅消息

release_toaliyun_real
xhxu 5 years ago
parent
commit
d01fa6a0de
7 changed files with 48 additions and 17 deletions
  1. +2
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgRecordController.java
  2. +2
    -1
      mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java
  3. +2
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java
  4. +4
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  5. +2
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java
  6. +34
    -10
      mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java
  7. +2
    -1
      mallinkSysAdmin/src/main/java/com/iformall/controller/msg/WxMsgRecordController.java

+ 2
- 1
mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgRecordController.java View File

@@ -90,7 +90,8 @@ public class WxMsgRecordController extends BaseController {
wxMsg.setReceiver(wxMsgRecord.getReceiver());
wxMsg.updateTenantInfo(tenantEntity);
mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}else if(EnumMsgRecordType.SMART_APP.getCode().equals(wxMsgRecord.getMsgType())){
// }else if(EnumMsgRecordType.SMART_APP.getCode().equals(wxMsgRecord.getMsgType())){
}else if(EnumMsgRecordType.SMART_APP_TO.getCode().equals(wxMsgRecord.getMsgType())){
//微信小程序
SmartAppMsg wxMsg = (SmartAppMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),SmartAppMsg.class);
wxMsg.setMsgType(wxMsgRecord.getMsgType());


+ 2
- 1
mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java View File

@@ -67,7 +67,8 @@ public class MqBaseConsumer {
//邮件
MailMsg msg = (MailMsg)JsonUtil.readValue(message,MailMsg.class);
sendEmailService.send(msg);
} else if(EnumMsgRecordType.SMART_APP.getCode().equals(baseMsg.getMsgType())){
// } else if(EnumMsgRecordType.SMART_APP.getCode().equals(baseMsg.getMsgType())){
} else if(EnumMsgRecordType.SMART_APP_TO.getCode().equals(baseMsg.getMsgType())){
//微信小程序-模板消息
SmartAppMsg msg = (SmartAppMsg)JsonUtil.readValue(message,SmartAppMsg.class);
sendSmartAppMsgService.send(msg);


+ 2
- 1
mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java View File

@@ -7,7 +7,8 @@ public enum EnumMsgRecordType {
SMS(1, "短信"),
SMS_CALLBACK(2, "业务短信"),
EMAIL(3, "邮件"),
SMART_APP(4, "小程序"),
SMART_APP(4, "小程序"),//模板消息作废
SMART_APP_TO(44, "小程序"),//订阅消息
PUBLIC(5, "公众号"),
SYSTEM(6, "系统通知"),
SMART_APP_UNIFORM(7, "小程序统一消息"),


+ 4
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java View File

@@ -954,7 +954,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
* 温馨提示 {{keyword7.DATA}}
*/
smartAppMsg = new SmartAppMsg();
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
// smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode());
smartAppMsg.setAppId(user.getAppId());
smartAppMsg.updateTenantInfo(couponOrder);
smartAppMsg.setTemplateType(EnumTemplateType.VERIFY_SUCCESS.getCode());
@@ -989,7 +990,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
* 备注 {{keyword4.DATA}}
*/
smartAppMsg = new SmartAppMsg();
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
// smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode());
smartAppMsg.setAppId(user.getAppId());
smartAppMsg.updateTenantInfo(couponOrder);
smartAppMsg.setTemplateType(EnumTemplateType.VERIFY_FAIL.getCode());


+ 2
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java View File

@@ -226,7 +226,8 @@ public class WxOrderPressServiceImpl implements WxOrderPressService {
System.out.println(calendar.get(Calendar.DATE));// 加1之后的日期Top
System.out.println();
smartAppMsg = new SmartAppMsg();
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
// smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode());
smartAppMsg.setAppId(user.getAppId());
smartAppMsg.setTenantId(user.getTenantId());
smartAppMsg.setTemplateType(EnumTemplateType.PRESS_SUCCESS.getCode());


+ 34
- 10
mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java View File

@@ -1,8 +1,10 @@
package com.iformall.service.msg.impl;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -50,7 +52,8 @@ public class SendSmartAppMsgServiceImpl implements MsgSendService {
TenantEntity tenantEntity = smartAppMsg.getTenantInfo();

WxTemplateMsg msg = null;
WxMaTemplateMessage templateMessage;
WxMaSubscribeMessage subscribeMessage;
// WxMaTemplateMessage templateMessage;

WxMaService wxMaService = null;
if(isFmOpen) {
@@ -79,24 +82,45 @@ public class SendSmartAppMsgServiceImpl implements MsgSendService {
String emphasis = customParam.getString("emphasis");

// build template data list
List<WxMaTemplateData> dataTempList = new ArrayList<>();
List<String> dataList = smartAppMsg.getDataList();
JSONArray indexArr = customParam.getJSONArray("index");

List<WxMaSubscribeMessage.Data> dataTempList = new ArrayList<>();
for(int i=0;i<indexArr.size();i++) {
String key = indexArr.getString(i);
String value = customParam.getString(key);
value = value.replace("{"+key+"}", dataList.get(i));
WxMaTemplateData templateData = new WxMaTemplateData(key, value);
String value = dataList.get(i);
WxMaSubscribeMessage.Data templateData = new WxMaSubscribeMessage.Data(key, value);
dataTempList.add(templateData);
}
templateMessage = WxMaTemplateMessage.builder()

// List<WxMaTemplateData> dataTempList = new ArrayList<>();
// for(int i=0;i<indexArr.size();i++) {
// String key = indexArr.getString(i);
// String value = customParam.getString(key);
// value = value.replace("{"+key+"}", dataList.get(i));
// WxMaTemplateData templateData = new WxMaTemplateData(key, value);
// dataTempList.add(templateData);
// }

// templateMessage = WxMaTemplateMessage.builder()
// .toUser(smartAppMsg.getTo())
// .formId(smartAppMsg.getFormId()) // 微信支付的formId是prepayId
// .page(smartAppMsg.getGotopage())
// .data(dataTempList)
// .templateId(msg.getTemplateId())
// .emphasisKeyword(emphasis)
// .build();
// wxMaService.getMsgService().sendTemplateMsg(templateMessage);

subscribeMessage = WxMaSubscribeMessage.builder()
.templateId(msg.getTemplateId())
.toUser(smartAppMsg.getTo())
.formId(smartAppMsg.getFormId()) // 微信支付的formId是prepayId
.lang(WxMaConstants.MiniprogramLang.ZH_CN)
.miniprogramState(WxMaConstants.MiniprogramState.FORMAL)
.page(smartAppMsg.getGotopage())
.data(dataTempList)
.templateId(msg.getTemplateId())
.emphasisKeyword(emphasis)
.build();
wxMaService.getMsgService().sendTemplateMsg(templateMessage);

wxMaService.getMsgService().sendSubscribeMsg(subscribeMessage);
}
}

+ 2
- 1
mallinkSysAdmin/src/main/java/com/iformall/controller/msg/WxMsgRecordController.java View File

@@ -88,7 +88,8 @@ public class WxMsgRecordController extends BaseController {
wxMsg.setReceiver(wxMsgRecord.getReceiver());
wxMsg.setTenantId(wxMsgRecord.getTenantId());
mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}else if(EnumMsgRecordType.SMART_APP.getCode().equals(wxMsgRecord.getMsgType())){
// }else if(EnumMsgRecordType.SMART_APP.getCode().equals(wxMsgRecord.getMsgType())){
}else if(EnumMsgRecordType.SMART_APP_TO.getCode().equals(wxMsgRecord.getMsgType())){
//微信小程序
SmartAppMsg wxMsg = (SmartAppMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),SmartAppMsg.class);
wxMsg.setMsgType(wxMsgRecord.getMsgType());


Loading…
Cancel
Save