|
|
@@ -35,16 +35,34 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
|
|
|
@Autowired
|
|
|
private AdqErrorLogMapper adqErrorLogMapper;
|
|
|
|
|
|
- private static final Map<String, String> adSlotMap = new HashMap<>();
|
|
|
+ private static final Map<String, String> adSlotMap = new HashMap<String, String>(){{
|
|
|
+ put("SLOT_ID_BIZ_BOTTOM", "公众号底部广告");
|
|
|
+ put("SLOT_ID_BIZ_MID_CONTEXT", "公众号文中广告");
|
|
|
+ put("SLOT_ID_BIZ_VIDEO_END", "公众号视频后贴");
|
|
|
+ put("SLOT_ID_BIZ_SPONSOR", "公众号互选广告");
|
|
|
+ put("SLOT_ID_BIZ_CPS", "公众号返佣商品");
|
|
|
+ put("SLOT_ID_WEAPP_BANNER", "小程序banner");
|
|
|
+ put("SLOT_ID_WEAPP_REWARD_VIDEO", "小程序激励视频");
|
|
|
+ put("SLOT_ID_WEAPP_INTERSTITIAL", "小程序插屏广告");
|
|
|
+ put("SLOT_ID_WEAPP_VIDEO_FEEDS", "小程序视频广告");
|
|
|
+ put("SLOT_ID_WEAPP_VIDEO_BEGIN", "小程序视频前贴");
|
|
|
+ put("SLOT_ID_WEAPP_BOX", "小程序格子广告");
|
|
|
+ put("SLOT_ID_WEAPP_TEMPLATE", "小程序原生模板广告");
|
|
|
+ put("SLOT_ID_WEAPP_COVER", "封面广告");
|
|
|
+ }};
|
|
|
|
|
|
public List<JSONObject> getAdqAdIncomeRetryJob() {
|
|
|
return adqAdIncomeMapper.queryAdqAdIncomeRetryJob();
|
|
|
}
|
|
|
|
|
|
- public List<JSONObject> getAdqMiniApp(String appId) {
|
|
|
+ public List<JSONObject> getAdqIaaMiniApp(String appId) {
|
|
|
return adqAdIncomeMapper.queryAdqIaaMiniApp(appId);
|
|
|
}
|
|
|
|
|
|
+ public List<JSONObject> getAdqAllMiniApp(String appId) {
|
|
|
+ return adqAdIncomeMapper.queryAdqAllMiniApp(appId);
|
|
|
+ }
|
|
|
+
|
|
|
public void getAdqAdIncome(String startDt, String endDt, String appId, Long appletId, Integer page, Integer isLog, Long errId, Integer isSend) {
|
|
|
if (page == 1) {
|
|
|
getAdqAdIncomeCover(startDt, endDt, appId, appletId, page, isLog, errId, isSend);
|
|
|
@@ -86,7 +104,7 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
|
|
|
AdqPublisherAdunitGeneral report = JSONObject.parseObject(statItem.toJSONString(), AdqPublisherAdunitGeneral.class);
|
|
|
report.setAppId(appId);
|
|
|
report.setStatDate(Integer.valueOf(report.getDate().replace("-", "")));
|
|
|
- report.setAdSlotName(getAdSlotName(report.getAdSlot()));
|
|
|
+ report.setAdSlotName(adSlotMap.get(report.getAdSlot()));
|
|
|
//System.out.println(report);
|
|
|
reports.add(report);
|
|
|
|
|
|
@@ -167,7 +185,7 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
|
|
|
AdqPublisherAdunitGeneral report = JSONObject.parseObject(dataJson.toJSONString(), AdqPublisherAdunitGeneral.class);
|
|
|
report.setAppId(appId);
|
|
|
report.setStatDate(Integer.valueOf(report.getDate().replace("-", "")));
|
|
|
- report.setAdSlotName(getAdSlotName(report.getAdSlot()));
|
|
|
+ report.setAdSlotName(adSlotMap.get(report.getAdSlot()));
|
|
|
//System.out.println(report);
|
|
|
reports.add(report);
|
|
|
|
|
|
@@ -219,24 +237,58 @@ public class AdqAdIncomeServiceImpl implements IAdqAdIncomeService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void getAdqAdUnitList(String appId, Long appletId, Integer page) {
|
|
|
+ try {
|
|
|
+ String url = "https://api.weixin.qq.com/publisher/stat";
|
|
|
+ Object tokenObj = redis2Template_db5.opsForValue().get("wechat-applet-access-token-key-" + appletId);
|
|
|
+ if (tokenObj == null) {
|
|
|
+ log.error("微小获取小程序广告位清单拉取获取token为空 {} {}", appId, appletId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int pageSize = 100;
|
|
|
+ Map<String, Object> paramsMap = new HashMap<>();
|
|
|
+ paramsMap.put("access_token", tokenObj.toString());
|
|
|
+ paramsMap.put("action", "get_adunit_list");
|
|
|
+ paramsMap.put("page", page);
|
|
|
+ paramsMap.put("page_size", pageSize);
|
|
|
+ String s = HttpUtils.httpGet(url, paramsMap, null);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(s);
|
|
|
+ List<AdqPublisherAdunitGeneral> reports = new ArrayList<>();
|
|
|
+ int totalPage = 1;
|
|
|
+ if (!Check.isNull(jsonObject)) {
|
|
|
+ Integer code = jsonObject.getInteger("ret");
|
|
|
+ if (code == 2009) {
|
|
|
+ return; //无效的流量主
|
|
|
+ }
|
|
|
+ if (code == 0) {
|
|
|
+ JSONArray list = jsonObject.getJSONArray("ad_unit");
|
|
|
+ Integer totalNum = jsonObject.getInteger("total_num");
|
|
|
+ totalPage = (int) Math.ceil(totalNum * 1.0 / pageSize);
|
|
|
+ if (!Check.isNull(list)) {
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ JSONObject adUnitJson = list.getJSONObject(i);
|
|
|
+ adUnitJson.put("ad_unit_size",adUnitJson.getString("ad_unit_size"));
|
|
|
+ adUnitJson.put("templ_type_list",adUnitJson.getString("templ_type_list"));
|
|
|
+ adUnitJson.put("app_id", appId);
|
|
|
+ adUnitJson.put("ad_slot_name", adSlotMap.get(adUnitJson.getString("ad_slot")));
|
|
|
+ }
|
|
|
+ adqAdIncomeMapper.insertAdUnitList(list);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("微小获取小程序广告位清单拉取失败,app_id:{} ,返回信息:{}", appId, jsonObject);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("微小获取小程序广告位清单拉取失败,app_id:{} ,返回为空。", appId);
|
|
|
+ }
|
|
|
|
|
|
- private String getAdSlotName(String adSlot) {
|
|
|
- if (adSlotMap.isEmpty()) {
|
|
|
- adSlotMap.put("SLOT_ID_BIZ_BOTTOM", "公众号底部广告");
|
|
|
- adSlotMap.put("SLOT_ID_BIZ_MID_CONTEXT", "公众号文中广告");
|
|
|
- adSlotMap.put("SLOT_ID_BIZ_VIDEO_END", "公众号视频后贴");
|
|
|
- adSlotMap.put("SLOT_ID_BIZ_SPONSOR", "公众号互选广告");
|
|
|
- adSlotMap.put("SLOT_ID_BIZ_CPS", "公众号返佣商品");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_BANNER", "小程序banner");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_REWARD_VIDEO", "小程序激励视频");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_INTERSTITIAL", "小程序插屏广告");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_VIDEO_FEEDS", "小程序视频广告");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_VIDEO_BEGIN", "小程序视频前贴");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_BOX", "小程序格子广告");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_TEMPLATE", "小程序原生模板广告");
|
|
|
- adSlotMap.put("SLOT_ID_WEAPP_COVER", "封面广告");
|
|
|
+ if (totalPage > page) {
|
|
|
+ getAdqAdUnitList(appId, appletId, page + 1);
|
|
|
+ } else {
|
|
|
+ log.info("微小获取小程序广告位清单拉取完成,app_id:{} page:{}。", appId, page);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("微小获取小程序广告位清单拉取失败,app_id:{}。", appId, e);
|
|
|
}
|
|
|
- return adSlotMap.get(adSlot);
|
|
|
}
|
|
|
|
|
|
}
|