Просмотр исходного кода

商品库-兼容小程序广告账户和商品库广告账户分开

zhaotx 1 год назад
Родитель
Сommit
192bd16318

+ 2 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/AigcProductPlatform.java

@@ -27,5 +27,7 @@ public class AigcProductPlatform {
     private Integer source;//短剧来源:1-自投;2-穿山甲,3-爱奇艺
     private String accessToken;//商品库主账户access_token
 
+    private String miniAppAdvertiserId;//小程序主账户ID
+
 
 }

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

@@ -19,7 +19,7 @@ public interface BytedanceProductUpdateMapper {
     List<AigcProductAlbum> getIAAVideoList();
     List<JSONObject> getIAAProductTypeEnums();
 
-    int updateInstanceId(@Param("advertiserId") String advertiserId, @Param("instanceId") String instanceId);
+    int updateInstanceId(@Param("advertiserId") String advertiserId, @Param("instanceId") String instanceId, @Param("source") Integer source);
 
     JSONObject getVideoInfo(@Param("videoId") Long videoId);
     List<JSONObject> getVideoDetail(@Param("videoId") Long videoId);

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

@@ -10,7 +10,7 @@
     <update id="updateInstanceId">
         update deepthink.bytedance_product_main_advertiser
         set mini_instance_id = #{instanceId}
-        where advertiser_id = #{advertiserId} and source=3
+        where advertiser_id = #{advertiserId} and source=#{source}
     </update>
     <update id="updateAlbumInfo">
         update deepthink.bytedance_upload_album
@@ -25,28 +25,28 @@
 
 
     <select id="getIAPPlatformList" resultType="cn.com.ctop.job.bytedance.data.entity.AigcProductPlatform">
-        select t1.*, t3.access_token
+        select t1.platform_id, t1.advertiser_id, t1.type, t1.platform_type, t1.platform_name, t1.mini_instance_id, t1.update_time, t1.create_time, t1.mi_appid, t1.membership_types, t1.max_charge, t1.min_charge, t1.recommended_charge, t1.single_price, t1._status, t1.social_credit_code, t1.movie_auth_status, t1.is_bytedance, t1.is_wechat, t1.is_dys, t1.source, ifnull(t1.mini_app_advertiser_id,t1.advertiser_id) as mini_app_advertiser_id, t3.access_token
         FROM deepthink.bytedance_product_main_advertiser t1
-        left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
-        left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
+                 left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
+                 left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
         where t1.`type`=2 and t1.`_status`=0 and platform_type=1 and t1.mini_instance_id is not null
     </select>
     <select id="getIAPPlatformInitList" resultType="cn.com.ctop.job.bytedance.data.entity.AigcProductPlatform">
-        select t1.*, t3.access_token
+        select t1.platform_id, t1.advertiser_id, t1.type, t1.platform_type, t1.platform_name, t1.mini_instance_id, t1.update_time, t1.create_time, t1.mi_appid, t1.membership_types, t1.max_charge, t1.min_charge, t1.recommended_charge, t1.single_price, t1._status, t1.social_credit_code, t1.movie_auth_status, t1.is_bytedance, t1.is_wechat, t1.is_dys, t1.source, ifnull(t1.mini_app_advertiser_id,t1.advertiser_id) as mini_app_advertiser_id, t3.access_token
         FROM deepthink.bytedance_product_main_advertiser t1
         left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
         left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
         where t1.`type`=2 and t1.`_status`=0 and platform_type=1
     </select>
     <select id="getIAAPlatformList" resultType="cn.com.ctop.job.bytedance.data.entity.AigcProductPlatform">
-        select t1.*, t3.access_token
+        select t1.platform_id, t1.advertiser_id, t1.type, t1.platform_type, t1.platform_name, t1.mini_instance_id, t1.update_time, t1.create_time, t1.mi_appid, t1.membership_types, t1.max_charge, t1.min_charge, t1.recommended_charge, t1.single_price, t1._status, t1.social_credit_code, t1.movie_auth_status, t1.is_bytedance, t1.is_wechat, t1.is_dys, t1.source, ifnull(t1.mini_app_advertiser_id,t1.advertiser_id) as mini_app_advertiser_id, t3.access_token
         FROM deepthink.bytedance_product_main_advertiser t1
         left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
         left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
         where t1.`type`=1 and t1.`_status`=0 and platform_type=1 and t1.mini_instance_id is not null
     </select>
     <select id="getIAAPlatformInitList" resultType="cn.com.ctop.job.bytedance.data.entity.AigcProductPlatform">
-        select t1.*, t3.access_token
+        select t1.platform_id, t1.advertiser_id, t1.type, t1.platform_type, t1.platform_name, t1.mini_instance_id, t1.update_time, t1.create_time, t1.mi_appid, t1.membership_types, t1.max_charge, t1.min_charge, t1.recommended_charge, t1.single_price, t1._status, t1.social_credit_code, t1.movie_auth_status, t1.is_bytedance, t1.is_wechat, t1.is_dys, t1.source, ifnull(t1.mini_app_advertiser_id,t1.advertiser_id) as mini_app_advertiser_id, t3.access_token
         FROM deepthink.bytedance_product_main_advertiser t1
         left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
         left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id

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

@@ -56,24 +56,24 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
 
 
 
-        log.info("免费商品库更新中...");
-        List<AigcProductPlatform> iaaPlatformList = bytedanceProductUpdateMapper.getIAAPlatformList(); //商品库列表
-        List<AigcProductAlbum> iaaVideoList = bytedanceProductUpdateMapper.getIAAVideoList(); //剧目列表
-        List<JSONObject> iaaProductTypeEnums = bytedanceProductUpdateMapper.getIAAProductTypeEnums(); //商品类型
-        Map<String, JSONObject> iaaProductTypeMap = iaaProductTypeEnums.stream().collect(Collectors.toMap(
-                obj -> obj.getString("third_type_name"),
-                obj -> obj,
-                (existing, replacement) -> replacement
-        ));
-        runProductTask(iaaPlatformList, iaaVideoList, iaaProductTypeMap, errors, BusinessType.IAA);
-        log.info("免费商品库更新完成");
-
-
+//        log.info("免费商品库更新中...");
+//        List<AigcProductPlatform> iaaPlatformList = bytedanceProductUpdateMapper.getIAAPlatformList(); //商品库列表
+//        List<AigcProductAlbum> iaaVideoList = bytedanceProductUpdateMapper.getIAAVideoList(); //剧目列表
+//        List<JSONObject> iaaProductTypeEnums = bytedanceProductUpdateMapper.getIAAProductTypeEnums(); //商品类型
+//        Map<String, JSONObject> iaaProductTypeMap = iaaProductTypeEnums.stream().collect(Collectors.toMap(
+//                obj -> obj.getString("third_type_name"),
+//                obj -> obj,
+//                (existing, replacement) -> replacement
+//        ));
+//        runProductTask(iaaPlatformList, iaaVideoList, iaaProductTypeMap, errors, BusinessType.IAA);
+//        log.info("免费商品库更新完成");
+
+
+        errors.removeIf(s -> s.contains("剧目不可用"));
         if (!Check.isNull(errors)){
             List<String> info = new ArrayList<>();
             info.add("商品上传报错通知");
             info.addAll(errors);
-            info.removeIf(s -> s.contains("剧目不可用"));
             FeishuRobotUtil.sendTextToWebhook(StringUtils.join(info, "\n"), HOOK_URL);
         }
     }
@@ -93,7 +93,7 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
             }
             //获取未上传剧目的推广链接
             List<AigcProductAlbum> douyinUploadList = toUpload.stream().filter(o -> Objects.equals(o.getPlatformType(), "1")).collect(Collectors.toList());
-            Map<String, String> albumIdToLinkMap = getBytedancePlayletPromoteLink(platform.getAdvertiserId(), platform.getAccessToken(), platform.getMiniInstanceId(), douyinUploadList, errors);
+            Map<String, String> albumIdToLinkMap = getBytedancePlayletPromoteLink(platform.getMiniAppAdvertiserId(), platform.getAccessToken(), platform.getMiniInstanceId(), douyinUploadList, errors);
             //未上传剧目:对比平台类型;确定商品分类;获取推广链接
             for (AigcProductAlbum album : toUpload){
                 if (!Objects.equals(album.getPlatformType(), String.valueOf(platform.getPlatformType()))){
@@ -254,12 +254,11 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
                 continue;
             }
             String createLinkUrl = "https://api.oceanengine.com/open_api/v3.0/tools/micro_app/create/";
-            String advertiser_id = obj.getAdvertiserId();
             String access_token = obj.getAccessToken();
             Map<String, String> headers = new HashMap<>();
             headers.put("Access-Token", access_token);
             JSONObject requestBody = new JSONObject();
-            requestBody.put("advertiser_id", Long.parseLong(advertiser_id));
+            requestBody.put("advertiser_id", Long.parseLong(obj.getMiniAppAdvertiserId()));
             requestBody.put("app_id", obj.getMiAppid());
             requestBody.put("remark", "商品库管理用");
             requestBody.put("tag_info", "1050107001");
@@ -272,18 +271,18 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
 
             String res = HttpUtils.httpPostRequest(createLinkUrl, requestBody, headers);
             if (res == null || res.isEmpty()){
-                System.out.println("创建字节小程序失败,advertiser_id:"+advertiser_id);
+                System.out.println("创建字节小程序失败,advertiser_id:"+obj.getMiniAppAdvertiserId());
             }else {
                 JSONObject jsonObject = JSONObject.parseObject(res);
                 System.out.println("创建字节小程序响应: " + jsonObject.toJSONString());
                 int code = jsonObject.getIntValue("code");
                 if (code != 0) {
-                    System.out.println("创建字节小程序失败,advertiser_id: "+advertiser_id+",code: " + code + ", msg: " + jsonObject.getString("message"));
+                    System.out.println("创建字节小程序失败,advertiser_id: "+obj.getMiniAppAdvertiserId()+",code: " + code + ", msg: " + jsonObject.getString("message"));
                 }else {
                     String instanceId = jsonObject.getJSONObject("data").getString("instance_id");
                     //更新表
-                    bytedanceProductUpdateMapper.updateInstanceId(advertiser_id, instanceId);
-                    System.out.println("创建字节小程序成功,广告主ID: " + advertiser_id + ", 实例ID: " + instanceId);
+                    bytedanceProductUpdateMapper.updateInstanceId(obj.getAdvertiserId(), instanceId, obj.getSource());
+                    System.out.println("创建字节小程序成功,广告主ID: " + obj.getMiniAppAdvertiserId() + ", 实例ID: " + instanceId);
                 }
             }
         }