浏览代码

分页查询历史优质视频

xueyiming 4 月之前
父节点
当前提交
0086ff2f15
共有 1 个文件被更改,包括 38 次插入18 次删除
  1. 38 18
      offline-module/src/main/java/com/tzld/piaoquan/offline/job/WeComMessageDataJob.java

+ 38 - 18
offline-module/src/main/java/com/tzld/piaoquan/offline/job/WeComMessageDataJob.java

@@ -80,26 +80,46 @@ public class WeComMessageDataJob {
 
     //初始化操作
     private void init(List<Long> staffIds) {
-        //历史优质视频获取
-        String sql = String.format("SELECT * FROM loghubods.history_good_video_can_push_user_list where dt = %s;",
-                DateUtil.getBeforeDayDateString());
-        List<Record> recordList = OdpsUtil.getOdpsData(sql);
-        if (CollectionUtils.isEmpty(recordList)) {
+        List<PushMessage> list = new ArrayList<>();
+        try {
+            //历史优质视频获取分页获取
+            String countSql = String.format("SELECT count(*) FROM loghubods.history_good_video_can_push_user_list where dt = %s;",
+                    DateUtil.getBeforeDayDateString());
+            List<Record> countData = OdpsUtil.getOdpsData(countSql);
+            int size = 10;
+            if (!CollectionUtils.isEmpty(countData)) {
+                int count = Integer.parseInt((String) countData.get(0).get(0));
+                if (count > 0) {
+                    List<Record> dataList = new ArrayList<>();
+                    for (int i = 0; i < count; i += 10) {
+                        String sql = String.format("SELECT * FROM loghubods.history_good_video_can_push_user_list where dt = %s order by score desc limit %s,%s;",
+                                DateUtil.getBeforeDayDateString(), i, size);
+                        List<Record> data = OdpsUtil.getOdpsData(sql);
+                        if (!CollectionUtils.isEmpty(data)) {
+                            dataList.addAll(data);
+                        }
+                    }
+                    for (Record record : dataList) {
+                        PushMessage pushMessage = new PushMessage();
+                        Long videoId = Long.parseLong((String) record.get(0));
+                        Set<Long> userIds = new HashSet<>(JSONObject.parseArray((String) record.get(1), Long.class));
+                        Long staffId = Long.parseLong((String) record.get(2));
+                        Double score = Double.parseDouble((String) record.get(3));
+                        pushMessage.setVideoId(videoId);
+                        pushMessage.setUserIds(userIds);
+                        pushMessage.setStaffId(staffId);
+                        pushMessage.setScore(score);
+                        list.add(pushMessage);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("history good video error", e);
+        }
+
+        if (CollectionUtils.isEmpty(list)) {
             LarkRobotUtil.sendMessage("历史优质视频为空");
         } else {
-            List<PushMessage> list = new ArrayList<>();
-            for (Record record : recordList) {
-                PushMessage pushMessage = new PushMessage();
-                Long videoId = Long.parseLong((String) record.get(0));
-                Set<Long> userIds = new HashSet<>(JSONObject.parseArray((String) record.get(1), Long.class));
-                Long staffId = Long.parseLong((String) record.get(2));
-                Double score = Double.parseDouble((String) record.get(3));
-                pushMessage.setVideoId(videoId);
-                pushMessage.setUserIds(userIds);
-                pushMessage.setStaffId(staffId);
-                pushMessage.setScore(score);
-                list.add(pushMessage);
-            }
             historicalTopMap = list.stream()
                     .collect(Collectors.groupingBy(PushMessage::getStaffId,
                             Collectors.mapping(pushMessage -> pushMessage,