REQ-3284: 推送
This commit is contained in:
parent
919f94208c
commit
7000732ddb
@ -37,7 +37,7 @@ public class NimPushService {
|
||||
if (cfg.getPushChannel() != PushChannel.NIM) return null;
|
||||
PushData pushData = message.getPushData();
|
||||
if (pushData == null || !pushData.isSwitchOn()) return null;
|
||||
PushMessageContent content = new PushMessageContent();
|
||||
PushContent content = new PushContent();
|
||||
content.setTitle(message.getPushTitle());
|
||||
content.setContent(message.getContent());
|
||||
content.setCustomSoundFile(pushData.getVoiceFile());
|
||||
@ -50,7 +50,7 @@ public class NimPushService {
|
||||
return buildPayload(content);
|
||||
}
|
||||
|
||||
private void populateUrl(PushMessageContent content,
|
||||
private void populateUrl(PushContent content,
|
||||
UrlConfig url,
|
||||
AppTypeEnum appType) {
|
||||
if (url == null || appType == null) return;
|
||||
@ -81,7 +81,7 @@ public class NimPushService {
|
||||
});
|
||||
}
|
||||
|
||||
private JSONObject buildPayload(PushMessageContent content) {
|
||||
private JSONObject buildPayload(PushContent content) {
|
||||
JSONObject payload = new JSONObject();
|
||||
payload.put("pushTitle", content.getTitle());
|
||||
payload.put("random", System.currentTimeMillis());
|
||||
|
||||
@ -12,7 +12,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class PushMessageContent {
|
||||
public class PushContent {
|
||||
|
||||
/**
|
||||
* 主标题
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
|
||||
public class HWPushPayloadBuilder implements PushPayloadBuilder {
|
||||
|
||||
@Override
|
||||
public void build(PushMessageContent message, JSONObject payload) {
|
||||
public void build(PushContent content, JSONObject payload) {
|
||||
// 点击事件的内容
|
||||
JSONObject clickAction = new JSONObject();
|
||||
clickAction.put("type", 3);
|
||||
@ -28,12 +28,12 @@ public class HWPushPayloadBuilder implements PushPayloadBuilder {
|
||||
|
||||
hwField.put("androidConfig", androidConfig);
|
||||
hwField.put("style", 1);
|
||||
hwField.put("big_title", message.getTitle());
|
||||
hwField.put("big_body", message.getContent());
|
||||
if (message.hasAndroidPushUrl())
|
||||
hwField.put("big_title", content.getTitle());
|
||||
hwField.put("big_body", content.getContent());
|
||||
if (content.hasAndroidPushUrl())
|
||||
hwField.put("click_action", clickAction);
|
||||
if (message.hasCustomSoundFile())
|
||||
hwField.put("sound", message.getCustomSoundFile());
|
||||
if (content.hasCustomSoundFile())
|
||||
hwField.put("sound", content.getCustomSoundFile());
|
||||
|
||||
payload.put("hwField", hwField);
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
|
||||
public class MZPushPayloadBuilder implements PushPayloadBuilder {
|
||||
|
||||
@Override
|
||||
public void build(PushMessageContent message, JSONObject payload) {
|
||||
public void build(PushContent content, JSONObject payload) {
|
||||
// NOP
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.inside.notices.config.PushProps;
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -16,15 +16,15 @@ public class OppoPushPayloadBuilder implements PushPayloadBuilder {
|
||||
private final PushProps pushProps;
|
||||
|
||||
@Override
|
||||
public void build(PushMessageContent message, JSONObject payload) {
|
||||
public void build(PushContent content, JSONObject payload) {
|
||||
PushProps.ChannelConfig xmCfg = pushProps.getOppoChannelConfig();
|
||||
JSONObject oppoField = new JSONObject();
|
||||
oppoField.put("style", 1);
|
||||
oppoField.put("network_type", 0);
|
||||
oppoField.put("channel_id", message.determineChannelId(xmCfg));
|
||||
if (message.hasAndroidPushUrl()) {
|
||||
oppoField.put("channel_id", content.determineChannelId(xmCfg));
|
||||
if (content.hasAndroidPushUrl()) {
|
||||
oppoField.put("click_action_type", 2);
|
||||
oppoField.put("click_action_url", message.getAndroidPushUrl());
|
||||
oppoField.put("click_action_url", content.getAndroidPushUrl());
|
||||
}
|
||||
|
||||
payload.put("oppoField", oppoField);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -13,21 +13,21 @@ import org.springframework.stereotype.Component;
|
||||
public class PGPushPayloadBuilder implements PushPayloadBuilder {
|
||||
|
||||
@Override
|
||||
public void build(PushMessageContent message, JSONObject payload) {
|
||||
public void build(PushContent content, JSONObject payload) {
|
||||
JSONObject userInfo = new JSONObject();
|
||||
// router为自定义的字段
|
||||
userInfo.put("router", message.getIosPushUrl());
|
||||
userInfo.put("router", content.getIosPushUrl());
|
||||
|
||||
JSONObject alert = new JSONObject();
|
||||
alert.put("title", message.getTitle());
|
||||
alert.put("body", message.getContent());
|
||||
if (message.hasIosPushUrl())
|
||||
alert.put("title", content.getTitle());
|
||||
alert.put("body", content.getContent());
|
||||
if (content.hasIosPushUrl())
|
||||
alert.put("userInfo", userInfo);
|
||||
|
||||
JSONObject apsField = new JSONObject();
|
||||
apsField.put("alert", alert);
|
||||
if (message.hasCustomSoundFile())
|
||||
apsField.put("sound", message.getCustomSoundFile());
|
||||
if (content.hasCustomSoundFile())
|
||||
apsField.put("sound", content.getCustomSoundFile());
|
||||
|
||||
payload.put("apsField", apsField);
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
/**
|
||||
@ -13,6 +13,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||
*/
|
||||
public interface PushPayloadBuilder {
|
||||
|
||||
void build(PushMessageContent message, JSONObject payload);
|
||||
void build(PushContent content, JSONObject payload);
|
||||
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -13,18 +13,18 @@ import org.springframework.stereotype.Component;
|
||||
public class RYPushPayloadBuilder implements PushPayloadBuilder {
|
||||
|
||||
@Override
|
||||
public void build(PushMessageContent message, JSONObject payload) {
|
||||
public void build(PushContent content, JSONObject payload) {
|
||||
// 点击事件的内容
|
||||
JSONObject clickAction = new JSONObject();
|
||||
clickAction.put("type", 1);
|
||||
//clickAction.put("intent", message.getAndroidPushUrl());
|
||||
clickAction.put("url", message.getAndroidPushUrl());
|
||||
clickAction.put("url", content.getAndroidPushUrl());
|
||||
|
||||
// 通知的内容
|
||||
JSONObject notification = new JSONObject();
|
||||
notification.put("title", message.getTitle());
|
||||
notification.put("body", message.getContent());
|
||||
if (message.hasAndroidPushUrl())
|
||||
notification.put("title", content.getTitle());
|
||||
notification.put("body", content.getContent());
|
||||
if (content.hasAndroidPushUrl())
|
||||
notification.put("clickAction", clickAction);
|
||||
|
||||
JSONObject honorField = new JSONObject();
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import cn.axzo.msg.center.nimpush.PushMessageTye;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -17,14 +17,14 @@ public class VivoPushPayloadBuilder implements PushPayloadBuilder {
|
||||
* 没找到自定义声音相关的字段
|
||||
*/
|
||||
@Override
|
||||
public void build(PushMessageContent message, JSONObject payload) {
|
||||
public void build(PushContent content, JSONObject payload) {
|
||||
JSONObject vivoField = new JSONObject();
|
||||
vivoField.put("content", message.getContent());
|
||||
vivoField.put("content", content.getContent());
|
||||
vivoField.put("classification",
|
||||
message.getMessageTye() == PushMessageTye.OP ? "0" : "1");
|
||||
if (message.hasAndroidPushUrl()) {
|
||||
content.getMessageTye() == PushMessageTye.OP ? "0" : "1");
|
||||
if (content.hasAndroidPushUrl()) {
|
||||
vivoField.put("skipType", "3");
|
||||
vivoField.put("skipContent", message.getAndroidPushUrl());
|
||||
vivoField.put("skipContent", content.getAndroidPushUrl());
|
||||
}
|
||||
|
||||
payload.put("vivoField", vivoField);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.msg.center.nimpush.payload;
|
||||
|
||||
import cn.axzo.msg.center.inside.notices.config.PushProps;
|
||||
import cn.axzo.msg.center.nimpush.PushMessageContent;
|
||||
import cn.axzo.msg.center.nimpush.PushContent;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -18,14 +18,14 @@ public class XMPushPayloadBuilder implements PushPayloadBuilder {
|
||||
private final PushProps pushProps;
|
||||
|
||||
@Override
|
||||
public void build(PushMessageContent message, JSONObject payload) {
|
||||
public void build(PushContent content, JSONObject payload) {
|
||||
PushProps.ChannelConfig xmCfg = pushProps.getXiaomiChannelConfig();
|
||||
payload.put("channel_id", message.determineChannelId(xmCfg));
|
||||
if (message.hasCustomSoundFile())
|
||||
payload.put("sound", message.getCustomSoundFile());
|
||||
if (message.hasAndroidPushUrl()) {
|
||||
payload.put("channel_id", content.determineChannelId(xmCfg));
|
||||
if (content.hasCustomSoundFile())
|
||||
payload.put("sound", content.getCustomSoundFile());
|
||||
if (content.hasAndroidPushUrl()) {
|
||||
//payload.put("intent_uri", message.getAndroidPushUrl());
|
||||
payload.put("web_uri", message.getAndroidPushUrl());
|
||||
payload.put("web_uri", content.getAndroidPushUrl());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user