yumeng пре 1 месец
родитељ
комит
87b8563a21

+ 6 - 20
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java

@@ -2,17 +2,7 @@ package cn.com.ctop.job.bytedance.controller;
 
 import cn.com.ctop.job.bytedance.data.constant.CtopAdConstant;
 import cn.com.ctop.job.bytedance.data.entity.OauthToken;
-import cn.com.ctop.job.bytedance.data.service.IByteDanceAdvertiserDataService;
-import cn.com.ctop.job.bytedance.data.service.IByteDanceHourlyAccountWarningService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceCampaignReportDailyService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceCampaignReportHourlyService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceCreativeReportDailyService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceCreativeReportHourlyService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceFileVideoGetService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceFundService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceMaterialReportDailyService;
-import cn.com.ctop.job.bytedance.data.service.IBytedanceProjectService;
-import cn.com.ctop.job.bytedance.data.service.IOauthTokenService;
+import cn.com.ctop.job.bytedance.data.service.*;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.DateUtils;
 import com.alibaba.fastjson.JSONArray;
@@ -51,20 +41,16 @@ public class BytedanceController {
 
     @Autowired
     private IBytedanceFileVideoGetService fileVideoService;
+    @Autowired
+    private IBytedanceReportNewService bytedanceReportNewService;
 
 
-    @ApiOperation(value = "根据账户获取视频素材-账户/素材id 下全部视频素材", notes = "根据账户获取视频素材-账户/素材id 下全部视频素材")
     @PostMapping(value = "/getBytedanceVideoByAccountId")
     public Map<String, String> getBytedanceVideoByAccountId(@RequestBody JSONObject jsonObject) {
-        Long accountId = jsonObject.getLong("accountId");
-        JSONArray dataList = jsonObject.getJSONArray("materialIds");
-        List<Long> materialIds = Check.isNull(dataList) ? null : JSONArray.parseObject(dataList.toJSONString(), List.class);
-
+        Long accountId = 1839154028649483L;
         String token = tokenService.getByAccountId(accountId);
-        OauthToken oauthToken = new OauthToken();
-        oauthToken.setAccessToken(token);
-        oauthToken.setAccountId(accountId);
-        return fileVideoService.getBytedanceVideoByAccountId(oauthToken, materialIds, 1, 100);
+        bytedanceReportNewService.getAdvertiserDailyReport(accountId, token, "2025-08-30", "2025-08-30", 1);
+        return null;
     }
 
     @GetMapping(value = "/testC")

+ 13 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/AccountReportNewMapper.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportDaily;
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AccountReportNewMapper {
+    void replaceAccountReportHour(@Param("adds") List<BytedanceAdvertiserReportHourly> hours);
+
+    void replaceAccountReportDailys(@Param("adds") List<BytedanceAdvertiserReportDaily> dailies);
+}

+ 335 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/AccountReportNewMapper.xml

@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.AccountReportNewMapper">
+
+    <insert id="replaceAccountReportHour" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly">
+        replace into bytedance_advertiser_report_hourly (advertiser_id, stat_datetime, `hour`,
+        cost, `show`, avg_show_cost,
+        click, avg_click_cost, ctr,
+        `convert`, convert_cost, convert_rate,
+        deep_convert, deep_convert_cost, deep_convert_rate,
+        attribution_convert, attribution_convert_cost,
+        attribution_deep_convert, attribution_deep_convert_cost,
+        download_start, download_start_cost, download_start_rate,
+        download_finish, download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, next_day_open, next_day_open_cost,
+        next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost,
+        attribution_active_pay_7d_per_count, game_pay_cost,
+        game_pay_count, phone, form,
+        map_search, button, `view`,
+        download, qq, lottery,
+        vote, message, redirect,
+        shopping, consult, wechat,
+        phone_confirm, phone_connect, consult_effective,
+        coupon, coupon_single_page, redirect_to_shop,
+        poi_collect, poi_address_click, luban_order_cnt,
+        luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt,
+        live_watch_one_minute_count, luban_live_follow_cnt,
+        live_fans_club_join_cnt, luban_live_comment_cnt,
+        luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        live_component_click_count, live_component_click_cost,
+        live_component_click_rate, wechat_login_count,
+        attribution_wechat_login_30d_count, wechat_login_cost,
+        attribution_wechat_login_30d_cost, wechat_first_pay_count,
+        attribution_wechat_first_pay_30d_count, wechat_first_pay_cost,
+        attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate,
+        attribution_wechat_first_pay_30d_rate, wechat_pay_amount,
+        attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi,
+        phone_effective, total_play, valid_play,
+        valid_play_cost, valid_play_rate, play_25_feed_break,
+        play_50_feed_break, play_75_feed_break, play_100_feed_break,
+        average_play_time_per_play, play_over_rate, wifi_play_rate,
+        wifi_play, play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, `comment`,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        submit_certification_count, approval_count,
+        first_rental_order_count, first_order_count, commute_first_pay_count,
+        attribution_active_pay_intra_one_day_count,
+        attribution_active_pay_intra_one_day_cost,
+        attribution_active_pay_intra_one_day_rate,
+        attribution_active_pay_intra_one_day_amount,
+        attribution_active_pay_intra_one_day_roi,
+        stat_pay_amount
+        )
+        values
+        <foreach collection="adds" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.statDatetime,jdbcType=INTEGER}, #{item.hour,jdbcType=INTEGER},
+            #{item.cost,jdbcType=DECIMAL}, #{item.show,jdbcType=BIGINT}, #{item.avgShowCost,jdbcType=DECIMAL},
+            #{item.click,jdbcType=BIGINT}, #{item.avgClickCost,jdbcType=DECIMAL}, #{item.ctr,jdbcType=DECIMAL},
+            #{item.convert,jdbcType=BIGINT}, #{item.convertCost,jdbcType=DECIMAL}, #{item.convertRate,jdbcType=DECIMAL},
+            #{item.deepConvert,jdbcType=BIGINT}, #{item.deepConvertCost,jdbcType=DECIMAL},
+            #{item.deepConvertRate,jdbcType=DECIMAL},
+            #{item.attributionConvert,jdbcType=BIGINT}, #{item.attributionConvertCost,jdbcType=DECIMAL},
+            #{item.attributionDeepConvert,jdbcType=BIGINT}, #{item.attributionDeepConvertCost,jdbcType=DECIMAL},
+            #{item.downloadStart,jdbcType=BIGINT}, #{item.downloadStartCost,jdbcType=DECIMAL},
+            #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=BIGINT}, #{item.downloadFinishCost,jdbcType=DECIMAL},
+            #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT},
+            #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT},
+            #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT},
+            #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT},
+            #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT},
+            #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT},
+            #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL},
+            #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT},
+            #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT},
+            #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT},
+            #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT},
+            #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT},
+            #{item.commuteFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionActivePayIntraOneDayCount},
+            #{item.attributionActivePayIntraOneDayCost},
+            #{item.attributionActivePayIntraOneDayRate},
+            #{item.attributionActivePayIntraOneDayAmount},
+            #{item.attributionActivePayIntraOneDayRoi},
+            #{item.statPayAmount}
+            )
+        </foreach>
+    </insert>
+    <insert id="replaceAccountReportDailys">
+        replace into bytedance_advertiser_report_daily (advertiser_id, stat_datetime, cost,
+        `show`, avg_show_cost, click,
+        avg_click_cost, ctr, `convert`,
+        convert_cost, convert_rate, deep_convert,
+        deep_convert_cost, deep_convert_rate, attribution_convert,
+        attribution_convert_cost, attribution_deep_convert,
+        attribution_deep_convert_cost, download_start,
+        download_start_cost, download_start_rate, download_finish,
+        download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, next_day_open, next_day_open_cost,
+        next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost,
+        attribution_active_pay_7d_per_count, game_pay_cost,
+        game_pay_count, phone, form,
+        map_search, button, `view`,
+        download, qq, lottery,
+        vote, message, redirect,
+        shopping, consult, wechat,
+        phone_confirm, phone_connect, consult_effective,
+        coupon, coupon_single_page, redirect_to_shop,
+        poi_collect, poi_address_click, luban_order_cnt,
+        luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt,
+        live_watch_one_minute_count, luban_live_follow_cnt,
+        live_fans_club_join_cnt, luban_live_comment_cnt,
+        luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        live_component_click_count, live_component_click_cost,
+        live_component_click_rate, wechat_login_count,
+        attribution_wechat_login_30d_count, wechat_login_cost,
+        attribution_wechat_login_30d_cost, wechat_first_pay_count,
+        attribution_wechat_first_pay_30d_count, wechat_first_pay_cost,
+        attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate,
+        attribution_wechat_first_pay_30d_rate, wechat_pay_amount,
+        attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi,
+        phone_effective, total_play, valid_play,
+        valid_play_cost, valid_play_rate, play_25_feed_break,
+        play_50_feed_break, play_75_feed_break, play_100_feed_break,
+        average_play_time_per_play, play_over_rate, wifi_play_rate,
+        wifi_play, play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, `comment`,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        submit_certification_count, approval_count,
+        first_rental_order_count, first_order_count, commute_first_pay_count,
+        attribution_active_pay_intra_one_day_count,
+        attribution_active_pay_intra_one_day_cost,
+        attribution_active_pay_intra_one_day_rate,
+        attribution_active_pay_intra_one_day_amount,
+        attribution_active_pay_intra_one_day_roi,
+        stat_pay_amount
+        )
+        values
+        <foreach collection="adds" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.statDatetime,jdbcType=INTEGER}, #{item.cost,jdbcType=DECIMAL},
+            #{item.show,jdbcType=BIGINT}, #{item.avgShowCost,jdbcType=DECIMAL}, #{item.click,jdbcType=BIGINT},
+            #{item.avgClickCost,jdbcType=DECIMAL}, #{item.ctr,jdbcType=DECIMAL}, #{item.convert,jdbcType=BIGINT},
+            #{item.convertCost,jdbcType=DECIMAL}, #{item.convertRate,jdbcType=DECIMAL},
+            #{item.deepConvert,jdbcType=BIGINT},
+            #{item.deepConvertCost,jdbcType=DECIMAL}, #{item.deepConvertRate,jdbcType=DECIMAL},
+            #{item.attributionConvert,jdbcType=BIGINT},
+            #{item.attributionConvertCost,jdbcType=DECIMAL}, #{item.attributionDeepConvert,jdbcType=BIGINT},
+            #{item.attributionDeepConvertCost,jdbcType=DECIMAL}, #{item.downloadStart,jdbcType=BIGINT},
+            #{item.downloadStartCost,jdbcType=DECIMAL}, #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=BIGINT},
+            #{item.downloadFinishCost,jdbcType=DECIMAL}, #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT},
+            #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT},
+            #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT},
+            #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT},
+            #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT},
+            #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT},
+            #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL},
+            #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT},
+            #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT},
+            #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT},
+            #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT},
+            #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT},
+            #{item.commuteFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionActivePayIntraOneDayCount},
+            #{item.attributionActivePayIntraOneDayCost},
+            #{item.attributionActivePayIntraOneDayRate},
+            #{item.attributionActivePayIntraOneDayAmount},
+            #{item.attributionActivePayIntraOneDayRoi},
+            #{item.statPayAmount}
+            )
+        </foreach>
+
+    </insert>
+
+</mapper>

+ 9 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceReportNewService.java

@@ -0,0 +1,9 @@
+package cn.com.ctop.job.bytedance.data.service;
+
+import cn.com.ctop.job.bytedance.data.entity.OauthToken;
+
+public interface IBytedanceReportNewService {
+    void getBytedanceAccountHour(Long advertiserId, String accessToken, String startDate, String endDate, Integer page);
+
+    void getAdvertiserDailyReport(Long advertiserId, String oauthToken, String nowDate, String endDate, int page);
+}

+ 257 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceReportNewServiceImpl.java

@@ -0,0 +1,257 @@
+package cn.com.ctop.job.bytedance.data.service.impl;
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportDaily;
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly;
+import cn.com.ctop.job.bytedance.data.mapper.AccountReportNewMapper;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceReportNewService;
+import cn.com.ctop.job.bytedance.data.utils.Check;
+import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
+import cn.com.ctop.job.bytedance.utils.FieldsConfig;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class BytedanceReportNewServiceImpl implements IBytedanceReportNewService {
+    @Autowired
+    private AccountReportNewMapper accountReportNewMapper;
+
+    private static final JSONArray metrics = new JSONArray();
+
+    @Override
+    public void getBytedanceAccountHour(Long advertiserId, String accessToken, String startDate, String endDate, Integer page) {
+        try {
+            String url = "https://api.oceanengine.com/open_api/v3.0/report/custom/get/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            paramsMap.put("start_time", startDate);
+            paramsMap.put("end_time", endDate);
+            paramsMap.put("data_topic", "BASIC_DATA");
+            paramsMap.put("metrics", getMetrics(advertiserId, accessToken));
+            paramsMap.put("dimensions", FieldsConfig.getAccountHourDimensions());
+            paramsMap.put("order_by", new JSONArray());
+            paramsMap.put("filters", new JSONArray());
+            paramsMap.put("page", page);
+            paramsMap.put("page_size", 100);
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            String s = HttpUtils.httpGet(url, paramsMap, headers);
+            JSONObject result = JSONObject.parseObject(s);
+            List<BytedanceAdvertiserReportHourly> hours = new ArrayList<>();
+            Integer code = result.getInteger("code");
+            if (code == 0) {
+                JSONObject data = result.getJSONObject("data");
+                if (!Check.isNull(data)) {
+                    JSONArray rows = data.getJSONArray("rows");
+                    if (!Check.isNull(rows)) {
+                        for (int i = 0; i < rows.size(); i++) {
+                            JSONObject rowJson = rows.getJSONObject(i);
+                            JSONObject metricsJson = rowJson.getJSONObject("metrics");
+                            metricsJson.remove("attribution_active_pay_7d_per_count");
+                            JSONObject dimensionsJson = rowJson.getJSONObject("dimensions");
+                            String statTimeDay = dimensionsJson.getString("stat_time_day").replace("-", "");
+                            Integer hour = Integer.valueOf(dimensionsJson.getString("stat_time_hour").substring(11, 13));
+                            BytedanceAdvertiserReportHourly advertiserReportHour = JSONObject.parseObject(metricsJson.toJSONString(), BytedanceAdvertiserReportHourly.class);
+                            advertiserReportHour.setAdvertiserId(advertiserId);
+                            advertiserReportHour.setStatDatetime(statTimeDay);
+                            advertiserReportHour.setHour(hour);
+                            advertiserReportHour.setCost(metricsJson.getBigDecimal("stat_cost"));
+                            advertiserReportHour.setClick(metricsJson.getLong("click_cnt"));
+                            advertiserReportHour.setShow(metricsJson.getLong("show_cnt"));
+                            advertiserReportHour.setConvert(metricsJson.getLong("convert_cnt"));
+                            advertiserReportHour.setAvgShowCost(metricsJson.getBigDecimal("cpm_platform"));
+                            advertiserReportHour.setAvgClickCost(metricsJson.getBigDecimal("cpc_platform"));
+                            advertiserReportHour.setConvertCost(metricsJson.getBigDecimal("conversion_cost"));
+                            advertiserReportHour.setConvertRate(metricsJson.getBigDecimal("conversion_rate"));
+                            advertiserReportHour.setDeepConvert(metricsJson.getLong("deep_convert_cnt"));
+                            advertiserReportHour.setDeepConvertCost(metricsJson.getBigDecimal("deep_convert_cost"));
+                            advertiserReportHour.setDeepConvertRate(metricsJson.getBigDecimal("deep_convert_rate"));
+                            advertiserReportHour.setAttributionConvert(metricsJson.getLong("attribution_convert_cnt"));
+                            advertiserReportHour.setAttributionDeepConvert(metricsJson.getLong("attribution_deep_convert_cnt"));
+                            advertiserReportHour.setDownloadStartRate(metricsJson.getBigDecimal("click_start_rate"));
+                            advertiserReportHour.setDownloadFinish(metricsJson.getLong("download_finish_cnt"));
+                            advertiserReportHour.setInstallFinish(metricsJson.getLong("install_finish_cnt"));
+                            advertiserReportHour.setRegister(metricsJson.getBigDecimal("active_register"));
+                            advertiserReportHour.setPayCount(metricsJson.getLong("attribution_active_pay"));
+                            advertiserReportHour.setAttributionActivePay7dPerCount(metricsJson.getLong("attribution_active_pay_7d_per_count"));
+                            advertiserReportHour.setMapSearch(metricsJson.getLong("map"));
+                            advertiserReportHour.setDownload(metricsJson.getLong("download_start"));
+                            advertiserReportHour.setPlay100FeedBreak(metricsJson.getLong("play_99_feed_break"));
+                            advertiserReportHour.setShare(metricsJson.getLong("dy_share"));
+                            advertiserReportHour.setComment(metricsJson.getLong("dy_comment"));
+                            advertiserReportHour.setLike(metricsJson.getLong("dy_like"));
+                            advertiserReportHour.setFollow(metricsJson.getLong("dy_follow"));
+                            advertiserReportHour.setHomeVisited(metricsJson.getLong("dy_home_visited"));
+                            advertiserReportHour.setClickInstall(metricsJson.getLong("click_install_cnt"));
+                            hours.add(advertiserReportHour);
+                        }
+                    } else {
+                        log.info("账户id:{},日期:{}广告时报(账户粒度)请求结果为空", advertiserId, startDate);
+                        return;
+                    }
+                }
+            } else {
+                log.info("账户id:{},日期:{}广告时报(账户粒度)请求结果失败,返回数据:{}", advertiserId, startDate, result);
+                return;
+            }
+            if (!Check.isNull(hours)) {
+                accountReportNewMapper.replaceAccountReportHour(hours);
+
+            }
+            if (hours.size() >= 100) {
+                try {
+                    Thread.sleep(200L);
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+                getBytedanceAccountHour(advertiserId, accessToken, startDate, endDate, page + 1);
+            } else {
+                log.info("账户ID:{},日期:{},广告时报(账户粒度)数据请求成功", advertiserId, startDate);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void getAdvertiserDailyReport(Long advertiserId, String oauthToken, String startDate, String endDate, int page) {
+        try {
+            String url = "https://api.oceanengine.com/open_api/v3.0/report/custom/get/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            paramsMap.put("start_time", startDate);
+            paramsMap.put("end_time", endDate);
+            paramsMap.put("data_topic", "BASIC_DATA");
+            paramsMap.put("metrics", getMetrics(advertiserId, oauthToken));
+            paramsMap.put("dimensions", FieldsConfig.getAccountDailyDimensions());
+            paramsMap.put("order_by", new JSONArray());
+            paramsMap.put("filters", new JSONArray());
+            paramsMap.put("page", page);
+            paramsMap.put("page_size", 100);
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", oauthToken);
+            String s = HttpUtils.httpGet(url, paramsMap, headers);
+            JSONObject result = JSONObject.parseObject(s);
+            List<BytedanceAdvertiserReportDaily> dailies = new ArrayList<>();
+            Integer code = result.getInteger("code");
+            if (code == 0) {
+                JSONObject data = result.getJSONObject("data");
+                if (!Check.isNull(data)) {
+                    JSONArray rows = data.getJSONArray("rows");
+                    if (!Check.isNull(rows)) {
+                        for (int i = 0; i < rows.size(); i++) {
+                            JSONObject rowJson = rows.getJSONObject(i);
+                            JSONObject metricsJson = rowJson.getJSONObject("metrics");
+                            metricsJson.remove("attribution_active_pay_7d_per_count");
+                            JSONObject dimensionsJson = rowJson.getJSONObject("dimensions");
+                            String statTimeDay = dimensionsJson.getString("stat_time_day").replace("-", "");
+                            BytedanceAdvertiserReportDaily advertiserReportHour = JSONObject.parseObject(metricsJson.toJSONString(), BytedanceAdvertiserReportDaily.class);
+                            advertiserReportHour.setAdvertiserId(advertiserId);
+                            advertiserReportHour.setStatDatetime(statTimeDay);
+                            advertiserReportHour.setCost(metricsJson.getBigDecimal("stat_cost"));
+                            advertiserReportHour.setClick(metricsJson.getLong("click_cnt"));
+                            advertiserReportHour.setShow(metricsJson.getLong("show_cnt"));
+                            advertiserReportHour.setConvert(metricsJson.getLong("convert_cnt"));
+                            advertiserReportHour.setAvgShowCost(metricsJson.getBigDecimal("cpm_platform"));
+                            advertiserReportHour.setAvgClickCost(metricsJson.getBigDecimal("cpc_platform"));
+                            advertiserReportHour.setConvertCost(metricsJson.getBigDecimal("conversion_cost"));
+                            advertiserReportHour.setConvertRate(metricsJson.getBigDecimal("conversion_rate"));
+                            advertiserReportHour.setDeepConvert(metricsJson.getLong("deep_convert_cnt"));
+                            advertiserReportHour.setDeepConvertCost(metricsJson.getBigDecimal("deep_convert_cost"));
+                            advertiserReportHour.setDeepConvertRate(metricsJson.getBigDecimal("deep_convert_rate"));
+                            advertiserReportHour.setAttributionConvert(metricsJson.getLong("attribution_convert_cnt"));
+                            advertiserReportHour.setAttributionDeepConvert(metricsJson.getLong("attribution_deep_convert_cnt"));
+                            advertiserReportHour.setDownloadStartRate(metricsJson.getBigDecimal("click_start_rate"));
+                            advertiserReportHour.setDownloadFinish(metricsJson.getLong("download_finish_cnt"));
+                            advertiserReportHour.setInstallFinish(metricsJson.getLong("install_finish_cnt"));
+                            advertiserReportHour.setRegister(metricsJson.getBigDecimal("active_register"));
+                            advertiserReportHour.setPayCount(metricsJson.getLong("attribution_active_pay"));
+                            advertiserReportHour.setAttributionActivePay7dPerCount(metricsJson.getLong("attribution_active_pay_7d_per_count"));
+                            advertiserReportHour.setMapSearch(metricsJson.getLong("map"));
+                            advertiserReportHour.setDownload(metricsJson.getLong("download_start"));
+                            advertiserReportHour.setPlay100FeedBreak(metricsJson.getLong("play_99_feed_break"));
+                            advertiserReportHour.setShare(metricsJson.getLong("dy_share"));
+                            advertiserReportHour.setComment(metricsJson.getLong("dy_comment"));
+                            advertiserReportHour.setLike(metricsJson.getLong("dy_like"));
+                            advertiserReportHour.setFollow(metricsJson.getLong("dy_follow"));
+                            advertiserReportHour.setHomeVisited(metricsJson.getLong("dy_home_visited"));
+                            advertiserReportHour.setClickInstall(metricsJson.getLong("click_install_cnt"));
+                            dailies.add(advertiserReportHour);
+                        }
+                    } else {
+                        log.info("账户id:{},日期:{}广告日报(账户粒度)请求结果为空", advertiserId, startDate);
+                        return;
+                    }
+                }
+            } else {
+                log.info("账户id:{},日期:{}广告日报(账户粒度)请求结果失败,返回数据:{}", advertiserId, startDate, result);
+                return;
+            }
+            if (!Check.isNull(dailies)) {
+                accountReportNewMapper.replaceAccountReportDailys(dailies);
+
+            }
+            if (dailies.size() >= 100) {
+                try {
+                    Thread.sleep(200L);
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+                getAdvertiserDailyReport(advertiserId, oauthToken, startDate, endDate, page + 1);
+            } else {
+                log.info("账户ID:{},日期:{},广告日报(账户粒度)数据请求成功", advertiserId, startDate);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private JSONArray getMetrics(Long advertiserId, String token) {
+        if (!Check.isNull(metrics)) {
+            return metrics;
+        }
+        String url = "https://api.oceanengine.com/open_api/v3.0/report/custom/config/get/";
+        Map<String, Object> paramsMap = new HashMap<>();
+        paramsMap.put("advertiser_id", advertiserId);
+        JSONArray data_topics = new JSONArray();
+        data_topics.add("BASIC_DATA");
+        paramsMap.put("data_topics", data_topics);
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", token);
+        String s = HttpUtils.httpGet(url, paramsMap, headers);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        if (!Check.isNull(jsonObject)) {
+            Integer code = jsonObject.getInteger("code");
+            if (code == 0) {
+                JSONObject data = jsonObject.getJSONObject("data");
+                if (!Check.isNull(data)) {
+                    JSONObject list = data.getJSONArray("list").getJSONObject(0);
+                    if (!Check.isNull(list)) {
+                        JSONArray metricsArray = list.getJSONArray("metrics");
+                        if (!Check.isNull(metricsArray)) {
+                            for (int i = 0; i < metricsArray.size(); i++) {
+                                JSONObject fieldJson = metricsArray.getJSONObject(i);
+                                String field = fieldJson.getString("field");
+                                if ("pre_convert_cost".equals(field) || "pre_convert_count".equals(field) || "pre_convert_rate".equals(field) || "search_after_pv_rate".equals(field) || "search_after_read_pv".equals(field)) {
+                                    continue;
+                                }
+                                metrics.add(field);
+                            }
+
+                        }
+
+                    }
+                }
+            }
+        }
+        return metrics;
+    }
+}

+ 39 - 31
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceAdvertiseLoadJob.java

@@ -3,6 +3,7 @@ package cn.com.ctop.job.bytedance.handler;
 import cn.com.ctop.job.bytedance.data.constant.CtopAdConstant;
 import cn.com.ctop.job.bytedance.data.entity.OauthToken;
 import cn.com.ctop.job.bytedance.data.service.IByteDanceAdvertiserDataService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceReportNewService;
 import cn.com.ctop.job.bytedance.data.service.IOauthTokenService;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.DateUtils;
@@ -137,13 +138,14 @@ public class BytedanceAdvertiseLoadJob {
     }
 
 
+
     /**
-     * 广告主日报
+     * 广告主日报 分版位
      *
      * @throws Exception
      */
-    @XxlJob("bytedanceAdvertiserDailyReport")
-    public void bytedanceAdvertiserDailyReport() throws Exception {
+    @XxlJob("bytedancePositionAdvertiserDailyReport")
+    public void bytedancePositionAdvertiserDailyReport() throws Exception {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
             log.error("入参为空");
@@ -164,20 +166,24 @@ public class BytedanceAdvertiseLoadJob {
                 new Runnable() {
                     @Override
                     public void run() {
-                        advertiserDataService.getAdvertiserReport(oauthToken, nowDate, nowDate, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
-                        advertiserDataService.getAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
-                        advertiserDataService.getAdvertiserReport(oauthToken, yesterda2, yesterda2, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+//                        advertiserDataService.getPositionAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+//                        advertiserDataService.getPositionAdvertiserReport(oauthToken, yesterda2, yesterda2, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+                        advertiserDataService.getPositionAdvertiserReport(oauthToken, yesterda2, nowDate, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
                     }
                 });
     }
 
     /**
-     * 广告主日报 分版位
+     * 广告主时报
      *
      * @throws Exception
      */
-    @XxlJob("bytedancePositionAdvertiserDailyReport")
-    public void bytedancePositionAdvertiserDailyReport() throws Exception {
+
+    @Autowired
+    private IBytedanceReportNewService bytedanceReportNewService;
+
+    @XxlJob("bytedanceAdvertiserHourlyReport")
+    public void bytedanceAdvertiserHourlyReport() throws Exception {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
             log.error("入参为空");
@@ -191,27 +197,35 @@ public class BytedanceAdvertiseLoadJob {
         OauthToken oauthToken = new OauthToken();
         oauthToken.setAccessToken(token);
         oauthToken.setAccountId(Long.parseLong(param));
+
+        Date getDate = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH");
+        String hour = simpleDateFormat.format(getDate);
+
         String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
         String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
-        String yesterda2 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
-        dailyExecutorService.submit(
+
+        hourExecutorService.submit(
                 new Runnable() {
                     @Override
                     public void run() {
-//                        advertiserDataService.getPositionAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
-//                        advertiserDataService.getPositionAdvertiserReport(oauthToken, yesterda2, yesterda2, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
-                        advertiserDataService.getPositionAdvertiserReport(oauthToken, yesterda2, nowDate, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+                        if ("00".equals(hour)) {
+                            bytedanceReportNewService.getBytedanceAccountHour(Long.valueOf(param), token, yesterda, yesterda, 1);
+                        }
+                        bytedanceReportNewService.getBytedanceAccountHour(Long.valueOf(param), token, nowDate, nowDate, 1);
                     }
                 });
     }
 
+
+
     /**
-     * 广告主时报
+     * 广告主
      *
      * @throws Exception
      */
-    @XxlJob("bytedanceAdvertiserHourlyReport")
-    public void bytedanceAdvertiserHourlyReport() throws Exception {
+    @XxlJob("bytedanceAdvertiserDailyReport")
+    public void bytedanceAdvertiserDailyReport() throws Exception {
         String param = XxlJobHelper.getJobParam(); // 执行参数
         if (Check.isNull(param)) {
             log.error("入参为空");
@@ -225,29 +239,20 @@ public class BytedanceAdvertiseLoadJob {
         OauthToken oauthToken = new OauthToken();
         oauthToken.setAccessToken(token);
         oauthToken.setAccountId(Long.parseLong(param));
-
-        Date getDate = new Date();
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH");
-        String hour = simpleDateFormat.format(getDate);
-
         String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
         String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
-
-        hourExecutorService.submit(
+        String yesterda2 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
+        dailyExecutorService.submit(
                 new Runnable() {
                     @Override
                     public void run() {
-                        if ("00".equals(hour)) {
-                            advertiserDataService.getAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
-                        }
-                        advertiserDataService.getAdvertiserReport(oauthToken, nowDate, nowDate, CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
-                        advertiserDataService.getAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
-
+                        bytedanceReportNewService.getAdvertiserDailyReport(Long.valueOf(param),oauthToken.getAccessToken(), nowDate, nowDate, 1);
+                        bytedanceReportNewService.getAdvertiserDailyReport(Long.valueOf(param),oauthToken.getAccessToken(), yesterda, yesterda,1);
+                        bytedanceReportNewService.getAdvertiserDailyReport(Long.valueOf(param),oauthToken.getAccessToken(), yesterda2, yesterda2, 1);
                     }
                 });
     }
 
-
     /**
      * 广告主日报
      *
@@ -389,6 +394,9 @@ public class BytedanceAdvertiseLoadJob {
                 });
     }
 
+
+
+
     /**
      * master
      */

+ 58 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/FieldsConfig.java

@@ -0,0 +1,58 @@
+package cn.com.ctop.job.bytedance.utils;
+
+import com.alibaba.fastjson.JSONArray;
+
+public class FieldsConfig {
+
+    public static JSONArray getAccountHourDimensions() {
+        JSONArray hourDimensions = new JSONArray();
+        hourDimensions.add("stat_time_day");
+        hourDimensions.add("stat_time_hour");
+
+        return hourDimensions;
+
+    }
+
+    public static JSONArray getAccountDailyDimensions() {
+        JSONArray dailyDimensions = new JSONArray();
+        dailyDimensions.add("stat_time_day");
+        return dailyDimensions;
+
+    }
+
+
+
+
+
+
+
+    public static JSONArray getMetrics() {
+        JSONArray metricslds = new JSONArray();
+        metricslds.add("stat_pay_amount");
+        metricslds.add("stat_cost");
+        metricslds.add("active");
+        metricslds.add("download_finish_cnt");
+        metricslds.add("attribution_next_day_open_cnt");
+        metricslds.add("game_addiction");
+        metricslds.add("attribution_game_in_app_ltv_1day");
+        metricslds.add("attribution_deep_convert_cnt");
+        metricslds.add("game_pay_count");
+        metricslds.add("convert_cnt");
+        metricslds.add("show_cnt");
+        metricslds.add("active_pay");
+        metricslds.add("click_cnt");
+        metricslds.add("click_start_cnt");
+        metricslds.add("attribution_convert_cnt");
+        metricslds.add("deep_convert_cnt");
+        metricslds.add("valid_play");
+        metricslds.add("attribution_billing_game_in_app_ltv_1day");
+        metricslds.add("attribution_micro_game_0d_ltv");
+        metricslds.add("attribution_micro_game_3d_ltv");
+        metricslds.add("attribution_micro_game_7d_ltv");
+        metricslds.add("stat_micro_game_0d_amount");
+        return metricslds;
+
+    }
+
+
+}

+ 2 - 1
job-bytedance/src/main/resources/application.yml

@@ -80,7 +80,8 @@ spring:
         connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
       datasource:
         master:
-          url: jdbc:mysql://192.168.0.249:3390/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false
+          #url: jdbc:mysql://192.168.0.249:3390/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false
+          url: jdbc:mysql://111.204.208.234:3394/media_api?characterEncoding=UTF-8&useUnicode=true&useSSL=false
           username: hcst
           password: hcst@2024
           driver-class-name: com.mysql.jdbc.Driver