//package com.hzya.frame;
//
//import cn.hutool.core.convert.Convert;
//import cn.hutool.http.HttpRequest;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.dynamic.datasource.annotation.DS;
//import com.hzya.frame.cbs8.dto.req.PayRequestDTO;
//import com.hzya.frame.cbs8.dto.req.PayResultRequestDTO;
//import com.hzya.frame.cbs8.dto.res.PayResultResDTO;
//import com.hzya.frame.cbs8.service.ICbs8ExtService;
//import com.hzya.frame.cbs8.service.ICbs8Service;
//import com.hzya.frame.cbs8.util.CBSUtil;
//import com.hzya.frame.cbs8.util.CbsAccessToken;
//import com.hzya.frame.plugin.cbs8.plugin.PayApplyPluginInitializer;
//import com.hzya.frame.plugin.cbs8.plugin.PayResultPluginInitializer;
//import com.hzya.frame.plugin.cbs8.plugin.TransactionDetailPluginInitializer;
//import com.hzya.frame.plugin.seeyonExt.plugin.SeeyonExtPluginInitializer;
//import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
//import com.hzya.frame.seeyon.cbs8.service.IPaymentService;
//import com.hzya.frame.stringutil.StringUtil;
//import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
//import com.hzya.frame.util.AESUtil;
//import org.apache.http.protocol.HTTP;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import javax.annotation.Resource;
//import java.util.*;
//
///**
// * @ClassName dsasas
// * @Description
// * @Author llg
// * Date 2023/7/16 8:18 上午
// */
//@RunWith(SpringRunner.class)
//@SpringBootTest(classes = {WebappApplication.class})
//public class temButtom {
//
//    @Resource
//    SeeyonExtPluginInitializer seeyonExtPluginInitializer;
//    @Resource
//    ICbs8Service cs8Service;
//    @Resource
//    ICbs8ExtService cbs8ExtService;
//    @Autowired
//    private IPaymentService paymentService;
//    @Autowired
//    private PayApplyPluginInitializer payApplyPluginInitializer;
//
//    @Autowired
//    private TransactionDetailPluginInitializer transactionDetailPluginInitializer;
//    @Autowired
//    private PayResultPluginInitializer payResultPluginInitializer;
//
//    @Test
//    public void cbs8PluginTest(){
//        try {
//            //支付申请 测试通过
//            //payApplyPluginInitializer.executeBusiness(new JSONObject());
//            //查询交易明细 测试通过
//            //transactionDetailPluginInitializer.executeBusiness(new JSONObject());
//            //交易结果查询 未测试 （OA没有日志底表，无法测试）
//            payResultPluginInitializer.executeBusiness(new JSONObject());
//            //电子回单测试 通过apipost测试过了，可以取到cbs电子回单，只是没法上传到OA
//            //
//
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//    }
//    @Test
//    public void queryUnpaid(){
//        //查询待支付的列表
//        PaymentEntity paymentEntity = new PaymentEntity();
//        paymentEntity.setDataSourceCode("yc-test");
//        try {
//            List<PaymentEntity> paymentList = paymentService.queryUnpaid(paymentEntity);
//            System.out.println(paymentList);
//        } catch (Exception e) {
//            e.printStackTrace();
//            throw new RuntimeException(e);
//        }
//        System.out.println("1111");
//    }
//    @Test
//    public void queryResultTest(){
//       // SysExtensionApiEntity sysExt = new SysExtensionApiEntity();
//       // sysExt.setBodys("{\"referenceNum\":\"CL202406140002\"}");
//      //  cbs8ExtService.payResult(sysExt);
//       // System.out.println("11111");
//        List<PayResultResDTO> cl202406140002 = cs8Service.queryPayResult(new PayResultRequestDTO("CL202406140002"));
//        System.out.println("111");
//    }
//
//    @Test
//    public void cbs8ExtTest(){
//        PaymentEntity paymentEntity = new PaymentEntity();
//        paymentEntity.setReferenceNum("CL202406140003");
//        paymentEntity.setPayAccount("655905707410000");
//        paymentEntity.setPayBankName("");
//        paymentEntity.setAmount("99.02");
//        paymentEntity.setRevAccount("123456778");
//        paymentEntity.setRevBankName("中国工商银行总行清算中心");
//        paymentEntity.setRevBankType("ICB");
//        paymentEntity.setRevAccountName("测试账户");
//        paymentEntity.setCnapsCode("102100099996");
//        paymentEntity.setPurpose("测试用途");
//        paymentEntity.setBusType("202");
//        paymentEntity.setCurrency("10");
//        if (null != paymentEntity){
//            PayRequestDTO payRequestDTO = new PayRequestDTO();
//            String ferenceNum = Convert.toStr(paymentEntity.getReferenceNumNew(),paymentEntity.getReferenceNum());
//            payRequestDTO.setReferenceNum(ferenceNum);
//            payRequestDTO.setBusType(paymentEntity.getBusType());
//            payRequestDTO.setAmount(paymentEntity.getAmount());
//            payRequestDTO.setCurrency(paymentEntity.getCurrency());
//            payRequestDTO.setPayAccount(StringUtil.replaceBlank(paymentEntity.getPayAccount()));
//            payRequestDTO.setRevAccount(StringUtil.replaceBlank(paymentEntity.getRevAccount()));
//            payRequestDTO.setRevAccountName(StringUtil.replaceBlank(paymentEntity.getRevAccountName()));
//            payRequestDTO.setRevBankType(StringUtil.replaceBlank((paymentEntity.getRevBankType())));
//            payRequestDTO.setRevBankName(StringUtil.replaceBlank(paymentEntity.getRevBankName()));
//            payRequestDTO.setCnapsCode(StringUtil.replaceBlank((paymentEntity.getCnapsCode())));
//            payRequestDTO.setPurpose(paymentEntity.getPurpose());
//            payRequestDTO.setErpExtend1(paymentEntity.getPayType());
//            //集中支付模式
//            if (CBSUtil.CENTRALIZED_PAYMENT_TYPE.equals(payRequestDTO.getBusType())){
//                payRequestDTO.setBusiStep("1");
//                payRequestDTO.setApplyUnitCode(paymentEntity.getPayCompanyCode());
//                payRequestDTO.setPayAccount(null);
//            }
//            List<PayRequestDTO> list = new ArrayList<>();
//            list.add(payRequestDTO);
//            String requestData = JSONObject.toJSONString(list);
//            System.out.println("明文参数："+requestData);
//            //签名
//            long timestamp = System.currentTimeMillis();
//            String sign = CBSUtil.sign(requestData,timestamp);
//            //加密
//            byte[] encryptedData = CBSUtil.encrypt(requestData);
//            Map<String,String> header = new HashMap();
//            header.put(CBSUtil.SIGN_HEADER_NAME,sign);
//            header.put(CBSUtil.TIMESTAMP_HEADER,Long.toString(timestamp));
//            header.put(HTTP.CONTENT_TYPE,CBSUtil.TARGET_CONTENT_TYPE);
//            header.put(CBSUtil.AUTHORIZATION,CBSUtil.BEARER+CbsAccessToken.getToken());
//            byte[] bodyByte = HttpRequest.post("https://cbs8-openapi-reprd.csuat.cmburl.cn/openapi/payment/openapi/v1/payment-apply-common").addHeaders(header).body(encryptedData).execute().bodyBytes();
//            String decrypt = CBSUtil.decrypt(bodyByte);
//            System.out.println(decrypt);
//        }
//    }
//    @Test
//    public void seeyonExtTest(){
//        JSONObject jsonStr = new JSONObject();
//        jsonStr.put("integration_task_living_details_id","4276973516873482804");
//        JSONObject requestJson = new JSONObject();
//        requestJson.put("jsonStr", JSON.toJSONString(jsonStr));
//        try {
//            seeyonExtPluginInitializer.executeBusiness(requestJson);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    @Test
//    public void test01() {
//        String a = AESUtil.encrypt("hzya@1314");
//        System.out.println(a);
//        String b = AESUtil.decrypt("62e4295b615a30dbf3b8ee96f41c820b");
//        System.out.println(b);
//    }
//
//
//
//
//}
