package com.jeequan.jeepay.core.model.params.ccbpay;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jeequan.jeepay.core.annotate.ChannelMchId;
import com.jeequan.jeepay.core.constants.ChannelMchIdTypeEnum;
import com.jeequan.jeepay.core.model.params.NormalMchParams;
import com.jeequan.jeepay.core.utils.StringKit;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

/*
 * 建行龙支付 配置参数
 *
 * @author zx
 *
 * @date 2022/11/23 18:02
 */
@Data
public class CcbpayNormalMchParams extends NormalMchParams {

    public static byte MER_FLAG_ONLINE = 1;
    public static byte MER_FLAG_OFFLINE = 2;

    /**
     * 商户类型：1-线上商户，2-线下商户
     */
    private Byte merFlag;

    /**
     * 商户代码
     */
    @ChannelMchId(type = ChannelMchIdTypeEnum.MCH_NO)
    private String merchantId;

    /**
     * 商户柜台代码
     */
    private String posId;

    /**
     * 分行代码
     */
    private String branchId;

    /**
     * 商户公钥
     */
    private String publicKey;

    /**
     * 外联平台接口地址
     */
    private String wlptServerUrl;

    /**
     * 操作员号
     */
    private String userId;

    /**
     * 操作员密码
     */
    private String password;

    /**
     * 终端编号1，线下商户类型必填，联系开立商户的分行提供
     */
    private String termNo1;

    /**
     * 终端编号2，线下商户类型必填，联系开立商户的分行提供
     */
    private String termNo2;

    /**
     * 公众号appId
     */
    private String mpAppId;

    /**
     * 小程序appId
     */
    private String microAppId;

    @Override
    public String deSenData() {
        CcbpayNormalMchParams mchParams = this;
        if (StringUtils.isNotBlank(this.publicKey)) {
            mchParams.setPublicKey(StringKit.autoDesensitization(this.publicKey));
        }
        if (StringUtils.isNotBlank(this.password)) {
            mchParams.setPassword(StringKit.autoDesensitization(this.password));
        }
        return ((JSONObject) JSON.toJSON(mchParams)).toJSONString();
    }

}
