|
@@ -15,6 +15,8 @@ import org.apache.http.client.utils.URIBuilder;
|
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
import org.apache.http.impl.client.HttpClients;
|
|
|
import org.apache.http.util.EntityUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.boot.SpringApplication;
|
|
|
import org.springframework.context.ConfigurableApplicationContext;
|
|
@@ -27,10 +29,8 @@ import java.net.URISyntaxException;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
+import java.util.concurrent.Executor;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -44,6 +44,10 @@ public class XinLuDataProcessor implements XinLuService {
|
|
|
@Value("${xinlu.callback.url}")
|
|
|
private String url;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ @Qualifier("starExecutor")
|
|
|
+ private Executor executor;
|
|
|
+
|
|
|
|
|
|
@PostConstruct
|
|
|
public void init() {
|
|
@@ -57,7 +61,7 @@ public class XinLuDataProcessor implements XinLuService {
|
|
|
*/
|
|
|
@Override
|
|
|
public void processInstitutionData(List<JSONObject> jsonObjects) {
|
|
|
- jsonObjects.forEach(config -> {
|
|
|
+ jsonObjects.forEach(config -> executor.execute(() -> {
|
|
|
Integer institutionId = config.getInteger("institutionId");
|
|
|
String busiId = config.getString("busiId");
|
|
|
// 1. 根据institutionId获取对应URL
|
|
@@ -66,23 +70,26 @@ public class XinLuDataProcessor implements XinLuService {
|
|
|
log.warn("未找到institutionId={}对应的URL", institutionId);
|
|
|
return;
|
|
|
}
|
|
|
- String currentDate = getCurrentDate();
|
|
|
-// String testBegin = "2025-03-01";
|
|
|
-// String testEnd = "2025-03-24";
|
|
|
- // 2. 发送GET请求
|
|
|
- String responseJson = sendGetRequest(targetUrl,1,currentDate,currentDate);
|
|
|
-// String responseJson = sendGetRequest(targetUrl,1,testBegin,testEnd);
|
|
|
- if (responseJson == null) return;
|
|
|
- // 3. 解析并映射数据
|
|
|
- List<XinLuUserStarCallbackParam> mappedData = parseAndMapData(responseJson, institutionId, busiId);
|
|
|
- log.info("鑫路回传诚易融数据{},{}", institutionId,mappedData);
|
|
|
- if (CollectionUtils.isEmpty(mappedData)) {
|
|
|
- log.info("鑫路没有回传数据{},{}", institutionId,currentDate);
|
|
|
- return;
|
|
|
+
|
|
|
+ // 星级数据拉取周期从一天调整为一周
|
|
|
+ for (int i = 6; i >= 0; i--) {
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ String syncDate = LocalDate.now().minusDays(i).format(formatter);
|
|
|
+
|
|
|
+ // 2. 发送GET请求
|
|
|
+ String responseJson = sendGetRequest(targetUrl,1, syncDate, syncDate);
|
|
|
+ if (responseJson == null) { continue; }
|
|
|
+ // 3. 解析并映射数据
|
|
|
+ List<XinLuUserStarCallbackParam> mappedData = parseAndMapData(responseJson, institutionId, busiId);
|
|
|
+ log.info("鑫路回传诚易融数据{},{},同步时间:{}", institutionId, mappedData, syncDate);
|
|
|
+ if (CollectionUtils.isEmpty(mappedData)) {
|
|
|
+ log.info("鑫路没有回传数据{},同步时间:{}", institutionId, syncDate);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 4. 后续处理(存储/推送等)
|
|
|
+ handleMappedData(mappedData);
|
|
|
}
|
|
|
- // 4. 后续处理(存储/推送等)
|
|
|
- handleMappedData(mappedData);
|
|
|
- });
|
|
|
+ }));
|
|
|
}
|
|
|
|
|
|
private String sendGetRequest(String originalUrl,int pageNum, String beginTime, String endTime){
|