|
|
@@ -22,6 +22,15 @@ import java.util.Map;
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class BytedanceMiniAppServiceImpl implements IBytedanceMiniAppService {
|
|
|
+ private static final Map<Integer,String> adPlacementMap = new HashMap<Integer,String>(){{
|
|
|
+ put(1,"banner");
|
|
|
+ put(2,"激励视频广告");
|
|
|
+ put(3,"信息流广告");
|
|
|
+ put(4,"插屏广告");
|
|
|
+ put(5,"视频前贴片广告");
|
|
|
+ put(6,"视频后贴片广告");
|
|
|
+ put(9,"视频流广告");
|
|
|
+ }};
|
|
|
@Resource
|
|
|
private RedisTemplate redis2Template_db5;
|
|
|
|
|
|
@@ -37,11 +46,59 @@ public class BytedanceMiniAppServiceImpl implements IBytedanceMiniAppService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public List<String> getAllAppIds() {
|
|
|
+ return bytedanceMiniAppMapper.getAllAppIds();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public List<JSONObject> getMaEcpmRetryJob() {
|
|
|
return bytedanceMiniAppMapper.getMaEcpmRetryJob();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void getAdPlacement(String appId) {
|
|
|
+ try {
|
|
|
+ String url = "https://open.douyin.com/api/apps/v1/ad_placement/query/";
|
|
|
+ Object tokenObj = redis2Template_db5.opsForValue().get("client-token-key_" + appId);
|
|
|
+ if (tokenObj == null) {
|
|
|
+ log.error("抖小广告位列表拉取获取token为空 [{}]", appId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ HashMap<String, String> headers = new HashMap<>();
|
|
|
+ headers.put("access-token", tokenObj.toString());
|
|
|
+ headers.put("Content-Type", "application/json; charset=UTF-8");
|
|
|
+
|
|
|
+ String s = HttpUtils.httpGet(url,null,headers);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(s);
|
|
|
+
|
|
|
+ if (!Check.isNull(jsonObject)) {
|
|
|
+ Integer code = jsonObject.getInteger("err_no");
|
|
|
+ if (code == 0) {
|
|
|
+ JSONObject data = jsonObject.getJSONObject("data");
|
|
|
+
|
|
|
+ JSONArray result = data.getJSONArray("ad_placement_list");
|
|
|
+ if (!Check.isNull(result)) {
|
|
|
+ for (int i = 0; i < result.size(); i++) {
|
|
|
+ JSONObject resultJson = result.getJSONObject(i);
|
|
|
+ resultJson.put("app_id", appId);
|
|
|
+ resultJson.put("ad_placement_type_name", adPlacementMap.get(resultJson.getInteger("ad_placement_type")));
|
|
|
+ }
|
|
|
+ bytedanceMiniAppMapper.insertAdPlacement(result);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("[{}]抖小广告位列表拉取失败,返回信息:{}", appId, s);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("[{}]抖小广告位列表拉取返回数据为空", appId);
|
|
|
+ }
|
|
|
+ log.info("[{}]抖小广告位列表拉取返回数据完成。", appId);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public void getMaEcpm(String startDt, String endDt, String appId, Integer isLog, Long errId, Integer isSend) {
|
|
|
try {
|
|
|
Long dataRangeSeconds = 3600L;
|