|
@@ -65,7 +65,7 @@ public class PushMessageStrategyV1 implements ReplyStrategyService {
|
|
|
// 2 处理小程序--读取离线数据表--获取策略排序小程序数据
|
|
|
List<CgiReplyBucketData> smallDataCgiReplyList = readStrategyOrderSmallData(keyedSet, bucketDataParam);
|
|
|
// 2.1 获取小程序落地页地址 http调用
|
|
|
- smallDataCgiReplyList = setSmallPageUrl(smallDataCgiReplyList);
|
|
|
+ smallDataCgiReplyList = setSmallPageUrl(smallDataCgiReplyList, bucketDataParam.getChannel());
|
|
|
log.info(JSON.toJSONString(smallDataCgiReplyList));
|
|
|
// 3 入库读表
|
|
|
insertSmallData(smallDataCgiReplyList, keyedSet, bucketDataParam);
|
|
@@ -148,49 +148,35 @@ public class PushMessageStrategyV1 implements ReplyStrategyService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<CgiReplyBucketData> setSmallPageUrl(List<CgiReplyBucketData> smallDataCgiReplyList) {
|
|
|
+ private List<CgiReplyBucketData> setSmallPageUrl(List<CgiReplyBucketData> smallDataCgiReplyList, String channel) {
|
|
|
if (CollectionUtils.isEmpty(smallDataCgiReplyList)) {
|
|
|
return smallDataCgiReplyList;
|
|
|
}
|
|
|
- Set<String> keys = smallDataCgiReplyList.stream().map(x -> x.getGhId() + "&" + x.getMiniVideoId()).collect(Collectors.toSet());
|
|
|
- Map<String, SmallPageUrlDetail> keyPageUrl = new HashMap<>();
|
|
|
- // gh-id + videoId 复用同一page_url及落地页id
|
|
|
- for (String key : keys) {
|
|
|
- String[] keyArr = key.split("&");
|
|
|
- String ghId = keyArr[0];
|
|
|
- String videoId = keyArr[1];
|
|
|
+ for (CgiReplyBucketData cgiReplyBucketData : smallDataCgiReplyList) {
|
|
|
// 查询库里是否存在,如果存在即复用
|
|
|
CgiReplyBucketDataExample cgiReplyBucketDataExample = new CgiReplyBucketDataExample();
|
|
|
- cgiReplyBucketDataExample.createCriteria().andIsDeleteEqualTo(0).andMiniVideoIdEqualTo(Long.valueOf(videoId)).andGhIdEqualTo(ghId);
|
|
|
- List<CgiReplyBucketData> cgiReplyBucketData = cgiReplyBucketDataMapper.selectByExample(cgiReplyBucketDataExample);
|
|
|
+ cgiReplyBucketDataExample.createCriteria().andIsDeleteEqualTo(0)
|
|
|
+ .andMiniVideoIdEqualTo(cgiReplyBucketData.getMiniVideoId())
|
|
|
+ .andGhIdEqualTo(cgiReplyBucketData.getGhId())
|
|
|
+ .andSortEqualTo(cgiReplyBucketData.getSort());
|
|
|
+ List<CgiReplyBucketData> cgiReplyBucketDataList = cgiReplyBucketDataMapper.selectByExample(cgiReplyBucketDataExample);
|
|
|
SmallPageUrlDetail smallPageUrlDetail = new SmallPageUrlDetail();
|
|
|
- if (CollectionUtils.isEmpty(cgiReplyBucketData)) {
|
|
|
+ if (CollectionUtils.isEmpty(cgiReplyBucketDataList)) {
|
|
|
// 库里不存在,调用新生成
|
|
|
- String response = httpClientService.sendAdFlowAddRequest(GET_SMALL_PAGE_URL, videoId, "公众号", "自动回复小程序", "位置X", ghId);
|
|
|
+ String response = httpClientService.sendAdFlowAddRequest(GET_SMALL_PAGE_URL, cgiReplyBucketData.getMiniVideoId(), "dyyjs", channel, "自动", "公众号", "自动回复小程序", "位置" + cgiReplyBucketData.getSort(), cgiReplyBucketData.getGhId());
|
|
|
JSONObject jsonObject = JSON.parseObject(response);
|
|
|
if (jsonObject.getInteger("code").equals(0)) {
|
|
|
smallPageUrlDetail = jsonObject.getObject("data", SmallPageUrlDetail.class);
|
|
|
- keyPageUrl.put(key, smallPageUrlDetail);
|
|
|
} else {
|
|
|
log.error("httpClientService get page url error,response:" + response);
|
|
|
throw new RuntimeException("httpClientService get page url error");
|
|
|
}
|
|
|
} else {
|
|
|
// 复用
|
|
|
- CgiReplyBucketData cgiReplyBucketData1 = cgiReplyBucketData.get(0);
|
|
|
+ CgiReplyBucketData cgiReplyBucketData1 = cgiReplyBucketDataList.get(0);
|
|
|
smallPageUrlDetail.setId(cgiReplyBucketData1.getPagePathUrlId());
|
|
|
smallPageUrlDetail.setUrl(cgiReplyBucketData1.getMiniPagePath());
|
|
|
}
|
|
|
- keyPageUrl.put(key, smallPageUrlDetail);
|
|
|
- }
|
|
|
- // 处理数据
|
|
|
- for (CgiReplyBucketData cgiReplyBucketData : smallDataCgiReplyList) {
|
|
|
- String key = cgiReplyBucketData.getGhId() + "&" + cgiReplyBucketData.getMiniVideoId();
|
|
|
- SmallPageUrlDetail smallPageUrlDetail = keyPageUrl.get(key);
|
|
|
- if (Objects.isNull(smallPageUrlDetail)) {
|
|
|
- log.error("setSmallPageUrl get map url is null" + JSON.toJSONString(keyPageUrl));
|
|
|
- throw new RuntimeException("setSmallPageUrl get map url is null");
|
|
|
- }
|
|
|
cgiReplyBucketData.setPagePathUrlId(smallPageUrlDetail.getId());
|
|
|
cgiReplyBucketData.setMiniPagePath(smallPageUrlDetail.getUrl());
|
|
|
}
|