package com.dl.generator.domain; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.dl.common.core.domain.BaseEntity; import com.dl.common.utils.StringUtils; import lombok.Data; import lombok.EqualsAndHashCode; import org.apache.ibatis.type.JdbcType; import javax.validation.constraints.NotBlank; /** * 代码生成业务字段表 gen_table_column * * @author Lion Li */ @Data @EqualsAndHashCode(callSuper = true) @TableName("gen_table_column") public class GenTableColumn extends BaseEntity { /** * 编号 */ @TableId(value = "column_id") private Long columnId; /** * 归属表编号 */ private Long tableId; /** * 列名称 */ private String columnName; /** * 列描述 */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String columnComment; /** * 列类型 */ private String columnType; /** * JAVA类型 */ private String javaType; /** * JAVA字段名 */ @NotBlank(message = "Java属性不能为空") private String javaField; /** * 是否主键(1是) */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String isPk; /** * 是否自增(1是) */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String isIncrement; /** * 是否必填(1是) */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String isRequired; /** * 是否为插入字段(1是) */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String isInsert; /** * 是否编辑字段(1是) */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String isEdit; /** * 是否列表字段(1是) */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String isList; /** * 是否查询字段(1是) */ @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) private String isQuery; /** * 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围) */ private String queryType; /** * 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、image图片上传控件、upload文件上传控件、editor富文本控件) */ private String htmlType; /** * 字典类型 */ private String dictType; /** * 排序 */ private Integer sort; public String getCapJavaField() { return StringUtils.capitalize(javaField); } public boolean isPk() { return isPk(this.isPk); } public boolean isPk(String isPk) { return isPk != null && StringUtils.equals("1", isPk); } public boolean isIncrement() { return isIncrement(this.isIncrement); } public boolean isIncrement(String isIncrement) { return isIncrement != null && StringUtils.equals("1", isIncrement); } public boolean isRequired() { return isRequired(this.isRequired); } public boolean isRequired(String isRequired) { return isRequired != null && StringUtils.equals("1", isRequired); } public boolean isInsert() { return isInsert(this.isInsert); } public boolean isInsert(String isInsert) { return isInsert != null && StringUtils.equals("1", isInsert); } public boolean isEdit() { return isInsert(this.isEdit); } public boolean isEdit(String isEdit) { return isEdit != null && StringUtils.equals("1", isEdit); } public boolean isList() { return isList(this.isList); } public boolean isList(String isList) { return isList != null && StringUtils.equals("1", isList); } public boolean isQuery() { return isQuery(this.isQuery); } public boolean isQuery(String isQuery) { return isQuery != null && StringUtils.equals("1", isQuery); } public boolean isSuperColumn() { return isSuperColumn(this.javaField); } public static boolean isSuperColumn(String javaField) { return StringUtils.equalsAnyIgnoreCase(javaField, // BaseEntity "createBy", "createTime", "updateBy", "updateTime", // TreeEntity "parentName", "parentId"); } public boolean isUsableColumn() { return isUsableColumn(javaField); } public static boolean isUsableColumn(String javaField) { // isSuperColumn()中的名单用于避免生成多余Domain属性,若某些属性在生成页面时需要用到不能忽略,则放在此处白名单 return StringUtils.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); } public String readConverterExp() { String remarks = StringUtils.substringBetween(this.columnComment, "(", ")"); StringBuffer sb = new StringBuffer(); if (StringUtils.isNotEmpty(remarks)) { for (String value : remarks.split(" ")) { if (StringUtils.isNotEmpty(value)) { Object startStr = value.subSequence(0, 1); String endStr = value.substring(1); sb.append(StringUtils.EMPTY).append(startStr).append("=").append(endStr).append(StringUtils.SEPARATOR); } } return sb.deleteCharAt(sb.length() - 1).toString(); } else { return this.columnComment; } } }