From 6aa1ef804ab91c4d9d6b069fb22f8f0ca81e13c7 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 18 Jul 2023 15:12:20 +0800
Subject: [PATCH] push添加测试接口
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java | 95 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 89 insertions(+), 6 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
index 650ddf0..98a150c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
@@ -3,12 +3,18 @@
import cn.gistack.alerts.push.service.IPushService;
import cn.gistack.alerts.push.vo.PushVO;
import cn.gistack.alerts.push.vo.UniCloudReturnRes;
+import cn.gistack.sm.message.entity.MessageRecord;
+import cn.gistack.sm.message.feign.IMessageClient;
import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
+import java.util.ArrayList;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
@Service
@@ -18,6 +24,7 @@
private static final String UNI_CLOUD_PUSH_URL = "https://fc-mp-ad1ed7e3-700e-4fca-abae-0d097cc222b5.next.bspapp.com/push";
private BladeRedis bladeRedis;
+ private IMessageClient messageClient;
@Override
public Boolean saveCId(String userId,String cId) {
@@ -26,16 +33,92 @@
}
@Override
- public UniCloudReturnRes pushMessage(PushVO pushVO) {
+ public Boolean pushMessageList(List<MessageRecord> messageRecordList) {
+ PushVO pushVO = new PushVO();
+ List<String> cIdList = new ArrayList<>();
+ //相同的消息推送给多用户
+ messageRecordList.forEach(messageRecord -> {
+ //获取用户cId
+ String clientId = getClientIdByUserId(messageRecord.getRecipient());
+ cIdList.add(clientId);
+ });
+ pushVO.setCIds(cIdList);
+ pushVO.setTitle(messageRecordList.get(0).getTheme());
+ pushVO.setContent(messageRecordList.get(0).getContent());
+
+ return pushMessage(pushVO);
+ }
+
+ @Override
+ public Boolean clearCId(String userId) {
+ Boolean del = bladeRedis.del(PUSH_CLIENT_ID + userId);
+ return del;
+ }
+
+ @Override
+ public Boolean pushMessageOnLaunch(String userId) {
+ //获取未读的消息列表
+ List<MessageRecord> notReadList = messageClient.getNotReadList(userId);
+
+ PushVO pushVO = new PushVO();
+ List<String> cIdList = new ArrayList<>();
+
+ //设置cId
+ cIdList.add(getClientIdByUserId(userId));
+ pushVO.setCIds(cIdList);
+ //设置标题和内容
+ notReadList.forEach(messageRecord -> {
+ pushVO.setTitle(messageRecord.getTheme());
+ pushVO.setContent(messageRecord.getContent());
+ //推送消息
+ pushMessage(pushVO);
+ });
+
+ return true;
+ }
+
+ @Override
+ public Boolean pushMessageByUserId(PushVO pushVO) {
+
+ if (Func.isEmpty(pushVO.getUserId())){
+ throw new ServiceException("请填写用户id!");
+ }
+
+ String clientIdByUserId = getClientIdByUserId(pushVO.getUserId());
+ List<String> cIdList = new ArrayList<>();
+ cIdList.add(clientIdByUserId);
+ pushVO.setCIds(cIdList);
+
+ return pushMessage(pushVO);
+ }
+
+ /**
+ * 根据用户id从redis中获取cid
+ * @param userId
+ * @return
+ */
+ public String getClientIdByUserId(String userId){
+ return bladeRedis.get(PUSH_CLIENT_ID+userId);
+ }
+
+ /**
+ * 消息推送
+ * @param pushVO
+ * @return
+ */
+ public Boolean pushMessage(PushVO pushVO){
RestTemplate template = new RestTemplate();
Map<String, Object> params = new LinkedHashMap<>();
- Object o = bladeRedis.get(PUSH_CLIENT_ID + pushVO.getUserId());
-
- params.put("push_clientid",bladeRedis.get(PUSH_CLIENT_ID + pushVO.getUserId()));
+ //用户cId,可数组,可字符串
+ params.put("push_clientid",pushVO.getCIds());
+ //标题
params.put("title",pushVO.getTitle());
+ //内容
params.put("content",pushVO.getContent());
- UniCloudReturnRes uniCloudReturnRes = template.postForObject(UNI_CLOUD_PUSH_URL, params, UniCloudReturnRes.class);
- return uniCloudReturnRes;
+// UniCloudReturnRes uniCloudReturnRes = template.getForObject(UNI_CLOUD_PUSH_URL,UniCloudReturnRes.class,params);
+ UniCloudReturnRes uniCloudReturnRes = template.postForObject(UNI_CLOUD_PUSH_URL,params,UniCloudReturnRes.class);
+ return uniCloudReturnRes.getErrCode().equals(0)?true:false;
+
}
}
--
Gitblit v1.9.3