package com.tzy.framework.pay.config;

import com.tzy.common.utils.StringUtils;
import com.tzy.common.utils.bean.BeanUtils;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 加载支付配置
 */
@Data
@Component
public class PayConfig {

    @Autowired
    private AliPayConfig aliPayConfig;

    @Autowired
    private AliPaySpareConfig aliPaySpareConfig;

    @Autowired
    private BfPayConfig bfPayConfig;

    @Autowired
    private HmPayConfig hmPayConfig;

    @Autowired
    private QmPayConfig qmPayConfig;

    @Autowired
    private QmPay1Config qmPay1Config;

    @Autowired
    private QmPay2Config qmPay2Config;

    @Autowired
    private QmH5PayConfig qmH5PayConfig;

    @Autowired
    private WxPayAppConfig wxPayAppConfig;
    /**
     * 汇付支付配置
     */
    @Autowired
    private HfPayConfig hfPayConfig;


    public Object get(String appid){
        if(StringUtils.isEmpty(appid)){
            return null;
        }
        if(appid.equals(aliPayConfig.getAppId())) {  //支付宝直连
            return aliPayConfig;
        }else if(appid.equals(aliPaySpareConfig.getAppId())) { //支付宝直连-备用1
            AliPayConfig alipayConfig = new AliPayConfig();
            BeanUtils.copyBeanProp(alipayConfig,aliPaySpareConfig);
            return alipayConfig;
        }else if(appid.equals(wxPayAppConfig.getAppID())) { //微信直连
            return wxPayAppConfig;
        } else if (appid.equals(qmH5PayConfig.getAppid())) { //全民-H5
            return qmH5PayConfig;
        }else if(appid.equals(bfPayConfig.getAppid())) { //宝付
            return bfPayConfig;
        }else if(appid.equals(hmPayConfig.getApp_id())) { //杉德
            return hmPayConfig;
        }else if(appid.equals(qmPay2Config.getAppid())) { //全民2
            return qmPay2Config;
        }else if(appid.equals(qmPay1Config.getAppid())) { //全民1
            return qmPay1Config;
        }else if(appid.equals(qmPayConfig.getAppid())) { //全民
            return qmPayConfig;
        }else if(appid.equals(hfPayConfig.getAppid())) { //汇付
            return hfPayConfig;
        }
        return null;
    }
    /**
     * 根据支付类型获取对应的支付配置
     * @param payType
     * @return
     */
    public Object getByPayType(String payType){
        if(StringUtils.isEmpty(payType)){
            return null;
        }
        if(payType.equals(aliPayConfig.getName())) { //支付宝直连
            return aliPayConfig;
        } else if (payType.equals(aliPaySpareConfig.getName())) { //支付宝直连-备用1
            AliPayConfig alipayConfig = new AliPayConfig();
            BeanUtils.copyBeanProp(alipayConfig,aliPaySpareConfig);
            return alipayConfig;
        } else if (payType.equals(wxPayAppConfig.getName())) {  //微信直连
            return wxPayAppConfig;
        } else if (payType.contains(qmH5PayConfig.getName())) { //全民-H5
            return qmH5PayConfig;
        } else if (payType.contains(hmPayConfig.getName())) { //杉德
            return hmPayConfig;
        } else if (payType.contains(qmPay2Config.getName())) { //全民2
            return qmPay2Config;
        } else if (payType.contains(qmPay1Config.getName())) { //全民1
            return qmPay1Config;
        } else if (payType.contains(qmPayConfig.getName())) { //全民
            return qmPayConfig;
        } else if (payType.contains(bfPayConfig.getName())) { //宝付
            return bfPayConfig;
        } else if (payType.contains(hfPayConfig.getName())) { //汇付
            return hfPayConfig;
        }
        return null;
    }
    /**
     * 根据支付类型获取对应的支付配置
     * @param payType
     * @return
     */
    public String getAppidByPayType(String payType){
        if(StringUtils.isEmpty(payType)){
            return null;
        }
        if(payType.equals(aliPayConfig.getName())) { //支付宝直连
            return aliPayConfig.getAppId();
        } else if (payType.equals(aliPaySpareConfig.getName())) { //支付宝直连-备用1
            return aliPaySpareConfig.getAppId();
        } else if (payType.equals(wxPayAppConfig.getName())) { //微信直连
            return wxPayAppConfig.getAppID();
        } else if (payType.contains(qmH5PayConfig.getName())) { //全民-H5
            return qmH5PayConfig.getAppid();
        } else if (payType.contains(bfPayConfig.getName())) { //宝付
            return bfPayConfig.getAppid();
        } else if (payType.contains(hmPayConfig.getName())) { //杉德
            return hmPayConfig.getApp_id();
        } else if (payType.contains(qmPay2Config.getName())) { //全民2
            return qmPay2Config.getAppid();
        } else if (payType.contains(qmPay1Config.getName())) { //全民1
            return qmPay1Config.getAppid();
        } else if (payType.contains(qmPayConfig.getName())) { //全民
            return qmPayConfig.getAppid();
        } else if (payType.contains(hfPayConfig.getName())) { //汇付
            return hfPayConfig.getAppid();
        }
        return null;
    }

    /**
     * 获取 子支付类型
     * @param appid
     * @return
     */
    public String getSubPayTypeByAppid(String appid){
        if(StringUtils.isEmpty(appid)){
            return null;
        }
        if(appid.equals(aliPayConfig.getAppId())) { //支付宝直连
            return aliPayConfig.getName();
        } else if (appid.equals(aliPaySpareConfig.getAppId())) { //支付宝直连-备用1
            return aliPaySpareConfig.getName();
       /* } else if (payType.equals(wxPayAppConfig.getName())) {  //微信直连
            return wxPayAppConfig;
        } else if (payType.contains(hmPayConfig.getName())) { //杉德
            return hmPayConfig;
        } else if (payType.contains(qmPayConfig.getName())) { //全民
            return qmPayConfig;
        } else if (payType.contains(bfPayConfig.getName())) { //宝付
            return bfPayConfig;*/
        }
        return null;
    }

}
