REQ-3284: 推送

This commit is contained in:
yanglin 2024-11-21 15:00:22 +08:00
parent 919f94208c
commit 7000732ddb
10 changed files with 47 additions and 47 deletions

View File

@ -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());

View File

@ -12,7 +12,7 @@ import org.apache.commons.lang3.StringUtils;
*/
@Setter
@Getter
public class PushMessageContent {
public class PushContent {
/**
* 主标题

View File

@ -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);
}

View File

@ -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
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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();

View File

@ -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);

View File

@ -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());
}
}