xieb
2023-10-19 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
@@ -15,6 +15,7 @@
import org.springframework.web.client.RestTemplate;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
@Service
@AllArgsConstructor
@@ -35,37 +36,34 @@
   @Override
   public Boolean pushMessageList(List<MessageRecord> messageRecordList) {
      // 加入测试人员
      addSendMsgTest(messageRecordList);
//      addSendMsgTest(messageRecordList);
      List<String> cIdList = new ArrayList<>();
      AtomicReference<Boolean> push = new AtomicReference<>(false);
      //相同的消息推送给多用户
      messageRecordList.forEach(messageRecord -> {
         //获取用户cId
         String clientId = getClientIdByUserId(messageRecord.getRecipient());
         cIdList.add(clientId);
         if (null!=clientId && !clientId.equals("")) {
            cIdList.add(clientId);
            PushVO pushVO = new PushVO();
            pushVO.setCIds(cIdList);
            pushVO.setTitle(messageRecord.getTheme());
            pushVO.setContent(messageRecord.getContent());
            HashMap<String, Object> payload = new HashMap<>();
            payload.put("title",messageRecord.getTheme());
            payload.put("content", messageRecord.getContent());
            payload.put("payload", "test");
            pushVO.setPayload(payload);
            push.set(pushMessage(pushVO));
         }
      });
      //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());
         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;
      return push.get();
   }
   /**
    * 新增测试信息
    *
    * @param messageRecordList
    */
   private void addSendMsgTest(List<MessageRecord> messageRecordList) {
@@ -120,10 +118,10 @@
      cIdList.add(clientIdByUserId);
      pushVO.setCIds(cIdList);
      HashMap<String,Object> payload = new HashMap<>();
      payload.put("title",pushVO.getTitle());
      payload.put("content",pushVO.getContent());
      payload.put("payload","test");
      HashMap<String, Object> payload = new HashMap<>();
      payload.put("title", pushVO.getTitle());
      payload.put("content", pushVO.getContent());
      payload.put("payload", "test");
      pushVO.setPayload(payload);
@@ -136,6 +134,32 @@
      cIdList.add(getClientIdByUserId(pushVO.getUserId()));
//      return geTuiUtils.pushMsg(cIdList, pushVO.getTitle(), pushVO.getContent());
      return geTuiUtils.myPushMessage(cIdList, pushVO.getTitle(), pushVO.getContent());
   }
   @Override
   public Boolean pushMessageByUserList(PushVO pushVO) {
      if (Func.isEmpty(pushVO.getUserId())) {
         throw new ServiceException("请填写用户id!");
      }
      //获取userIdList
      List<String> userIdList = Arrays.asList(pushVO.getUserId().split(","));
      List<MessageRecord> messageRecordList = new ArrayList<>();
      userIdList.forEach(userId->{
         MessageRecord messageRecord = new MessageRecord();
         messageRecord.setContent(pushVO.getContent());
         messageRecord.setTheme(pushVO.getTitle());
         messageRecord.setRecipient(userId);
         messageRecordList.add(messageRecord);
      });
      Boolean aBoolean = pushMessageList(messageRecordList);
      return aBoolean;
   }
   /**
@@ -169,7 +193,7 @@
      params.put("requestId", UUID.randomUUID());
      params.put("payload",pushVO.getPayload());
      params.put("payload", pushVO.getPayload());
      UniCloudReturnRes uniCloudReturnRes = template.postForObject(UNI_CLOUD_PUSH_URL, params, UniCloudReturnRes.class);
      return uniCloudReturnRes.getErrCode().equals("0") ? true : false;
@@ -177,12 +201,13 @@
   /**
    * 对集合按指定数量进行分组
    * @param list 分组的集合
    *
    * @param list     分组的集合
    * @param quantity 数量
    * @param <T>
    * @return
    */
   public  <T> List<List<T>> groupListByQuantity(List list, int quantity) {
   public <T> List<List<T>> groupListByQuantity(List list, int quantity) {
      if (list == null || list.size() == 0) {
         return list;
      }