package com.ruoyi.generator.domain;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.annotation.*;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.ruoyi.common.constant.GenConstants;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
import lombok.experimental.Accessors;
|
import org.apache.commons.lang3.ArrayUtils;
|
|
import javax.validation.Valid;
|
import javax.validation.constraints.NotBlank;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 业务表 gen_table
|
*
|
* @author ruoyi
|
*/
|
|
@Data
|
@NoArgsConstructor
|
@Accessors(chain = true)
|
@TableName("gen_table")
|
public class GenTable
|
{
|
private static final long serialVersionUID = 1L;
|
|
/** 编号 */
|
@TableId(value = "table_id", type = IdType.AUTO)
|
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;
|
|
/** 生成路径(不填默认项目路径) */
|
private String genPath;
|
|
/** 主键信息 */
|
@TableField(exist = false)
|
private GenTableColumn pkColumn;
|
|
/** 子表信息 */
|
@TableField(exist = false)
|
private GenTable subTable;
|
|
/** 表列信息 */
|
@Valid
|
@TableField(exist = false)
|
private List<GenTableColumn> columns;
|
|
/** 其它生成选项 */
|
private String options;
|
|
/**
|
* 创建者
|
*/
|
private String createBy;
|
|
/**
|
* 创建时间
|
*/
|
@TableField(fill = FieldFill.INSERT)
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private Date createTime;
|
|
/**
|
* 更新者
|
*/
|
private String updateBy;
|
|
/**
|
* 更新时间
|
*/
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private Date updateTime;
|
|
/**
|
* 备注
|
*/
|
private String remark;
|
|
/**
|
* 请求参数
|
*/
|
@TableField(exist = false)
|
private Map<String, Object> params = new HashMap<>();
|
|
/** 树编码字段 */
|
@TableField(exist = false)
|
private String treeCode;
|
|
/** 树父编码字段 */
|
@TableField(exist = false)
|
private String treeParentCode;
|
|
/** 树名称字段 */
|
@TableField(exist = false)
|
private String treeName;
|
|
/** 上级菜单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 && StrUtil.equals(GenConstants.TPL_SUB, tplCategory);
|
}
|
|
public boolean isTree()
|
{
|
return isTree(this.tplCategory);
|
}
|
|
public static boolean isTree(String tplCategory)
|
{
|
return tplCategory != null && StrUtil.equals(GenConstants.TPL_TREE, tplCategory);
|
}
|
|
public boolean isCrud()
|
{
|
return isCrud(this.tplCategory);
|
}
|
|
public static boolean isCrud(String tplCategory)
|
{
|
return tplCategory != null && StrUtil.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 StrUtil.equalsAnyIgnoreCase(javaField,
|
ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY));
|
}
|
return StrUtil.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY);
|
}
|
}
|