[代码重构](master): DMP底层监控逻辑v2.0

2023-5-30 15:59:16 更新底层监测代码,准备测试
master
土豆兄弟 1 year ago
parent ab10eefb66
commit 9ea0a1fad8

@ -10,6 +10,23 @@
https://ad.vivo.com.cn/help?id=353
## 汇川
## V2 版本设计
### 1.1 巨量引擎 - 更新时间 2023-5-17 13:21:22
-
## 投放时间表
- ps 要避开系统正常运行的时间点,然后进行更新代码
百度 巨量7:00-21:00

@ -0,0 +1,71 @@
## 巨量开发
- v1, v2 版本基础回值入库 - 数据库表设计
- 投放包字段设计入库, 【关键字段, 进行冗余存储】 + 所有main参数
- v2 PROMOTION_ID PROMOTION_NAME
- v1 AID AID_NAME CID CID_NAME CSITE?
## 通用
- 【平台通用】 投放计划监测及 DMP 监测 【不同广告计划, 线索来的数量, 模型计算出的数量】
- 需要监测的值 填入需要进行检测的值-ID, 采样时间-定时任务统计, 采集的值, 计算的值, 有效值
- 影响我们的广告质量分算法
- 【平台通用】 配置时候生成, 不同版本, 不同配置位置的链接
- 选择平台, 选择版本
- 不同的位置[配置文档]
- 【平台通用】 定时整理回值的数据
- 定时删除大表多少天的数据 - 3个月以前的 - 每 5000 条删/次
- 【平台通用】 默认开启投放包的开关, 进行是否收集投放包的抉择, 或者投放包的合并等基础操作
- 投放包收集开启, 关闭
- 差集, 并集, 交集
- 投放包打分
- 使用次数
- 更新时间等
## 百度开发
- 百度和广点通类似
- https://dev2.baidu.com/content?sceneType=0&pageId=101213&nodeId=663&subhead=
## 广点通开发
- 相关文档
- 转化归因配置
- 应用转化, Web落地页转化, 小程序转化, 公众号转化, 小游戏转化, 企业微信转化
- https://e.qq.com/ads/helpcenter/detail?cid=3018&pid=7993
- 配置点击监测/ 曝光监测/ 效果监测
- https://developers.e.qq.com/docs/guide/conversion/new_version/dianjijiance
- https://developers.e.qq.com/docs/guide/conversion/new_version/baoguangjiance
- https://developers.e.qq.com/docs/guide/conversion/new_version/actiontrace [不常用]
- 配置步骤
- 步骤1: 选择新建转化方式
- 步骤2: 填写基本信息、选填监测链接
- 步骤3: 通过联调激活转化
- 步骤4: 创建广告使用转化归因
## 快手
---
# 设置保存投放包的收集规则
- 文件加密 (固定秘钥),专门生产一个文件的秘钥库进行管理密码
- 以每天为一个事件节点产生一个文件目录 : /ad-bk-data/source/2023-5-26/
- 每一个tag每天的全量为一个文件 (时间 0-24点) :
- tag值.csv
- 处理后的文件夹
- /ad-bk-data/produce/
- 2023-5-26-prod-6位随机值.csv
- 关联数据表,
- 存储信息记录表 {id, gmt_create, gmt_modify, operator, file_name, file_path, file_pwd, file_status, weight}
- file_pwd 文件密码
- file_status 文件状态, 0-文件正常可用, 1-正在生成, 2-文件状态异常, 3-文件操作禁用
- weight 权重, 根据调用次数和手动设置加权来进行配置, 初始0, 最高 10, 调用一次 + 1, 30天未调用 -1
- 调用信息记录表 {id, gmt_create, gmt_modify, operator, file_name, file_path, opt_way, back_status}
- opt_way: 操作方式 【todo 之后进行补充区分】
- back_status是否成功 0-成功 1-失败

Binary file not shown.

@ -0,0 +1,266 @@
CREATE DATABASE IF NOT EXISTS `db_ad` default character set utf8mb4 COLLATE utf8mb4_general_ci;
DROP TABLE IF EXISTS `tb_jl_v2_backdata`;
CREATE TABLE `tb_jl_v2_backdata` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(0) NULL DEFAULT NULL,
`gmt_modified` datetime(0) NULL DEFAULT NULL,
`operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`promotion_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代表巨量广告体验版的广告ID',
`project_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代表巨量广告体验版的项目ID',
`promotion_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '巨量广告体验版中的广告名称',
`project_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '巨量广告体验版中的项目名称',
`mid1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片素材宏参数下发原始素材id',
`mid2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题素材宏参数下发原始素材id',
`mid3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '视频素材宏参数下发原始素材id',
`mid4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '搭配试玩素材宏参数下发原始素材id',
`mid5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '落地页素材宏参数下发原始素材id',
`mid6` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓下载详情页素材宏参数下发原始素材id',
`csite` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告投放位置',
`convert_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '转化id',
`request_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求下发的id',
`track_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求下发的id&创意id的md5,16位',
`os` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统平台',
`ua` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理 (User Agent)',
`geo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '位置信息',
`ts` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端发生广告点击事件的时间',
`model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机型号',
`imei` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓的设备 ID 的 md5 摘要32位',
`idfa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ' IOS 6+的设备id字段32位',
`idfa_md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'IOS 6+的设备id的md5摘要32位',
`oaid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Android Q及更高版本的设备号32位',
`oaid_md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Android Q及更高版本的设备号的md5摘要32位',
`mac` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '移动设备mac地址',
`callback_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '一些跟广告信息相关的回调参数,内容是一个加密字符串,在调用事件回传接口的时候会用到',
`callback_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '直接把调用事件回传接口的url生成出来广告主可以直接使用',
`advertiser_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告主id',
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用于监测链接的自定义带参格式',
`vpoint` int(20) NULL DEFAULT NULL COMMENT '用于区分广告配置的地方',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_imei`(`imei`) USING BTREE,
INDEX `idx_idfa`(`idfa`) USING BTREE,
INDEX `idx_oaid`(`oaid`) USING BTREE,
INDEX `idx_tag`(`tag`) USING BTREE
)ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `tb_jl_v1_backdata`;
CREATE TABLE `tb_jl_v1_backdata` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(0) NULL DEFAULT NULL,
`gmt_modified` datetime(0) NULL DEFAULT NULL,
`operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`aid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告计划id',
`aid_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告计划名称',
`cid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告创意 id',
`cid_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告创意名称',
`campaign_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ' 广告组 id',
`campaign_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告组名称',
`ctype` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创意样式',
`csite` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告投放位置',
`convert_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '转化id',
`request_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求下发的id',
`track_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求下发的id&创意id的md5,16位',
`os` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统平台',
`ua` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理 (User Agent)',
`geo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '位置信息',
`ts` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端发生广告点击事件的时间',
`model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机型号',
`imei` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓的设备 ID 的 md5 摘要32位',
`idfa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ' IOS 6+的设备id字段32位',
`idfa_md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'IOS 6+的设备id的md5摘要32位',
`oaid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Android Q及更高版本的设备号32位',
`oaid_md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Android Q及更高版本的设备号的md5摘要32位',
`mac` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '移动设备mac地址',
`callback_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '一些跟广告信息相关的回调参数,内容是一个加密字符串,在调用事件回传接口的时候会用到',
`callback_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '直接把调用事件回传接口的url生成出来广告主可以直接使用',
`advertiser_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告主id',
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用于监测链接的自定义带参格式',
`vpoint` int(20) NULL DEFAULT NULL COMMENT '用于区分广告配置的地方',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_imei`(`imei`) USING BTREE,
INDEX `idx_idfa`(`idfa`) USING BTREE,
INDEX `idx_oaid`(`oaid`) USING BTREE,
INDEX `idx_tag`(`tag`) USING BTREE
)ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `tb_ks_new_backdata`;
CREATE TABLE `tb_ks_new_backdata` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(0) NULL DEFAULT NULL,
`gmt_modified` datetime(0) NULL DEFAULT NULL,
`operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`account_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告账户ID',
`aid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告组ID',
`cid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告创意 id',
`did` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告计划ID',
`d_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ' 广告计划名称',
`photo_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '素材ID',
`oaid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Android设备标识计算MD5',
`imei` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓广告唯一标示',
`imei_hash` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Android下的IMEI,hash',
`idfa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'iOS下的idfa计算MD5',
`idfa_hash` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'iOS下的idfa计算SHA1',
`mac_bak` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对 MAC 进行 MD5',
`mac` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对 MAC 去除分隔符之后进行 MD5',
`ts` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端发生广告点击事件的时间',
`ua` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端UA',
`os` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'OS系统',
`model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机型号',
`call_back` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调信息编码一次的URL',
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户IP地址',
`csite` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告投放场景',
`ac_creative` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否为高级创意',
`win_for_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '仅支持搜索流量',
`callback_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '直接把调用事件回传接口的url生成出来广告主可以直接使用',
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用于监测链接的自定义带参格式',
`vpoint` int(20) NULL DEFAULT NULL COMMENT '用于区分广告配置的地方',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_imei`(`imei`) USING BTREE,
INDEX `idx_idfa`(`idfa`) USING BTREE,
INDEX `idx_oaid`(`oaid`) USING BTREE,
INDEX `idx_tag`(`tag`) USING BTREE
)ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `tb_bd_new_backdata`;
CREATE TABLE `tb_bd_new_backdata` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(0) NULL DEFAULT NULL,
`gmt_modified` datetime(0) NULL DEFAULT NULL,
`operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`akey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '双方加密密钥',
`userid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账户ID',
`aid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创意ID',
`pid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '计划ID',
`uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ' 单元ID',
`callback_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '效果数据回传URL',
`ext_info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '点击信息/曝光信息',
`click_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '点击或曝光唯一标识',
`idfa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'IOS设备标识',
`imei` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Android设备标识',
`oaid_MD5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'oaid编码方式',
`oaid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原文oaid',
`mac` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'mac地址',
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户IP地址',
`ua` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端UA',
`os_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'OS系统',
`ts` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '时间戳',
`device_info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '已废弃',
`interactions_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户对广告进行的所有交互操作',
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用于监测链接的自定义带参格式',
`vpoint` int(20) NULL DEFAULT NULL COMMENT '用于区分广告配置的地方',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_imei`(`imei`) USING BTREE,
INDEX `idx_idfa`(`idfa`) USING BTREE,
INDEX `idx_oaid`(`oaid`) USING BTREE,
INDEX `idx_tag`(`tag`) USING BTREE
)ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `tb_gdt_new_backdata`;
CREATE TABLE `tb_gdt_new_backdata` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(0) NULL DEFAULT NULL,
`gmt_modified` datetime(0) NULL DEFAULT NULL,
`operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`account_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告主id',
`click_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '点击id',
`click_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '点击时间',
`campaign_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ' 计划id',
`adgroup_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告组id',
`ad_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告id',
`device_os_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备类型',
`promoted_object_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用id',
`promoted_object_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '推广类型',
`imei` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓设备id',
`idfa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '苹果设备id',
`mac` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'mac 地址',
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'mac地址',
`user_agent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理user_agent',
`callback` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '直接提供上报信息回传接口的 url',
`oaid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓系统移动终端补充设备标识',
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用于监测链接的自定义带参格式',
`vpoint` int(20) NULL DEFAULT NULL COMMENT '用于区分广告配置的地方',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_muid`(`muid`) USING BTREE,
INDEX `idx_oaid`(`oaid`) USING BTREE,
INDEX `idx_tag`(`tag`) USING BTREE
)ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
--
--- fixme 方案1: 这个表不一定用(使用这个的话,就必须进行分表分库), 文件里面要收集的字段也参考这个
---
DROP TABLE IF EXISTS `tb_tf_source`;
CREATE TABLE `tb_tf_source` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(0) NULL DEFAULT NULL,
`gmt_modified` datetime(0) NULL DEFAULT NULL,
`operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`click_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '点击时间,时间戳',
`ad_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告名称',
`imei` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓设备id',
`idfa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '苹果设备id',
`mac` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'mac地址',
`oaid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '安卓系统移动终端补充设备标识',
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用于监测链接的自定义带参格式',
`vpoint` int(20) NULL DEFAULT NULL COMMENT '用于区分广告配置的地方',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_imei`(`imei`) USING BTREE,
INDEX `idx_idfa`(`idfa`) USING BTREE,
INDEX `idx_mac`(`mac`) USING BTREE,
INDEX `idx_idfa`(`idfa`) USING BTREE,
INDEX `idx_oaid`(`oaid`) USING BTREE,
INDEX `idx_oaid`(`tag`) USING BTREE
)ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
--
--- fixme 方案2: [推荐] 直接按文件存投放包的文件地址
---
DROP TABLE IF EXISTS `tb_tf_source`;
CREATE TABLE `tb_tf_source` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(0) NULL DEFAULT NULL,
`gmt_modified` datetime(0) NULL DEFAULT NULL,
`operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`produce_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '投放包的产生时间 例如 2023-1-2',
`ad_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '广告名称[多个用逗号]',
`category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '投放类目',
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名称',
`file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件存放地址',
`file_status` int(20) NULL DEFAULT NULL COMMENT '文件状态, 1-正在生成 2-正常 3-禁用 4-删除',
`last_operator_time` datetime(0) NULL DEFAULT NULL COMMENT '最后操作时间',
`weight` int(20) NULL DEFAULT NULL COMMENT '权重值',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_produce_time`(`produce_time`) USING BTREE,
INDEX `idx_last_operator_time`(`last_operator_time`) USING BTREE
)ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

@ -0,0 +1,357 @@
package com.baiyee.adcallback.api.callback;
import cn.hutool.core.util.StrUtil;
import com.baiyee.adcallback.api.common.CommonResponse;
import com.baiyee.adcallback.api.vo.*;
import com.baiyee.adcallback.service.AdOriginalityManageService;
import com.baiyee.adcallback.service.AdTFPackageService;
import com.baiyee.adcallback.tools.CheckPlatPointParamsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 2023-5-18
*
*
*
* :
* 广, 广, ,
*
* @author q
*/
@RestController
@RequestMapping(value = ("/api"))
@Slf4j
public class MobileMonitorCallbackNewAPI {
private final AdOriginalityManageService originalityManageService;
private final AdTFPackageService adTFPackageService;
public MobileMonitorCallbackNewAPI(AdOriginalityManageService originalityManageService, AdTFPackageService adTFPackageService) {
this.originalityManageService = originalityManageService;
this.adTFPackageService = adTFPackageService;
}
/**
* V2-广
*
*
* promotion_id=__PROMOTION_ID__&project_id=__PROJECT_ID__&promotion_name=__PROMOTION_NAME__&project_name=__PROJECT_NAME__&mid1=__MID1__&mid2=__MID2__&mid3=__MID3__&mid4=__MID4__&mid5=__MID5__&mid6=__MID6__&csite=__CSITE__&convert_id=__CONVERT_ID__&request_id=__REQUEST_ID__&track_id=__TRACK_ID__&os=__OS__&ua=__UA__&geo=__GEO__&ts=__TS__&model=__MODEL__&imei=__IMEI__&idfa=__IDFA__&idfa_md5=__IDFA_MD5__&oaid=__OAID__&oaid_md5=__OAID_MD5__&mac=__MAC__&callback_param=__CALLBACK_PARAM__&callback_url=__CALLBACK_URL__&advertiser_id=__ADVERTISER_ID__&tag=&vpoint=
*/
@RequestMapping(value = "/jl/new/monitor/v2")
public CommonResponse<String> jlMonitorUrlCallbackReqUrlV2(
@RequestParam(value = "promotion_id",defaultValue = "") String promotionId,
@RequestParam(value = "project_id",defaultValue = "") String projectId,
@RequestParam(value = "promotion_name",defaultValue = "") String promotionName,
@RequestParam(value = "project_name",defaultValue = "") String projectName,
@RequestParam(value = "mid1",defaultValue = "") String mid1,
@RequestParam(value = "mid2",defaultValue = "") String mid2,
@RequestParam(value = "mid3",defaultValue = "") String mid3,
@RequestParam(value = "mid4",defaultValue = "") String mid4,
@RequestParam(value = "mid5",defaultValue = "") String mid5,
@RequestParam(value = "mid6",defaultValue = "") String mid6,
@RequestParam(value = "csite",defaultValue = "") String csite,
@RequestParam(value = "convert_id",defaultValue = "") String convertId,
@RequestParam(value = "request_id",defaultValue = "") String requestId,
@RequestParam(value = "track_id",defaultValue = "") String trackId,
@RequestParam(value = "os",defaultValue = "") String os,
@RequestParam(value = "ua",defaultValue = "") String ua,
@RequestParam(value = "geo",defaultValue = "") String geo,
@RequestParam(value = "ts",defaultValue = "") String ts,
@RequestParam(value = "model",defaultValue = "") String model,
@RequestParam(value = "imei",defaultValue = "") String imei,
@RequestParam(value = "idfa",defaultValue = "") String idfa,
@RequestParam(value = "idfa_md5",defaultValue = "") String idfaMD5,
@RequestParam(value = "oaid",defaultValue = "") String oaid,
@RequestParam(value = "oaid_md5",defaultValue = "") String oaidMD5,
@RequestParam(value = "mac",defaultValue = "") String mac,
@RequestParam(value = "callback_param",defaultValue = "") String callbackParam,
@RequestParam(value = "callback_url",defaultValue = "") String callbackUrl,
@RequestParam(value = "advertiser_id",defaultValue = "") String advertiserId,
@RequestParam(value = "tag",defaultValue = "") String tag,
@RequestParam(value = "vpoint",defaultValue = "") int vpoint
){
// 映射
JuliangMobileMonitorCallbackRequestNewV2VO vo = new JuliangMobileMonitorCallbackRequestNewV2VO(
promotionId,projectId,promotionName,projectName,mid1,mid2,mid3,mid4,mid5,mid6,
csite,convertId,requestId,trackId,os,ua,geo,ts,model,
imei,idfa,idfaMD5,oaid,oaidMD5,mac,
callbackParam,callbackUrl,advertiserId
);
// 映射 - Base 参数
if (StrUtil.isNotBlank(tag) && vpoint >= 0){
vo.setTag(tag);
vo.setVpoint(vpoint);
}
// 重点参数校验规则 - 通过则入监控回流Source库 - 较完整字段
if (CheckPlatPointParamsUtil.checkJLPlatPointV2Param(vo.getOs(), vo.getImei(), vo.getIdfa(), vo.getIdfaMD5())) {
originalityManageService.handleNewJLV2MonitorUrlCallbackDataThenSave(vo);
}
// 校验以下参数是否存在 - 入投放包库 - 部分字段
if (CheckPlatPointParamsUtil.checkMainParamForPut(vo.getOaid(), vo.getOaidMD5(), vo.getImei(), null,vo.getIdfa(), vo.getIdfaMD5(), vo.getMac())){
adTFPackageService.loadJLTFV2PackageData(vo);
}
return CommonResponse.createBySuccess();
}
/**
* V1-广1.0
*
*
* aid=__AID__&aid_name=__AID_NAME__&cid=__CID__&cid_name=__CID_NAME__&campaign_id=__CAMPAIGN_ID__&campaign_name=__CAMPAIGN_NAME__&ctype=__CTYPE__&csite=__CSITE__&convert_id=__CONVERT_ID__&request_id=__REQUEST_ID__&track_id=__TRACK_ID__&os=__OS__&ua=__UA__&geo=__GEO__&ts=__TS__&model=__MODEL__&imei=__IMEI__&idfa=__IDFA__&idfa_md5=__IDFA_MD5__&oaid=__OAID__&oaid_md5=__OAID_MD5__&mac=__MAC__&callback_param=__CALLBACK_PARAM__&callback_url=__CALLBACK_URL__&advertiser_id=__ADVERTISER_ID__&tag=&vpoint=
*/
@RequestMapping(value = "/jl/new/monitor/v1")
public CommonResponse<String> jlMonitorUrlCallbackReqUrlV1(
@RequestParam(value = "aid",defaultValue = "") String aid,
@RequestParam(value = "aid_name",defaultValue = "") String aidName,
@RequestParam(value = "cid",defaultValue = "") String cid,
@RequestParam(value = "cid_name",defaultValue = "") String cidName,
@RequestParam(value = "campaign_id",defaultValue = "") String campaignId,
@RequestParam(value = "campaign_name",defaultValue = "") String campaignName,
@RequestParam(value = "ctype",defaultValue = "") String ctype,
@RequestParam(value = "csite",defaultValue = "") String csite,
@RequestParam(value = "convert_id",defaultValue = "") String convertId,
@RequestParam(value = "request_id",defaultValue = "") String requestId,
@RequestParam(value = "track_id",defaultValue = "") String trackId,
@RequestParam(value = "os",defaultValue = "") String os,
@RequestParam(value = "ua",defaultValue = "") String ua,
@RequestParam(value = "geo",defaultValue = "") String geo,
@RequestParam(value = "ts",defaultValue = "") String ts,
@RequestParam(value = "model",defaultValue = "") String model,
@RequestParam(value = "imei",defaultValue = "") String imei,
@RequestParam(value = "idfa",defaultValue = "") String idfa,
@RequestParam(value = "idfa_md5",defaultValue = "") String idfaMD5,
@RequestParam(value = "oaid",defaultValue = "") String oaid,
@RequestParam(value = "oaid_md5",defaultValue = "") String oaidMD5,
@RequestParam(value = "mac",defaultValue = "") String mac,
@RequestParam(value = "callback_param",defaultValue = "") String callbackParam,
@RequestParam(value = "callback_url",defaultValue = "") String callbackUrl,
@RequestParam(value = "advertiser_id",defaultValue = "") String advertiserId,
@RequestParam(value = "tag",defaultValue = "") String tag,
@RequestParam(value = "vpoint",defaultValue = "") Integer vpoint
){
// 映射
JuliangMobileMonitorCallbackRequestNewV1VO vo = new JuliangMobileMonitorCallbackRequestNewV1VO(
aid,aidName,cid,cidName,campaignId,campaignName,ctype,
csite,convertId,requestId,trackId,os,ua,geo,ts,model,
imei,idfa,idfaMD5,oaid,oaidMD5,mac,
callbackParam,callbackUrl,advertiserId
);
// 映射 - Base 参数
if (StrUtil.isNotBlank(tag) && vpoint >= 0){
vo.setTag(tag);
vo.setVpoint(vpoint);
}
// 重点参数校验规则 - 通过则入监控回流Source库 - 较完整字段
if (CheckPlatPointParamsUtil.checkJLPlatPointV2Param(vo.getOs(), vo.getImei(), vo.getIdfa(), vo.getIdfaMD5())) {
originalityManageService.handleNewJLV1MonitorUrlCallbackDataThenSave(vo);
}
// 校验以下参数是否存在 - 入投放包库 - 部分字段
if (CheckPlatPointParamsUtil.checkMainParamForPut(vo.getOaid(), vo.getOaidMD5(), vo.getImei(), null,vo.getIdfa(), vo.getIdfaMD5(), vo.getMac())){
adTFPackageService.loadJLTFV1PackageData(vo);
}
return CommonResponse.createBySuccess();
}
/**
*
*
* https://developers.e.kuaishou.com/docs?docType=DSP&documentId=1938
*/
@RequestMapping(value = "/ks/new/monitor")
public CommonResponse<String> ksMonitorUrlCallbackReqUrl(
@RequestParam(value = "accountid", defaultValue = "") String accountId,
@RequestParam(value = "aid", defaultValue = "") String aid,
@RequestParam(value = "cid", defaultValue = "") String cid,
@RequestParam(value = "did", defaultValue = "") String did,
@RequestParam(value = "dname", defaultValue = "") String dName,
@RequestParam(value = "photoid", defaultValue = "")String photoId,
@RequestParam(value = "oaid", defaultValue = "") String oaid,
@RequestParam(value = "imei", defaultValue = "") String imei,
@RequestParam(value = "imeiHash", defaultValue = "") String imeiHash,
@RequestParam(value = "idfa", defaultValue = "") String idfa,
@RequestParam(value = "idfaHash", defaultValue = "") String idfaHash,
@RequestParam(value = "macBak", defaultValue = "") String macBak,
@RequestParam(value = "mac", defaultValue = "") String mac,
@RequestParam(value = "ts", defaultValue = "") String ts,
@RequestParam(value = "ua", defaultValue = "") String ua,
@RequestParam(value = "os", defaultValue = "") String os,
@RequestParam(value = "model", defaultValue = "") String model,
@RequestParam(value = "callback", defaultValue = "") String callBack,
@RequestParam(value = "ip", defaultValue = "") String ip,
@RequestParam(value = "csite", defaultValue = "") String csite,
@RequestParam(value = "ac_creative", defaultValue = "") String acCreative,
@RequestParam(value = "win_for_id", defaultValue = "") String winForId,
@RequestParam(value = "vpoint", defaultValue = "") int vpoint,
@RequestParam(value = "tag", defaultValue = "") String tag
){
KSNewMobileMonitorCallbackRequestVO vo = new KSNewMobileMonitorCallbackRequestVO(
accountId,aid,cid,did,dName,photoId,
oaid,imei,imeiHash,idfa,idfaHash,macBak,mac,
ts,ua,os,model,callBack,ip,csite,acCreative,winForId
);
// 映射 - Base 参数
if (StrUtil.isNotBlank(tag) && vpoint >= 0){
vo.setTag(tag);
vo.setVpoint(vpoint);
}
// 重点参数校验规则 - 通过则入监控回流Source库 - 较完整字段
if (CheckPlatPointParamsUtil.checkKSPlatPointParam(vo.getOs(), vo.getOaid(), vo.getImei(), vo.getImeiHash(), vo.getIdfa(),vo.getIdfaHash())) {
originalityManageService.handleNewKSMonitorUrlCallbackDataThenSave(vo);
}
// 校验以下参数是否存在 - 入投放包库 - 部分字段
if (CheckPlatPointParamsUtil.checkMainParamForPut(vo.getOaid(), null, vo.getImei(), null,vo.getIdfa(), null, vo.getMac())){
adTFPackageService.loadKSTFPackageData(vo);
}
return CommonResponse.createBySuccess();
}
/**
*
*
* http://www.test.com/notice?tag=test123&imei_md5={{IMEI_MD5}}&os={{OS}}&ip={{IP}}&ua={{UA}}&ts={{TS}}&userid={{USER_ID}}&pid={{PLAN_ID}}&uid={{UNIT_ID}}&aid={{IDEA_ID}}&click_id={{CLICK_ID}}&callback_url={{CALLBACK_URL}}
*/
@RequestMapping(value = "/bd/new/monitor")
public CommonResponse<String> bdMonitorUrlCallbackReqUrl(
@RequestParam(value = "akey", defaultValue = "") String akey,
@RequestParam(value = "sign", defaultValue = "") String sign,
@RequestParam(value = "userid", defaultValue = "") String userId,
@RequestParam(value = "aid", defaultValue = "") String aid,
@RequestParam(value = "pid", defaultValue = "") String pid,
@RequestParam(value = "uid", defaultValue = "") String uid,
@RequestParam(value = "callback_url", defaultValue = "") String callbackUrl,
@RequestParam(value = "click_id", defaultValue = "") String clickId,
@RequestParam(value = "idfa", defaultValue = "") String idfa,
@RequestParam(value = "imei", defaultValue = "") String imei,
@RequestParam(value = "oaidMD5", defaultValue = "") String oaidMD5,
@RequestParam(value = "oaid", defaultValue = "") String oaid,
@RequestParam(value = "mac", defaultValue = "") String mac,
@RequestParam(value = "ip", defaultValue = "") String ip,
@RequestParam(value = "ua", defaultValue = "") String ua,
@RequestParam(value = "os_type", defaultValue = "") String osType,
@RequestParam(value = "ts", defaultValue = "") Long ts,
@RequestParam(value = "interactionsType", defaultValue = "") String interactionsType,
@RequestParam(value = "ext_info", defaultValue = "") String extInfo,
@RequestParam(value = "vpoint", defaultValue = "") int vpoint,
@RequestParam(value = "tag", defaultValue = "") String tag
){
BDMobileMonitorCallbackRequestNewVO vo = new BDMobileMonitorCallbackRequestNewVO(
akey,sign,
userId,aid,pid,uid,callbackUrl,extInfo,clickId,
idfa,imei,oaidMD5,oaid,mac,
ip,ua,osType,ts,null,interactionsType
);
// 映射 - Base 参数
if (StrUtil.isNotBlank(tag) && vpoint >= 0){
vo.setTag(tag);
vo.setVpoint(vpoint);
}
// 重点参数校验规则 - 通过则入监控回流Source库
if (CheckPlatPointParamsUtil.checkBDPlatPointParam(vo.getOsType(), vo.getIdfa(), vo.getImei(), vo.getOaidMD5(), vo.getOaid())) {
originalityManageService.handleNewBDTMonitorUrlCallbackDataThenSave(vo);
}
// 校验以下参数是否存在 - 入投放包库 - 部分字段
if (CheckPlatPointParamsUtil.checkMainParamForPut(vo.getOaid(), vo.getOaidMD5(), null, vo.getImei(),vo.getIdfa(), null, vo.getMac())){
adTFPackageService.loadBDPackageData(vo);
}
return CommonResponse.createBySuccess();
}
/**
* 广
*
* API : https://developers.e.qq.com/docs/guide/conversion/new_version/dianjijiance
*/
@RequestMapping(value = "/gdt/new/monitor")
public CommonResponse<String> gdtMonitorUrlCallbackReqUrl(
@RequestParam(value = "account_id", defaultValue = "") String accountId,
@RequestParam(value = "click_id", defaultValue = "") String clickId,
@RequestParam(value = "click_time", defaultValue = "") String clickTime,
@RequestParam(value = "impression_time", defaultValue = "") String impressionTime,
@RequestParam(value = "campaign_id", defaultValue = "") String campaignId,
@RequestParam(value = "adgroup_id", defaultValue = "") String adgroupId,
@RequestParam(value = "ad_id", defaultValue = "") String adId,
@RequestParam(value = "ad_platform_type", defaultValue = "") String adPlatformType,
@RequestParam(value = "ad_type", defaultValue = "") String adType,
@RequestParam(value = "agency_id", defaultValue = "") String agencyId,
@RequestParam(value = "click_sku_id", defaultValue = "") String clickSkuId,
@RequestParam(value = "billing_event", defaultValue = "") String billingEvent,
@RequestParam(value = "deeplink_url", defaultValue = "") String deeplinkUrl,
@RequestParam(value = "universal_link", defaultValue = "") String universalLink,
@RequestParam(value = "page_url", defaultValue = "") String pageUrl,
@RequestParam(value = "device_os_type", defaultValue = "") String deviceOsType,
@RequestParam(value = "process_time", defaultValue = "") String processTime,
@RequestParam(value = "promoted_object_id", defaultValue = "") String promotedObjectId,
@RequestParam(value = "promoted_object_type", defaultValue = "") String promotedObjectType,
@RequestParam(value = "real_cost", defaultValue = "") String realCost,
@RequestParam(value = "request_id", defaultValue = "") String requestId,
@RequestParam(value = "impression_id", defaultValue = "") String impressionId,
@RequestParam(value = "muid", defaultValue = "") String muid,
@RequestParam(value = "hash_mac", defaultValue = "") String mac,
@RequestParam(value = "hash_android_id", defaultValue = "") String hashAndroidId,
@RequestParam(value = "ip", defaultValue = "") String ip,
@RequestParam(value = "user_agent", defaultValue = "") String userAgent,
@RequestParam(value = "callback", defaultValue = "") String callback,
@RequestParam(value = "encrypted_position_id", defaultValue = "") String encryptedPositionId,
@RequestParam(value = "hash_oaid", defaultValue = "") String oaid,
@RequestParam(value = "caid", defaultValue = "") String caid,
@RequestParam(value = "adgroup_name", defaultValue = "") String adgroupName,
@RequestParam(value = "site_set_name", defaultValue = "") String siteSetName,
@RequestParam(value = "campaign_name", defaultValue = "") String campaignName,
@RequestParam(value = "ad_name", defaultValue = "") String adName,
@RequestParam(value = "model", defaultValue = "") String model,
@RequestParam(value = "vpoint", defaultValue = "") int vpoint,
@RequestParam(value = "tag", defaultValue = "") String tag
){
GdtMobileMonitorCallbackRequestNewVO vo = new GdtMobileMonitorCallbackRequestNewVO(
accountId,clickId,clickTime,deviceOsType,
muid,oaid,mac,
campaignId,adgroupId,adId,promotedObjectId,ip,userAgent,callback,promotedObjectType
);
// 映射 - Base 参数
if (StrUtil.isNotBlank(tag) && vpoint >= 0){
vo.setTag(tag);
vo.setVpoint(vpoint);
}
// 重点参数校验规则 - 通过则入监控回流Source库
if (CheckPlatPointParamsUtil.checkGDTPlatPointParam(vo.getDeviceOsType(), vo.getMuid(), vo.getOaid())) {
originalityManageService.handleNewGDTMonitorUrlCallbackDataThenSave(vo);
}
// 校验以下参数是否存在 - 入投放包库 - 部分字段
if (CheckPlatPointParamsUtil.checkMainParamForPut(vo.getOaid(), null, vo.getMuid(), null,vo.getMuid(), null, vo.getMac())){
adTFPackageService.loadGDTPackageData(vo);
}
return CommonResponse.createBySuccess();
}
}

@ -0,0 +1,18 @@
package com.baiyee.adcallback.api.constants;
public class SpecialCheckParmConstant {
/*
*
*/
public static final String ZERO_JL_IMEI = "000000000000000";
public static final String ZERO_JL_IMEI_MD5 = "5284047f4ffb4e04824a2fd1d1f0cd62";
public static final String ZERO_JL_IDFA = "00000000-0000-0000-0000-000000000000";
public static final String ZERO_JL_IDFA_MD5 = "9f89c84a559f573636a47ff8daed0d33";
}

@ -8,6 +8,9 @@ public class TagTypeConstant {
}
/**
*
*/
public static final int JL = 0;
public static final int BD = 1;
@ -19,4 +22,22 @@ public class TagTypeConstant {
public static final int VIVO = 4;
public static final int GDT = 5;
/**
*
*/
public static final String JL_V1_STR = "jl_v1";
public static final String JL_V2_STR = "jl_v2";
public static final String BD_STR = "bd";
public static final String KS_STR = "ks";
public static final String UC_STR = "uc";
public static final String VIVO_STR = "vivo";
public static final String GDT_STR = "gdt";
}

@ -0,0 +1,59 @@
package com.baiyee.adcallback.api.constants;
/**
* Vpoint
*/
public enum VpointEnum {
/**
* 广
*/
SHOW("展示"),EFFECTIVE_POINT("有效触点"),VIDEO_PLAY("视频播放"),VIDEO_FINISH("完播"), EFFECTIVE_PLAY("有效播放"),
/**
* 广广
*/
EFFECTIVE_WEBSITE_POINT("平台有效点击"), WEBSITE_SHOW("平台有效曝光")
;
private final String status;
VpointEnum(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
public static String vPointCodeConvertStatus(int vPointCode){
String backStatus = "";
switch (vPointCode){
case 1:
backStatus = SHOW.status;
break;
case 2:
backStatus = EFFECTIVE_POINT.status;
break;
case 3:
backStatus = VIDEO_PLAY.status;
break;
case 4:
backStatus = VIDEO_FINISH.status;
break;
case 5:
backStatus = EFFECTIVE_PLAY.status;
break;
case 6:
backStatus = EFFECTIVE_WEBSITE_POINT.status;
break;
case 7:
backStatus = WEBSITE_SHOW.status;
break;
default:
System.out.println("wrong number!");
}
return backStatus;
}
}

@ -0,0 +1,142 @@
package com.baiyee.adcallback.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* VO
*
* @author q
* @date 2022/02/10
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BDMobileMonitorCallbackRequestNewVO extends MobileMonitorCallbackRequestBase implements Serializable {
/**
* 广 akey
* URLURL&sign=+akey 32md5URL&sign=
* Callback_URLURL&sign=+akey 32md5URL&sign=
*/
private String akey;
/**
* ,
*/
private String sign;
/**
* ID
*/
private String userid;
/**
* ID
*/
private String aid;
/**
* ID
*/
private String pid;
/**
* ID
*/
private String uid;
/**
* URL
*/
private String callbackUrl;
/**
* /, v2 , callType=v2使
*/
private String extInfo;
/**
*
*/
private String clickId;
/**
* IOS, IOS
*/
private String idfa;
/**
* imei_md5, Android , Android
* 32md5IMEI
* imei使md5
* imei[10bc955ac2a675d3]
* imei_md5[f703b39228c8c5cf8069051d86a20747]
*/
private String imei;
/**
* __OAID_MD5__{{OAID_MD5}}
* oaid32md5
* oaidnull
* oaid[dd8fbeef-3dce-287a-feef-e7ffbb77d495]
* oaid_md5[b4ad78e2adb010c4dbbd82cc1652337d]
*/
private String oaidMD5;
/**
* oaid, oaid[dd8fbeef-3dce-287a-feef-e7ffbb77d495]
* oaidnull
*/
private String oaid;
/**
* __MAC1__{{MAC_MD5}}
* mac32md5mac
* mac[00:0C:18:EF:FF:ED]
* mac_md5[21baa000f63c7d0f0b2cd9af8bd0eb24]
*/
private String mac;
/**
* IP
*/
private String ip;
/**
* UserAgent
*/
private String ua;
/**
* 0iOS13
*/
private String osType;
/**
*
*/
private Long ts;
/**
* , 2023.3.15线
*/
@Deprecated
private String deviceInfo;
/**
* 1
* 2
* 6
* 广1
*/
private String interactionsType;
}

@ -0,0 +1,252 @@
package com.baiyee.adcallback.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 广 VO
*
* @author q
* @date 2022/02/19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GdtMobileMonitorCallbackRequestNewVO extends MobileMonitorCallbackRequestBase implements Serializable {
/*
== ==
*/
/**
* 广id9471147
*
* , IOS -
* (, 西, , ) -
*/
private String accountId;
/**
* id24oi6xq2aaakvagnqu7a
*
* , IOS -
* (, 西, , ) -
*/
private String clickId;
/**
* 1586437362
*
* , IOS -
* (, 西, , ) -
*/
private String clickTime;
/**
* ios, android
*
* , IOS -
*/
private String deviceOsType;
/**
* idimeiidfa
* IMEImd532
* IDFA md5 32 d4b8f3898515056278ccf78a7a2cca2d
*
* , IOS -
*/
private String muid;
/**
*
*
* OAIDMSAhttp://msalliance.icoc.bz/col.jsp?id=120
*/
private String oaid;
/**
* mac ':'md5
*/
private String mac;
/**
* api
* urlurl encode广decodeposturlAMS
* http%3A%2F%2Ftracking.e.qq.com%2Fconv%3Fcb%3DxXx%252BxXx%253D%26conv_id%3D123
*
* (, 西, , ) -
*/
private String callback;
/*
== 广 ==
*/
/**
* id102043154
*/
private String campaignId;
/**
* 广id广id228691429
*/
private String adgroupId;
/**
* 广idid251986746
*/
private String adId;
/**
* id1101072624, wx69618ae091cf2c76
* , IOS -
*/
private String promotedObjectId;
/*
*/
/**
* IPV4183.226.102.120
*/
private String ip;
/**
* user_agent
*
* Dalvik%2F2.1.0+%28Linux%3B+U%3B+Android+8.0.0%3B+PIC-AL00+Build%2FHUAWEIPIC-AL00%29
*/
private String userAgent;
/**
* 广
* 12: Android广 PROMOTED_OBJECT_TYPE_APP_ANDROID
* 19: iOS广 PROMOTED_OBJECT_TYPE_APP_IOS
* 20: 广 PROMOTED_OBJECT_TYPE_EXCHANGE_APP_ANDROID_MYAPP
* 23: 广
* 25: 广
* 29: 广
* 30: 广 PROMOTED_OBJECT_TYPE_ECOMMERCE
* 31: 广
* 35: Android广PROMOTED_OBJECT_TYPE_APP_ANDROID_MYAPP
* 36: 广
* 37: QQ广 PROMOTED_OBJECT_TYPE_QQ_MESSAGE
* 39: 广 PROMOTED_OBJECT_TYPE_LOCAL_ADS_WECHAT
* 41: QQ广 PROMOTED_OBJECT_TYPE_LOCAL_ADS
* 43: 线 PROMOTED_OBJECT_TYPE_LEAD_AD
* 45: QQ PROMOTED_OBJECT_TYPE_QQ_BROWSER_MINI_PROGRAM
* 46: 广 PROMOTED_OBJECT_TYPE_MINI_GAME_WECHAT
* 47: 广 PRODUCT_TYPE_WECHAT_PAY_COUPON
* 49: QQ广 PRODUCT_TYPE_WECHAT_PAY_COUPON
* 1000: 广 PROMOTED_OBJECT_TYPE_LINK
*/
private String promotedObjectType;
/**
* Android & IOS
*/
public GdtMobileMonitorCallbackRequestNewVO(String accountId, String clickId, String clickTime, String deviceOsType,
String muid,String oaid, String mac, String campaignId, String adgroupId, String adId, String promotedObjectId,
String ip, String userAgent, String callback, String promotedObjectType) {
this.accountId = accountId;
this.clickId = clickId;
this.clickTime = clickTime;
this.deviceOsType = deviceOsType;
this.muid = muid;
this.oaid = oaid;
this.mac =mac;
this.campaignId = campaignId;
this.adgroupId = adgroupId;
this.adId = adId;
this.promotedObjectId = promotedObjectId;
this.ip = ip;
this.userAgent = userAgent;
this.callback = callback;
this.promotedObjectType = promotedObjectType;
}
/**
* (, 西, , )
* todo main
*/
public GdtMobileMonitorCallbackRequestNewVO(String accountId, String clickId, String clickTime, String callback) {
this.accountId = accountId;
this.clickId = clickId;
this.clickTime = clickTime;
this.callback = callback;
}
/*
fixme
*/
private String impressionTime;
private String adPlatformType;
private String adType;
private String agencyId;
private String clickSkuId;
private String billingEvent;
private String deeplinkUrl;
private String universalLink;
private String pageUrl;
private String processTime;
private String realCost;
private String requestId;
private String impressionId;
private String imei;
private String encryptedPositionId;
private String caid;
private String adgroupName;
private String siteSetName;
private String campaignName;
private String adName;
private String model;
}

@ -0,0 +1,82 @@
package com.baiyee.adcallback.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* v1.0 vo
*
* @author q
* @date 2022/01/07
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JuliangMobileMonitorCallbackRequestNewV1VO extends MobileMonitorCallbackRequestBase implements Serializable {
/**
* 广1.0
* 广id
*
*/
private String aid;
/**
* 广1.0
* 广
*
*/
private String aidName;
/**
* 广1.0
* 广 id
*
*/
private String cid;
/**
* 广1.0
* 广
*
*/
private String cidName;
/**
* 广1.0
* 广 id
*
*/
private String campaignId;
/**
* 广1.0
* 广
*
*/
private String campaignName;
private String ctype;
private String csite;
private String convertId;
private String requestId;
private String trackId;
private String os;
private String ua;
private String geo;
private String ts;
private String model;
private String imei;
private String idfa;
private String idfaMD5;
private String oaid;
private String oaidMD5;
private String mac;
private String callbackParam;
private String callbackUrl;
private String advertiserId;
}

@ -0,0 +1,209 @@
package com.baiyee.adcallback.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* juliang vo
*
* @link {https://open.oceanengine.com/labels/7/docs/1696710655781900}
*
* @author q
* @date 2022/01/07
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JuliangMobileMonitorCallbackRequestNewV2VO extends MobileMonitorCallbackRequestBase implements Serializable {
/**
* 广
* 广广ID
*
*/
private String promotionId;
/**
* 广
* 广ID
*
*/
private String projectId;
/**
* 广
* 广广
*
*/
private String promotionName;
/**
* 广
* 广
*
*/
private String projectName;
/**
* 广
* id
*
*/
private String mid1;
/**
* 广
* id
*
*/
private String mid2;
/**
* 广
* id
*
*/
private String mid3;
/**
* 广
* id
*
*/
private String mid4;
/**
* 广
* id
*
*/
private String mid5;
/**
* 广
* id
*
*/
private String mid6;
/**
* 广
*/
private String csite;
/**
* id
* 1-1000080000-110001
* 西10001-10099
* 30001-30099
* 40001-40099
* 26001-26099
* 穿广800000000
* 穿广900000000
* 广33013
* 38016
*/
private String convertId;
/**
* id
*/
private String requestId;
/**
* id&idmd5,16
*/
private String trackId;
/**
* ,
* 0
* IOS1
* 3
*/
private String os;
/**
* (User Agent)
*/
private String ua;
/**
*
* :latitudelongitudeprecise,
* 1西 x (35.7x122.4x100.0
*/
private String geo;
/**
* 广
*/
private String ts;
/**
*
*
* iPhone12,2 (urlencodeiPhone12%2c2)iPhone X (urlencodeiPhone+X)SM-A750GN (urlencodeSM-A750GN)
*/
private String model;
/**
* ID md5 32
* imei 868823031739689 imei md5 0c2bd03c39f19845bf54ea0abafae70eimeiimei0md5
*/
private String imei;
/**
* IOS 6+id32
* 4FCFEFA1-096D-4176-B352-1870ED6DB77700000000-0000-0000-0000-000000000000idfaidfa0
*/
private String idfa;
/**
* IOS 6+idmd532
* 09c593c62a6074ae5f859e97a222c0e8
* idfa0MD5
*/
private String idfaMD5;
/**
* Android Q32
* 97e7ef3f-e5f2-d0b8-ccfc-f79bbeaf4841oaidoaid
*/
private String oaid;
/**
* Android Qmd532
* :87f8274c36eb73fabcbf143a10eca6a4oaid
*
*/
private String oaidMD5;
/**
* mac,,:md5
* mac34:d7:12:9b:3a:89 34d7129b3a8934D7129B3A89MD5:df97bc5021e14256e141b2f036df5a3c
*/
private String mac;
/**
* 广
*/
private String callbackParam;
/**
* url广使
*
*/
private String callbackUrl;
/**
* 广id
*
*/
private String advertiserId;
}

@ -0,0 +1,138 @@
package com.baiyee.adcallback.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* VO
*
* @author q
* @date 2022/02/10
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class KSNewMobileMonitorCallbackRequestVO extends MobileMonitorCallbackRequestBase implements Serializable {
/**
* 广ID, 12345
*/
private String accountId;
/**
* 广ID, 2656338
*/
private String aid;
/**
* 广ID, 2233720321234150IDint32广int64广
*/
private String cid;
/**
* 广ID, 223372036854775000
*/
private String did;
/**
* 广, --18
*/
private String dName;
/**
* ID
*/
private String photoId;
/**
* __OAID2__ AndroidMD5使
*/
private String oaid;
/**
* __IMEI2__ / __IMEI4__ 15 IMEI 860576038225452 MD5广imei
*/
private String imei;
/**
* __IMEI3__ AndroidIMEISHA1 BF776E787C360D5B031BF1C877BCDF42BEFF456D
*/
private String imeiHash;
/**
* __IDFA2__ iOSidfaMD532+4-32ED3EE5-9968-4F25-A015-DE3CFF569568MD5
*/
private String idfa;
/**
* __IDFA3__ iOSidfaSHA1-SHA1
*/
private String idfaHash;
/**
* __MAC2__, MAC MD5
*/
private String macBak;
/**
* __MAC3__ , MAC MD5
*/
private String mac;
/**
* UTC1970 , 1545973272000
*/
private String ts;
/**
* 7.6.10UA
*/
private String ua;
/**
* OS 1-iOS0-
*/
private String os;
/**
*
*/
private String model;
/**
* __CALLBACK__ URL10k http%3a%2f%2fad.partner.gifshow.com%2ftrack%2factivate%3fcallback%3dDHAJASALKFyk1uCKBYCyXp-iIDS-uHDd_a5SJ9Dbwkqv46dahahd87TW7hhkJkd
*/
private String callBack;
/**
* IPIPV4, 123.89.234.34
*/
private String ip;
/**
* 广,
* 1-广2-广广3-广5-广6-广7-广广27- 39-广 24-
*/
private String csite;
/**
* 1
*/
private String acCreative;
/**
* winfoidmarketing api word_info_idwinfoid
* 16015060
*/
private String winForId;
}

@ -14,7 +14,21 @@ import lombok.Data;
public class MobileMonitorCallbackRequestBase{
/**
*
* - tag
*/
private String tag;
/**
* 广
*
*
*
* - 1
* - 2
* - 3
* - 4
* - 5
*/
private Integer vpoint;
}

@ -0,0 +1,32 @@
package com.baiyee.adcallback.repository;
import cn.hutool.core.date.DateTime;
import com.baiyee.adcallback.api.dto.PlateFormDTO;
import com.baiyee.adcallback.repository.entity.TbBdBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbBdNewBackdataEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface TbBDNewBackdataEntityRepository extends JpaRepository<TbBdNewBackdataEntity, Long> {
/**
*
* @param imeiStrFirst
* @param imeiSecond
* @param startDate
* @param endDate
* @param tag
* @return
*/
@Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " +
" TbBdBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " +
"and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag")
List<PlateFormDTO> queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List<String> tag);
}

@ -0,0 +1,32 @@
package com.baiyee.adcallback.repository;
import cn.hutool.core.date.DateTime;
import com.baiyee.adcallback.api.dto.PlateFormDTO;
import com.baiyee.adcallback.repository.entity.TbGdtBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbGdtNewBackdataEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface TbGdtNewBackdataEntityRepository extends JpaRepository<TbGdtNewBackdataEntity, Long> {
/**
*
* @param imeiStrFirst
* @param imeiSecond
* @param startDate
* @param endDate
* @param models
* @param tag
* @return
*/
@Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(muid as imei,tag as tag) from " +
" TbGdtBackdataEntity where muid != :imeiStrFirst and muid != :imeiSecond " +
"and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag and deviceOsType = :models group by muid,tag")
List<PlateFormDTO> queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List<String> tag,@Param("models") String models);
}

@ -0,0 +1,39 @@
package com.baiyee.adcallback.repository;
import cn.hutool.core.date.DateTime;
import com.baiyee.adcallback.api.dto.PlateFormDTO;
import com.baiyee.adcallback.repository.entity.TbJLBackDataV1Entity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Repository
public interface TbJLV1BackdataEntityRepository extends JpaRepository<TbJLBackDataV1Entity, Long> {
@Query(value = "SELECT imei FROM tb_jl_v1_backdata WHERE imei != '' AND imei != '__IMEI__'", nativeQuery = true)
List<String> queryAllImeis();
@Query(value = "SELECT imei FROM tb_jl_v1backdata WHERE imei != '' AND imei != '__IMEI__' AND gmt_create > :startDate AND gmt_create < :endDate", nativeQuery = true)
List<String> queryAllImeiByDate(Date startDate, Date endDate);
/**
*
* @param imeiStrFirst
* @param imeiSecond
* @param startDate
* @param endDate
* @param tag
* @return
*/
@Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " +
" TbJlBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " +
"and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag")
List<PlateFormDTO> queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List<String> tag);
}

@ -0,0 +1,33 @@
package com.baiyee.adcallback.repository;
import cn.hutool.core.date.DateTime;
import com.baiyee.adcallback.api.dto.PlateFormDTO;
import com.baiyee.adcallback.repository.entity.TbJLBackDataV2Entity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Repository
public interface TbJLV2BackdataEntityRepository extends JpaRepository<TbJLBackDataV2Entity, Long> {
@Query(value = "SELECT imei FROM tb_jl_v2_backdata WHERE imei != '' AND imei != '__IMEI__'", nativeQuery = true)
List<String> queryAllImeis();
@Query(value = "SELECT imei FROM tb_jl_v2_backdata WHERE imei != '' AND imei != '__IMEI__' AND gmt_create > :startDate AND gmt_create < :endDate", nativeQuery = true)
List<String> queryAllImeiByDate(Date startDate, Date endDate);
/**
*
*/
@Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " +
" TbJlBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " +
"and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag")
List<PlateFormDTO> queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List<String> tag);
}

@ -0,0 +1,31 @@
package com.baiyee.adcallback.repository;
import cn.hutool.core.date.DateTime;
import com.baiyee.adcallback.api.dto.PlateFormDTO;
import com.baiyee.adcallback.repository.entity.TbKSNewBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbKsBackdataEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface TbKSNewBackdataEntityRepository extends JpaRepository<TbKSNewBackdataEntity, Long> {
/**
*
* @param imeiStrFirst
* @param imeiSecond
* @param startDate
* @param endDate
* @param tag
* @return
*/
@Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " +
" TbKsBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " +
"and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag")
List<PlateFormDTO> queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List<String> tag);
}

@ -0,0 +1,114 @@
package com.baiyee.adcallback.repository.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.sql.Timestamp;
@Data
@Entity
@Table(name = "tb_bd_new_backdata", schema = "db_ad", catalog = "")
@EntityListeners(AuditingEntityListener.class)
public class TbBdNewBackdataEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "id", nullable = false)
private long id;
@CreatedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "gmt_create", nullable = false)
private Timestamp gmtCreate;
@LastModifiedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "gmt_modify", nullable = false)
private Timestamp gmtModify;
@LastModifiedBy
@Column(name = "operator", nullable = false, length = 255)
private String operator;
@Basic
@Column(name = "userid", nullable = false, length = 255)
private String userid;
@Basic
@Column(name = "aid", nullable = false, length = 255)
private String aid;
@Basic
@Column(name = "pid", nullable = false, length = 255)
private String pid;
@Basic
@Column(name = "uid", nullable = false, length = 255)
private String uid;
@Basic
@Column(name = "callback_url", nullable = false, length = -1)
private String callbackUrl;
@Basic
@Column(name = "ext_info", nullable = false, length = -1)
private String extInfo;
@Basic
@Column(name = "click_id", nullable = false, length = 255)
private String clickId;
@Basic
@Column(name = "idfa", nullable = false, length = 255)
private String idfa;
@Basic
@Column(name = "imei", nullable = false, length = 255)
private String imei;
@Basic
@Column(name = "oaid_MD5", nullable = false, length = 255)
private String oaidMD5;
@Basic
@Column(name = "oaid", nullable = false, length = 255)
private String oaid;
@Basic
@Column(name = "mac", nullable = false, length = 255)
private String mac;
@Basic
@Column(name = "ip", nullable = false, length = 255)
private String ip;
@Basic
@Column(name = "ua", nullable = false, length = 255)
private String ua;
@Basic
@Column(name = "os_type", nullable = false, length = 255)
private String osType;
@Basic
@Column(name = "ts", nullable = false)
private long ts;
@Basic
@Column(name = "device_info", nullable = false, length = 255)
private String deviceInfo;
@Basic
@Column(name = "interactions_type", nullable = false, length = 255)
private String interactionsType;
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
/**
* 广
*
* - 1
* - 2
* - 3
* - 4
* - 5
*/
@Basic
@Column(name = "vpoint", nullable = false)
private Integer vpoint;
}

@ -0,0 +1,126 @@
package com.baiyee.adcallback.repository.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.sql.Timestamp;
@Entity
@Table(name = "tb_gdt_new_backdata", schema = "db_ad", catalog = "")
@EntityListeners(AuditingEntityListener.class)
@Data
public class TbGdtNewBackdataEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "id", nullable = false)
private long id;
@CreatedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Basic
@Column(name = "gmt_create", nullable = false)
private Timestamp gmtCreate;
@LastModifiedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Basic
@Column(name = "gmt_modify", nullable = false)
private Timestamp gmtModify;
@LastModifiedBy
@Basic
@Column(name = "operator", nullable = false, length = 255)
private String operator;
@Basic
@Column(name = "account_id", nullable = false, length = 255)
private String accountId;
@Basic
@Column(name = "click_id", nullable = false, length = 255)
private String clickId;
@Basic
@Column(name = "click_time", nullable = false, length = 255)
private String clickTime;
@Basic
@Column(name = "campaign_id", nullable = false, length = 255)
private String campaignId;
@Basic
@Column(name = "adgroup_id", nullable = false, length = 255)
private String adgroupId;
@Basic
@Column(name = "ad_id", nullable = false, length = 255)
private String adId;
@Basic
@Column(name = "device_os_type", nullable = false, length = 255)
private String deviceOsType;
@Basic
@Column(name = "promoted_object_id", nullable = false, length = 255)
private String promotedObjectId;
@Basic
@Column(name = "promoted_object_type", nullable = false, length = 255)
private String promotedObjectType;
@Basic
@Column(name = "imei", nullable = false, length = 255)
private String imei;
@Basic
@Column(name = "idfa", nullable = false, length = 255)
private String idfa;
@Basic
@Column(name = "mac", nullable = false, length = 255)
private String mac;
@Basic
@Column(name = "ip", nullable = false, length = 255)
private String ip;
@Basic
@Column(name = "user_agent", nullable = false, length = 512)
private String userAgent;
@Basic
@Column(name = "callback", nullable = false, length = 255)
private String callback;
@Basic
@Column(name = "oaid", nullable = false, length = 255)
private String oaid;
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
/**
* 广
*
* - 1
* - 2
* - 3
* - 4
* - 5
*/
@Basic
@Column(name = "vpoint", nullable = false)
private Integer vpoint;
}

@ -0,0 +1,169 @@
package com.baiyee.adcallback.repository.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.util.Date;
/**
* jl backdata
*
* @author q
* @date 2022/01/07
*/
@Entity
@Table(name = "tb_jl_v1_backdata", schema = "db_ad", catalog = "")
@Data
@EntityListeners(AuditingEntityListener.class)
public class TbJLBackDataV1Entity {
@Id
@Column(name = "id", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@CreatedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "gmt_create", nullable = false)
private Date gmtCreate;
@LastModifiedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "gmt_modify", nullable = false)
private Date gmtModify;
@LastModifiedBy
@Column(name = "operator", nullable = false, length = 255)
private String operator;
@Basic
@Column(name = "aid", nullable = false, length = 255)
private String aid;
@Basic
@Column(name = "aid_name", nullable = false, length = 255)
private String aidName;
@Basic
@Column(name = "cid", nullable = false, length = 255)
private String cid;
@Basic
@Column(name = "cid_name", nullable = false, length = 255)
private String cidName;
@Basic
@Column(name = "campaign_id", nullable = false, length = 255)
private String campaignId;
@Basic
@Column(name = "campaign_name", nullable = false, length = 255)
private String campaignName;
@Basic
@Column(name = "ctype", nullable = false, length = 255)
private String ctype;
@Basic
@Column(name = "csite", nullable = false, length = 255)
private String csite;
@Basic
@Column(name = "convert_id", nullable = false, length = 255)
private String convertId;
@Basic
@Column(name = "request_id", nullable = false, length = 255)
private String requestId;
@Basic
@Column(name = "track_id", nullable = false, length = 255)
private String trackId;
@Basic
@Column(name = "os", nullable = false, length = 255)
private String os;
@Basic
@Column(name = "ua", nullable = false, length = 255)
private String ua;
@Basic
@Column(name = "geo", nullable = false, length = 255)
private String geo;
@Basic
@Column(name = "ts", nullable = false, length = 255)
private String ts;
@Basic
@Column(name = "model", nullable = false, length = 255)
private String model;
@Basic
@Column(name = "imei", nullable = false, length = 255)
private String imei;
@Basic
@Column(name = "idfa", nullable = false, length = 255)
private String idfa;
@Basic
@Column(name = "idfa_md5", nullable = false, length = 255)
private String idfaMD5;
@Basic
@Column(name = "oaid", nullable = false, length = 255)
private String oaid;
@Basic
@Column(name = "oaid_md5", nullable = false, length = 255)
private String oaidMD5;
@Basic
@Column(name = "mac", nullable = false, length = 255)
private String mac;
@Basic
@Column(name = "callback_param", nullable = false, length = 255)
private String callbackParam;
@Basic
@Column(name = "callback_url", nullable = false, length = 255)
private String callbackUrl;
@Basic
@Column(name = "advertiser_id", nullable = false, length = 255)
private String advertiserId;
/**
* - tag
*/
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
/**
* 广
*
* - 1
* - 2
* - 3
* - 4
* - 5
*/
@Basic
@Column(name = "vpoint", nullable = false)
private Integer vpoint;
}

@ -0,0 +1,179 @@
package com.baiyee.adcallback.repository.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.util.Date;
/**
*
* @author q
*/
@Entity
@Table(name = "tb_jl_v2_backdata", schema = "db_ad", catalog = "")
@Data
@EntityListeners(AuditingEntityListener.class)
public class TbJLBackDataV2Entity {
@Id
@Column(name = "id", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@CreatedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "gmt_create", nullable = false)
private Date gmtCreate;
@LastModifiedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "gmt_modify", nullable = false)
private Date gmtModify;
@LastModifiedBy
@Column(name = "operator", nullable = false, length = 255)
private String operator;
@Basic
@Column(name = "promotion_id", nullable = false, length = 255)
private String promotionId;
@Basic
@Column(name = "project_id", nullable = false, length = 255)
private String projectId;
@Basic
@Column(name = "promotion_name", nullable = false, length = 255)
private String promotionName;
@Basic
@Column(name = "project_name", nullable = false, length = 255)
private String projectName;
@Basic
@Column(name = "mid1", nullable = false, length = 255)
private String mid1;
@Basic
@Column(name = "mid2", nullable = false, length = 255)
private String mid2;
@Basic
@Column(name = "mid3", nullable = false, length = 255)
private String mid3;
@Basic
@Column(name = "mid4", nullable = false, length = 255)
private String mid4;
@Basic
@Column(name = "mid5", nullable = false, length = 255)
private String mid5;
@Basic
@Column(name = "mid6", nullable = false, length = 255)
private String mid6;
@Basic
@Column(name = "csite", nullable = false, length = 255)
private String csite;
@Basic
@Column(name = "convert_id", nullable = false, length = 255)
private String convertId;
@Basic
@Column(name = "request_id", nullable = false, length = 255)
private String requestId;
@Basic
@Column(name = "track_id", nullable = false, length = 255)
private String trackId;
@Basic
@Column(name = "os", nullable = false, length = 255)
private String os;
@Basic
@Column(name = "ua", nullable = false, length = 255)
private String ua;
@Basic
@Column(name = "geo", nullable = false, length = 255)
private String geo;
@Basic
@Column(name = "ts", nullable = false, length = 255)
private String ts;
@Basic
@Column(name = "model", nullable = false, length = 255)
private String model;
@Basic
@Column(name = "imei", nullable = false, length = 255)
private String imei;
@Basic
@Column(name = "idfa", nullable = false, length = 255)
private String idfa;
@Basic
@Column(name = "idfa_md5", nullable = false, length = 255)
private String idfaMD5;
@Basic
@Column(name = "oaid", nullable = false, length = 255)
private String oaid;
@Basic
@Column(name = "oaid_md5", nullable = false, length = 255)
private String oaidMD5;
@Basic
@Column(name = "mac", nullable = false, length = 255)
private String mac;
@Basic
@Column(name = "callback_param", nullable = false, length = 255)
private String callbackParam;
@Basic
@Column(name = "callback_url", nullable = false, length = 255)
private String callbackUrl;
@Basic
@Column(name = "advertiser_id", nullable = false, length = 255)
private String advertiserId;
/**
* - tag
*/
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
/**
* 广
*
* - 1
* - 2
* - 3
* - 4
* - 5
*/
@Basic
@Column(name = "vpoint", nullable = false)
private Integer vpoint;
}

@ -0,0 +1,141 @@
package com.baiyee.adcallback.repository.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.sql.Timestamp;
@Entity
@Table(name = "tb_ks_new_backdata", schema = "db_ad", catalog = "")
@EntityListeners(AuditingEntityListener.class)
@Data
public class TbKSNewBackdataEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "id", nullable = false)
private long id;
@CreatedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Basic
@Column(name = "gmt_create", nullable = false)
private Timestamp gmtCreate;
@LastModifiedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Basic
@Column(name = "gmt_modify", nullable = false)
private Timestamp gmtModify;
@LastModifiedBy
@Basic
@Column(name = "operation", nullable = false, length = 255)
private String operation;
@Basic
@Column(name = "account_id", nullable = false, length = 255)
private String accountId;
@Basic
@Column(name = "aid", nullable = false, length = 255)
private String aid;
@Basic
@Column(name = "cid", nullable = false, length = 255)
private String cid;
@Basic
@Column(name = "did", nullable = false, length = 255)
private String did;
@Basic
@Column(name = "dname", nullable = false, length = 255)
private String dName;
@Basic
@Column(name = "photo_id", nullable = false, length = 255)
private String photoId;
@Basic
@Column(name = "oaid", nullable = false, length = 255)
private String oaid;
@Basic
@Column(name = "imei", nullable = false, length = 255)
private String imei;
@Basic
@Column(name = "imei_hash", nullable = false, length = 255)
private String imeiHash;
@Basic
@Column(name = "idfa", nullable = false, length = 255)
private String idfa;
@Basic
@Column(name = "idfa_hash", nullable = false, length = 255)
private String idfaHash;
@Basic
@Column(name = "mac_bak", nullable = false, length = 255)
private String macBak;
@Basic
@Column(name = "mac", nullable = false, length = 255)
private String mac;
@Basic
@Column(name = "ts", nullable = false, length = 255)
private String ts;
@Basic
@Column(name = "ua", nullable = false, length = 255)
private String ua;
@Basic
@Column(name = "os", nullable = false, length = 255)
private String os;
@Basic
@Column(name = "model", nullable = false, length = 255)
private String model;
@Basic
@Column(name = "call_back", nullable = false, length = 255)
private String callBack;
@Basic
@Column(name = "ip", nullable = false, length = 255)
private String ip;
@Basic
@Column(name = "csite", nullable = false, length = 255)
private String csite;
@Basic
@Column(name = "ac_creative", nullable = false, length = 255)
private String acCreative;
@Basic
@Column(name = "win_for_id", nullable = false, length = 255)
private String winForId;
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
/**
* 广
*
* - 1
* - 2
* - 3
* - 4
* - 5
*/
@Basic
@Column(name = "vpoint", nullable = false)
private Integer vpoint;
}

@ -1,12 +1,30 @@
package com.baiyee.adcallback.service;
import com.baiyee.adcallback.api.vo.*;
/**
* 广
* 广
*
* @author q
* @date 2022/01/07
*/
public interface AdOriginalityManageService {
void handleNewBDTMonitorUrlCallbackDataThenSave(BDMobileMonitorCallbackRequestNewVO vo);
void handleNewKSMonitorUrlCallbackDataThenSave(KSNewMobileMonitorCallbackRequestVO vo);
void handleNewGDTMonitorUrlCallbackDataThenSave(GdtMobileMonitorCallbackRequestNewVO vo);
void handleNewJLV2MonitorUrlCallbackDataThenSave(JuliangMobileMonitorCallbackRequestNewV2VO vo);
void handleNewJLV1MonitorUrlCallbackDataThenSave(JuliangMobileMonitorCallbackRequestNewV1VO vo);
/**
*
*/

@ -0,0 +1,17 @@
package com.baiyee.adcallback.service;
import com.baiyee.adcallback.api.vo.*;
public interface AdTFPackageService {
void loadBDPackageData(BDMobileMonitorCallbackRequestNewVO vo);
void loadGDTPackageData(GdtMobileMonitorCallbackRequestNewVO vo);
void loadJLTFV1PackageData(JuliangMobileMonitorCallbackRequestNewV1VO vo);
void loadJLTFV2PackageData(JuliangMobileMonitorCallbackRequestNewV2VO vo);
void loadKSTFPackageData(KSNewMobileMonitorCallbackRequestVO vo);
}

@ -0,0 +1,54 @@
package com.baiyee.adcallback.service.impl;
import com.baiyee.adcallback.api.constants.VpointEnum;
import com.baiyee.adcallback.api.vo.*;
import com.baiyee.adcallback.service.AdTFPackageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class AdJLTFPackageServiceImpl implements AdTFPackageService {
@Override
public void loadBDPackageData(BDMobileMonitorCallbackRequestNewVO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdJLTFPackageServiceImpl|loadBDPackageData, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
// TODO: 2023/5/26 0026
}
@Override
public void loadKSTFPackageData(KSNewMobileMonitorCallbackRequestVO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdJLTFPackageServiceImpl|loadKSTFPackageData, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
// TODO: 2023/5/26 0026
}
@Override
public void loadGDTPackageData(GdtMobileMonitorCallbackRequestNewVO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdJLTFPackageServiceImpl|loadGDTPackageData, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
// TODO: 2023/5/26 0026
}
@Override
public void loadJLTFV1PackageData(JuliangMobileMonitorCallbackRequestNewV1VO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdJLTFPackageServiceImpl|loadJLTFV1PackageData, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
// TODO: 2023/5/18 0018
}
@Override
public void loadJLTFV2PackageData(JuliangMobileMonitorCallbackRequestNewV2VO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdJLTFPackageServiceImpl|loadJLTFV2PackageData, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
// TODO: 2023/5/18 0018
}
}

@ -1,6 +1,10 @@
package com.baiyee.adcallback.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baiyee.adcallback.api.constants.VpointEnum;
import com.baiyee.adcallback.api.vo.*;
import com.baiyee.adcallback.config.pojo.convert.*;
import com.baiyee.adcallback.repository.*;
import com.baiyee.adcallback.repository.entity.*;
@ -31,15 +35,117 @@ public class AdOriginalityManageServiceImpl implements AdOriginalityManageServic
private final TbGdtBackdataEntityRepository gdtBackdataEntityRepository;
public AdOriginalityManageServiceImpl(TbJlBackdataEntityRepository repository, TbBdBackdataEntityRepository bdBackdataEntityRepository, TbUcBackdataEntityRepository tbUcBackdataEntityRepository, TbKsBackdataEntityRepository ksBackdataEntityRepository, TbVivoBackdataEntityRepository vivoBackdataEntityRepository, TbGdtBackdataEntityRepository gdtBackdataEntityRepository) {
private final TbJLV2BackdataEntityRepository jlv2BackdataEntityRepository;
private final TbJLV1BackdataEntityRepository jlv1BackdataEntityRepository;
private final TbGdtNewBackdataEntityRepository tbGdtNewBackdataEntityRepository;
private final TbKSNewBackdataEntityRepository tbKSNewBackdataEntityRepository;
private final TbBDNewBackdataEntityRepository tbBDNewBackdataEntityRepository;
public AdOriginalityManageServiceImpl(TbJlBackdataEntityRepository repository, TbBdBackdataEntityRepository bdBackdataEntityRepository, TbUcBackdataEntityRepository tbUcBackdataEntityRepository, TbKsBackdataEntityRepository ksBackdataEntityRepository, TbVivoBackdataEntityRepository vivoBackdataEntityRepository, TbGdtBackdataEntityRepository gdtBackdataEntityRepository, TbJLV2BackdataEntityRepository jlv2BackdataEntityRepository, TbJLV1BackdataEntityRepository jlv1BackdataEntityRepository, TbGdtNewBackdataEntityRepository tbGdtNewBackdataEntityRepository, TbKSNewBackdataEntityRepository tbKSNewBackdataEntityRepository, TbBDNewBackdataEntityRepository tbBDNewBackdataEntityRepository) {
this.repository = repository;
this.bdBackdataEntityRepository = bdBackdataEntityRepository;
this.tbUcBackdataEntityRepository = tbUcBackdataEntityRepository;
this.ksBackdataEntityRepository = ksBackdataEntityRepository;
this.vivoBackdataEntityRepository = vivoBackdataEntityRepository;
this.gdtBackdataEntityRepository = gdtBackdataEntityRepository;
this.jlv2BackdataEntityRepository = jlv2BackdataEntityRepository;
this.jlv1BackdataEntityRepository = jlv1BackdataEntityRepository;
this.tbGdtNewBackdataEntityRepository = tbGdtNewBackdataEntityRepository;
this.tbKSNewBackdataEntityRepository = tbKSNewBackdataEntityRepository;
this.tbBDNewBackdataEntityRepository = tbBDNewBackdataEntityRepository;
}
@Override
public void handleNewBDTMonitorUrlCallbackDataThenSave(BDMobileMonitorCallbackRequestNewVO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdOriginalityManageServiceImpl|handleNewBDTMonitorUrlCallbackDataThenSave, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
TbBdNewBackdataEntity backDataEntity = new TbBdNewBackdataEntity();
// 数据入库
BeanUtil.copyProperties(vo, backDataEntity);
tbBDNewBackdataEntityRepository.save(backDataEntity);
}
@Override
public void handleNewKSMonitorUrlCallbackDataThenSave(KSNewMobileMonitorCallbackRequestVO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdOriginalityManageServiceImpl|handleNewKSMonitorUrlCallbackDataThenSave, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
TbKSNewBackdataEntity backDataEntity = new TbKSNewBackdataEntity();
// 数据入库
BeanUtil.copyProperties(vo, backDataEntity);
tbKSNewBackdataEntityRepository.save(backDataEntity);
}
@Override
public void handleNewGDTMonitorUrlCallbackDataThenSave(GdtMobileMonitorCallbackRequestNewVO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdOriginalityManageServiceImpl|handleNewGDTMonitorUrlCallbackDataThenSave, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
TbGdtNewBackdataEntity backDataEntity = new TbGdtNewBackdataEntity();
// 区分 安卓 还是 IOS ios, android
if (StrUtil.isNotBlank(vo.getDeviceOsType()) && StrUtil.equalsIgnoreCase("android", vo.getDeviceOsType())){
backDataEntity.setImei(vo.getMuid());
}
if (StrUtil.isNotBlank(vo.getDeviceOsType()) && StrUtil.equalsIgnoreCase("ios", vo.getDeviceOsType())){
backDataEntity.setIdfa(vo.getMuid());
}
// 数据入库
BeanUtil.copyProperties(vo, backDataEntity);
tbGdtNewBackdataEntityRepository.save(backDataEntity);
}
/**
* JL - v2 source
*/
@Override
public void handleNewJLV2MonitorUrlCallbackDataThenSave(JuliangMobileMonitorCallbackRequestNewV2VO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdOriginalityManageServiceImpl|handleNewJLV2MonitorUrlCallbackDataThenSave, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
TbJLBackDataV2Entity dataV2Entity = new TbJLBackDataV2Entity();
// 数据入库
BeanUtil.copyProperties(vo, dataV2Entity);
jlv2BackdataEntityRepository.save(dataV2Entity);
}
/**
* JL - v1 source
*/
@Override
public void handleNewJLV1MonitorUrlCallbackDataThenSave(JuliangMobileMonitorCallbackRequestNewV1VO vo) {
// log - 埋点
log.info("================================= [finish check, do data loading, AdOriginalityManageServiceImpl|handleNewJLV1MonitorUrlCallbackDataThenSave, tag is {} , vpoint is {}] =================================",
vo.getTag(), VpointEnum.vPointCodeConvertStatus(vo.getVpoint()));
TbJLBackDataV1Entity dataV1Entity = new TbJLBackDataV1Entity();
// 数据入库
BeanUtil.copyProperties(vo, dataV1Entity);
jlv1BackdataEntityRepository.save(dataV1Entity);
}
@Override
public void handleMonitorUrlCallbackDataThenSave() {

@ -0,0 +1,151 @@
package com.baiyee.adcallback.tools;
import cn.hutool.core.util.StrUtil;
import com.baiyee.adcallback.api.constants.SpecialCheckParmConstant;
import com.baiyee.adcallback.api.vo.JuliangMobileMonitorCallbackRequestNewV2VO;
import lombok.extern.slf4j.Slf4j;
/**
*
*/
@Slf4j
public class CheckPlatPointParamsUtil {
private CheckPlatPointParamsUtil(){}
/**
*
*/
public static boolean checkBDPlatPointParam(String os, String idfa, String imei, String oaidMD5, String oaid) {
// 安卓
if (StrUtil.equalsIgnoreCase("0", os) && (StrUtil.isBlank(imei) || StrUtil.isBlank(oaid) || StrUtil.isBlank(oaidMD5))){
return Boolean.FALSE;
}
// ios
if (StrUtil.equalsIgnoreCase("1", os) && StrUtil.isBlank(idfa)){
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/**
*
*/
public static boolean checkKSPlatPointParam(String os, String oaid, String imei, String imeiHash, String idfa, String idfaHash) {
// 安卓的
// FIXME: 2023/5/26 0026 imeiHash 目前不是很通用还是不存了
if (StrUtil.equalsIgnoreCase("0", os) && (StrUtil.isBlank(imei) || StrUtil.isBlank(oaid))){
return Boolean.FALSE;
}
// ios
if (StrUtil.equalsIgnoreCase("1", os) && StrUtil.isBlank(idfa)){
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/**
* 广
*/
public static boolean checkGDTPlatPointParam(String os, String muid, String oaid){
// 安卓的
if (StrUtil.equalsIgnoreCase("android", os) && (StrUtil.isBlank(muid) || StrUtil.isBlank(oaid))){
return Boolean.FALSE;
}
// ios
if (StrUtil.equalsIgnoreCase("ios", os) && StrUtil.isBlank(muid)){
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/**
* JL
*
* @return
*/
public static boolean checkJLPlatPointV2Param(String os1, String imei, String idfa, String idfaMD5){
//安卓0
//IOS1
//其他3
int os = Integer.parseInt(os1);
log.info("================================= [pre check model, os is {} ] =================================", os);
/*
imei MD5 , 0md5 000000000000000
idfa / idfaMD5 , 00000000-0000-0000-0000-000000000000, 0MD5,
*/
// 安卓
if (os == 0 &&
(StrUtil.equals(SpecialCheckParmConstant.ZERO_JL_IMEI, imei) ||
StrUtil.equals(SpecialCheckParmConstant.ZERO_JL_IMEI_MD5, imei) ||
StrUtil.isBlank(imei))
){
return Boolean.FALSE;
}
// IOS
if (os == 1 &&
(StrUtil.equals(SpecialCheckParmConstant.ZERO_JL_IDFA, idfa) ||
StrUtil.equals(SpecialCheckParmConstant.ZERO_JL_IMEI_MD5, idfaMD5) ||
StrUtil.isBlank(idfa) ||
StrUtil.isBlank(idfaMD5))
){
return Boolean.FALSE;
}
// 其他
if (os == 3 && (StrUtil.isBlank(imei) || StrUtil.isBlank(idfa) || StrUtil.isBlank(idfaMD5))){
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/**
*
*
* @return
*/
public static boolean checkMainParamForPut(String oaid,String oaidMD5,
String imei, String imeiMD5,
String idfa, String idfaMD5,
String mac){
/*
:
mainMD5,
,
oaid / oaidMD5
mac ,, MD5
*/
if ((StrUtil.isBlank(oaid) || StrUtil.isBlank(oaidMD5))
&& (StrUtil.isBlank(imei) || StrUtil.isBlank(imeiMD5))
&& (StrUtil.isBlank(idfa) || StrUtil.isBlank(idfaMD5))
&& StrUtil.isBlank(mac)
){
return Boolean.FALSE;
}
return Boolean.TRUE;
}
}

@ -6,9 +6,9 @@ spring:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://8.130.96.163/db_ad?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true
url: jdbc:mysql://localhost/db_ad?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true
username: root
password: y7z7noq2
password: root
# 初始连接数
initial-size: 5
# 最小连接数

@ -4,7 +4,7 @@ spring:
application:
name: ad-callback
profiles:
active: prod
active: dev
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss

Loading…
Cancel
Save