guoshilong
2023-08-15 6d32f3ba247c42c675bd09b1b7aa9a37c926f65e
uni-push分组
1 files modified
53 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java 53 ●●●● patch | view | raw | blame | history
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;
    }
}