TemplateParamValue.java 3.43 KB
package com.topdraw.business.module.template.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 zhang sheng xiang
 * @date 2021-09-07
 */
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name = "tp_template_param_value")
public class TemplateParamValue implements Serializable {

    // ID
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    // 名称
    @Column(name = "name")
    private String name;

    // 标识
    @Column(name = "code")
    private String code;

    //模板参数id
    @Column(name = "template_param_id")
    private Long templateParamId;

    // 模板关联实体类型 1: 活动类型;2:专题类型;3:页面类型
    @Column(name = "content_type")
    private Integer contentType;

    // 模板关联实体id
    @Column(name = "content_id")
    private Long contentId;

    // 参数类型 0:实体;1:常量;2:虚拟实体;3:图片
    @Column(name = "type", nullable = false)
    private Integer type;

    // 组键
    @Column(name = "`group`")
    private String group;

    // 组名称
    @Column(name = "group_name")
    private String groupName;

    // 实体类型(仅当参数类型为实体时有效)
    @Column(name = "entity")
    private String entity;

    // 值(实体类型下为实体id,常量类型下为常量值,虚拟实体和图片此属性无效)
    @Column(name = "`value`")
    private String value;

    // 资源标志符,供模板引擎识别调度
    @Column(name = "`uri`")
    private String uri;

    // 对象标识
    @Column(name = "obj_code")
    private String objCode;

    // 描述
    @Column(name = "description")
    private String description;

    // 图片
    @Column(name = "image")
    private String image;

    // 图片
    @Column(name = "images")
    private String images;

    // 顺序
    @Column(name = "sequence", nullable = false)
    private Integer sequence;

    @Column(name = "component_data")
    private String componentData;

    // 组内顺序
    @Column(name = "group_index")
    private Integer groupIndex;

    //事件类型 0:抽奖;1:投票;2:答题;3:闯关;4:签到(当entity是activity时生效)
    @Column(name = "activity_type")
    private Integer activity_type;

    //当前页面标识
    @Column(name = "page_code")
    private String pageCode;

    //展现形式
    @Column(name = "display_form")
    private Integer displayForm;

    @Column(name = "top")
    private Integer top;

    @Column(name = "`left`")
    private Integer left;

    @Column(name = "width")
    private Integer width;

    @Column(name = "height")
    private Integer height;

    // 创建时间
    @CreatedDate
    @Column(name = "create_time")
    private Timestamp createTime;

    // 更新时间
    @LastModifiedDate
    @Column(name = "update_time")
    private Timestamp updateTime;

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