package com.hfkj.common.utils;

import com.alibaba.fastjson.JSONObject;

import java.util.*;

/**
 * 订单工具类
 * @className: OrderUtil
 * @author: HuRui
 * @date: 2022/8/26
 **/
public class OrderUtil {

    /**
     * 生成交易订单号
     * @return
     * @throws Exception
     */
    public static String generateOrderNo(){
        try {
            // 5位随机数 + 1位线程生成数
            String randomNum = (new Random().nextInt(8999) + 1000) + IDGenerator.nextId(1);
            // 生成订单号
            return DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + randomNum;
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 生成合同订单订单号
     * @return
     * @throws Exception
     */
    public static String generateContractNo(){
        try {
            // 5位随机数 + 1位线程生成数
            String randomNum = (new Random().nextInt(8999) + 1000) + IDGenerator.nextId(1);
            // 生成订单号
            return DateUtil.date2String(new Date(),"yyyyMMdd") + randomNum;
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 生成子订单号
     * @return
     * @throws Exception
     */
    public static String generateChildOrderNo() {
        // 生成子订单号
        return IDGenerator.nextId(16);
    }

    /**
     * 生成退款订单号
     * @return
     * @throws Exception
     */
    public static String generateRefundOrderNo() throws Exception {
        // 5位随机数 + 1位线程生成数
        String randomNum = (new Random().nextInt(899999) + 10000) + IDGenerator.nextId(1);
        // 生成订单号
        return DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + randomNum;
    }

    /**
     * 查询物流单号
     * @return
     * @throws Exception
     */
    public  static JSONObject getLogisticsMsg(String num , String mobile) {

        String appcode = "f9ace4c915054ca697a76fb9a4e1e8c0";
        Map<String, String> headers = new HashMap<>();
        headers.put("Authorization", "APPCODE " + appcode);
        Map<String, String> querys = new HashMap<>();
        querys.put("number", num);
        querys.put("mobile", mobile);

        return HttpsUtils.doGet("https://express3.market.alicloudapi.com/express3" , querys ,headers);
    }

}
