package com.jttech.pfcs.services.impl;
|
|
import java.util.concurrent.TimeUnit;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Service;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.jttech.pfcs.services.IBillService;
|
import com.jttech.pfcs.vo.ResponseVo;
|
import com.jttech.pfcs.vo.req.bill.BillApiReqVo;
|
import com.jttech.pfcs.vo.req.bill.BillApiRespVo;
|
|
import okhttp3.*;
|
|
/**
|
* 账单服务
|
* @author wanghc
|
* @version 1.0.0
|
* @date 2023-03-08
|
*/
|
@Service
|
public class BillServiceImpl implements IBillService {
|
|
private Logger mLogger = LoggerFactory.getLogger(getClass());
|
|
private static final String contentType = "application/json;charset=utf-8";
|
|
/**
|
* 请求编码格式
|
*/
|
private static final String charset = "UTF-8";
|
|
|
private static final OkHttpClient client = new OkHttpClient.Builder()
|
.connectionPool(new ConnectionPool(500, 5, TimeUnit.MINUTES)).connectTimeout(10000, TimeUnit.MILLISECONDS)
|
.readTimeout(60000, TimeUnit.MILLISECONDS).build();
|
|
/**
|
* post请求
|
*
|
* @param reqVo
|
* @return
|
*/
|
@Override
|
public ResponseVo post(BillApiReqVo reqVo) {
|
try {
|
mLogger.info("BillServiceImpl.post reqvo={}", reqVo);
|
Request request = new Request.Builder().url(reqVo.getUrl())
|
.post(RequestBody.create(MediaType.parse(contentType), JSONObject.toJSONString(reqVo)))
|
.addHeader("Content-Type", contentType)
|
.build();
|
Response resp = client.newCall(request).execute();
|
String body = new String(resp.body().bytes(), charset);
|
mLogger.info("BillServiceImpl.post resp={}", body);
|
return new ResponseVo(JSONObject.parseObject(body, BillApiRespVo.class));
|
} catch (Exception e) {
|
mLogger.error("BillServiceImpl.post error={}", e);
|
String errMsg = e.getMessage() == null ? "接口调用异常" : e.getMessage();
|
errMsg = errMsg.substring(0, Math.min(20, errMsg.length()));
|
return ResponseVo.fail(-999, errMsg);
|
}
|
}
|
}
|