Points.java 1.86 KB
package com.topdraw.business.basicdata.points.domain;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * @author XiangHan
 * @date 2021-10-22
 */
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="uc_points")
public class Points implements Serializable {

    @Id
    @Column(name = "id")
    private Long id;

    @Column(name = "user_id")
    private Long userId;

    // 积分类型,通用,绑定, 区分大小屏
    @Column(name = "point_type")
    private Integer pointType;

    // 绑定对应的实体, 如何描述?
    @Column(name = "target_no")
    private String targetNo;

    // 本月期初积分值
    @Column(name = "begin_points")
    private Integer beginPoints;

    // 当前积分余额
    @Column(name = "current_points")
    private Integer currentPoints;

    // 本月到期积分
    @Column(name = "expire_points")
    private Integer expirePoints;

    // 积分类型:10:通用积分(跨屏)  11:定向积分(跨屏,绑定用途)20:通用积分(大屏)  21:定向积分(大屏,绑定用途)30:通用积分(小屏)  31:定向积分(小屏,绑定用途)
    @CreatedDate
    @Column(name = "create_time")
    private Timestamp createTime;

    // 最后修改时间
    @LastModifiedDate
    @Column(name = "update_time")
    private Timestamp updateTime;

    public void copy(Points source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}