package com.liquidnet.client.admin.zhengzai.kylin.utils;

import com.taobao.api.DefaultTaobaoClient;
import com.taobao.api.TaobaoClient;
import com.taobao.api.request.AlibabaDamaiMevOpenWithdrawticketRequest;
import com.taobao.api.response.AlibabaDamaiMevOpenWithdrawticketResponse;
import org.springframework.stereotype.Service;

@Service
public class TaobaoTicketUtils {

    private String URL = "http://gw.api.taobao.com/router/rest";
    private String APPKEY = "27542597";
    private String SECRET = "900025efc616fd2446344bb8fa21d039";
    private String SUPPLIER_SECRET = "444d0752439f921a75eaf5951a8bc03c";
    private Long SYSTEM_ID = 15669L;
    //    private String url = "http://gw.api.tbsandbox.com/router/rest";
//    private String appkey = "4272";
//    private String secret = "0ebbcccfee18d7ad1aebc5b135ffa906";
    private TaobaoClient client = null;

    public TaobaoClient initTaobaoClient() {
        if (client == null) {
            client = new DefaultTaobaoClient(URL, APPKEY, SECRET);
        }
        return client;
    }

    public String getSupplierSecret() {
        return SUPPLIER_SECRET;
    }

    public Long getSystemId() {
        return SYSTEM_ID;
    }

    /**
     * @param timesId         场次的id
     * @param orderEntitiesId 入场人的id
     * @return
     */
    public boolean withdrawDamaiOrder(long timesId, long orderEntitiesId) {
        try {
            TaobaoClient client = initTaobaoClient();
            AlibabaDamaiMevOpenWithdrawticketRequest req = new AlibabaDamaiMevOpenWithdrawticketRequest();
            AlibabaDamaiMevOpenWithdrawticketRequest.TicketIdOpenParam obj1 = new AlibabaDamaiMevOpenWithdrawticketRequest.TicketIdOpenParam();
            obj1.setPerformId(timesId);//场次id
            obj1.setVoucherId(orderEntitiesId);//票单号 入场人id
            obj1.setSupplierSecret(SUPPLIER_SECRET);
            obj1.setSystemId(SYSTEM_ID);
            req.setTicketIdOpenParam(obj1);
            AlibabaDamaiMevOpenWithdrawticketResponse rsp = client.execute(req);
            return rsp.getResult().getSuccess();
        } catch (Exception e) {
            return false;
        }
    }
}
