EasyAPI.java 7.73 KB
package com.lhcredit.project.worldbox;

import cn.hutool.core.lang.Console;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lhcredit.common.utils.StringUtils;
import com.lhcredit.project.business.worldboxlog.domain.Easylog;
import com.lhcredit.project.business.worldboxlog.mapper.EasylogMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Base64;
import java.util.Date;
import java.util.HashMap;

@Component
public class EasyAPI {

    @Value("${easy.url}")
    String url;

    @Value("${easy.user}")
    String user;

    @Value("${easy.key}")
    String key;

    @Value("${easy.qclientId}")
    String qclientId;
    @Value("${easy.aclientId}")
    String aclientId;
    @Value("${easy.gclientId}")
    String gclientId;
    @Value("${easy.qclientSecret}")
    String qclientSecret;
    @Value("${easy.aclientSecret}")
    String aclientSecret;
    @Value("${easy.gclientSecret}")
    String gclientSecret;

    @Autowired
    private EasylogMapper easylogMapper;

    /**
     * 获取token
     * @return
     */
    public String getToken(String type,String clientId, String clientSecret) {
        String aa=clientId+":"+clientSecret;
        String auth = Base64.getEncoder().encodeToString(aa.getBytes());
        String newUrl=url+"auth/oauth2/token";
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("grant_type", "client_credentials");
        String result = HttpRequest.post(newUrl)
                .header(Header.CONTENT_TYPE, "application/x-www-form-urlencoded")
                .header("Authorization","Basic "+auth)
                .form(paramMap)//表单内容
                .timeout(20000)//超时,毫秒
                .execute().body();

        if(StringUtils.isNotEmpty(result)){
            //解析数据
            JSONObject obj= JSON.parseObject(result);
            String access_token=obj.getString("access_token");
            return access_token;
        }

        return null;
    }

    /**
     * 查询企业
     * @param
     * @return
     */
    public  String query(String entName,String countryIso,String createBy) {

        String token=this.getToken("query",qclientId,qclientSecret);

        String url2=url+"apimaster/qqqyk/companies/search";
        JSONObject paramMap = new JSONObject();
        paramMap.put("entName",entName);
        paramMap.put("countryIso",countryIso);
        paramMap.put("user",user);
        paramMap.put("key",key);

        String result = HttpRequest.post(url2)
                .header(Header.CONTENT_TYPE, "application/json")
                .header("Authorization","Bearer "+token)
                .body(paramMap.toJSONString())//表单内容
                .timeout(20000)//超时,毫秒
                .execute().body();
        //插入日志
        Easylog easylog=new Easylog();
        easylog.setName(entName);
        easylog.setRequest(url2+"   "+paramMap);
        easylog.setResport(result);
        easylog.setCreateBy(createBy);
        easylog.setCreateTime(new Date());
        easylogMapper.insertEasylog(easylog);
        return result;
    }

    /**
     * 下单
     * @param
     * @return
     */
    public String addOrder(String eid,String entName,String createBy) {

        String  token=this.getToken("addOrder",aclientId,aclientSecret);
        String url3=url+"apimaster/qqqyk/companies/reports";
        JSONObject obj = new JSONObject();
        obj.put("eid",eid);
        obj.put("cid","UC");
        obj.put("user",user);
        obj.put("key",key);

        String result= HttpRequest.post(url3)
                .header(Header.CONTENT_TYPE, "application/json")
                .header("Authorization","Bearer "+token)
                .body(obj.toJSONString())//表单内容
                .timeout(20000)//超时,毫秒
                .execute().body();

        //插入日志
        Easylog easylog=new Easylog();
        easylog.setName(entName);
        easylog.setRequest(url3+"   "+obj);
        easylog.setResport(result);
        easylog.setCreateBy(createBy);
        easylog.setCreateTime(new Date());
        easylogMapper.insertEasylog(easylog);

        return result;
    }


    /**
     * 查询订单
     * @param
     * @return
     */
    public String getOrder(String reportId,String entName,String createBy) {
        //获取redis,token
        String token=this.getToken("getOrder",gclientId,gclientSecret);

        String url4=url+"apimaster/qqqyk/companies/getReports";
        JSONObject object= new JSONObject();
        object.put("reportId",reportId);
        object.put("user",user);
        object.put("key",key);

        String result= HttpRequest.post(url4)
                .header(Header.CONTENT_TYPE, "application/json")
                .header("Authorization","Bearer "+token)
                .body(object.toJSONString())//表单内容
                .timeout(20000)//超时,毫秒
                .execute().body();

        //插入日志
        Easylog easylog=new Easylog();
        easylog.setName(entName);
        easylog.setRequest(url4+"   "+object);
        easylog.setResport(result);
        easylog.setCreateBy(createBy);
        easylog.setCreateTime(new Date());
        easylogMapper.insertEasylog(easylog);
        return result;
    }




    public static void main(String[] args) {
        String aa="pek4edHOCtNZ6Ipe34:V39mW3WxoVWSDYPs2yV";
        String auth = Base64.getEncoder().encodeToString(aa.getBytes());
        String newUrl="https://apolloapi.cn:19999/auth/oauth2/token";
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("grant_type", "client_credentials");
        String result = HttpRequest.post(newUrl)
                .header(Header.CONTENT_TYPE, "application/x-www-form-urlencoded")
                .header("Authorization","Basic "+auth)
                .form(paramMap)//表单内容
                .timeout(20000)//超时,毫秒
                .execute().body();
        System.out.println(result);

        /**
         * 查询企业
         */
//        String url2="https://apolloapi.cn:19999/apimaster/qqqyk/companies/search";
//        JSONObject paramMap = new JSONObject();
//        paramMap.put("entName","ITR Middle East FZCO");
//        paramMap.put("countryIso","AE");
//        paramMap.put("user","uc");
//        paramMap.put("key","a1b2c3d4-5e6f-7g8h-9i0j-k1l2m3n4o5p6");
//
//        String result2 = HttpRequest.post(url2)
//                .header(Header.CONTENT_TYPE, "application/json")
//                .header("Authorization","Bearer onj6tE90GT_gOQQVxy31qy_2foHRm5o8-umUimPLD8A84OtQqaow5pfZqaCHPwfCbOsyekN01wh7BJuWA2vHWmkfto70pJRJmvxzBIjOhmNUwYCZZtsB1bsDN7YBFf2Z")
//                .body(paramMap.toJSONString())//表单内容
//                .timeout(20000)//超时,毫秒
//                .execute().body();
//        Console.log(result2);

        String url3="https://apolloapi.cn:19999/apimaster/qqqyk/companies/reports";
        JSONObject j2 = new JSONObject();
        j2.put("eid","");
        j2.put("cid","UC");
        j2.put("user","uc");
        j2.put("key","a1b2c3d4-5e6f-7g8h-9i0j-k1l2m3n4o5p6");

        String result5= HttpRequest.post(url3)
                .header(Header.CONTENT_TYPE, "application/json")
                .header("Authorization","Bearer igYgxtq7Zlh9KDNrSBO-eKk2wfBY8OsEgf7VYR9H5imKWUvRjcDVOdIJWXngVf_qIXqEF28LWMVNNMMTL86SiMBq_CpuYH1mB8rOGhz6qmknHeLZBDpZN2scHGwPqvXd")
                .body(j2.toJSONString())//表单内容
                .timeout(20000)//超时,毫秒
                .execute().body();
        Console.log(result5);




    }

}