[新增功能](master): 百度投放新功能开发

如题
master
土豆兄弟 3 years ago
parent 7fbfd7b0b3
commit 3ef0d821e9

@ -1,6 +1,6 @@
## 巨量引擎开放平台 - 巨量引擎
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=662&subhead=
https://dev2.baidu.com/content?sceneType=0&pageId=101214&nodeId=15&subhead=
## 广电通 - 腾讯广告
https://developers.e.qq.com/docs/guide/conversion/new_version/dianjijiance

@ -0,0 +1,114 @@
package com.baiyee.adcallback.api.callback;
import cn.hutool.core.util.ObjectUtil;
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.BaiduMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.config.pojo.BdBackdataDTO;
import com.baiyee.adcallback.config.pojo.JlBackdataDTO;
import com.baiyee.adcallback.config.pojo.convert.BdBackdataConvert;
import com.baiyee.adcallback.service.AdOriginalityManageService;
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;
import static com.baiyee.adcallback.common.constant.JuliangConstant.IMEI_TAG;
/**
* baidu api
*
* @author q
* @date 2022/01/06
* @see <a href="https://dev2.baidu.com/content?sceneType=0&pageId=101214&nodeId=15&subhead="></a>
*/
@RestController
@RequestMapping(value = ("/bd"))
@Slf4j
public class BaiduMobileMonitorCallbackAPI {
private final AdOriginalityManageService adOriginalityManageService;
public BaiduMobileMonitorCallbackAPI(AdOriginalityManageService adOriginalityManageService) {
this.adOriginalityManageService = adOriginalityManageService;
}
/**
*
*
* URL - 广:
* 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}}
*
*/
@RequestMapping(value = "/monitor")
public CommonResponse baiduMonitorUrlCallbackReqUrl(
@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_md5", defaultValue = "") String imei,
@RequestParam(value = "oaid", defaultValue = "") String oaid,
@RequestParam(value = "mac", defaultValue = "") String mac,
@RequestParam(value = "ip", defaultValue = "") String ip,
@RequestParam(value = "os", defaultValue = "") String os,
@RequestParam(value = "TIMESTAMP", defaultValue = "") Long ts,
@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
) {
BaiduMobileMonitorCallbackRequestVO vo = new BaiduMobileMonitorCallbackRequestVO(
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);
return CommonResponse.createBySuccess();
}
log.info("================================= [one request comming, BaiduMobileMonitorCallbackAPI|baiduMonitorUrlCallbackReqUrl, vo is {} ] =================================", vo);
BdBackdataDTO bdBackdataDTO = new BdBackdataDTO();
BdBackdataConvert.voCovertToDTO(vo, bdBackdataDTO);
adOriginalityManageService.handleMonitorUrlCallbackDataThenSave();
return CommonResponse.createBySuccess();
}
/**
*
*
* @return boolean
*/
private boolean preRuleForReq(BaiduMobileMonitorCallbackRequestVO vo) {
String imei = vo.getImeiMd5();
if (StrUtil.isBlank(imei)){
return Boolean.TRUE;
}
if (StrUtil.isNotBlank(imei) && StrUtil.equalsIgnoreCase(IMEI_TAG,imei)){
return Boolean.TRUE;
}
return Boolean.FALSE;
}
}

@ -5,8 +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.JuliangMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.common.pojo.JlBackdataDTO;
import com.baiyee.adcallback.common.pojo.convert.JlBackdataConvert;
import com.baiyee.adcallback.config.pojo.JlBackdataDTO;
import com.baiyee.adcallback.config.pojo.convert.JlBackdataConvert;
import com.baiyee.adcallback.service.AdOriginalityManageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;

@ -0,0 +1,55 @@
package com.baiyee.adcallback.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* VO
*
* @author q
* @date 2022/02/10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaiduMobileMonitorCallbackRequestVO implements Serializable {
private String userid;
private String aid;
private String pid;
private String uid;
private String callbackUrl;
private String clickId;
private String idfa;
private String imeiMd5;
private String oaid;
private String mac;
private String ip;
private String os;
private Long ts;
private String deviceInfo;
private String interactionsType;
private String extInfo;
private String callType;
}

@ -0,0 +1,37 @@
package com.baiyee.adcallback.config.pojo;
public class BdBackdataDTO {
private String userid;
private String aid;
private String pid;
private String uid;
private String callbackUrl;
private String clickId;
private String idfa;
private String imeiMd5;
private String oaid;
private String mac;
private String ip;
private String os;
private Long ts;
private String deviceInfo;
private String interactionsType;
private String extInfo;
private String callType;
}

@ -1,8 +1,5 @@
package com.baiyee.adcallback.common.pojo;
package com.baiyee.adcallback.config.pojo;
import cn.hutool.core.bean.BeanUtil;
import com.baiyee.adcallback.api.vo.JuliangMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.repository.entity.TbJlBackdataEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@ -0,0 +1,41 @@
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.BaiduMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.config.pojo.BdBackdataDTO;
import com.baiyee.adcallback.repository.entity.TbBdBackdataEntity;
public class BdBackdataConvert {
/**
*
*/
private BdBackdataConvert(){}
private static final ThreadLocal<BdBackdataDTO> context = new ThreadLocal<>();
/**
* vo dto -> 线
*
* @param vo
*/
public static void voCovertToDTO(BaiduMobileMonitorCallbackRequestVO vo, BdBackdataDTO dto) {
BeanUtil.copyProperties(vo, dto, true);
context.set(dto);
}
/**
*
*
* @return {@link TbBdBackdataEntity}
*/
public static TbBdBackdataEntity covertToEntity(TbBdBackdataEntity entity) {
BdBackdataDTO bdBackdataDTO = context.get();
if (ObjectUtil.isNotNull(bdBackdataDTO)){
BeanUtil.copyProperties(bdBackdataDTO, entity, true);
}
context.remove();
return entity;
}
}

@ -1,9 +1,9 @@
package com.baiyee.adcallback.common.pojo.convert;
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.JuliangMobileMonitorCallbackRequestVO;
import com.baiyee.adcallback.common.pojo.JlBackdataDTO;
import com.baiyee.adcallback.config.pojo.JlBackdataDTO;
import com.baiyee.adcallback.repository.entity.TbJlBackdataEntity;
public class JlBackdataConvert {

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

@ -0,0 +1,91 @@
package com.baiyee.adcallback.repository.entity;
import lombok.Data;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;
@Data
@Entity
@Table(name = "tb_bd_backdata", schema = "db_ad", catalog = "")
public class TbBdBackdataEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "id", nullable = false)
private long id;
@Basic
@Column(name = "gmt_create", nullable = false)
private Timestamp gmtCreate;
@Basic
@Column(name = "gmt_modify", nullable = false)
private Timestamp gmtModify;
@Basic
@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 = "click_id", nullable = false, length = 255)
private String clickId;
@Basic
@Column(name = "idfa", nullable = false, length = 255)
private String idfa;
@Basic
@Column(name = "imei_md5", nullable = false, length = 255)
private String imeiMd5;
@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 = "os", nullable = false, length = 255)
private String os;
@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 = "ext_info", nullable = false, length = 255)
private String extInfo;
@Basic
@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);
}
}

@ -11,4 +11,10 @@ public interface AdOriginalityManageService {
*
*/
void handleMonitorUrlCallbackDataThenSave();
/**
*
*/
void handleMonitorUrlCallbackDataThenSave1();
}

@ -1,11 +1,15 @@
package com.baiyee.adcallback.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baiyee.adcallback.common.pojo.convert.JlBackdataConvert;
import com.baiyee.adcallback.config.pojo.convert.BdBackdataConvert;
import com.baiyee.adcallback.config.pojo.convert.JlBackdataConvert;
import com.baiyee.adcallback.repository.TbBdBackdataEntityRepository;
import com.baiyee.adcallback.repository.TbJlBackdataEntityRepository;
import com.baiyee.adcallback.repository.entity.TbBdBackdataEntity;
import com.baiyee.adcallback.repository.entity.TbJlBackdataEntity;
import com.baiyee.adcallback.service.AdOriginalityManageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -20,8 +24,11 @@ public class AdOriginalityManageServiceImpl implements AdOriginalityManageServic
private final TbJlBackdataEntityRepository repository;
public AdOriginalityManageServiceImpl(TbJlBackdataEntityRepository repository) {
private final TbBdBackdataEntityRepository bdBackdataEntityRepository;
public AdOriginalityManageServiceImpl(TbJlBackdataEntityRepository repository, TbBdBackdataEntityRepository bdBackdataEntityRepository) {
this.repository = repository;
this.bdBackdataEntityRepository = bdBackdataEntityRepository;
}
@Override
@ -35,4 +42,15 @@ public class AdOriginalityManageServiceImpl implements AdOriginalityManageServic
log.error("============================= [save a data fail save is {} ] =============================", save);
}
}
@Override
public void handleMonitorUrlCallbackDataThenSave1() {
TbBdBackdataEntity entity = new TbBdBackdataEntity();
TbBdBackdataEntity backEntity = BdBackdataConvert.covertToEntity(entity);
TbBdBackdataEntity save = bdBackdataEntityRepository.save(backEntity);
if (ObjectUtil.isNull(save)){
log.error("============================= [save a data fail save is {} ] =============================", save);
}
}
}

Loading…
Cancel
Save