同步飞鱼线索日志

master
wjt 11 months ago
parent 68537648b8
commit 2576e39da1

@ -0,0 +1,23 @@
package com.baiye.modules.distribute.dto;
import cn.hutool.core.text.CharSequenceUtil;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* @author wjt
* @date 2023/11/10
*/
@Data
public class OceanEngineResponseDTO {
private Object data;
@JsonProperty("code")
private Integer code;
@JsonProperty("message")
private String message;
@JsonProperty("request_id")
private String requestId = CharSequenceUtil.EMPTY;
}

@ -1,8 +1,6 @@
package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.URLUtil;
import cn.hutool.http.HttpRequest;
@ -12,6 +10,7 @@ import cn.hutool.json.JSONUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.UrlConstant;
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.baiye.modules.distribute.dto.OceanEngineResponseDTO;
import com.baiye.modules.distribute.entity.DirectClueEntity;
import com.baiye.modules.distribute.entity.OceanEngineSourceEntity;
import com.baiye.modules.distribute.entity.OceanEngineToken;
@ -19,14 +18,10 @@ import com.baiye.modules.distribute.mapper.OceanEngineSourceMapper;
import com.baiye.modules.distribute.service.DirectClueService;
import com.baiye.modules.distribute.service.OceanEngineClueService;
import com.baiye.modules.distribute.service.OceanEngineService;
import com.baiye.system.constant.DateConst;
import com.baiye.system.constant.LetterConst;
import com.baiye.util.AESUtils;
import com.baiye.util.MobileUtil;
import com.baiye.utils.SerialCode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.ballcat.security.properties.SecurityProperties;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -36,8 +31,6 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author wjt
@ -62,12 +55,10 @@ public class OceanEngineClueServiceImpl extends ExtendServiceImpl<OceanEngineSou
if (CollUtil.isEmpty(oceanEngineTokens)) {
return;
}
for (OceanEngineToken oceanEngineToken : oceanEngineTokens) {
String accessToken = oceanEngineToken.getAccessToken();
//管家ids
List<String> advertiserIds = oceanEngineToken.getAdvertiserIds();
log.info("=================== 获取到的广告主ids {} ===================", JSONUtil.toJsonStr(advertiserIds));
CompletableFuture.runAsync(() -> getAdvertiser(oceanEngineToken.getUserId(), accessToken, advertiserIds, startTime, endTime));
}
}
@ -79,24 +70,25 @@ public class OceanEngineClueServiceImpl extends ExtendServiceImpl<OceanEngineSou
* @param advertisers id
*/
private void getAdvertiser(Long userId, String accessToken, List<String> advertisers, Date startTime, Date endTime) {
log.info("=================== 巨量飞鱼,拉取用户{} ===================", userId);
if (CollUtil.isEmpty(advertisers)) {
log.info("=================== 巨量飞鱼,拉取用户{} 无管家 ===================", userId);
return;
}
List<String> advertiseList = getAdvertiseIds(accessToken, advertisers);
if (CollUtil.isEmpty(advertiseList)) {
log.info("=================== 巨量飞鱼,拉取用户{} 无广告商 ===================", userId);
return;
}
Map<String, Object> map = new HashMap<>(5);
map.put("advertiser_ids", advertiseList.toString());
map.put("start_time", startTime);
map.put("end_time", endTime);
log.info("=================== 巨量飞鱼请求 {} ===================", JSONUtil.toJsonStr(map));
JSONArray array = reqOceanEngineClue(accessToken, map);
log.info("=================== 巨量飞鱼,线索数量{} ===================", array.size());
if (CollUtil.isEmpty(array)) {
return;
}
log.info("=================== 巨量飞鱼返回{} ===================", array.size());
parseAndSaveData(userId, array);
}
@ -115,18 +107,21 @@ public class OceanEngineClueServiceImpl extends ExtendServiceImpl<OceanEngineSou
header("Access-Token", accessToken).
execute().
body();
JSONObject response = JSONUtil.parseObj(body);
if (response.getInt("code") == 0 && response.getStr("data") != null) {
JSONObject json = JSONUtil.parseObj(response.getStr("data"));
JSONArray results = json.getJSONArray("list");
for (int i = 0; i < results.size(); i++) {
JSONObject jsonObject = results.getJSONObject(i);
String advertiserId = jsonObject.getStr("advertiser_id");
advertiseList.add(advertiserId);
OceanEngineResponseDTO response = JSONUtil.toBean(body, OceanEngineResponseDTO.class);
if (response.getCode() == 0) {
if (response.getData() != null) {
JSONObject json = JSONUtil.parseObj(response.getData());
JSONArray results = json.getJSONArray("list");
for (int i = 0; i < results.size(); i++) {
JSONObject jsonObject = results.getJSONObject(i);
String advertiserId = jsonObject.getStr("advertiser_id");
advertiseList.add(advertiserId);
}
}
} else {
log.error("管家号:{},获取广告主失败 {}", id, response);
}
}
log.info("advertiseList===={}", advertiseList.size());
return advertiseList;
}
@ -158,9 +153,13 @@ public class OceanEngineClueServiceImpl extends ExtendServiceImpl<OceanEngineSou
public static JSONObject getClueList(Map<String, Object> map, String accessToken) {
String body = HttpRequest.get(UrlConstant.SYNC_CLUE_URL + "?" + URLUtil.buildQuery(map, Charset.defaultCharset())).header("Access-Token", accessToken).execute().body();
JSONObject response = JSONUtil.parseObj(body);
if (response.getInt("code") == 0 && response.getStr("data") != null) {
return JSONUtil.parseObj(response.getStr("data"));
OceanEngineResponseDTO response = JSONUtil.toBean(body, OceanEngineResponseDTO.class);
if (response.getCode() == 0) {
if (response.getData() != null) {
return JSONUtil.parseObj(response.getData());
}
} else {
log.error("获取飞鱼线索失败 {}", response);
}
return null;
}
@ -168,8 +167,8 @@ public class OceanEngineClueServiceImpl extends ExtendServiceImpl<OceanEngineSou
/**
* 线
*
* @param userId
* @param array
* @param userId id
* @param array 线
*/
@Transactional(rollbackFor = Exception.class)
public void parseAndSaveData(Long userId, JSONArray array) {
@ -198,7 +197,7 @@ public class OceanEngineClueServiceImpl extends ExtendServiceImpl<OceanEngineSou
oceanEngineSources.add(oceanEngineSource);
//传递线索
boolean bool = MobileUtil.checkPhone(phone);
if (bool){
if (bool) {
Date date = new Date();
LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
String nid = AESUtils.encrypt(phone, securityProperties.getPasswordSecretKey());
@ -212,15 +211,4 @@ public class OceanEngineClueServiceImpl extends ExtendServiceImpl<OceanEngineSou
directClueService.allocationClue(userId, directClueEntityList);
baseMapper.insertBatchSomeColumn(oceanEngineSources);
}
/**
*
*
* @param countName
*/
private boolean checkCountName(String countName) {
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher m = p.matcher(countName);
return m.find();
}
}

Loading…
Cancel
Save