48 lines
1.7 KiB
Java
48 lines
1.7 KiB
Java
|
|
package com.ruoyi.lsfx.client;
|
||
|
|
|
||
|
|
import com.ruoyi.lsfx.domain.response.CreditParseResponse;
|
||
|
|
import com.ruoyi.lsfx.exception.LsfxApiException;
|
||
|
|
import com.ruoyi.lsfx.util.HttpUtil;
|
||
|
|
import jakarta.annotation.Resource;
|
||
|
|
import lombok.extern.slf4j.Slf4j;
|
||
|
|
import org.springframework.beans.factory.annotation.Value;
|
||
|
|
import org.springframework.stereotype.Component;
|
||
|
|
|
||
|
|
import java.io.File;
|
||
|
|
import java.util.HashMap;
|
||
|
|
import java.util.Map;
|
||
|
|
|
||
|
|
@Slf4j
|
||
|
|
@Component
|
||
|
|
public class CreditParseClient {
|
||
|
|
|
||
|
|
@Resource
|
||
|
|
private HttpUtil httpUtil;
|
||
|
|
|
||
|
|
@Value("${credit-parse.api.url}")
|
||
|
|
private String creditParseUrl;
|
||
|
|
|
||
|
|
public CreditParseResponse parse(String model, String hType, File file) {
|
||
|
|
long startTime = System.currentTimeMillis();
|
||
|
|
log.info("【征信解析】开始调用: fileName={}, model={}, hType={}", file.getName(), model, hType);
|
||
|
|
|
||
|
|
try {
|
||
|
|
Map<String, Object> params = new HashMap<>();
|
||
|
|
params.put("model", model);
|
||
|
|
params.put("hType", hType);
|
||
|
|
params.put("file", file);
|
||
|
|
|
||
|
|
CreditParseResponse response = httpUtil.uploadFile(creditParseUrl, params, null, CreditParseResponse.class);
|
||
|
|
|
||
|
|
long elapsed = System.currentTimeMillis() - startTime;
|
||
|
|
log.info("【征信解析】调用完成: statusCode={}, cost={}ms",
|
||
|
|
response != null ? response.getStatusCode() : null, elapsed);
|
||
|
|
return response;
|
||
|
|
} catch (Exception e) {
|
||
|
|
log.error("【征信解析】调用失败: fileName={}, model={}, hType={}, error={}",
|
||
|
|
file.getName(), model, hType, e.getMessage(), e);
|
||
|
|
throw new LsfxApiException("征信解析调用失败: " + e.getMessage(), e);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|