package com.hz.pm.api.irs;

import com.ningdatech.irs.service.IRefreshTokenService;
import com.hz.pm.api.AppTests;
import com.hz.pm.api.common.util.CryptUtils;
import com.hz.pm.api.common.util.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;
import java.security.NoSuchAlgorithmException;
import java.util.Objects;

/**
 * @Classname irsTest3
 * @Description
 * @Date 2023/7/25 9:52
 * @Author PoffyZhang
 */
@Slf4j
public class irsTest4 extends AppTests {
    @Resource
    private IRefreshTokenService refreshTokenService;

    @Value("${irs.interface-refresh.request-token-url}")
    private String govRequestTokenUrl;
    @Value("${irs.interface-refresh.refresh-token-url}")
    private String govRefreshTokenUrl;

    @Test
    public void test1() throws NoSuchAlgorithmException {
        long timestamp = System.currentTimeMillis();
        String appSecret = "496f0f2a19994f76b4fd9dae087366c7";
        String appKey = "A331101453557202109017383";
        String dataName = "大数据管理局";

        String secret = refreshTokenService.refreshToken(appKey, appSecret, govRequestTokenUrl, govRefreshTokenUrl, HttpMethod.POST.name());
        String sign = CryptUtils.MD5Encode(appKey + secret + timestamp);
        HttpComponentsClientHttpRequestFactory factory = HttpUtil.generateHttpRequestFactory();
        RestTemplate restTemplate;
        if(Objects.nonNull(factory)){
            restTemplate = new RestTemplate(factory);
        }else{
            restTemplate = new RestTemplate();
        }

        String url = "https://interface.zjzwfw.gov.cn/gateway/api/001008012012001/dataSharing/Fc3re2cq7r64Qfa7.htm?" +
                "dingCode=&matterName=&oid=&useState=1&limit=1000&page=1" +
                "&appKey=" + appKey + "&sign=" + sign + "&requestTime=" + timestamp;

        ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class);
        System.out.println(forEntity.getBody());
    }
}
