瀏覽代碼

公众号自动回复分视频数据同步

wangyunpeng 3 周之前
父節點
當前提交
f3f9ee7be7

+ 2 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ext/ContentPlatformDataStatMapperExt.java

@@ -120,4 +120,6 @@ public interface ContentPlatformDataStatMapperExt {
     void deleteGzhDatastatTotal(@Param("dt") String dt);
 
     void deleteFwhDatastatTotal(@Param("dt") String dt);
+
+    void deleteGzhVideoDatastat(@Param("dt") String dt);
 }

+ 21 - 17
api-module/src/main/java/com/tzld/piaoquan/api/job/ContentPlatformDatastatJob.java

@@ -134,38 +134,33 @@ public class ContentPlatformDatastatJob {
         if (StringUtils.hasText(param)) {
             dt = param;
         }
-        long count = getGzhDatastatCount(dt);
-        if (count > 0) {
-            return ReturnT.SUCCESS;
-        }
-        Long now = System.currentTimeMillis();
-        // 公众号自动回复数据统计
-        String sql = String.format(
-                "SELECT first_level.channel_shortname, first_level.subchannel, first_level.first_uv, fission.split_uv " +
-                "FROM loghubods.out_channel_mid_first_total first_level " +
-                "left join loghubods.out_channel_mid_split_total fission " +
-                "on first_level.channel_shortname = fission.channel_shortname and first_level.subchannel = fission.subchannel " +
-                "and first_level.dt = fission.dt and first_level.type = fission.type and first_level.tag = fission.tag " +
-                "WHERE first_level.dt = %s and first_level.type = '公众号即时回复' and first_level.tag = '分投放渠道客户分账号去重';", dt);
+        // 公众号自动回复分视频数据统计
+        String sql = String.format("SELECT ghid, video_id, video_title, first_uv, split0_uv " +
+                "FROM loghubods.auto_reply_per_video WHERE dt = %s;", dt);
         List<Record> dataList = OdpsUtil.getOdpsData(sql);
         // 所有公众号
         List<ContentPlatformGzhAccount> accountList = getAllGzhAccount();
         Map<String, ContentPlatformGzhAccount> accountMap = accountList.stream()
                 .collect(Collectors.toMap(ContentPlatformGzhAccount::getGhId, account -> account));
         List<String> ghIds = accountList.stream().map(ContentPlatformGzhAccount::getGhId).collect(Collectors.toList());
+        Long now = System.currentTimeMillis();
         if (CollectionUtils.isNotEmpty(dataList)) {
             List<ContentPlatformGzhVideoDataStat> saveList = new ArrayList<>();
             for (Record record : dataList) {
                 ContentPlatformGzhVideoDataStat item = new ContentPlatformGzhVideoDataStat();
-                String ghId = (String) record.get(1);
-                int firstLevelCount = Integer.parseInt((String) record.get(2));
-                Integer fissionCount = parseInteger(record.get(3));
+                String ghId = (String) record.get(0);
+                Long videoId = parseLong(record.get(1));
+                String title = (String) record.get(2);
+                int firstLevelCount = Integer.parseInt((String) record.get(3));
+                Integer fissionCount = parseInteger(record.get(4));
                 item.setDateStr(dt);
-                if (!ghIds.contains(ghId)) {
+                if (!ghIds.contains(ghId) || videoId == 0) {
                     continue;
                 }
                 ContentPlatformGzhAccount gzhAccount = accountMap.get(ghId);
                 item.setAccountId(gzhAccount.getId());
+                item.setVideoId(videoId);
+                item.setTitle(title);
                 item.setFirstLevelCount(firstLevelCount);
 
                 if (fissionCount > 0 && firstLevelCount > 0) {
@@ -177,6 +172,7 @@ public class ContentPlatformDatastatJob {
                 saveList.add(item);
             }
             if (CollectionUtils.isNotEmpty(saveList)) {
+                dataStatMapperExt.deleteGzhVideoDatastat(dt);
                 dataStatMapperExt.batchInsertGzhVideoDatastat(saveList);
             }
         }
@@ -824,6 +820,14 @@ public class ContentPlatformDatastatJob {
         }
     }
 
+    private Long parseLong(Object value) {
+        try {
+            return Long.parseLong((String) value);
+        } catch (NumberFormatException e) {
+            return 0L;
+        }
+    }
+
     private Double parseDouble(Object value) {
         try {
             return Double.parseDouble((String) value);

+ 4 - 0
api-module/src/main/resources/mapper/contentplatform/ext/ContentPlatformDataStatMapperExt.xml

@@ -337,4 +337,8 @@
         delete from content_platform_fwh_datastat_total where date_str = #{dt}
     </delete>
 
+    <delete id="deleteGzhVideoDatastat">
+        delete from content_platform_gzh_video_datastat where date_str = #{dt}
+    </delete>
+
 </mapper>