package com.dcsoft.system.consume.domain;

import com.dcsoft.common.core.annotation.Excel;
import com.dcsoft.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 消费记录对象 consume_record
 *
 * @author nichun
 * @date 2023-09-08
 */
public class ConsumeRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 记录版本 */
    private String ver;

    /** 工号 */
    @Excel(name = "工号")
    private String empId;

    /** 帐号 */
    private String accountId;

    @Excel(name = "消费机")
    private String equipmentName;

    @Excel(name = "帐号")
    private String accountName;

    /** 图片 */
    private String base64;

    /** 消费方式 */
    @Excel(name = "消费模式",readConverterExp="0=单价,1=定值,2=时段模式,3=计次")
    private String consumeMode;

    /** 消费金额 */
    @Excel(name = "消费金额")
    private String consumeMoney;

    /** 折扣金额 */
    private String discountMoney;

    /** 单号 */
    @Excel(name = "单号")
    private String outTradeId;

    /** 交易发起时间 */

    private String startTime;

    /** 交易结束时间 */
    private String endTime;

    /** 交易状态 */
    @Excel(name = "交易状态",readConverterExp="0=在线消费,1=离线消费,2=超时,3=消费异常")
    private String resultCode;

    /** 支付类型 */
    @Excel(name = "支付类型",readConverterExp="0=人脸,1=云卡,2=刷卡,3=支付宝,4=微信")
    private String payMode;

    /** 订单类型 */
    @Excel(name = "订单类型",readConverterExp="0=消费,1=充值,2=更正")
    private String orderType;

    /** 钱包扣款 */
    private String walletConsumeMode;

    /** 多个相似的人脸出现时返回工号，最多3个，分号隔开 */
    private String likeId;

    /** 卡号 */
    private String cardSn;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "交易发起时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "交易结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /** 交易结果 0成功，1失败 */
    @Excel(name = "交易结果",readConverterExp="0=成功,1=失败")
    private String consumeResult;


    public String getEquipmentName() {
        return equipmentName;
    }

    public void setEquipmentName(String equipmentName) {
        this.equipmentName = equipmentName;
    }
    @Excel(name = "消费时段",readConverterExp="1=早餐,2=中餐,3=晚餐，4=夜餐")
    private String tmrtype;

    private String devId;

    private String timeId;

    /** 用于查询条件过滤补贴记录*/
    private String btFlag;

    private String deptId;

    public String getDevId() {
        return devId;
    }

    public void setDevId(String devId) {
        this.devId = devId;
    }

    public String getTimeId() {
        return timeId;
    }

    public void setTimeId(String timeId) {
        this.timeId = timeId;
    }

    public String getTmrtype() {
        return tmrtype;
    }

    public void setTmrtype(String tmrtype) {
        this.tmrtype = tmrtype;
    }

    public void setId(Long id)
    {
        this.id = id;
    }


    public Long getId()
    {
        return id;
    }
    public void setVer(String ver)
    {
        this.ver = ver;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getVer()
    {
        return ver;
    }
    public void setEmpId(String empId)
    {
        this.empId = empId;
    }

    public String getEmpId()
    {
        return empId;
    }
    public void setAccountId(String accountId)
    {
        this.accountId = accountId;
    }

    public String getAccountId()
    {
        return accountId;
    }
    public void setBase64(String base64)
    {
        this.base64 = base64;
    }

    public String getBase64()
    {
        return base64;
    }
    public void setConsumeMode(String consumeMode)
    {
        this.consumeMode = consumeMode;
    }

    public String getConsumeMode()
    {
        return consumeMode;
    }
    public void setConsumeMoney(String consumeMoney)
    {
        this.consumeMoney = consumeMoney;
    }

    public String getConsumeMoney()
    {
        return consumeMoney;
    }
    public void setDiscountMoney(String discountMoney)
    {
        this.discountMoney = discountMoney;
    }

    public String getDiscountMoney()
    {
        return discountMoney;
    }
    public void setOutTradeId(String outTradeId)
    {
        this.outTradeId = outTradeId;
    }

    public String getOutTradeId()
    {
        return outTradeId;
    }
    public void setStartTime(String startTime)
    {
        this.startTime = startTime;
    }

    public String getStartTime()
    {
        return startTime;
    }
    public void setEndTime(String endTime)
    {
        this.endTime = endTime;
    }

    public String getEndTime()
    {
        return endTime;
    }
    public void setResultCode(String resultCode)
    {
        this.resultCode = resultCode;
    }

    public String getResultCode()
    {
        return resultCode;
    }
    public void setPayMode(String payMode)
    {
        this.payMode = payMode;
    }

    public String getPayMode()
    {
        return payMode;
    }
    public void setOrderType(String orderType)
    {
        this.orderType = orderType;
    }

    public String getOrderType()
    {
        return orderType;
    }
    public void setWalletConsumeMode(String walletConsumeMode)
    {
        this.walletConsumeMode = walletConsumeMode;
    }

    public String getWalletConsumeMode()
    {
        return walletConsumeMode;
    }
    public void setLikeId(String likeId)
    {
        this.likeId = likeId;
    }

    public String getLikeId()
    {
        return likeId;
    }
    public void setCardSn(String cardSn)
    {
        this.cardSn = cardSn;
    }

    public String getCardSn()
    {
        return cardSn;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getConsumeResult() {
        return consumeResult;
    }

    public void setConsumeResult(String consumeResult) {
        this.consumeResult = consumeResult;
    }

    public String getBtFlag() {
        return btFlag;
    }

    public void setBtFlag(String btFlag) {
        this.btFlag = btFlag;
    }

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }



    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("ver", getVer())
            .append("empId", getEmpId())
            .append("accountId", getAccountId())
            .append("base64", getBase64())
            .append("consumeMode", getConsumeMode())
            .append("consumeMoney", getConsumeMoney())
            .append("discountMoney", getDiscountMoney())
            .append("outTradeId", getOutTradeId())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("resultCode", getResultCode())
            .append("payMode", getPayMode())
            .append("orderType", getOrderType())
            .append("walletConsumeMode", getWalletConsumeMode())
            .append("likeId", getLikeId())
            .append("cardSn", getCardSn())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
