|
@@ -24,11 +24,12 @@ public class PushMessage implements Serializable {
|
|
|
|
|
|
private static final long serialVersionUID = 4125096758372084309L;
|
|
|
|
|
|
- private String title;
|
|
|
- private String content;
|
|
|
+ private String title;
|
|
|
+ private String content;
|
|
|
+ private Hashtable<Long,Integer> users = new Hashtable<>();
|
|
|
private List<String> toList = new ArrayList<>();
|
|
|
//the count of try again. Increase 1 for each failure, maximum times 100
|
|
|
- private int tryCount = 0;
|
|
|
+ private int tryCount = 0;
|
|
|
|
|
|
private PushMessage() {
|
|
|
}
|
|
@@ -38,7 +39,7 @@ public class PushMessage implements Serializable {
|
|
|
this.content = content;
|
|
|
}
|
|
|
|
|
|
- public PushMessage add(String to){
|
|
|
+ public PushMessage add(String to) {
|
|
|
this.toList.add(to);
|
|
|
return this;
|
|
|
}
|
|
@@ -538,7 +539,7 @@ public class PushMessage implements Serializable {
|
|
|
*/
|
|
|
public boolean sendTokenOnPlatform(JmsMessagingTemplate jmsMessagingTemplate, List<PushUserInfo> pushUserInfos) {
|
|
|
try {
|
|
|
- if(IterUtil.isEmpty(pushUserInfos)){
|
|
|
+ if (IterUtil.isEmpty(pushUserInfos)) {
|
|
|
return false;
|
|
|
}
|
|
|
Set<String> toAndroid = new HashSet<>();
|
|
@@ -552,6 +553,7 @@ public class PushMessage implements Serializable {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ resetUsers(pushUserInfos);
|
|
|
if (IterUtil.isNotEmpty(toAndroid)) {
|
|
|
this.setToList(new ArrayList<>(toAndroid));
|
|
|
jmsMessagingTemplate.send(ValuePool.PUSH_QUEUE_ANDROID_TOKEN, new GenericMessage<>(this));
|
|
@@ -573,9 +575,13 @@ public class PushMessage implements Serializable {
|
|
|
*/
|
|
|
public boolean sendTokenOnPlatform(JmsMessagingTemplate jmsMessagingTemplate, PushUserInfo pushUserInfo) {
|
|
|
try {
|
|
|
- if (Objects.isNull(pushUserInfo) || !pushUserInfo.available()) {
|
|
|
+ if (Objects.isNull(pushUserInfo)) {
|
|
|
return false;
|
|
|
}
|
|
|
+ if (!pushUserInfo.available()) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ resetUsers(pushUserInfo);
|
|
|
this.add(pushUserInfo.getDeviceFlag());
|
|
|
if (pushUserInfo.isAndroid()) {
|
|
|
jmsMessagingTemplate.send(ValuePool.PUSH_QUEUE_ANDROID_TOKEN, new GenericMessage<>(this));
|
|
@@ -595,6 +601,7 @@ public class PushMessage implements Serializable {
|
|
|
* 同时推送android和ios全平台
|
|
|
*/
|
|
|
public boolean sendAllOnPlatform(JmsMessagingTemplate jmsMessagingTemplate) {
|
|
|
+ users.clear();
|
|
|
try {
|
|
|
jmsMessagingTemplate.send(ValuePool.PUSH_QUEUE_ANDROID_ALL, new GenericMessage<>(this));
|
|
|
jmsMessagingTemplate.send(ValuePool.PUSH_QUEUE_IOS_ALL, new GenericMessage<>(this));
|
|
@@ -604,4 +611,21 @@ public class PushMessage implements Serializable {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将用户id和设备类型传到消息中间件中,方便消息中心功能来保存
|
|
|
+ * @param pushUserInfos 用户信息列表
|
|
|
+ */
|
|
|
+ private void resetUsers(List<PushUserInfo> pushUserInfos) {
|
|
|
+ users.clear();
|
|
|
+ pushUserInfos.forEach(pushUserInfo -> users.put(pushUserInfo.getUserId(),pushUserInfo.getDeviceModel()));
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 将用户id和设备类型传到消息中间件中,方便消息中心功能来保存
|
|
|
+ * @param pushUserInfo 用户信息列表
|
|
|
+ */
|
|
|
+ private void resetUsers(PushUserInfo pushUserInfo) {
|
|
|
+ users.clear();
|
|
|
+ users.put(pushUserInfo.getUserId(),pushUserInfo.getDeviceModel());
|
|
|
+ }
|
|
|
}
|