Ver código fonte

增加appList

yumeng 1 semana atrás
pai
commit
09a3204f3a

+ 1 - 1
src/main/java/com/adx/tencent/honor/HonorColdStore.java

@@ -120,7 +120,7 @@ public class HonorColdStore {
         if (record.getCreatedAt() == null) record.setCreatedAt(Instant.now());
         try (SqlSession session = sqlSessionFactory.openSession(true)) {
             HonorBidEventMapper mapper = session.getMapper(HonorBidEventMapper.class);
-            mapper.insertOrUpdate(record);
+            mapper.insertOrUpdate(record.toColdRecord());
         }
     }
 

+ 16 - 1
src/main/java/com/adx/tencent/honor/model/HonorBidRecord.java

@@ -98,10 +98,25 @@ public class HonorBidRecord {
         return hot;
     }
 
+    public HonorBidRecord toColdRecord() {
+        HonorBidRecord cold = new HonorBidRecord();
+        cold.qk = this.qk;
+        cold.media = this.media;
+        cold.mediaTraceId = this.mediaTraceId;
+        cold.platform = this.platform;
+        cold.accountId = this.accountId;
+        cold.eventType = this.eventType;
+        cold.tagId = this.tagId;
+        cold.price = this.price;
+        cold.packageName = this.packageName;
+        cold.mediaParams = slimDeviceParams(this.mediaParams);
+        cold.createdAt = this.createdAt;
+        return cold;
+    }
+
     private static Map<String, String> slimDeviceParams(Map<String, String> params) {
         if (params == null || params.isEmpty()) return null;
         List<String> keepKeys = List.of(
-                "oaid", "oaid_md5", "hash_oaid",
                 "trackId", "advertiserId", "requestId", "eventTime",
                 "pkgName", "channelId", "tagId", "ua", "ip"
         );

+ 6 - 11
src/main/java/com/adx/tencent/storage/TiDBColdStore.java

@@ -188,22 +188,17 @@ public class TiDBColdStore {
             throw new IllegalArgumentException("qk is required");
         }
         if (record.getCreatedAt() == null) record.setCreatedAt(Instant.now());
+        BidRecord cold = record.toColdRecord();
 
-        String showUrls   = toJson(record.getShowUrls());
-        String clickUrls  = toJson(record.getClickUrls());
-        String mediaParams = toJson(record.getMediaParams());
+        String mediaParams = toJson(cold.getMediaParams());
 
         try (SqlSession session = sqlSessionFactory.openSession(true)) {
             BidEventMapper mapper = session.getMapper(BidEventMapper.class);
             mapper.insertOrUpdate(
-                record.getQk(), record.getMedia(), record.getMediaTraceId(),
-                record.getPlatform(), record.getAdId(), record.getAccountId(),
-                record.getEventType(),
-                record.getReqId(), record.getBidId(), record.getCreativeId(),
-                record.getImpId(), record.getTagId(), record.getPrice() != null ? record.getPrice() : 0L,
-                showUrls, clickUrls, record.getLandingPage(),
-                record.getAppStoreLink(), record.getPackageName(),
-                mediaParams, Timestamp.from(record.getCreatedAt())
+                cold.getQk(), cold.getMedia(), cold.getMediaTraceId(),
+                cold.getPlatform(), cold.getAccountId(), cold.getEventType(),
+                cold.getTagId(), cold.getPrice() != null ? cold.getPrice() : 0L,
+                cold.getPackageName(), mediaParams, Timestamp.from(cold.getCreatedAt())
             );
         }
     }

+ 0 - 9
src/main/java/com/adx/tencent/storage/mapper/BidEventMapper.java

@@ -16,19 +16,10 @@ public interface BidEventMapper {
                         @Param("media") String media,
                         @Param("mediaTraceId") String mediaTraceId,
                         @Param("platform") String platform,
-                        @Param("adId") String adId,
                         @Param("accountId") String accountId,
                         @Param("eventType") String eventType,
-                        @Param("reqId") String reqId,
-                        @Param("bidId") String bidId,
-                        @Param("creativeId") String creativeId,
-                        @Param("impId") String impId,
                         @Param("tagId") String tagId,
                         @Param("price") long price,
-                        @Param("showUrls") String showUrls,
-                        @Param("clickUrls") String clickUrls,
-                        @Param("landingPage") String landingPage,
-                        @Param("appStoreLink") String appStoreLink,
                         @Param("packageName") String packageName,
                         @Param("mediaParams") String mediaParams,
                         @Param("createdAt") java.sql.Timestamp createdAt);

+ 16 - 0
src/main/java/com/adx/tencent/storage/model/BidRecord.java

@@ -108,6 +108,22 @@ public class BidRecord {
         return hot;
     }
 
+    public BidRecord toColdRecord() {
+        BidRecord cold = new BidRecord();
+        cold.qk = this.qk;
+        cold.media = this.media;
+        cold.mediaTraceId = this.mediaTraceId;
+        cold.platform = this.platform;
+        cold.accountId = this.accountId;
+        cold.eventType = this.eventType;
+        cold.tagId = this.tagId;
+        cold.price = this.price;
+        cold.packageName = this.packageName;
+        cold.mediaParams = slimDeviceParams(this.mediaParams);
+        cold.createdAt = this.createdAt;
+        return cold;
+    }
+
     /**
      * 只保留转化回传所需的设备标识字段,过滤掉其余无关参数。
      */

+ 8 - 31
src/main/resources/mapper/BidEventMapper.xml

@@ -7,37 +7,26 @@
         <result property="media" column="media"/>
         <result property="mediaTraceId" column="media_trace_id"/>
         <result property="platform" column="platform"/>
-        <result property="adId" column="ad_id"/>
         <result property="accountId" column="account_id"/>
         <result property="eventType" column="event_type"/>
-        <result property="reqId" column="req_id"/>
-        <result property="bidId" column="bid_id"/>
-        <result property="creativeId" column="creative_id"/>
-        <result property="impId" column="imp_id"/>
         <result property="tagId" column="tag_id"/>
         <result property="price" column="price"/>
-        <result property="showUrls" column="show_urls" typeHandler="com.adx.tencent.storage.typehandler.JsonStringListTypeHandler"/>
-        <result property="clickUrls" column="click_urls" typeHandler="com.adx.tencent.storage.typehandler.JsonStringListTypeHandler"/>
-        <result property="landingPage" column="landing_page"/>
-        <result property="appStoreLink" column="app_store_link"/>
         <result property="packageName" column="package_name"/>
         <result property="mediaParams" column="media_params" typeHandler="com.adx.tencent.storage.typehandler.JsonStringMapTypeHandler"/>
         <result property="createdAt" column="created_at"/>
     </resultMap>
 
     <select id="selectByQk" resultMap="bidRecordResultMap">
-        SELECT qk, media, media_trace_id, platform, ad_id, account_id, event_type,
-               req_id, bid_id, creative_id, imp_id, tag_id, price, show_urls,
-               click_urls, landing_page, app_store_link, package_name, media_params, created_at
+        SELECT qk, media, media_trace_id, platform, account_id, event_type,
+               tag_id, price, package_name, media_params, created_at
         FROM tencent_ad_bid_events
         WHERE qk = #{qk}
         LIMIT 1
     </select>
 
     <select id="selectByQks" resultMap="bidRecordResultMap">
-        SELECT qk, media, media_trace_id, platform, ad_id, account_id, event_type,
-               req_id, bid_id, creative_id, imp_id, tag_id, price, show_urls,
-               click_urls, landing_page, app_store_link, package_name, media_params, created_at
+        SELECT qk, media, media_trace_id, platform, account_id, event_type,
+               tag_id, price, package_name, media_params, created_at
         FROM tencent_ad_bid_events
         WHERE qk IN
         <foreach collection="qks" item="qk" open="(" separator="," close=")">
@@ -47,33 +36,21 @@
 
     <insert id="insertOrUpdate">
         INSERT INTO tencent_ad_bid_events (
-            qk, media, media_trace_id, platform, ad_id, account_id, event_type,
-            req_id, bid_id, creative_id, imp_id, tag_id, price,
-            show_urls, click_urls, landing_page, app_store_link, package_name,
+            qk, media, media_trace_id, platform, account_id, event_type,
+            tag_id, price, package_name,
             media_params, created_at
         ) VALUES (
-            #{qk}, #{media}, #{mediaTraceId}, #{platform}, #{adId}, #{accountId}, #{eventType},
-            #{reqId}, #{bidId}, #{creativeId},
-            #{impId}, #{tagId}, #{price}, #{showUrls}, #{clickUrls}, #{landingPage},
-            #{appStoreLink}, #{packageName}, #{mediaParams}, #{createdAt}
+            #{qk}, #{media}, #{mediaTraceId}, #{platform}, #{accountId}, #{eventType},
+            #{tagId}, #{price}, #{packageName}, #{mediaParams}, #{createdAt}
         )
         ON DUPLICATE KEY UPDATE
             media = VALUES(media),
             media_trace_id = VALUES(media_trace_id),
             platform = VALUES(platform),
-            ad_id = VALUES(ad_id),
             account_id = VALUES(account_id),
             event_type = VALUES(event_type),
-            req_id = VALUES(req_id),
-            bid_id = VALUES(bid_id),
-            creative_id = VALUES(creative_id),
-            imp_id = VALUES(imp_id),
             tag_id = VALUES(tag_id),
             price = VALUES(price),
-            show_urls = VALUES(show_urls),
-            click_urls = VALUES(click_urls),
-            landing_page = VALUES(landing_page),
-            app_store_link = VALUES(app_store_link),
             package_name = VALUES(package_name),
             media_params = VALUES(media_params)
     </insert>

+ 8 - 32
src/main/resources/mapper/HonorBidEventMapper.xml

@@ -7,37 +7,26 @@
         <result property="media" column="media"/>
         <result property="mediaTraceId" column="media_trace_id"/>
         <result property="platform" column="platform"/>
-        <result property="adId" column="ad_id"/>
         <result property="accountId" column="account_id"/>
         <result property="eventType" column="event_type"/>
-        <result property="reqId" column="req_id"/>
-        <result property="bidId" column="bid_id"/>
-        <result property="creativeId" column="creative_id"/>
-        <result property="impId" column="imp_id"/>
         <result property="tagId" column="tag_id"/>
         <result property="price" column="price"/>
-        <result property="showUrls" column="show_urls" typeHandler="com.adx.tencent.storage.typehandler.JsonStringListTypeHandler"/>
-        <result property="clickUrls" column="click_urls" typeHandler="com.adx.tencent.storage.typehandler.JsonStringListTypeHandler"/>
-        <result property="landingPage" column="landing_page"/>
-        <result property="appStoreLink" column="app_store_link"/>
         <result property="packageName" column="package_name"/>
         <result property="mediaParams" column="media_params" typeHandler="com.adx.tencent.storage.typehandler.JsonStringMapTypeHandler"/>
         <result property="createdAt" column="created_at"/>
     </resultMap>
 
     <select id="selectByQk" resultMap="honorBidRecordResultMap">
-        SELECT qk, media, media_trace_id, platform, ad_id, account_id, event_type,
-               req_id, bid_id, creative_id, imp_id, tag_id, price, show_urls,
-               click_urls, landing_page, app_store_link, package_name, media_params, created_at
+        SELECT qk, media, media_trace_id, platform, account_id, event_type,
+               tag_id, price, package_name, media_params, created_at
         FROM honor_ad_bid_events
         WHERE qk = #{qk}
         LIMIT 1
     </select>
 
     <select id="selectByQks" resultMap="honorBidRecordResultMap">
-        SELECT qk, media, media_trace_id, platform, ad_id, account_id, event_type,
-               req_id, bid_id, creative_id, imp_id, tag_id, price, show_urls,
-               click_urls, landing_page, app_store_link, package_name, media_params, created_at
+        SELECT qk, media, media_trace_id, platform, account_id, event_type,
+               tag_id, price, package_name, media_params, created_at
         FROM honor_ad_bid_events
         WHERE qk IN
         <foreach collection="qks" item="qk" open="(" separator="," close=")">
@@ -47,17 +36,13 @@
 
     <insert id="insertOrUpdate">
         INSERT INTO honor_ad_bid_events (
-            qk, media, media_trace_id, platform, ad_id, account_id, event_type,
-            req_id, bid_id, creative_id, imp_id, tag_id, price,
-            show_urls, click_urls, landing_page, app_store_link, package_name,
+            qk, media, media_trace_id, platform, account_id, event_type,
+            tag_id, price, package_name,
             media_params, created_at
         ) VALUES (
             #{record.qk}, #{record.media}, #{record.mediaTraceId}, #{record.platform},
-            #{record.adId}, #{record.accountId}, #{record.eventType}, #{record.reqId},
-            #{record.bidId}, #{record.creativeId}, #{record.impId}, #{record.tagId},
-            #{record.price}, #{record.showUrls, typeHandler=com.adx.tencent.storage.typehandler.JsonStringListTypeHandler},
-            #{record.clickUrls, typeHandler=com.adx.tencent.storage.typehandler.JsonStringListTypeHandler},
-            #{record.landingPage}, #{record.appStoreLink}, #{record.packageName},
+            #{record.accountId}, #{record.eventType}, #{record.tagId},
+            #{record.price}, #{record.packageName},
             #{record.mediaParams, typeHandler=com.adx.tencent.storage.typehandler.JsonStringMapTypeHandler},
             #{record.createdAtTs}
         )
@@ -65,19 +50,10 @@
             media = VALUES(media),
             media_trace_id = VALUES(media_trace_id),
             platform = VALUES(platform),
-            ad_id = VALUES(ad_id),
             account_id = VALUES(account_id),
             event_type = VALUES(event_type),
-            req_id = VALUES(req_id),
-            bid_id = VALUES(bid_id),
-            creative_id = VALUES(creative_id),
-            imp_id = VALUES(imp_id),
             tag_id = VALUES(tag_id),
             price = VALUES(price),
-            show_urls = VALUES(show_urls),
-            click_urls = VALUES(click_urls),
-            landing_page = VALUES(landing_page),
-            app_store_link = VALUES(app_store_link),
             package_name = VALUES(package_name),
             media_params = VALUES(media_params)
     </insert>

+ 3 - 12
src/main/resources/schema-honor.sql

@@ -14,23 +14,14 @@ CREATE TABLE IF NOT EXISTS honor_ad_bid_events (
     id BIGINT AUTO_INCREMENT PRIMARY KEY,
     qk VARCHAR(128) NOT NULL COMMENT '唯一业务键(query key)',
     media VARCHAR(64) NOT NULL COMMENT '媒体来源(honor)',
-    media_trace_id VARCHAR(255) COMMENT '媒体追踪ID(trackId/requestId/oaid)',
+    media_trace_id VARCHAR(255) COMMENT '媒体追踪ID(trackId)',
     platform VARCHAR(16) COMMENT '平台(android/ios)',
-    ad_id VARCHAR(128) COMMENT '荣耀创意ID',
     account_id VARCHAR(128) COMMENT '荣耀广告主ID(advertiserId)',
-    event_type VARCHAR(32) COMMENT '事件类型(impression/click)',
-    req_id VARCHAR(512) COMMENT '百度ADX请求ID',
-    bid_id VARCHAR(128) COMMENT '竞价ID',
-    creative_id VARCHAR(128) COMMENT '创意ID',
-    imp_id VARCHAR(128) COMMENT '曝光ID',
+    event_type VARCHAR(32) COMMENT '事件类型(impression/click),仅保留排障所需',
     tag_id VARCHAR(128) NOT NULL COMMENT '百度广告位ID,对外链接也要求显式传入',
     price BIGINT UNSIGNED COMMENT '竞价价格(分)',
-    show_urls JSON COMMENT '曝光上报URL列表',
-    click_urls JSON COMMENT '点击上报URL列表',
-    landing_page TEXT COMMENT '落地页URL',
-    app_store_link TEXT COMMENT '应用商店链接',
     package_name VARCHAR(255) COMMENT '应用包名',
-    media_params JSON COMMENT '荣耀监测参数(trackId/advertiserId/requestId/oaid/time/pkgName/tagId等)',
+    media_params JSON COMMENT '荣耀监测参数精简白名单(trackId/advertiserId/requestId/eventTime/pkgName/tagId等)',
     created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
     UNIQUE KEY uk_honor_ad_bid_events_qk (qk),
     KEY idx_honor_ad_bid_events_media_trace (media, media_trace_id),

+ 2 - 11
src/main/resources/schema.sql

@@ -15,21 +15,12 @@ CREATE TABLE IF NOT EXISTS tencent_ad_bid_events (
     media VARCHAR(64) COMMENT '媒体来源(tencent)',
     media_trace_id VARCHAR(255) COMMENT '媒体追踪ID(click_id/oaid/imei/idfa)',
     platform VARCHAR(16) COMMENT '平台(android/ios)',
-    ad_id VARCHAR(128) COMMENT '腾讯广告ID',
     account_id VARCHAR(64) COMMENT '腾讯广告主ID',
-    event_type VARCHAR(16) COMMENT '事件类型(impression/click)',
-    req_id VARCHAR(512) COMMENT '百度ADX请求ID',
-    bid_id VARCHAR(128) COMMENT '竞价ID',
-    creative_id VARCHAR(128) COMMENT '创意ID',
-    imp_id VARCHAR(128) COMMENT '曝光ID',
+    event_type VARCHAR(16) COMMENT '事件类型(impression/click),仅保留排障所需',
     tag_id VARCHAR(128) COMMENT '百度广告位ID',
     price BIGINT UNSIGNED COMMENT '竞价价格(分)',
-    show_urls JSON COMMENT '曝光上报URL列表',
-    click_urls JSON COMMENT '点击上报URL列表',
-    landing_page TEXT COMMENT '落地页URL',
-    app_store_link TEXT COMMENT '应用商店链接',
     package_name VARCHAR(255) COMMENT '应用包名',
-    media_params JSON COMMENT '媒体参数(设备标识等)',
+    media_params JSON COMMENT '媒体参数精简白名单(回传所需设备标识等)',
     created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
     UNIQUE KEY uk_tencent_ad_bid_events_qk (qk),
     KEY idx_tencent_ad_bid_events_media_trace (media, media_trace_id),