diff --git a/src/main/java/com/baiyee/adcallback/api/callback/MobileMonitorCallbackNewAPI.java b/src/main/java/com/baiyee/adcallback/api/callback/MobileMonitorCallbackNewAPI.java
index 8f31906..bc0992f 100644
--- a/src/main/java/com/baiyee/adcallback/api/callback/MobileMonitorCallbackNewAPI.java
+++ b/src/main/java/com/baiyee/adcallback/api/callback/MobileMonitorCallbackNewAPI.java
@@ -4,7 +4,6 @@ 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;
@@ -13,11 +12,11 @@ import org.springframework.web.bind.annotation.RestController;
/**
* 更新时间 2023-5-18
- *
+ *
* 监测互联网回值的基本类
- *
+ *
* 涉及:
- * 巨量广告, 广电通, 快手, 百度
+ * 巨量广告, 广电通, 快手, 百度
*
* @author q
*/
@@ -30,64 +29,61 @@ public class MobileMonitorCallbackNewAPI {
private final AdOriginalityManageService originalityManageService;
- private final AdTFPackageService adTFPackageService;
-
- public MobileMonitorCallbackNewAPI(AdOriginalityManageService originalityManageService, AdTFPackageService adTFPackageService) {
+ public MobileMonitorCallbackNewAPI(AdOriginalityManageService originalityManageService) {
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 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
- ){
+ @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
+ 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){
+ if (StrUtil.isNotBlank(tag) && vpoint >= 0) {
vo.setTag(tag);
vo.setVpoint(vpoint);
}
@@ -97,61 +93,56 @@ public class MobileMonitorCallbackNewAPI {
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 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
- ){
+ @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
+ 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){
+ if (StrUtil.isNotBlank(tag) && vpoint >= 0) {
vo.setTag(tag);
vo.setVpoint(vpoint);
}
@@ -161,17 +152,12 @@ public class MobileMonitorCallbackNewAPI {
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")
@@ -181,7 +167,7 @@ public class MobileMonitorCallbackNewAPI {
@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 = "photoid", defaultValue = "") String photoId,
@RequestParam(value = "oaid", defaultValue = "") String oaid,
@RequestParam(value = "imei", defaultValue = "") String imei,
@RequestParam(value = "imeiHash", defaultValue = "") String imeiHash,
@@ -190,7 +176,7 @@ public class MobileMonitorCallbackNewAPI {
@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 = "ua", defaultValue = "") String ua,
@RequestParam(value = "os", defaultValue = "") String os,
@RequestParam(value = "model", defaultValue = "") String model,
@RequestParam(value = "callback", defaultValue = "") String callBack,
@@ -200,35 +186,30 @@ public class MobileMonitorCallbackNewAPI {
@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
+ 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){
+ 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())) {
+ 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")
@@ -254,16 +235,16 @@ public class MobileMonitorCallbackNewAPI {
@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
+ 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){
+ if (StrUtil.isNotBlank(tag) && vpoint >= 0) {
vo.setTag(tag);
vo.setVpoint(vpoint);
}
@@ -273,18 +254,13 @@ public class MobileMonitorCallbackNewAPI {
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")
@@ -327,15 +303,15 @@ public class MobileMonitorCallbackNewAPI {
@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
+ accountId, clickId, clickTime, deviceOsType,
+ muid, oaid, mac,
+ campaignId, adgroupId, adId, promotedObjectId, ip, userAgent, callback, promotedObjectType
);
// 映射 - Base 参数
- if (StrUtil.isNotBlank(tag) && vpoint >= 0){
+ if (StrUtil.isNotBlank(tag) && vpoint >= 0) {
vo.setTag(tag);
vo.setVpoint(vpoint);
}
@@ -345,11 +321,6 @@ public class MobileMonitorCallbackNewAPI {
originalityManageService.handleNewGDTMonitorUrlCallbackDataThenSave(vo);
}
- // 校验以下参数是否存在 - 入投放包库 - 部分字段
- if (CheckPlatPointParamsUtil.checkMainParamForPut(vo.getOaid(), null, vo.getMuid(), null,vo.getMuid(), null, vo.getMac())){
- adTFPackageService.loadGDTPackageData(vo);
- }
-
return CommonResponse.createBySuccess();
}
diff --git a/src/main/java/com/baiyee/adcallback/api/dto/TfSourceDTO.java b/src/main/java/com/baiyee/adcallback/api/dto/TfSourceDTO.java
new file mode 100644
index 0000000..70e59d0
--- /dev/null
+++ b/src/main/java/com/baiyee/adcallback/api/dto/TfSourceDTO.java
@@ -0,0 +1,46 @@
+package com.baiyee.adcallback.api.dto;
+
+import lombok.Data;
+
+/**
+ * @author wjt
+ * @date 2023/5/31
+ */
+@Data
+public class TfSourceDTO {
+ /**
+ * 点击时间
+ */
+ private String clickTime;
+ /**
+ * '广告名称'
+ */
+ private String adName;
+ /**
+ * '安卓设备id'
+ */
+ private String imei;
+
+ /**
+ * '苹果设备id'
+ */
+ private String idfa;
+ /**
+ * mac地址
+ */
+ private String mac;
+ /**
+ * '安卓系统移动终端补充设备标识'
+ */
+ private String oaid;
+ /**
+ * '用于监测链接的自定义带参格式'
+ */
+ private String tag;
+
+ /**
+ * '用于区分广告配置的地方'
+ */
+ private Integer vpoint;
+
+}
diff --git a/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java b/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java
index ebbdee6..cf21e12 100644
--- a/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java
+++ b/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java
@@ -36,8 +36,18 @@ public enum TableEnum {
/**
* 广点通
*/
- GD("tb_gdt_backdata");
+ GD("tb_gdt_backdata"),
+ JL1("tb_jl_v1_backdata"),
+
+ JL2("tb_jl_v2_backdata"),
+
+ GDT_NEW("tb_gdt_new_backdata"),
+
+ KS_NEW("tb_ks_new_backdata"),
+
+ BD_NEW("tb_bd_new_backdata"),
+ ;
/**
* 类型
*/
diff --git a/src/main/java/com/baiyee/adcallback/repository/TbBDNewBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbBDNewBackdataEntityRepository.java
index e827608..81d727b 100644
--- a/src/main/java/com/baiyee/adcallback/repository/TbBDNewBackdataEntityRepository.java
+++ b/src/main/java/com/baiyee/adcallback/repository/TbBDNewBackdataEntityRepository.java
@@ -2,7 +2,6 @@ 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;
@@ -29,4 +28,7 @@ public interface TbBDNewBackdataEntityRepository extends JpaRepository= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag")
List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag);
+
+ @Query(value = "SELECT * FROM tb_bd_new_backdata WHERE imei != '' AND imei != '__imei__' AND gmt_create > ?1 AND gmt_create < ?2", nativeQuery = true)
+ List queryByDate(String startDate, String endDate);
}
diff --git a/src/main/java/com/baiyee/adcallback/repository/TbGdtNewBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbGdtNewBackdataEntityRepository.java
index e4d6e0a..54f851d 100644
--- a/src/main/java/com/baiyee/adcallback/repository/TbGdtNewBackdataEntityRepository.java
+++ b/src/main/java/com/baiyee/adcallback/repository/TbGdtNewBackdataEntityRepository.java
@@ -2,7 +2,6 @@ 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;
@@ -17,6 +16,7 @@ public interface TbGdtNewBackdataEntityRepository extends JpaRepository= :startDate and gmtCreate < :endDate and tag in :tag and deviceOsType = :models group by muid,tag")
- List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag,@Param("models") String models);
+ List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag, @Param("models") String models);
+
+ @Query(value = "SELECT * FROM tb_gdt_new_backdata WHERE imei != '' AND imei != '__imei__' AND gmt_create > ?1 AND gmt_create < ?2", nativeQuery = true)
+ List queryByDate(String startDate, String endDate);
}
diff --git a/src/main/java/com/baiyee/adcallback/repository/TbJLV1BackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbJLV1BackdataEntityRepository.java
index 03e13f9..4ffb334 100644
--- a/src/main/java/com/baiyee/adcallback/repository/TbJLV1BackdataEntityRepository.java
+++ b/src/main/java/com/baiyee/adcallback/repository/TbJLV1BackdataEntityRepository.java
@@ -36,4 +36,6 @@ public interface TbJLV1BackdataEntityRepository extends JpaRepository= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag")
List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag);
+ @Query(value = "SELECT * FROM tb_jl_v1_backdata WHERE imei != '' AND imei != '__IMEI__' AND gmt_create > ?1 AND gmt_create < ?2", nativeQuery = true)
+ List queryByDate(String startDate, String endDate);
}
diff --git a/src/main/java/com/baiyee/adcallback/repository/TbJLV2BackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbJLV2BackdataEntityRepository.java
index 4f68d50..0cb8673 100644
--- a/src/main/java/com/baiyee/adcallback/repository/TbJLV2BackdataEntityRepository.java
+++ b/src/main/java/com/baiyee/adcallback/repository/TbJLV2BackdataEntityRepository.java
@@ -21,6 +21,8 @@ public interface TbJLV2BackdataEntityRepository extends JpaRepository :startDate AND gmt_create < :endDate", nativeQuery = true)
List queryAllImeiByDate(Date startDate, Date endDate);
+ @Query(value = "SELECT * FROM tb_jl_v2_backdata WHERE imei != '' AND imei != '__IMEI__' AND gmt_create > ?1 AND gmt_create < ?2", nativeQuery = true)
+ List queryByDate(String startDate, String endDate);
/**
* 查询数据
diff --git a/src/main/java/com/baiyee/adcallback/repository/TbKSNewBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbKSNewBackdataEntityRepository.java
index dfbd381..c54010e 100644
--- a/src/main/java/com/baiyee/adcallback/repository/TbKSNewBackdataEntityRepository.java
+++ b/src/main/java/com/baiyee/adcallback/repository/TbKSNewBackdataEntityRepository.java
@@ -3,7 +3,6 @@ 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;
@@ -17,6 +16,7 @@ public interface TbKSNewBackdataEntityRepository extends JpaRepository= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag")
List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag);
+
+ @Query(value = "SELECT * FROM tb_ks_new_backdata WHERE imei != '' AND imei != '__imei__' AND gmt_create > ?1 AND gmt_create < ?2", nativeQuery = true)
+ List queryByDate(String startDate, String endDate);
}
diff --git a/src/main/java/com/baiyee/adcallback/repository/TbTfSourceEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbTfSourceEntityRepository.java
new file mode 100644
index 0000000..1ab526d
--- /dev/null
+++ b/src/main/java/com/baiyee/adcallback/repository/TbTfSourceEntityRepository.java
@@ -0,0 +1,11 @@
+package com.baiyee.adcallback.repository;
+
+import com.baiyee.adcallback.repository.entity.TbTfSourceEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * @author wjt
+ * @date 2023/5/31
+ */
+public interface TbTfSourceEntityRepository extends JpaRepository {
+}
diff --git a/src/main/java/com/baiyee/adcallback/repository/entity/TbTfSourceEntity.java b/src/main/java/com/baiyee/adcallback/repository/entity/TbTfSourceEntity.java
new file mode 100644
index 0000000..82bf6e1
--- /dev/null
+++ b/src/main/java/com/baiyee/adcallback/repository/entity/TbTfSourceEntity.java
@@ -0,0 +1,89 @@
+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.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author wjt
+ * @date 2023/5/31
+ */
+@Data
+@Entity
+@Table(name = "tb_tf_source", schema = "db_ad")
+@EntityListeners(AuditingEntityListener.class)
+public class TbTfSourceEntity implements Serializable {
+
+ @Id
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "gmt_create")
+ @CreatedDate
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date gmtCreate;
+
+ @Column(name = "gmt_modified")
+ @LastModifiedDate
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date gmtModified;
+
+ @LastModifiedBy
+ @Column(name = "operator")
+ private String operator;
+
+ @Column(name = "produce_time")
+ private String produceTime;
+
+ @Column(name = "ad_name")
+ private String adName;
+
+ @Column(name = "category")
+ private String category;
+
+ @Column(name = "file_name")
+ private String fileName;
+
+ @Column(name = "file_path")
+ private String filePath;
+
+ @Column(name = "file_pwd")
+ private String filePwd;
+
+ /**
+ * 文件状态, 1-正在生成 2-正常 3-禁用 4-删除
+ */
+ @Column(name = "file_status")
+ private Integer fileStatus;
+
+ @Column(name = "last_operator_time")
+ @LastModifiedDate
+ private Date lastOperatorTime;
+
+ @Column(name = "weight")
+ private Integer weight;
+
+
+ public TbTfSourceEntity addTbTfSourceEntity(String produceTime, String adName, String category, String fileName, String filePath, String filePwd) {
+ this.setProduceTime(produceTime);
+ this.setAdName(adName);
+ this.setCategory(category);
+ this.setFileName(fileName);
+ this.setFilePath(filePath);
+ this.setFilePwd(filePwd);
+ this.setFileStatus(2);
+ this.setWeight(0);
+ return this;
+ }
+}
diff --git a/src/main/java/com/baiyee/adcallback/service/AdTFPackageService.java b/src/main/java/com/baiyee/adcallback/service/AdTFPackageService.java
deleted file mode 100644
index 2c8dcbd..0000000
--- a/src/main/java/com/baiyee/adcallback/service/AdTFPackageService.java
+++ /dev/null
@@ -1,17 +0,0 @@
-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);
-}
diff --git a/src/main/java/com/baiyee/adcallback/service/impl/AdJLTFPackageServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/AdJLTFPackageServiceImpl.java
deleted file mode 100644
index 49e5728..0000000
--- a/src/main/java/com/baiyee/adcallback/service/impl/AdJLTFPackageServiceImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-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
- }
-
-
-}
diff --git a/src/main/java/com/baiyee/adcallback/task/TfSourceTask.java b/src/main/java/com/baiyee/adcallback/task/TfSourceTask.java
new file mode 100644
index 0000000..1a1023f
--- /dev/null
+++ b/src/main/java/com/baiyee/adcallback/task/TfSourceTask.java
@@ -0,0 +1,181 @@
+package com.baiyee.adcallback.task;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.text.csv.CsvWriter;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baiyee.adcallback.api.dto.TfSourceDTO;
+import com.baiyee.adcallback.common.util.FileUtil;
+import com.baiyee.adcallback.repository.*;
+import com.baiyee.adcallback.repository.entity.*;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import net.lingala.zip4j.core.ZipFile;
+import net.lingala.zip4j.exception.ZipException;
+import net.lingala.zip4j.model.ZipParameters;
+import net.lingala.zip4j.util.Zip4jConstants;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.File;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author wjt
+ * @date 2023/5/31
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class TfSourceTask {
+
+ private final TbJLV2BackdataEntityRepository tbJLV2BackdataEntityRepository;
+ private final TbJLV1BackdataEntityRepository tbJLV1BackdataEntityRepository;
+ private final TbGdtNewBackdataEntityRepository tbGdtNewBackdataEntityRepository;
+ private final TbKSNewBackdataEntityRepository tbKSNewBackdataEntityRepository;
+ private final TbBDNewBackdataEntityRepository tbBDNewBackdataEntityRepository;
+ private final TbTfSourceEntityRepository tbTfSourceEntityRepository;
+
+ @Value("${tf.source.path}")
+ private String path;
+
+ /**
+ * 每天晚上23点 30分
+ *
+ * 所有今天的数据压缩成投放包
+ */
+ @Scheduled(cron = "0 30 23 * * ? ")
+ @Transactional(rollbackFor = Exception.class)
+ public void tfSource() {
+ log.info("++++++++++++++++++++++TfSource Sync start time {} ++++++++++++++++", DateUtil.now());
+ String startTime = DateUtil.format(DateUtil.date(), "yyyy-MM-dd 00:00:00");
+ String endTime = DateUtil.format(DateUtil.date(), "yyyy-MM-dd 23:59:59");
+ List list = new ArrayList<>();
+ //jlv2
+ obtainDateByJlV2(startTime, endTime, list);
+ //jlv1
+ obtainDateByJlv1(startTime, endTime, list);
+ //gdt
+ obtainDateByGdt(startTime, endTime, list);
+ //ks
+ obtainDateByKs(startTime, endTime, list);
+ //bd
+ obtainDateByBd(startTime, endTime, list);
+
+ if (CollUtil.isEmpty(list)) {
+ return;
+ }
+ //tag分组
+ HashMap> mapByTag = new HashMap<>(list.stream().collect(Collectors.groupingBy(TfSourceDTO::getTag, Collectors.toList())));
+
+ String format = DateUtil.format(DateUtil.date(), "yyyy-MM-dd");
+ List saveList = new ArrayList<>();
+ for (String tag : mapByTag.keySet()) {
+ String password = RandomUtil.randomString(6);
+ //压缩文件
+ String filePath = generateFile(tag, format, password, mapByTag.get(tag));
+ if (StrUtil.isNotBlank(filePath)) {
+ //保存文件记录
+ TbTfSourceEntity tbTfSourceEntity = new TbTfSourceEntity().addTbTfSourceEntity(format, null, null, tag, filePath, password);
+ saveList.add(tbTfSourceEntity);
+ }
+ }
+ tbTfSourceEntityRepository.saveAll(saveList);
+ log.info("++++++++++++++++++++++TfSource Sync end time {} ++++++++++++++++", DateUtil.now());
+ }
+
+ /**
+ * 生成文件
+ *
+ * @param tag
+ * @param list
+ */
+ private String generateFile(String tag, String format, String password, List list) {
+ String filePath = path + format;
+ File file = new File(filePath + File.separator + tag + ".csv");
+ CsvWriter writer = new CsvWriter(file, StandardCharsets.UTF_8);
+ writer.writeBeans(list);
+ writer.flush();
+ writer.close();
+ return zipFile(file, filePath + File.separator + tag + ".zip", password);
+ }
+
+ /**
+ * 生成加密压缩包
+ *
+ * @param srcFile
+ * @param newPath
+ * @param password
+ */
+ private String zipFile(File srcFile, String newPath, String password) {
+ ZipParameters zipParameters = new ZipParameters();
+ zipParameters.setEncryptionMethod(Zip4jConstants.COMP_DEFLATE);
+ zipParameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
+ if (StrUtil.isNotBlank(password)) {
+ zipParameters.setEncryptFiles(true);
+ zipParameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
+ zipParameters.setPassword(password.toCharArray());
+ }
+ try {
+ ZipFile zipFile = new ZipFile(newPath);
+ if (srcFile.isDirectory()) {
+ zipFile.addFolder(srcFile, zipParameters);
+ } else {
+ zipFile.addFile(srcFile, zipParameters);
+ }
+ FileUtil.del(srcFile);
+ return newPath;
+ } catch (ZipException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private void obtainDateByJlV2(String startTime, String endTime, List list) {
+ List jlV2Data = tbJLV2BackdataEntityRepository.queryByDate(startTime, endTime);
+ if (CollUtil.isNotEmpty(jlV2Data)) {
+ List tfSourceDTOS = Convert.toList(TfSourceDTO.class, jlV2Data);
+ list.addAll(tfSourceDTOS);
+ }
+ }
+
+ private void obtainDateByJlv1(String startTime, String endTime, List list) {
+ List jlV1Data = tbJLV1BackdataEntityRepository.queryByDate(startTime, endTime);
+ if (CollUtil.isNotEmpty(jlV1Data)) {
+ List tfSourceDTOS = Convert.toList(TfSourceDTO.class, jlV1Data);
+ list.addAll(tfSourceDTOS);
+ }
+ }
+
+ private void obtainDateByGdt(String startTime, String endTime, List list) {
+ List jlV2Data = tbGdtNewBackdataEntityRepository.queryByDate(startTime, endTime);
+ if (CollUtil.isNotEmpty(jlV2Data)) {
+ List tfSourceDTOS = Convert.toList(TfSourceDTO.class, jlV2Data);
+ list.addAll(tfSourceDTOS);
+ }
+ }
+
+ private void obtainDateByKs(String startTime, String endTime, List list) {
+ List jlV2Data = tbKSNewBackdataEntityRepository.queryByDate(startTime, endTime);
+ if (CollUtil.isNotEmpty(jlV2Data)) {
+ List tfSourceDTOS = Convert.toList(TfSourceDTO.class, jlV2Data);
+ list.addAll(tfSourceDTOS);
+ }
+ }
+
+ private void obtainDateByBd(String startTime, String endTime, List list) {
+ List jlV2Data = tbBDNewBackdataEntityRepository.queryByDate(startTime, endTime);
+ if (CollUtil.isNotEmpty(jlV2Data)) {
+ List tfSourceDTOS = Convert.toList(TfSourceDTO.class, jlV2Data);
+ list.addAll(tfSourceDTOS);
+ }
+ }
+}
diff --git a/src/main/resources/application-online.yml b/src/main/resources/application-online.yml
index 035700f..4932944 100644
--- a/src/main/resources/application-online.yml
+++ b/src/main/resources/application-online.yml
@@ -43,3 +43,6 @@ spring:
wall:
config:
multi-statement-allow: true
+tf:
+ source:
+ path: /home/www/ad-bak/source/
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 2e1617c..67e6af1 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -47,3 +47,7 @@ spring:
platform:
authToken: nqJpVSf3UcrEcVIH
url: https://baiyee.vip/api/taskImei/callback/add
+
+tf:
+ source:
+ path: /home/www/ad-bak/source/
\ No newline at end of file