Browse Source

[消息组件][添加][添加微信小程序通知]

release_toaliyun_real
luozukai 7 years ago
parent
commit
1d8cb26e11
6 changed files with 46 additions and 7 deletions
  1. +16
    -1
      mallinkMQConsumer/src/main/java/com/iformall/controller/HomeController.java
  2. +15
    -5
      mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java
  3. +1
    -1
      mallinkMQConsumer/src/main/java/com/iformall/mq/impl/RocketMqConsumer.java
  4. +10
    -0
      mallinkService/src/main/java/com/iformall/domain/po/BaseMsg.java
  5. +1
    -0
      mallinkService/src/main/java/com/iformall/domain/po/SmartAppMsg.java
  6. +3
    -0
      mallinkService/src/main/java/com/iformall/mq/impl/RocketMqMessageProducer.java

+ 16
- 1
mallinkMQConsumer/src/main/java/com/iformall/controller/HomeController.java View File

@@ -39,7 +39,6 @@ public class HomeController {
@Value("${spring.mail.username}")
private String from;


@ApiOperation("获取后端版本号")
@GetMapping("/version")
public ResultData version() {
@@ -75,4 +74,20 @@ public class HomeController {
mqBaseProducer.sendMessage(wxMsgRecord, "topic-1", "tag-1", "key-1");
return new ResultData();
}

/**
* 重发
* @return
*/
@GetMapping("/resend")
public ResultData resend() {
MailMsg wxMsgRecord = new MailMsg();
wxMsgRecord.setMsgType(EnumMsgRecordType.EMAIL.getCode());
wxMsgRecord.setFrom(from);
wxMsgRecord.setTo(new String[]{"luozukai@iformall.com"});
wxMsgRecord.setSubject("回家吃饭了");
wxMsgRecord.setMsg("大熊熊");
mqBaseProducer.sendMessage(wxMsgRecord, "topic-1", "tag-1", "key-1");
return new ResultData();
}
}

+ 15
- 5
mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java View File

@@ -1,8 +1,7 @@
package com.iformall.mq;

import com.iformall.domain.po.*;
import com.iformall.enums.EnumMsgRecordStatus;
import com.iformall.enums.EnumMsgRecordType;
import com.iformall.enums.*;
import com.iformall.mapper.WxMsgRecordMapper;
import com.iformall.service.impl.SendCallBackSmsServiceImpl;
import com.iformall.service.impl.SendEmailServiceImpl;
@@ -30,6 +29,8 @@ public class MqBaseConsumer {
private SendEmailServiceImpl sendEmailService;
@Autowired
private SendSmartAppMsgServiceImpl sendSmartAppMsgService;
@Autowired
private MqBaseProducer mqBaseProducer;

public void doMessage(String message) {
log.info("received message: {}", message);
@@ -39,12 +40,16 @@ public class MqBaseConsumer {
baseMsg = (BaseMsg)JsonUtil.readValue(message,BaseMsg.class);

if(EnumMsgRecordType.SMS.getCode().equals(baseMsg.getMsgType())){
//短信
sendSmsService.send((WxMsgRecord)JsonUtil.readValue(message,WxMsgRecord.class));
}else if(EnumMsgRecordType.SMS_CALLBACK.getCode().equals(baseMsg.getMsgType())){
//业务短信
sendCallBackSmsService.send((WxMsg)JsonUtil.readValue(message,WxMsg.class));
}else if(EnumMsgRecordType.EMAIL.getCode().equals(baseMsg.getMsgType())){
//邮件
sendEmailService.send((MailMsg)JsonUtil.readValue(message,MailMsg.class));
}else if(EnumMsgRecordType.SMART_APP.getCode().equals(baseMsg.getMsgType())){
//微信小程序
sendSmartAppMsgService.send((SmartAppMsg)JsonUtil.readValue(message,SmartAppMsg.class));
}

@@ -52,9 +57,14 @@ public class MqBaseConsumer {
wxMsgRecordMapper.update(baseMsg);
}catch (Exception e){
if(null != baseMsg){
baseMsg.setStatusMessage(e.getMessage());
baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_FAIL.getCode());
wxMsgRecordMapper.update(baseMsg);
if(baseMsg.getDelayTimeLevel() < 3){
baseMsg.setDelayTimeLevel(3); //10s后重试
mqBaseProducer.sendMessage(baseMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}else{
baseMsg.setStatusMessage(e.getMessage());
baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_FAIL.getCode());
wxMsgRecordMapper.update(baseMsg);
}
}
}



+ 1
- 1
mallinkMQConsumer/src/main/java/com/iformall/mq/impl/RocketMqConsumer.java View File

@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Profile;

@Slf4j
@Profile(MQConfig.Impl.ROCKET_MQ)
@RocketMQListener(topic = "topic-1")
@RocketMQListener(topic = "topic-1",consumeThreadMax=100,consumeThreadMin = 20)
public class RocketMqConsumer extends MqBaseConsumer {

@RocketMQMessage(messageClass = String.class, tag = "tag-1")


+ 10
- 0
mallinkService/src/main/java/com/iformall/domain/po/BaseMsg.java View File

@@ -21,6 +21,16 @@ public class BaseMsg implements Serializable {
//结果信息
private String statusMessage;

//延迟消息1s,5s,10s,30s,1m,2m,3m,4m,5m,6m,7m,8m,9m,10m,20m,30m,1h,2h
private Integer delayTimeLevel = 0;

public Integer getDelayTimeLevel() {
return delayTimeLevel;
}

public void setDelayTimeLevel(Integer delayTimeLevel) {
this.delayTimeLevel = delayTimeLevel;
}

public String getStatusMessage() {
return statusMessage;


+ 1
- 0
mallinkService/src/main/java/com/iformall/domain/po/SmartAppMsg.java View File

@@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
import java.util.List;

/**
* 微信小程序消息
* @author luozukai
* @date 2019/3/7 10:05
*/


+ 3
- 0
mallinkService/src/main/java/com/iformall/mq/impl/RocketMqMessageProducer.java View File

@@ -64,6 +64,9 @@ public class RocketMqMessageProducer implements MqBaseProducer {
byte[] messageBody = JsonUtil.obj2Json(data).getBytes(RemotingHelper.DEFAULT_CHARSET);

Message mqMsg = new Message(topic, tags, keys, messageBody);
if(data.getDelayTimeLevel() > 0){
mqMsg.setDelayTimeLevel(data.getDelayTimeLevel());
}

producer.send(mqMsg, new SendCallback() {
@Override


Loading…
Cancel
Save