package com.dl.generator.domain; import com.baomidou.mybatisplus.annotation.*; import com.dl.common.constant.GenConstants; import com.dl.common.core.domain.BaseEntity; import com.dl.common.utils.StringUtils; import lombok.Data; import lombok.EqualsAndHashCode; import org.apache.commons.lang3.ArrayUtils; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import java.util.List; /** * 业务表 gen_table * * @author Lion Li */ @Data @EqualsAndHashCode(callSuper = true) @TableName("gen_table") public class GenTable extends BaseEntity { /** * 编号 */ @TableId(value = "table_id") private Long tableId; /** * 表名称 */ @NotBlank(message = "表名称不能为空") private String tableName; /** * 表描述 */ @NotBlank(message = "表描述不能为空") private String tableComment; /** * 关联父表的表名 */ private String subTableName; /** * 本表关联父表的外键名 */ private String subTableFkName; /** * 实体类名称(首字母大写) */ @NotBlank(message = "实体类名称不能为空") private String className; /** * 使用的模板(crud单表操作 tree树表操作 sub主子表操作) */ private String tplCategory; /** * 生成包路径 */ @NotBlank(message = "生成包路径不能为空") private String packageName; /** * 生成模块名 */ @NotBlank(message = "生成模块名不能为空") private String moduleName; /** * 生成业务名 */ @NotBlank(message = "生成业务名不能为空") private String businessName; /** * 生成功能名 */ @NotBlank(message = "生成功能名不能为空") private String functionName; /** * 生成作者 */ @NotBlank(message = "作者不能为空") private String functionAuthor; /** * 生成代码方式(0zip压缩包 1自定义路径) */ private String genType; /** * 生成路径(不填默认项目路径) */ @TableField(updateStrategy = FieldStrategy.NOT_EMPTY) private String genPath; /** * 主键信息 */ @TableField(exist = false) private GenTableColumn pkColumn; /** * 子表信息 */ @TableField(exist = false) private GenTable subTable; /** * 表列信息 */ @Valid @TableField(exist = false) private List columns; /** * 其它生成选项 */ private String options; /** * 备注 */ private String remark; /** * 树编码字段 */ @TableField(exist = false) private String treeCode; /** * 树父编码字段 */ @TableField(exist = false) private String treeParentCode; /** * 树名称字段 */ @TableField(exist = false) private String treeName; /* * 菜单id列表 */ @TableField(exist = false) private List menuIds; /** * 上级菜单ID字段 */ @TableField(exist = false) private String parentMenuId; /** * 上级菜单名称字段 */ @TableField(exist = false) private String parentMenuName; public boolean isSub() { return isSub(this.tplCategory); } public static boolean isSub(String tplCategory) { return tplCategory != null && StringUtils.equals(GenConstants.TPL_SUB, tplCategory); } public boolean isTree() { return isTree(this.tplCategory); } public static boolean isTree(String tplCategory) { return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); } public boolean isCrud() { return isCrud(this.tplCategory); } public static boolean isCrud(String tplCategory) { return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); } public boolean isSuperColumn(String javaField) { return isSuperColumn(this.tplCategory, javaField); } public static boolean isSuperColumn(String tplCategory, String javaField) { if (isTree(tplCategory)) { return StringUtils.equalsAnyIgnoreCase(javaField, ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY)); } return StringUtils.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); } }