wanghc
2023-03-08 89b19185b4bb35cc2d68e497c95d047b46b024bb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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);
        }
    }
}