package com.ruoyi.ss.payBill.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 支付订单对象 ss_pay_bill
 *
 * @author ruoyi
 * @date 2024-07-24
 */
@Data
public class PayBill extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("payId")
    private Long payId;

    @Excel(name = "支付订单编号")
    @ApiModelProperty("支付订单编号")
    private String payNo;

    @Excel(name = "业务ID")
    @ApiModelProperty("业务ID")
    private String orderNo;

    @Excel(name = "订单金额", readConverterExp = "元=")
    @ApiModelProperty("订单金额")
    private BigDecimal amount;

    @Excel(name = "支付渠道ID")
    @ApiModelProperty("支付渠道ID")
    private Long channelId;

    @Excel(name = "支付状态")
    @ApiModelProperty("支付状态")
    private String status;

    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("支付时间")
    private LocalDateTime payTime;

    @ApiModelProperty("支付描述")
    private String description;

    @ApiModelProperty("支付账号")
    private String account;

    @ApiModelProperty("渠道成本")
    private BigDecimal channelCost;

    @ApiModelProperty("已退款金额")
    private BigDecimal refundAmount;

    @ApiModelProperty("退款中金额")
    private BigDecimal refundingAmount;

//    /**
//     * 获取价格（分）
//     */
//    @Override
//    public BigDecimal payableMoney() {
//        return amount.multiply(BigDecimal.valueOf(100));
//    }

//    /**
//     * 获取描述
//     */
//    @Override
//    public String payableDescription() {
//        return description;
//    }
//
//    /**
//     * 获取附加信息
//     */
//    @Override
//    public String payableAttach() {
//        return AttachEnums.PAY_BILL.getAttach();
//    }
//
//    /**
//     * 获取外部订单号
//     */
//    @Override
//    public String payableOutTradeNo() {
//        return payNo;
//    }
//
//    /**
//     * 获取微信openId
//     */
//    @Override
//    public String payableOpenId() {
//        return account;
//    }
}
