Ver código fonte

AIGC创编 fix推广链拉取 IAP仅上传近7天剧目

zhaotx 1 ano atrás
pai
commit
5d0552a981

+ 3 - 3
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceProductUpdateMapper.xml

@@ -41,9 +41,9 @@
     <select id="getIAPVideoList" resultType="com.alibaba.fastjson.JSONObject">
         select third.album_id, third.platform_type, detail.platform_config, video.id as video_id, detail.id as video_detail_id, video.name as name, video.cover_img as img,ifnull(category.name, '其他') as 'theme', video.play_platform,
         '天津星链视界信息技术有限公司' as copyright_owner, '其他' as playlet_gender, video.update_sort as playlet_num, '2' as playlet_duration,
-        payinfo.sort as start_pay_playlet, '5' as membership_types, '1' as has_paid_content, '2' as has_motivation_types,
+        payinfo.sort as start_pay_playlet, '5' as membership_types, '2' as has_motivation_types,
         payinfo.maxpay as max_charge, payinfo.minpay as min_charge, maxpay as recommended_charge, maxpay as price,
-        2 as has_paid_content, 1 as has_motivation_content
+         1 as has_motivation_content
         FROM (select video_id, album_id, 1 as platform_type from thirtpart.ly_third_videos where submission_status=2 and platform=2
         and video_id in (select video_id from thirtpart.ly_video_audit_records where audit_status=2)
         union select ly_video_id as video_id, album_id, 2 as platform_type from deepthink.bytedance_upload_album where can_promotion=1
@@ -53,7 +53,7 @@
         LEFT JOIN thirtpart.ly_video_category category ON video.category_id = category.id
         LEFT JOIN (select video_id, min(sort) as sort, max(pay_amount/100.0) as maxpay, min(pay_amount/100.0) as minpay from thirtpart.ly_video_details where is_pay=1 group by video_id) payinfo ON video.id = payinfo.video_id
         where (video.is_free = 1 or (payinfo.sort is not null and maxpay>0))
-        and video.source=1
+        and video.source=1 and video.created_at > unix_timestamp(date_sub(now(), interval 7 day))
     </select>
     <select id="getIAAVideoList" resultType="com.alibaba.fastjson.JSONObject">
         select third.album_id, third.platform_type, detail.platform_config, video.id as video_id, detail.id as video_detail_id, video.name as name, video.cover_img as img,ifnull(category.name, '其他') as 'theme', video.play_platform,

+ 25 - 5
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceProductUpdateServiceImpl.java

@@ -455,7 +455,7 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
      * @return map key: album_id, value: 对应的字节小程序推广链接,sslocal开头
      */
     private Map<String, String> getBytedancePlayletPromoteLink(String advertiserId, String accessToken, String instanceId, List<JSONObject> requests, Set<String> errorBlanket){
-        JSONArray playletDetailInfo = getPlayletDetail(advertiserId, accessToken, instanceId, errorBlanket);
+        JSONArray playletDetailInfo = getPlayletDetail(advertiserId, accessToken, instanceId, errorBlanket,1);
         if (playletDetailInfo == null || playletDetailInfo.isEmpty()){
             return null;
         }
@@ -524,7 +524,7 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
                     continue;
                 }else {
                     String instanceid = jsonObject.getJSONObject("data").getString("instance_id");
-                    JSONArray newPlayletDetailInfo = getPlayletDetail(advertiserId, accessToken, instanceid, errorBlanket);
+                    JSONArray newPlayletDetailInfo = getPlayletDetail(advertiserId, accessToken, instanceid, errorBlanket,1);
                     if (newPlayletDetailInfo == null || newPlayletDetailInfo.isEmpty()){
                         continue;
                     }
@@ -542,7 +542,19 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
 
     }
 
-    private JSONArray getPlayletDetail(String advertiserId, String accessToken, String instanceId, Set<String> errorBlanket) {
+    /**
+     * 获取字节小程序中的推广链接
+     * @param advertiserId
+     * @param accessToken
+     * @param instanceId
+     * @param errorBlanket
+     * @param pageNum 从外部调用填1
+     * @return
+     */
+    private JSONArray getPlayletDetail(String advertiserId, String accessToken, String instanceId, Set<String> errorBlanket, Integer pageNum) {
+        if (pageNum >50){
+            return new JSONArray();
+        }
         String getPlayletDetailUrl = "https://api.oceanengine.com/open_api/v3.0/tools/asset_link/list/";
         getPlayletDetailUrl = getPlayletDetailUrl.replace("${ADVERTISER_ID}", advertiserId);
         getPlayletDetailUrl = getPlayletDetailUrl.replace("${INSTANCE_ID}", instanceId);
@@ -550,7 +562,7 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
         headers.put("Access-Token", accessToken);
         Map<String, Object> params = new HashMap<>();
         params.put("advertiser_id", advertiserId);
-        params.put("page", "1");
+        params.put("page", String.valueOf(pageNum));
         params.put("page_size", "100");
         params.put("filtering", "{\"instance_id\":" + instanceId + "}");
         String res = HttpUtils.httpGet(getPlayletDetailUrl, params, headers);
@@ -565,7 +577,15 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
                 System.out.println("获取字节小程序推广链接失败,code: " + code + ", msg: " + jsonObject.getString("message"));
                 return null;
             }else {
-                return jsonObject.getJSONObject("data").getJSONArray("list");
+                JSONArray list = jsonObject.getJSONObject("data").getJSONArray("list");
+                JSONObject page_info = jsonObject.getJSONObject("data").getJSONObject("page_info");
+                int total_page = page_info.getIntValue("total_page");
+                if (total_page > pageNum){
+                    //递归获取下一页
+                    JSONArray nextPage = getPlayletDetail(advertiserId, accessToken, instanceId, errorBlanket, pageNum + 1);
+                    list.addAll(nextPage);
+                }
+                return list;
             }
         }