package com.ruoyi.xq.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.math.BigDecimal;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 分销记录对象 xq_consume_log
 *
 * @author 77
 * @date 2024-03-20
 */
@Data
@TableName("xq_consume_log")
public class ConsumeLog implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     *
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 类型 1-VIP
     */
    private Integer type;
    /**
     * 业务参数
     */
    private String businessParam;
    /**
     * 跟踪ID
     */
    private String traceId;
    /**
     * 发生金额
     */
    private BigDecimal amount;
    /**
     * 一级金额
     */
    private BigDecimal oneAmount;
    /**
     * 消费方用户
     */
    private Long sourceUserId;
    /**
     * 消费方用户编码
     */
    private String sourceUsercode;
    /**
     * 消费方用户手机
     */
    private String sourcePhone;
    /**
     * 一级分销方
     */
    private Long oneUserId;
    /**
     * 一级分销方
     */
    private String oneUsercode;
    /**
     * 一级分销方
     */
    private String onePhone;
    /**
     * 一级分销方抽成比例
     */
    private BigDecimal oneRate;
    /**
     * 是否参与分销
     */
    private Boolean oneJoin;
    /**
     * 状态  0-待计算分销 1-已计算分销
     */
    private Boolean calculateStatus;
    /**
     * 状态  -1-无须分销 0-待分销 1-已分销
     */
    private Integer status;
    /**
     * 状态  0-否 1-是
     */
    private String admin;
    /**
     * 管理员ID
     */
    private Long adminId;
    /**
     * 名称
     */
    private String adminName;
    /**
     * 分销人ID
     */
    private Long opId;
    /**
     * 分销人名称
     */
    private String opName;
    /**
     * 分销时间
     */
    private LocalDateTime opCreate;
    /**
     * 备注
     */
    private String remark;



    private LocalDateTime createTime;

    private LocalDateTime updateTime;

    public void init(User user){
        this.setSourceUserId(user.getId());
        this.setSourcePhone(user.getMobile());
        this.setSourceUsercode(user.getUsercode());
    }

}
