longz
2026-05-14 11029948d45564975527b2c21e9c2def1903164a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.sinata.appointment.entity;
 
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.sinata.appointment.validation.ChangePasswordGroup;
import com.sinata.appointment.validation.CreateGroup;
import com.sinata.appointment.validation.DeleteGroup;
import com.sinata.appointment.validation.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
 
@Schema(description = "基础实体:id/uuid/version + 审计字段 + 逻辑删除 delFlag")
@Getter
@Setter
public class BaseEntity {
 
    @Schema(description = "id")
    @Null(groups = CreateGroup.class, message = "新增不能携带 id")
    @NotNull(
            groups = {UpdateGroup.class, DeleteGroup.class, ChangePasswordGroup.class},
            message = "id 不能为空")
    @TableId(type = IdType.AUTO)
    private Long id;
 
    @Schema(description = "UUID")
    @Null(groups = CreateGroup.class, message = "新增不能携带 uuid")
    @NotBlank(
            groups = {UpdateGroup.class, DeleteGroup.class, ChangePasswordGroup.class},
            message = "uuid 不能为空")
    @TableField(fill = FieldFill.INSERT)
    private String uuid;
 
    @Schema(description = "乐观锁")
    @Version
    @Null(groups = CreateGroup.class, message = "新增不能携带 version")
    @NotNull(
            groups = {UpdateGroup.class, DeleteGroup.class, ChangePasswordGroup.class},
            message = "version 不能为空")
    private Long version;
 
    @Schema(description = "创建人")
    private Long createId;
 
    @Schema(description = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
 
    @Schema(description = "更新人")
    private Long updateId;
 
    @Schema(description = "更新时间")
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;
 
    @Schema(description = "删除标记(0 未删,1 已删)")
    private Integer delFlag = 0;
}