guoshilong
2023-08-15 6d32f3ba247c42c675bd09b1b7aa9a37c926f65e
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
@@ -36,7 +36,6 @@
   public Boolean pushMessageList(List<MessageRecord> messageRecordList) {
      // 加入测试人员
      addSendMsgTest(messageRecordList);
      PushVO pushVO = new PushVO();
      List<String> cIdList = new ArrayList<>();
      //相同的消息推送给多用户
      messageRecordList.forEach(messageRecord -> {
@@ -45,17 +44,24 @@
         cIdList.add(clientId);
      });
      //uni-push 一次推送最多500名用户,所以分批推送
      List<List<String>> groupList = groupListByQuantity(cIdList, 400);
      groupList.forEach(item->{
         PushVO pushVO = new PushVO();
      pushVO.setCIds(cIdList);
      pushVO.setTitle(messageRecordList.get(0).getTheme());
      pushVO.setContent(messageRecordList.get(0).getContent());
         pushVO.setCIds(cIdList);
         pushVO.setTitle(messageRecordList.get(0).getTheme());
         pushVO.setContent(messageRecordList.get(0).getContent());
      HashMap<String,Object> payload = new HashMap<>();
      payload.put("title",messageRecordList.get(0).getTheme());
      payload.put("content",messageRecordList.get(0).getContent());
      payload.put("payload","test");
      pushVO.setPayload(payload);
      return pushMessage(pushVO);
         HashMap<String,Object> payload = new HashMap<>();
         payload.put("title",messageRecordList.get(0).getTheme());
         payload.put("content",messageRecordList.get(0).getContent());
         payload.put("payload","test");
         pushVO.setPayload(payload);
          pushMessage(pushVO);
      });
      return true;
   }
   /**
@@ -164,9 +170,34 @@
      params.put("requestId", UUID.randomUUID());
      params.put("payload",pushVO.getPayload());
//      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;
   }
   /**
    * 对集合按指定数量进行分组
    * @param list 分组的集合
    * @param quantity 数量
    * @param <T>
    * @return
    */
   public  <T> List<List<T>> groupListByQuantity(List list, int quantity) {
      if (list == null || list.size() == 0) {
         return list;
      }
      if (quantity <= 0) {
         new IllegalArgumentException("Wrong quantity.");
      }
      List wrapList = new ArrayList();
      int count = 0;
      while (count < list.size()) {
         wrapList.add(list.subList(count, (count + quantity) > list.size() ? list.size() : count + quantity));
         count += quantity;
      }
      return wrapList;
   }
}