|
@@ -4,8 +4,13 @@ import cn.com.ty.lift.common.constants.WebSocketConstants;
|
|
|
import cn.com.ty.lift.common.model.PushMessage;
|
|
|
import cn.com.ty.lift.common.model.TimeyMessage;
|
|
|
import cn.com.ty.lift.common.utils.ValuePool;
|
|
|
+import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
|
|
|
+import cn.com.ty.lift.push.message.dao.entity.UserAccount;
|
|
|
+import cn.com.ty.lift.push.message.service.TimeMessageService;
|
|
|
+import cn.com.ty.lift.push.message.service.UserAccountService;
|
|
|
import cn.com.ty.lift.push.websocket.handler.TimeyMessageHandler;
|
|
|
import cn.com.ty.lift.push.websocket.service.TimeyMessageService;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.jms.annotation.JmsListener;
|
|
@@ -13,6 +18,7 @@ import org.springframework.jms.core.JmsMessagingTemplate;
|
|
|
import org.springframework.messaging.support.GenericMessage;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -30,6 +36,8 @@ public class PushConsumer {
|
|
|
private XingePush xingePush;
|
|
|
private JmsMessagingTemplate jmsMessagingTemplate;
|
|
|
private TimeyMessageService timeyMessageService;
|
|
|
+ private final UserAccountService userAccountService;
|
|
|
+ private final TimeMessageService timeMessageService;
|
|
|
|
|
|
private class Processor {
|
|
|
private String destination;
|
|
@@ -87,24 +95,32 @@ public class PushConsumer {
|
|
|
|
|
|
@JmsListener(destination = ValuePool.PUSH_QUEUE_ANDROID_TOKEN)
|
|
|
public void listenAndroidTokenQueue(PushMessage pushMessage) {
|
|
|
+ saveMessage(pushMessage);
|
|
|
+
|
|
|
log.info("listen {} receive message:{}", ValuePool.PUSH_QUEUE_ANDROID_TOKEN, pushMessage);
|
|
|
process(ValuePool.PUSH_QUEUE_ANDROID_TOKEN, pushMessage);
|
|
|
}
|
|
|
|
|
|
@JmsListener(destination = ValuePool.PUSH_QUEUE_ANDROID_ALL)
|
|
|
public void listenAndroidAllQueue(PushMessage pushMessage) {
|
|
|
+ saveMessage(pushMessage);
|
|
|
+
|
|
|
log.info("listen {} receive message:{}", ValuePool.PUSH_QUEUE_ANDROID_ALL, pushMessage);
|
|
|
process(ValuePool.PUSH_QUEUE_ANDROID_ALL, pushMessage);
|
|
|
}
|
|
|
|
|
|
@JmsListener(destination = ValuePool.PUSH_QUEUE_IOS_TOKEN)
|
|
|
public void listenIosTokenQueue(PushMessage pushMessage) {
|
|
|
+ saveMessage(pushMessage);
|
|
|
+
|
|
|
log.info("listen {} receive message:{}", ValuePool.PUSH_QUEUE_IOS_TOKEN, pushMessage);
|
|
|
process(ValuePool.PUSH_QUEUE_IOS_TOKEN, pushMessage);
|
|
|
}
|
|
|
|
|
|
@JmsListener(destination = ValuePool.PUSH_QUEUE_IOS_ALL)
|
|
|
public void listenIosAllQueue(PushMessage pushMessage) {
|
|
|
+ saveMessage(pushMessage);
|
|
|
+
|
|
|
log.info("listen {} receive message:{}", ValuePool.PUSH_QUEUE_IOS_ALL, pushMessage);
|
|
|
process(ValuePool.PUSH_QUEUE_IOS_ALL, pushMessage);
|
|
|
}
|
|
@@ -115,4 +131,38 @@ public class PushConsumer {
|
|
|
TimeyMessageHandler timeyMessageHandler = new TimeyMessageHandler(timeyMessageService);
|
|
|
timeyMessageHandler.saveAndPushMessageToUsers(timeyMessageList);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将推送消息存储到数据库
|
|
|
+ *
|
|
|
+ * @param pushMessage 要推送的消息
|
|
|
+ */
|
|
|
+ private void saveMessage(PushMessage pushMessage) {
|
|
|
+ List<String> toList = pushMessage.getToList();
|
|
|
+ List<UserAccount> userAccounts = userAccountService.list(Wrappers.<UserAccount>query().in("device_flag", toList));
|
|
|
+ List<TimeMessage> timeMessages = new ArrayList<>();
|
|
|
+ for (UserAccount userAccount : userAccounts) {
|
|
|
+ TimeMessage timeMessage = new TimeMessage();
|
|
|
+ timeMessage.setUserId(userAccount.getUserId());
|
|
|
+ timeMessage.setContent(pushMessage.getContent());
|
|
|
+ switch (pushMessage.getTitle()) {
|
|
|
+ case "团队消息":
|
|
|
+ timeMessage.setType(1);
|
|
|
+ break;
|
|
|
+ case "保养消息":
|
|
|
+ timeMessage.setType(2);
|
|
|
+ break;
|
|
|
+ case "急修消息":
|
|
|
+ timeMessage.setType(3);
|
|
|
+ break;
|
|
|
+ case "工作消息":
|
|
|
+ timeMessage.setType(4);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ timeMessage.setDeviceModel(userAccount.getDeviceModel());
|
|
|
+ timeMessage.setUserId(10000L);
|
|
|
+ timeMessage.setCreateTime(LocalDateTime.now());
|
|
|
+ }
|
|
|
+ timeMessageService.saveBatch(timeMessages);
|
|
|
+ }
|
|
|
}
|