[新增功能](master): 新增接口

1. 新增N个平台监控API接口代码,并完成测试
2. 具体为 百度 巨量 快手 UC VIVO
3. 巨量接口根据链接通配tag
master
土豆兄弟 3 years ago
parent 006d6f0829
commit d793f70910

@ -1,6 +1,10 @@
## 巨量引擎开放平台 - 巨量引擎
https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710655781900#item-link-%E7%A4%BA%E4%BE%8B
## 百度广告投放平台检测 - 百度营销
https://dev2.baidu.com/content?sceneType=0&pageId=101214&nodeId=15&subhead=
https://dev2.baidu.com/content?sceneType=0&pageId=101213&nodeId=663&subhead=
## 广电通 - 腾讯广告
https://developers.e.qq.com/docs/guide/conversion/new_version/dianjijiance
https://developers.e.qq.com/docs/guide/conversion/new_version/dianjijiance
## 快手
https://developers.e.kuaishou.com/docs?docType=DSP&documentId=1942
## vivo

@ -5,12 +5,8 @@ import cn.hutool.core.util.StrUtil;
import com.baiyee.adcallback.api.common.CommonResponse;
import com.baiyee.adcallback.api.common.ResponseCode;
import com.baiyee.adcallback.api.vo.*;
import com.baiyee.adcallback.config.pojo.BdBackdataDTO;
import com.baiyee.adcallback.config.pojo.JlBackdataDTO;
import com.baiyee.adcallback.config.pojo.UcBackdataDTO;
import com.baiyee.adcallback.config.pojo.convert.BdBackdataConvert;
import com.baiyee.adcallback.config.pojo.convert.JlBackdataConvert;
import com.baiyee.adcallback.config.pojo.convert.UcBackdataConvert;
import com.baiyee.adcallback.config.pojo.*;
import com.baiyee.adcallback.config.pojo.convert.*;
import com.baiyee.adcallback.service.AdOriginalityManageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -35,7 +31,7 @@ public class MobileMonitorCallbackAPI {
/**
* julaingurl
*
* <p>
* API:
* <a href="https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710655781900#item-link-%E6%8E%A5%E5%8F%A3%E7%AE%80%E4%BB%8B"></a>
*
@ -74,21 +70,23 @@ public class MobileMonitorCallbackAPI {
@RequestParam(value = "TIMESTAMP", defaultValue = "") Long ts,
@RequestParam(value = "callback_url", defaultValue = "") String callbackUrl,
@RequestParam(value = "model", defaultValue = "") String model,
@RequestParam(value = "caid1", defaultValue = "") String caid12
@RequestParam(value = "caid1", defaultValue = "") String caid12,
@RequestParam(value = "tag", defaultValue = "") String tag
) {
JuliangMobileMonitorCallbackRequestVO vo = new JuliangMobileMonitorCallbackRequestVO(
aid,aidName,advertiserId,cid,ctype,csite,imei,idfa,oaid,os,mac,mac1,ip,geo,ts,callbackUrl,model,caid12
aid, aidName, advertiserId, cid, ctype, csite, imei, idfa, oaid, os, mac, mac1, ip, geo, ts, callbackUrl, model, caid12
);
if (ObjectUtil.isNull(vo)) {
return CommonResponse.createByErrorMessage(ResponseCode.EMPTY_ARGUMENT.getDesc());
}
// 请求过滤规则,过滤掉不用的数据
if (preRuleForReq(vo)){
log.error("================================= [not right imei data ,{} ] =================================",vo);
if (preRuleForReq(vo)) {
log.error("================================= [not right imei data ,{} ] =================================", vo);
return CommonResponse.createBySuccess();
}
log.info("================================= [one request comming, JuliangMobileMonitorCallbackAPI|julaingMonitorUrlCallbackReqUrl, vo is {} ] =================================", vo);
setTag(tag,vo);
log.info("================================= [one request comming, julaingMonitorUrlCallbackReqUrl|MobileMonitorCallbackAPI, vo is {} ] =================================", vo);
JlBackdataDTO jlBackdataDTO = new JlBackdataDTO();
JlBackdataConvert.voCovertToDTO(vo, jlBackdataDTO);
adOriginalityManageService.handleMonitorUrlCallbackDataThenSave();
@ -103,28 +101,24 @@ public class MobileMonitorCallbackAPI {
private boolean preRuleForReq(JuliangMobileMonitorCallbackRequestVO vo) {
String imei = vo.getImei();
if (StrUtil.isBlank(imei)){
if (StrUtil.isBlank(imei)) {
return Boolean.TRUE;
}
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG,imei)){
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG, imei)) {
return Boolean.TRUE;
}
return Boolean.FALSE;
}
/**
* API:
* <a href="https://dev2.baidu.com/content?sceneType=0&pageId=101214&nodeId=15&subhead="></a>
*
*
* <p>
* <p>
* URL - 广:<br/>
* http://www.test.com/notice?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}}
*
* 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/monitor")
public CommonResponse baiduMonitorUrlCallbackReqUrl(
@ -144,23 +138,23 @@ public class MobileMonitorCallbackAPI {
@RequestParam(value = "device_info", defaultValue = "") String deviceInfo,
@RequestParam(value = "interactionsType", defaultValue = "") String interactionsType,
@RequestParam(value = "ext_info", defaultValue = "") String extInfo,
@RequestParam(value = "callType", defaultValue = "") String callType
@RequestParam(value = "callType", defaultValue = "") String callType,
@RequestParam(value = "tag", defaultValue = "") String tag
) {
BaiduMobileMonitorCallbackRequestVO vo = new BaiduMobileMonitorCallbackRequestVO(
userId,aid,pid,uid,callbackUrl,clickId,idfa,imei,oaid,mac,ip,os,ts,deviceInfo,interactionsType,extInfo,callType
userId, aid, pid, uid, callbackUrl, clickId, idfa, imei, oaid, mac, ip, os, ts, deviceInfo, interactionsType, extInfo, callType
);
if (ObjectUtil.isNull(vo)) {
return CommonResponse.createByErrorMessage(ResponseCode.EMPTY_ARGUMENT.getDesc());
}
// 请求过滤规则,过滤掉不用的数据
if (preRuleForReq(vo)){
log.error("================================= [not right imei data ,{} ] =================================",vo);
if (preRuleForReq(vo)) {
log.error("================================= [not right imei data ,{} ] =================================", vo);
return CommonResponse.createBySuccess();
}
log.info("================================= [one request comming, BaiduMobileMonitorCallbackAPI|baiduMonitorUrlCallbackReqUrl, vo is {} ] =================================", vo);
setTag(tag,vo);
log.info("================================= [one request comming, baiduMonitorUrlCallbackReqUrl|MobileMonitorCallbackAPI, vo is {} ] =================================", vo);
BdBackdataDTO bdBackdataDTO = new BdBackdataDTO();
BdBackdataConvert.voCovertToDTO(vo, bdBackdataDTO);
@ -178,11 +172,11 @@ public class MobileMonitorCallbackAPI {
private boolean preRuleForReq(BaiduMobileMonitorCallbackRequestVO vo) {
String imei = vo.getImeiMd5();
if (StrUtil.isBlank(imei)){
if (StrUtil.isBlank(imei)) {
return Boolean.TRUE;
}
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG,imei)){
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG, imei)) {
return Boolean.TRUE;
}
return Boolean.FALSE;
@ -191,7 +185,7 @@ public class MobileMonitorCallbackAPI {
/**
* UC - Android
*
* <p>
*
* http://xxx.xxxx.com?imei={IMEI_SUM1}&oaid={OAID}&time={TS}&callback={CALL
* BACK_URL}&androidid={ANDROIDID_SUM1}&mac={MAC_SUM2}&ip={IP}&ua={U
@ -210,28 +204,26 @@ public class MobileMonitorCallbackAPI {
@RequestParam(value = "acid", defaultValue = "") String acid,
@RequestParam(value = "gid", defaultValue = "") String gid,
@RequestParam(value = "aid", defaultValue = "") String aid,
@RequestParam(value = "cid", defaultValue = "") String cid
@RequestParam(value = "cid", defaultValue = "") String cid,
@RequestParam(value = "tag", defaultValue = "") String tag
) {
UcMobileMonitorCallbackRequestVO vo = new UcMobileMonitorCallbackRequestVO(
imei,oaid,ts,callbackUrl,androidId,mac,ip,ua,acid,gid,gid,aid
imei, oaid, ts, callbackUrl, androidId, mac, ip, ua, acid, gid, aid, cid
);
if (ObjectUtil.isNull(vo)) {
return CommonResponse.createByErrorMessage(ResponseCode.EMPTY_ARGUMENT.getDesc());
}
// 请求过滤规则,过滤掉不用的数据
if (preRuleForReq(vo)){
log.error("================================= [not right imei data ,{} ] =================================",vo);
if (preRuleForReq(vo)) {
log.error("================================= [not right imei data ,{} ] =================================", vo);
return CommonResponse.createBySuccess();
}
log.info("================================= [one request comming, BaiduMobileMonitorCallbackAPI|baiduMonitorUrlCallbackReqUrl, vo is {} ] =================================", vo);
setTag(tag,vo);
log.info("================================= [one request comming, ucMonitorUrlCallbackReqUrl|MobileMonitorCallbackAPI, vo is {} ] =================================", vo);
UcBackdataDTO ucBackdataDTO = new UcBackdataDTO();
UcBackdataConvert.voCovertToDTO(vo, ucBackdataDTO);
adOriginalityManageService.handleMonitorUrlCallbackDataThenSave2();
return CommonResponse.createBySuccess();
}
@ -244,11 +236,11 @@ public class MobileMonitorCallbackAPI {
private boolean preRuleForReq(UcMobileMonitorCallbackRequestVO vo) {
String imei = vo.getImei();
if (StrUtil.isBlank(imei)){
if (StrUtil.isBlank(imei)) {
return Boolean.TRUE;
}
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG,imei)){
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG, imei)) {
return Boolean.TRUE;
}
return Boolean.FALSE;
@ -256,16 +248,79 @@ public class MobileMonitorCallbackAPI {
/**
* vivo
* API
* https://docs.qingque.cn/d/home/eZQBTWKAahwgCU4YeU_bRW5B_#
*/
@RequestMapping(value = "/ks/monitor")
public CommonResponse kuaishouMonitorUrlCallbackReqUrl(
@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 = "imeiMD5", defaultValue = "") String imei,
@RequestParam(value = "oaid", defaultValue = "") String oaid,
@RequestParam(value = "mac", defaultValue = "") String mac,
@RequestParam(value = "androidid", defaultValue = "") String androidid,
@RequestParam(value = "os", defaultValue = "") String os,
@RequestParam(value = "ts", defaultValue = "") String ts,
@RequestParam(value = "ip", defaultValue = "") String ip,
@RequestParam(value = "ua", defaultValue = "") String ua,
@RequestParam(value = "csite", defaultValue = "") String cSite,
@RequestParam(value = "model", defaultValue = "") String model,
@RequestParam(value = "ac_creative", defaultValue = "") String acCreative,
@RequestParam(value = "tag", defaultValue = "") String tag
) {
KuaiShouMobileMonitorCallbackRequestVO vo = new KuaiShouMobileMonitorCallbackRequestVO(
accountid,aid,cid,did,dName,imei,oaid,mac,androidid,os,ts,ip,ua,cSite,model,acCreative
);
if (ObjectUtil.isNull(vo)) {
return CommonResponse.createByErrorMessage(ResponseCode.EMPTY_ARGUMENT.getDesc());
}
// 请求过滤规则,过滤掉不用的数据
if (preRuleForReq(vo)) {
log.error("================================= [not right imei data ,{} ] =================================", vo);
return CommonResponse.createBySuccess();
}
setTag(tag, vo);
log.info("================================= [one request comming, vivoMonitorUrlCallbackReqUrl|MobileMonitorCallbackAPI, vo is {} ] =================================", vo);
KuaiShouBackdataDTO kuaiShouBackdataDTO = new KuaiShouBackdataDTO();
KuaiShouBackdataConvert.voCovertToDTO(vo, kuaiShouBackdataDTO);
adOriginalityManageService.handleMonitorUrlCallbackDataThenSave3();
return CommonResponse.createBySuccess();
}
/**
*
*
* @return boolean
*/
private boolean preRuleForReq(KuaiShouMobileMonitorCallbackRequestVO vo) {
String imei = vo.getImei();
if (StrUtil.isBlank(imei)) {
return Boolean.TRUE;
}
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG, imei)) {
return Boolean.TRUE;
}
return Boolean.FALSE;
}
/**
* vivo
* <p>
* API : https://ad.vivo.com.cn/help?id=353
*
*
*
*/
@RequestMapping(value = "/vivo/monitor")
public CommonResponse baiduMonitorUrlCallbackReqUrl(
public CommonResponse vivoMonitorUrlCallbackReqUrl(
@RequestParam(value = "os", defaultValue = "") String os,
@RequestParam(value = "imei", defaultValue = "") String imei,
@RequestParam(value = "ip", defaultValue = "") String ip,
@ -284,21 +339,56 @@ public class MobileMonitorCallbackAPI {
@RequestParam(value = "lang", defaultValue = "") String lang,
@RequestParam(value = "resolution", defaultValue = "") String resolution,
@RequestParam(value = "nettype", defaultValue = "") String nettype,
@RequestParam(value = "ts", defaultValue = "") String ts
@RequestParam(value = "ts", defaultValue = "") Long ts,
@RequestParam(value = "tag", defaultValue = "") String tag
) {
VivoMobileMonitorCallbackRequestVO vo = new VivoMobileMonitorCallbackRequestVO(
os,imei,ip,oaid,oaidplain,ua,androidid,location,requestid,requesttime,advertiserId,adName,creativeid,osversion,model,lang,resolution,nettype,ts
);
if (ObjectUtil.isNull(vo)) {
return CommonResponse.createByErrorMessage(ResponseCode.EMPTY_ARGUMENT.getDesc());
}
// 请求过滤规则,过滤掉不用的数据
if (preRuleForReq(vo)) {
log.error("================================= [not right imei data ,{} ] =================================", vo);
return CommonResponse.createBySuccess();
}
setTag(tag, vo);
log.info("================================= [one request comming, vivoMonitorUrlCallbackReqUrl|MobileMonitorCallbackAPI, vo is {} ] =================================", vo);
VivoBackdataDTO vivoBackdataDTO = new VivoBackdataDTO();
VivoBackdataConvert.voCovertToDTO(vo, vivoBackdataDTO);
adOriginalityManageService.handleMonitorUrlCallbackDataThenSave4();
return CommonResponse.createBySuccess();
}
/**
*
*
* @return boolean
*/
private boolean preRuleForReq(VivoMobileMonitorCallbackRequestVO vo) {
String imei = vo.getImei();
if (StrUtil.isBlank(imei)) {
return Boolean.TRUE;
}
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG, imei)) {
return Boolean.TRUE;
}
return Boolean.FALSE;
}
/**
* vivo
* <p>
* API : https://ad.vivo.com.cn/help?id=352
* <p>
*
* <p>
*
* https://cb.tuoz.net/vivo/monitor
*
*/
@PostMapping(value = "/vivo/p/monitor")
public CommonResponse vivoMonitorUrlCallbackReqUrl(@RequestBody VivoMobileMonitorPointCallbackRequestVO vo) {
@ -307,9 +397,20 @@ public class MobileMonitorCallbackAPI {
}
/**
*
*
* @param tag
* @param base
*/
private void setTag(String tag ,MobileMonitorCallbackRequestBase base) {
if (StrUtil.isNotBlank(tag)) {
base.setTag(tag);
}else {
base.setTag("");
}
}
}

@ -16,7 +16,7 @@ import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaiduMobileMonitorCallbackRequestVO implements Serializable {
public class BaiduMobileMonitorCallbackRequestVO extends MobileMonitorCallbackRequestBase implements Serializable {
private String userid;

@ -3,6 +3,7 @@ package com.baiyee.adcallback.api.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@ -13,10 +14,11 @@ import java.io.Serializable;
* @author q
* @date 2022/01/07
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JuliangMobileMonitorCallbackRequestVO implements Serializable {
public class JuliangMobileMonitorCallbackRequestVO extends MobileMonitorCallbackRequestBase implements Serializable {
private String aid;

@ -15,40 +15,23 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class KuaiShouMobileMonitorCallbackRequestVO implements Serializable {
private String userid;
public class KuaiShouMobileMonitorCallbackRequestVO extends MobileMonitorCallbackRequestBase implements Serializable {
private String accountid;
private String aid;
private String pid;
private String uid;
private String callbackUrl;
private String clickId;
private String idfa;
private String imeiMd5;
private String cid;
private String did;
private String dName;
private String imei;
private String oaid;
private String mac;
private String ip;
private String androidid;
private String os;
private Long ts;
private String deviceInfo;
private String interactionsType;
private String extInfo;
private String callType;
private String ts;
private String ip;
private String ua;
private String cSite;
private String model;
private String acCreative;
}

@ -0,0 +1,20 @@
package com.baiyee.adcallback.api.vo;
import lombok.Data;
/**
* VO
*
* @author q
* @date 2022/02/23
*/
@Data
public class MobileMonitorCallbackRequestBase{
/**
*
*/
private String tag;
}

@ -9,7 +9,7 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UcMobileMonitorCallbackRequestVO implements Serializable {
public class UcMobileMonitorCallbackRequestVO extends MobileMonitorCallbackRequestBase implements Serializable {
private String imei;

@ -3,6 +3,7 @@ package com.baiyee.adcallback.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.Serializable;
import java.util.List;
@ -16,7 +17,7 @@ import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VivoMobileMonitorCallbackRequestVO implements Serializable {
public class VivoMobileMonitorCallbackRequestVO extends MobileMonitorCallbackRequestBase implements Serializable {
private String os;
@ -29,6 +30,8 @@ public class VivoMobileMonitorCallbackRequestVO implements Serializable {
private String oaidPlain;
private String ua;
private String androidId;
private String location;
@ -41,13 +44,17 @@ public class VivoMobileMonitorCallbackRequestVO implements Serializable {
private String adName;
private String creativeId;
private String creativeId;
private String osVersion;
private String model;
private String osVersion;
private String lang;
private String model;
private String resolution;
private String netType;
private String netType;
private Long ts;
private Long ts;
}

@ -16,7 +16,7 @@ import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VivoMobileMonitorPointCallbackRequestVO implements Serializable {
public class VivoMobileMonitorPointCallbackRequestVO extends MobileMonitorCallbackRequestBase implements Serializable {
private List<VivoData> vivoData;

@ -43,4 +43,6 @@ public class BdBackdataDTO implements Serializable {
private String extInfo;
private String callType;
private String tag;
}

@ -29,5 +29,5 @@ public class JlBackdataDTO implements Serializable {
private String callbackUrl;
private String model;
private String caid12;
private String tag;
}

@ -0,0 +1,31 @@
package com.baiyee.adcallback.config.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class KuaiShouBackdataDTO implements Serializable {
private String accountid;
private String aid;
private String cid;
private String did;
private String dName;
private String imei;
private String oaid;
private String mac;
private String androidid;
private String os;
private String ts;
private String ip;
private String ua;
private String cSite;
private String model;
private String acCreative;
private String tag;
}

@ -24,4 +24,5 @@ public class UcBackdataDTO implements Serializable {
private String gid;
private String aid;
private String cid;
private String tag;
}

@ -0,0 +1,53 @@
package com.baiyee.adcallback.config.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VivoBackdataDTO implements Serializable {
private String os;
private String imei;
private String ip;
private String oaid;
private String oaidPlain;
private String ua;
private String androidId;
private String location;
private String requestId;
private String requestTime;
private String advertiserId;
private String adName;
private String creativeId;
private String osVersion;
private String model;
private String lang;
private String resolution;
private String netType;
private Long ts;
private String tag;
}

@ -0,0 +1,44 @@
package com.baiyee.adcallback.config.pojo.convert;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baiyee.adcallback.api.vo.KuaiShouMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.api.vo.VivoMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.config.pojo.KuaiShouBackdataDTO;
import com.baiyee.adcallback.config.pojo.VivoBackdataDTO;
import com.baiyee.adcallback.repository.entity.TbKsBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbUcBackdataEntity;
public class KuaiShouBackdataConvert {
/**
*
*/
private KuaiShouBackdataConvert(){}
private static final ThreadLocal<KuaiShouBackdataDTO> context = new ThreadLocal<>();
/**
* vo dto -> 线
*
* @param vo
*/
public static void voCovertToDTO(KuaiShouMobileMonitorCallbackRequestVO vo, KuaiShouBackdataDTO dto) {
BeanUtil.copyProperties(vo, dto, true);
context.set(dto);
}
/**
*
*
* @return {@link TbUcBackdataEntity}
*/
public static TbKsBackdataEntity covertToEntity(TbKsBackdataEntity entity) {
KuaiShouBackdataDTO kuaiShouBackdataDTO = context.get();
if (ObjectUtil.isNotNull(kuaiShouBackdataDTO)){
BeanUtil.copyProperties(kuaiShouBackdataDTO, entity, true);
}
context.remove();
return entity;
}
}

@ -0,0 +1,44 @@
package com.baiyee.adcallback.config.pojo.convert;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baiyee.adcallback.api.vo.UcMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.api.vo.VivoMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.config.pojo.UcBackdataDTO;
import com.baiyee.adcallback.config.pojo.VivoBackdataDTO;
import com.baiyee.adcallback.repository.entity.TbUcBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbVivoBackdataEntity;
public class VivoBackdataConvert {
/**
*
*/
private VivoBackdataConvert(){}
private static final ThreadLocal<VivoBackdataDTO> context = new ThreadLocal<>();
/**
* vo dto -> 线
*
* @param vo
*/
public static void voCovertToDTO(VivoMobileMonitorCallbackRequestVO vo, VivoBackdataDTO dto) {
BeanUtil.copyProperties(vo, dto, true);
context.set(dto);
}
/**
*
*
* @return {@link TbUcBackdataEntity}
*/
public static TbVivoBackdataEntity covertToEntity(TbVivoBackdataEntity entity) {
VivoBackdataDTO vivoBackdataDTO = context.get();
if (ObjectUtil.isNotNull(vivoBackdataDTO)){
BeanUtil.copyProperties(vivoBackdataDTO, entity, true);
}
context.remove();
return entity;
}
}

@ -0,0 +1,7 @@
package com.baiyee.adcallback.repository;
import com.baiyee.adcallback.repository.entity.TbKsBackdataEntity;
import org.springframework.data.jpa.repository.JpaRepository;
public interface TbKsBackdataEntityRepository extends JpaRepository<TbKsBackdataEntity, Long> {
}

@ -0,0 +1,7 @@
package com.baiyee.adcallback.repository;
import com.baiyee.adcallback.repository.entity.TbVivoBackdataEntity;
import org.springframework.data.jpa.repository.JpaRepository;
public interface TbVivoBackdataEntityRepository extends JpaRepository<TbVivoBackdataEntity, Long> {
}

@ -89,17 +89,7 @@ public class TbBdBackdataEntity {
@Column(name = "call_type", nullable = false, length = 255)
private String callType;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TbBdBackdataEntity that = (TbBdBackdataEntity) o;
return id == that.id && ts == that.ts && Objects.equals(gmtCreate, that.gmtCreate) && Objects.equals(gmtModify, that.gmtModify) && Objects.equals(operator, that.operator) && Objects.equals(userid, that.userid) && Objects.equals(aid, that.aid) && Objects.equals(pid, that.pid) && Objects.equals(uid, that.uid) && Objects.equals(callbackUrl, that.callbackUrl) && Objects.equals(clickId, that.clickId) && Objects.equals(idfa, that.idfa) && Objects.equals(imeiMd5, that.imeiMd5) && Objects.equals(oaid, that.oaid) && Objects.equals(mac, that.mac) && Objects.equals(ip, that.ip) && Objects.equals(os, that.os) && Objects.equals(deviceInfo, that.deviceInfo) && Objects.equals(interactionsType, that.interactionsType) && Objects.equals(extInfo, that.extInfo) && Objects.equals(callType, that.callType);
}
@Override
public int hashCode() {
return Objects.hash(id, gmtCreate, gmtModify, operator, userid, aid, pid, uid, callbackUrl, clickId, idfa, imeiMd5, oaid, mac, ip, os, ts, deviceInfo, interactionsType, extInfo, callType);
}
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
}

@ -101,4 +101,8 @@ public class TbJlBackdataEntity {
@Column(name = "caid12", nullable = false, length = 255)
private String caid12;
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
}

@ -0,0 +1,95 @@
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;
import java.util.Objects;
@Entity
@Table(name = "tb_ks_backdata", schema = "db_ad", catalog = "")
@EntityListeners(AuditingEntityListener.class)
@Data
public class TbKsBackdataEntity {
@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 = "imei", nullable = false, length = 255)
private String imei;
@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 = "androidid", nullable = false, length = 255)
private String androidid;
@Basic
@Column(name = "os", nullable = false, length = 255)
private String os;
@Basic
@Column(name = "ts", nullable = false, length = 255)
private String ts;
@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 = "c_site", nullable = false, length = 255)
private String cSite;
@Basic
@Column(name = "model", nullable = false, length = 255)
private String model;
@Basic
@Column(name = "ac_creative", nullable = false, length = 255)
private String acCreative;
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
}

@ -1,6 +1,7 @@
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;
@ -9,8 +10,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;
@Data
@Entity
@Table(name = "tb_uc_backdata", schema = "db_ad", catalog = "")
@EntityListeners(AuditingEntityListener.class)
@ -75,144 +76,8 @@ public class TbUcBackdataEntity {
@Column(name = "cid", nullable = false, length = 255)
private String cid;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Timestamp getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(Timestamp gmtCreate) {
this.gmtCreate = gmtCreate;
}
public Timestamp getGmtModify() {
return gmtModify;
}
public void setGmtModify(Timestamp gmtModify) {
this.gmtModify = gmtModify;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public String getImei() {
return imei;
}
public void setImei(String imei) {
this.imei = imei;
}
public String getOaid() {
return oaid;
}
public void setOaid(String oaid) {
this.oaid = oaid;
}
public long getTs() {
return ts;
}
public void setTs(long ts) {
this.ts = ts;
}
public String getCallbackUrl() {
return callbackUrl;
}
public void setCallbackUrl(String callbackUrl) {
this.callbackUrl = callbackUrl;
}
public String getAndroidId() {
return androidId;
}
public void setAndroidId(String androidId) {
this.androidId = androidId;
}
public String getMac() {
return mac;
}
public void setMac(String mac) {
this.mac = mac;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getUa() {
return ua;
}
public void setUa(String ua) {
this.ua = ua;
}
public String getAcid() {
return acid;
}
public void setAcid(String acid) {
this.acid = acid;
}
public String getGid() {
return gid;
}
public void setGid(String gid) {
this.gid = gid;
}
public String getAid() {
return aid;
}
public void setAid(String aid) {
this.aid = aid;
}
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TbUcBackdataEntity that = (TbUcBackdataEntity) o;
return id == that.id && ts == that.ts && Objects.equals(gmtCreate, that.gmtCreate) && Objects.equals(gmtModify, that.gmtModify) && Objects.equals(operator, that.operator) && Objects.equals(imei, that.imei) && Objects.equals(oaid, that.oaid) && Objects.equals(callbackUrl, that.callbackUrl) && Objects.equals(androidId, that.androidId) && Objects.equals(mac, that.mac) && Objects.equals(ip, that.ip) && Objects.equals(ua, that.ua) && Objects.equals(acid, that.acid) && Objects.equals(gid, that.gid) && Objects.equals(aid, that.aid) && Objects.equals(cid, that.cid);
}
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
@Override
public int hashCode() {
return Objects.hash(id, gmtCreate, gmtModify, operator, imei, oaid, ts, callbackUrl, androidId, mac, ip, ua, acid, gid, aid, cid);
}
}

@ -0,0 +1,105 @@
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;
import java.util.Objects;
@Data
@Entity
@Table(name = "tb_vivo_backdata", schema = "db_ad", catalog = "")
@EntityListeners(AuditingEntityListener.class)
public class TbVivoBackdataEntity {
@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 = "os", nullable = false, length = 255)
private String os;
@Basic
@Column(name = "imei", nullable = false, length = 255)
private String imei;
@Basic
@Column(name = "ip", nullable = false, length = 255)
private String ip;
@Basic
@Column(name = "oaid", nullable = false, length = 255)
private String oaid;
@Basic
@Column(name = "oaid_plain", nullable = false, length = 255)
private String oaidPlain;
@Basic
@Column(name = "ua", nullable = false, length = 255)
private String ua;
@Basic
@Column(name = "android_id", nullable = false, length = 255)
private String androidId;
@Basic
@Column(name = "location", nullable = false, length = 255)
private String location;
@Basic
@Column(name = "request_id", nullable = false, length = 255)
private String requestId;
@Basic
@Column(name = "request_time", nullable = false, length = 255)
private String requestTime;
@Basic
@Column(name = "advertiser_id", nullable = false, length = 255)
private String advertiserId;
@Basic
@Column(name = "ad_name", nullable = false, length = 255)
private String adName;
@Basic
@Column(name = "creative_id", nullable = false, length = 255)
private String creativeId;
@Basic
@Column(name = "os_version", nullable = false, length = 255)
private String osVersion;
@Basic
@Column(name = "model", nullable = false, length = 255)
private String model;
@Basic
@Column(name = "lang", nullable = false, length = 255)
private String lang;
@Basic
@Column(name = "resolution", nullable = false, length = 255)
private String resolution;
@Basic
@Column(name = "net_type", nullable = false, length = 255)
private String netType;
@Basic
@Column(name = "ts", nullable = false)
private long ts;
@Basic
@Column(name = "tag", nullable = false, length = 255)
private String tag;
}

@ -24,4 +24,16 @@ public interface AdOriginalityManageService {
*
*/
void handleMonitorUrlCallbackDataThenSave2();
/**
* - ks
*/
void handleMonitorUrlCallbackDataThenSave3();
/**
* - vivo
*/
void handleMonitorUrlCallbackDataThenSave4();
}

@ -1,17 +1,12 @@
package com.baiyee.adcallback.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baiyee.adcallback.config.pojo.convert.BdBackdataConvert;
import com.baiyee.adcallback.config.pojo.convert.JlBackdataConvert;
import com.baiyee.adcallback.config.pojo.convert.UcBackdataConvert;
import com.baiyee.adcallback.repository.TbBdBackdataEntityRepository;
import com.baiyee.adcallback.repository.TbJlBackdataEntityRepository;
import com.baiyee.adcallback.repository.TbUcBackdataEntityRepository;
import com.baiyee.adcallback.repository.entity.TbBdBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbJlBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbUcBackdataEntity;
import com.baiyee.adcallback.config.pojo.convert.*;
import com.baiyee.adcallback.repository.*;
import com.baiyee.adcallback.repository.entity.*;
import com.baiyee.adcallback.service.AdOriginalityManageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -30,10 +25,16 @@ public class AdOriginalityManageServiceImpl implements AdOriginalityManageServic
private final TbUcBackdataEntityRepository tbUcBackdataEntityRepository;
public AdOriginalityManageServiceImpl(TbJlBackdataEntityRepository repository, TbBdBackdataEntityRepository bdBackdataEntityRepository, TbUcBackdataEntityRepository tbUcBackdataEntityRepository) {
private final TbKsBackdataEntityRepository ksBackdataEntityRepository;
private final TbVivoBackdataEntityRepository vivoBackdataEntityRepository;
public AdOriginalityManageServiceImpl(TbJlBackdataEntityRepository repository, TbBdBackdataEntityRepository bdBackdataEntityRepository, TbUcBackdataEntityRepository tbUcBackdataEntityRepository, TbKsBackdataEntityRepository ksBackdataEntityRepository, TbVivoBackdataEntityRepository vivoBackdataEntityRepository) {
this.repository = repository;
this.bdBackdataEntityRepository = bdBackdataEntityRepository;
this.tbUcBackdataEntityRepository = tbUcBackdataEntityRepository;
this.ksBackdataEntityRepository = ksBackdataEntityRepository;
this.vivoBackdataEntityRepository = vivoBackdataEntityRepository;
}
@Override
@ -70,4 +71,26 @@ public class AdOriginalityManageServiceImpl implements AdOriginalityManageServic
log.error("============================= [save a data fail save is {} ] =============================", save);
}
}
@Override
public void handleMonitorUrlCallbackDataThenSave3() {
TbKsBackdataEntity entity = new TbKsBackdataEntity();
TbKsBackdataEntity backEntity = KuaiShouBackdataConvert.covertToEntity(entity);
TbKsBackdataEntity save = ksBackdataEntityRepository.save(backEntity);
if (ObjectUtil.isNull(save)){
log.error("============================= [save a data fail save is {} ] =============================", save);
}
}
@Override
public void handleMonitorUrlCallbackDataThenSave4() {
TbVivoBackdataEntity entity = new TbVivoBackdataEntity();
TbVivoBackdataEntity backEntity = VivoBackdataConvert.covertToEntity(entity);
TbVivoBackdataEntity save = vivoBackdataEntityRepository.save(backEntity);
if (ObjectUtil.isNull(save)){
log.error("============================= [save a data fail save is {} ] =============================", save);
}
}
}

Loading…
Cancel
Save