package com.mj.demo.utils;

import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;

import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

/**
 * <desc>
 *
 * </desc>
 *
 * @author maju
 * @createDate 2024/11/26
 */
@Slf4j
public class CardUtil {

    private static final String host = "<http://127.0.0.1:51280>";
    private static String random = null;

    @Before
    public void getRandom() {
        String url = host + "/api/v1/server/check_random";
        String result = HttpUtil.get(url);
        log.info("请求结果:{}", result);
        String random = JSON.parseObject(result).getJSONObject("data").getString("random");
        AES aes = new AES(Mode.ECB, Padding.PKCS5Padding, "8f6cff14bb554c29".getBytes(StandardCharsets.UTF_8));
        this.random = aes.encryptBase64(random);
    }

    @Test
    public void card_chipno() {
        String encode = URLEncoder.encode(random);
        String url = host + "/api/v1/authorization/card_chipno?random=" + encode + "&project=&operateCardMode=1";
        System.out.println(url);
        String result = HttpUtil.createPost(url).execute().body();
        log.info("请求结果:{}", result);
    }
    @Test
    public void state() {
        String url = host + "/api/v1/server/state";
        System.out.println(url);
        String result = HttpUtil.createGet(url).execute().body();
        log.info("请求结果:{}", result);
    }

    @Test
    public void beep() {
        String encode = URLEncoder.encode(random);
        String url = host + "/api/v1/card_reader/beep?random=" + encode + "&project=&operateCardMode=1&mode=1";
        System.out.println(url);
        String result = HttpUtil.createPost(url).execute().body();
        log.info("请求结果:{}", result);
    }

    @Test
    public void card_cancel() {
        String encode = URLEncoder.encode(random);
        String url = host + "/api/v1/authorization/card_cancel?random=" + encode + "&project=00000660&operateCardMode=1";
        String result = HttpUtil.createPost(url).execute().body();
        log.info("请求结果:{}", result);
    }
}