package com.limap.core.basic.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.limap.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import com.limap.common.core.domain.BasePlusEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 分润记录对象 basic_profit_sharing_record
 *
 * @author jjb
 * @date 2025-04-11
 */
@Data
@TableName(value = "basic_profit_sharing_record")
public class BasicProfitSharingRecord  {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /** 用户id */
    @Excel(name = "用户id")
    @ApiModelProperty("用户id")
    private Long userId;
    private Long deptId;
    private String userName;

    /** 分润金额 */
    @Excel(name = "分润金额")
    @ApiModelProperty("分润金额")
    private BigDecimal amount;

    /** 金额来源 */
    @Excel(name = "金额来源")
    @ApiModelProperty("金额来源")
    private String fromWay;
    private String title;
    private String tel;

    /** 分润状态 0未 1 以分 9无效 */
    @Excel(name = "分润状态 0未 1 以分 9无效")
    @ApiModelProperty("分润状态 0未 1 以分 9无效")
    private Integer status;

    /** 利益产生时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "利益产生时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("利益产生时间")
    private Date generateTime;

    /** 原始订单号 */
    @Excel(name = "原始订单号")
    @ApiModelProperty("原始订单号")
    private String orderNo;
    private String deviceName;

    /** 提现状态 0 未 1已 */
    @Excel(name = "提现状态 0 未 1已")
    @ApiModelProperty("提现状态 0 未 1已")
    private Integer withdrawalStatus;

    /** 提现申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提现申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("提现申请时间")
    private Date withdrawalTime;

    /** 打款状态 0 未 1已  9驳回 */
    @Excel(name = "打款状态 0 未 1已  9驳回")
    @ApiModelProperty("打款状态 0 未 1已  9驳回")
    private Integer paymentStatus;

    /** 打款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "打款时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("打款时间")
    private Date paymentTime;

    /** 驳回原因 */
    @Excel(name = "驳回原因")
    @ApiModelProperty("驳回原因")
    private String paymentReason;

    /** 提现id */
    @Excel(name = "提现id")
    @ApiModelProperty("提现id")
    private Long withdrawId;


    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("查询开始时间")
    @TableField(exist = false)
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("查询结束时间")
    @TableField(exist = false)
    private Date endTime;

    /** 请求参数 */
    @TableField(exist = false)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Map<String, Object> params;

    public Map<String, Object> getParams() {
        if (params == null) {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }
}
