This commit is contained in:
luming 2021-04-19 22:09:25 +08:00
parent 66995ca148
commit 4c1a99c746
29 changed files with 947 additions and 62 deletions

View File

@ -13,7 +13,7 @@ import java.sql.SQLException;
import java.util.List; import java.util.List;
public class DDDGenerator { public class DDDGenerator {
public static void main(String[] args) throws FileNotFoundException, SQLException, ClassNotFoundException { public static void main(String[] args) throws SQLException, FileNotFoundException, ClassNotFoundException {
GeneratorUtil.Generator(); GeneratorUtil.Generator();
// GeneratorUtil.package2Path(DatabaseUtil.getInstance().getConfig().getGenerate().packageName); // GeneratorUtil.package2Path(DatabaseUtil.getInstance().getConfig().getGenerate().packageName);
// List<String> timemail = DatabaseUtil.getInstance().getTable(); // List<String> timemail = DatabaseUtil.getInstance().getTable();

View File

@ -49,4 +49,23 @@ public class Config {
* 表前缀 * 表前缀
*/ */
public String tablePrefix; public String tablePrefix;
public String mapperPackage;
public String entityPackage;
public String poPackage;
public String servicePackage;
public String repositoryPackage;
public String resDtoPackage;
public String reqDtoPackage;
public String controllerpackage;
public String author;
} }

View File

@ -11,6 +11,7 @@ import java.sql.SQLException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* 工具类 * 工具类
@ -21,7 +22,7 @@ public class GeneratorUtil {
// 类型映射 // 类型映射
private final static Map<String, String> SQL_TYPE_TO_JAVA_TYPE = new HashMap<>(); private final static Map<String, String> SQL_TYPE_TO_JAVA_TYPE = new HashMap<>();
// 文件后缀 // 文件后缀
private final static String SUFFIX = ".java"; private static String SUFFIX = ".java";
private final static Config CONFIG = DatabaseUtil.getInstance().getConfig().getGenerate(); private final static Config CONFIG = DatabaseUtil.getInstance().getConfig().getGenerate();
@ -153,15 +154,13 @@ public class GeneratorUtil {
// System.out.println("<<<<< table" + t + " >>>>>"); // System.out.println("<<<<< table" + t + " >>>>>");
try { try {
List<Column> column = instance.getColumn(t); List<Column> column = instance.getColumn(t);
generatorPo(column, t); generatorCode(column, t);
} catch (SQLException throwables) { } catch (SQLException throwables) {
throwables.printStackTrace(); throwables.printStackTrace();
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -180,49 +179,76 @@ public class GeneratorUtil {
} }
/** /**
* 生成po实体 * 生成实体
*/ */
public static void generatorPo(List<Column> list, String table) throws IOException, TemplateException { public static void generatorCode(List<Column> list, String tableName){
//如果有前缀去除 generatorByTemplate(list,tableName,"po");
String className = table; generatorByTemplate(list,tableName,"entity");
if (StringUtils.isNotEmpty(CONFIG.getTablePrefix())) { generatorByTemplate(list,tableName,"resDto");
className = formatTableName(table); generatorByTemplate(list,tableName,"reqDto");
} // generatorByTemplate(list,tableName,"repository");
// 类名首字母大写 // generatorByTemplate(list,tableName,"service");
className = toUpperCaseFist(className); generatorByTemplate(null,tableName,"mapper");
Configuration configuration = new Configuration(Configuration.VERSION_2_3_0); generatorByTemplate(null,tableName,"mapper.xml");
Template template = configuration.getTemplate("src/main/resources/template/po.ftl"); // generatorByTemplate(list,tableName,"controller");
String path = CONFIG.getProjectName() + "-server/" + package2Path(CONFIG.getPackageName() + ".infrastructure.persistence.po/");
String filepath = path + className + SUFFIX;
// 文件夹不存在创建
if (!new File(path).exists()) {
if (new File(path).mkdirs()) {
// System.out.println("PO 文件夹创建成功");
}
if (new File(filepath).createNewFile()) {
System.out.println("=== PO:[" + className + " ] 创建成功 ===");
}
}
Map<String, Object> data = new HashMap<>();
data.put("package", CONFIG.getPackageName() + ".infrastructure.persistence.po");
data.put("table_name", table);
data.put("class_name", className);
data.put("columns", list);
File file = new File(filepath);
template.process(data, new FileWriter(file));
} }
// public static void generatorPo_bak(List<Column> list, String table) throws IOException, TemplateException {
// //如果有前缀去除
// String className = table;
// if (StringUtils.isNotEmpty(CONFIG.getTablePrefix())) {
// className = formatTableName(table);
// }
// // 类名首字母大写
// className = toUpperCaseFist(className);
// Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);
// Template template = configuration.getTemplate("src/main/resources/template/po.ftl");
// String path = CONFIG.getProjectName() + "-server/" + package2Path(CONFIG.getPackageName() + ".infrastructure.persistence.po/");
// String filepath = path + className + SUFFIX;
// // 文件夹不存在创建
// if (!new File(path).exists()) {
// if (new File(path).mkdirs()) {
// // System.out.println("PO 文件夹创建成功");
// }
// if (new File(filepath).createNewFile()) {
// System.out.println("=== PO:[" + className + " ] 创建成功 ===");
// }
//
// }
// Map<String, Object> data = new HashMap<>();
// data.put("package", CONFIG.getPackageName() + ".infrastructure.persistence.po");
// data.put("table_name", table);
// data.put("class_name", className);
// data.put("columns", list);
// File file = new File(filepath);
// template.process(data, new FileWriter(file));
// }
/** /**
* @param packageName 主包名 * create template file
* @param secondaryPackageName 二级包名称实体所在的包位置除去主包名后的位置 *
* @param type 类型 po entity dto mapper service repository controller * @param type 类型 po entity dto mapper service repository controller
*/ */
public static void generatorByTemplate(List<Column> list, String tableName, String packageName, String secondaryPackageName, String type) { public static void generatorByTemplate(List<Column> list, String tableName, String type) {
String templatePath = String.format("src/main/resources/template/%s.ftl", toLowerCase(type)); String templatePath = String.format("src/main/resources/template/%s.ftl", toLowerCase(type));
String moduleName; String moduleName;
//如果有前缀去除 String secondaryPackage;
String className = tableName; String className = tableName;
// data
Map<String, Object> data = new HashMap<>();
// add base data
data.put("mapper_package",CONFIG.getMapperPackage());
data.put("entity_package",CONFIG.getEntityPackage());
data.put("po_package",CONFIG.getPoPackage());
data.put("service_package",CONFIG.getServicePackage());
data.put("repository_package",CONFIG.getRepositoryPackage());
data.put("res_dto_package",CONFIG.getResDtoPackage());
data.put("req_dto_package",CONFIG.getReqDtoPackage());
data.put("controller_package",CONFIG.getControllerpackage());
data.put("package", CONFIG.getPackageName());
data.put("author",CONFIG.getAuthor());
// 如果有前缀去除
if (StringUtils.isNotEmpty(CONFIG.getTablePrefix())) { if (StringUtils.isNotEmpty(CONFIG.getTablePrefix())) {
className = formatTableName(tableName); className = formatTableName(tableName);
} }
@ -230,24 +256,57 @@ public class GeneratorUtil {
className = toUpperCaseFist(className); className = toUpperCaseFist(className);
switch (type) { switch (type) {
case "po": case "po":
case "service": secondaryPackage = CONFIG.getPoPackage();
case "mapper":
case "repository":
case "entity":
moduleName = "server"; moduleName = "server";
break; break;
case "dto": case "service":
secondaryPackage = CONFIG.getServicePackage();
moduleName = "server";
break;
case "mapper":
secondaryPackage = CONFIG.getMapperPackage();
moduleName = "server";
break;
case "mapper.xml":
//todo detal
SUFFIX = ".xml";
moduleName = "server";
break;
case "repository":
secondaryPackage = CONFIG.getRepositoryPackage();
moduleName = "server";
break;
case "entity":
secondaryPackage = CONFIG.getMapperPackage();
moduleName = "server";
break;
case "resDto":
secondaryPackage = CONFIG.getResDtoPackage();
moduleName = "dto";
break;
case "reqDto":
secondaryPackage = CONFIG.getReqDtoPackage();
moduleName = "dto"; moduleName = "dto";
break; break;
case "controller": case "controller":
secondaryPackage = CONFIG.getControllerpackage();
moduleName = "facade"; moduleName = "facade";
break; break;
default: default:
System.out.println("=== 没有匹配的类型 ==="); System.out.println("=== 没有匹配的类型 ===");
return; return;
} }
String dir = String.format("%s-%s/%s/%s/", CONFIG.getProjectName(), moduleName, package2Path(CONFIG.getPackageName()), package2Path(secondaryPackageName)); String dir = "";
String filePath = dir + className + SUFFIX; String filePath = "";
// mapper.xml file deal
if (Objects.equals(type,"mapper.xml")){
dir = String.format("%s-%s/src/main/resources/mapper/",CONFIG.getProjectName(),moduleName);
filePath = dir + className + toUpperCaseFist(type) + SUFFIX;
} else {
dir = String.format("%s-%s/src/main/java/%s/%s/", CONFIG.getProjectName(), moduleName, package2Path(CONFIG.getPackageName()), package2Path(secondaryPackage));
filePath = dir + className + toUpperCaseFist(type) + SUFFIX;
}
File file = new File(filePath); File file = new File(filePath);
try { try {
// 文件夹不存在创建 // 文件夹不存在创建
@ -264,8 +323,6 @@ public class GeneratorUtil {
} }
Configuration configuration = new Configuration(Configuration.VERSION_2_3_0); Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);
Template template = configuration.getTemplate(templatePath); Template template = configuration.getTemplate(templatePath);
Map<String, Object> data = new HashMap<>();
data.put("package", packageName + '.' + secondaryPackageName);
data.put("table_name", tableName); data.put("table_name", tableName);
data.put("class_name", className); data.put("class_name", className);
data.put("columns", list); data.put("columns", list);
@ -292,6 +349,7 @@ public class GeneratorUtil {
* @return * @return
*/ */
public static String toUpperCaseFist(String str) { public static String toUpperCaseFist(String str) {
str = str.split("\\.")[0];
char[] chars = str.toCharArray(); char[] chars = str.toCharArray();
chars[0] = toUpperCase(chars[0]); chars[0] = toUpperCase(chars[0]);
return String.valueOf(chars); return String.valueOf(chars);
@ -317,7 +375,10 @@ public class GeneratorUtil {
* @return * @return
*/ */
public static String package2Path(String packageName) { public static String package2Path(String packageName) {
return "src/main/java/" + packageName.replace(".", "/"); if (packageName == null){
return "";
}
return packageName.replace(".", "/");
} }
public static String formatTableName(String str) { public static String formatTableName(String str) {

View File

@ -0,0 +1,20 @@
package com.baomidou.ant.timemail.controller;
// import org.springframework.web.bind.annotation.RequestMapping;
// import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author jobob
* @since 2021-04-19
*/
// @RestController
// @RequestMapping("/timemail/tm-user")
public class TmUserController {
}

View File

@ -0,0 +1,81 @@
package com.baomidou.ant.timemail.entity;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author jobob
* @since 2021-04-19
*/
@Data
public class TmUser{
private static final long serialVersionUID = 1L;
/**
* 账户
*/
private String account;
/**
* 用户名
*/
private String name;
/**
* 用户邮箱
*/
private String mail;
/**
* 密码
*/
private String password;
/**
* salt
*/
private String salt;
/**
* 用户状态(0正常 10禁用)
*/
private Integer status;
/**
* 逻辑删除
*/
private Boolean deleted;
/**
* 注册方式(0:邮箱注册,10:手机号注册,20:系统添加)
*/
private Integer regiterType;
/**
* 注册者IP
*/
private Long registerIp;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 手机号
*/
private String phone;
}

View File

@ -0,0 +1,16 @@
package com.baomidou.ant.timemail.mapper;
import com.baomidou.ant.timemail.entity.TmUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author jobob
* @since 2021-04-19
*/
public interface TmUserMapper extends BaseMapper<TmUser> {
}

View File

@ -0,0 +1,16 @@
package com.baomidou.ant.timemail.service;
import com.baomidou.ant.timemail.entity.TmUser;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author jobob
* @since 2021-04-19
*/
public interface ITmUserService extends IService<TmUser> {
}

View File

@ -0,0 +1,20 @@
package com.baomidou.ant.timemail.service.impl;
import com.baomidou.ant.timemail.entity.TmUser;
import com.baomidou.ant.timemail.mapper.TmUserMapper;
import com.baomidou.ant.timemail.service.ITmUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author jobob
* @since 2021-04-19
*/
@Service
public class TmUserServiceImpl extends ServiceImpl<TmUserMapper, TmUser> implements ITmUserService {
}

View File

@ -14,4 +14,22 @@ generate:
# 项目名称 # 项目名称
projectName: timemail projectName: timemail
# 前缀 # 前缀
tablePrefix: tm_ tablePrefix: tm_
# mapper
mapperPackage: infrastructure.persistence.mapper
# entity
entityPackage: domain.model
# po
poPackage: infrastructure.persistence.po
# service
servicePackage: domain.service
# repository
repositoryPackage: infrastructure.repository
# resdto
resDtoPackage: dto.response
# reqdto
reqDtoPackage: dto.request
# controller
controllerpackage: interfaces.rest
# author
author: rainerosion

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.baomidou.ant.timemail.mapper.UserMapper">
</mapper>

View File

@ -1,26 +1,28 @@
package ${package_name}; package ${package}.${entity_package};
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable; import java.io.Serializable;
/** /**
* ${table_name} * ${table_name}
* * entity
* @author rainerosion * @author ${author}
* @date ${.now?datetime} * @date ${.now?datetime}
*/ */
@Data @Data
@Table(name = "${table_name}") @AllArgsConstructor
@Entity(name = "${table_name}") @NoArgsConstructor
@Builder
public class ${class_name} implements Serializable { public class ${class_name} implements Serializable {
<#list columns as column> <#list columns as column>
/** /**
* ${column.columnComment} * ${column.remarks!'Todo Add comments'}
*/ */
private ${column.columnType} ${column.columnName}; private ${column.javaType} ${column.columnName};
</#list> </#list>
} }

View File

@ -0,0 +1,16 @@
package ${package}.${po_package};
import ${package}.${po_package}.${class_name};
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author ${author}
* @since 2021-04-19
*/
public interface ${class_name}Mapper extends BaseMapper<${class_name}> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${package}.${po_package}.${class_name}Mapper">
</mapper>

View File

@ -1,4 +1,4 @@
package ${package}; package ${package}.${po_package};
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
@ -9,8 +9,8 @@ import java.io.Serializable;
/** /**
* ${table_name} * ${table_name}
* * po
* @author rainerosion * @author ${author}
* @date ${.now?datetime} * @date ${.now?datetime}
*/ */
@Data @Data

View File

@ -0,0 +1,28 @@
package ${package};
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* ${table_name}
* entity
* @author ${author}
* @date ${.now?datetime}
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ${class_name} implements Serializable {
<#list columns as column>
/**
* ${column.remarks!'Todo Add comments'}
*/
private ${column.javaType} ${column.columnName};
</#list>
}

View File

@ -0,0 +1,28 @@
package ${package};
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* ${table_name}
* entity
* @author ${author}
* @date ${.now?datetime}
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ${class_name} implements Serializable {
<#list columns as column>
/**
* ${column.remarks!'Todo Add comments'}
*/
private ${column.javaType} ${column.columnName};
</#list>
}

View File

View File

@ -0,0 +1,41 @@
package cn.timemail.email;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_content
* entity
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Content implements Serializable {
/**
* 主键编号
*/
private Long id;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* Todo Add comments
*/
private Object createTime;
}

View File

@ -0,0 +1,86 @@
package cn.timemail.email;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_user
* entity
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User implements Serializable {
/**
* 主键ID
*/
private Long id;
/**
* 账户
*/
private String account;
/**
* 用户名
*/
private String name;
/**
* 用户邮箱
*/
private String mail;
/**
* 密码
*/
private String password;
/**
* salt
*/
private String salt;
/**
* 用户状态(0正常 10禁用)
*/
private Short status;
/**
* 逻辑删除
*/
private Boolean deleted;
/**
* 注册方式(0:邮箱注册,10:手机号注册,20:系统添加)
*/
private Short regiterType;
/**
* 注册者IP
*/
private Long registerIp;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 手机号
*/
private Object phone;
}

View File

@ -0,0 +1,41 @@
package cn.timemail.email;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_content
* entity
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Content implements Serializable {
/**
* 主键编号
*/
private Long id;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* Todo Add comments
*/
private Object createTime;
}

View File

@ -0,0 +1,86 @@
package cn.timemail.email;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_user
* entity
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User implements Serializable {
/**
* 主键ID
*/
private Long id;
/**
* 账户
*/
private String account;
/**
* 用户名
*/
private String name;
/**
* 用户邮箱
*/
private String mail;
/**
* 密码
*/
private String password;
/**
* salt
*/
private String salt;
/**
* 用户状态(0正常 10禁用)
*/
private Short status;
/**
* 逻辑删除
*/
private Boolean deleted;
/**
* 注册方式(0:邮箱注册,10:手机号注册,20:系统添加)
*/
private Short regiterType;
/**
* 注册者IP
*/
private Long registerIp;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 手机号
*/
private Object phone;
}

View File

@ -0,0 +1,41 @@
package cn.timemail.email.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_content
* entity
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Content implements Serializable {
/**
* 主键编号
*/
private Long id;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* Todo Add comments
*/
private Object createTime;
}

View File

@ -0,0 +1,16 @@
package cn.timemail.email.infrastructure.persistence.po;
import cn.timemail.email.infrastructure.persistence.po.Content;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author rainerosion
* @since 2021-04-19
*/
public interface ContentMapper extends BaseMapper<Content> {
}

View File

@ -0,0 +1,86 @@
package cn.timemail.email.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_user
* entity
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User implements Serializable {
/**
* 主键ID
*/
private Long id;
/**
* 账户
*/
private String account;
/**
* 用户名
*/
private String name;
/**
* 用户邮箱
*/
private String mail;
/**
* 密码
*/
private String password;
/**
* salt
*/
private String salt;
/**
* 用户状态(0正常 10禁用)
*/
private Short status;
/**
* 逻辑删除
*/
private Boolean deleted;
/**
* 注册方式(0:邮箱注册,10:手机号注册,20:系统添加)
*/
private Short regiterType;
/**
* 注册者IP
*/
private Long registerIp;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 手机号
*/
private Object phone;
}

View File

@ -0,0 +1,16 @@
package cn.timemail.email.infrastructure.persistence.po;
import cn.timemail.email.infrastructure.persistence.po.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author rainerosion
* @since 2021-04-19
*/
public interface UserMapper extends BaseMapper<User> {
}

View File

@ -0,0 +1,41 @@
package cn.timemail.email.infrastructure.persistence.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_content
* po
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Content implements Serializable {
/**
* 主键编号
*/
private Long id;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* Todo Add comments
*/
private Object createTime;
}

View File

@ -0,0 +1,86 @@
package cn.timemail.email.infrastructure.persistence.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* tm_user
* po
* @author rainerosion
* @date 2021-4-19 22:06:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User implements Serializable {
/**
* 主键ID
*/
private Long id;
/**
* 账户
*/
private String account;
/**
* 用户名
*/
private String name;
/**
* 用户邮箱
*/
private String mail;
/**
* 密码
*/
private String password;
/**
* salt
*/
private String salt;
/**
* 用户状态(0正常 10禁用)
*/
private Short status;
/**
* 逻辑删除
*/
private Boolean deleted;
/**
* 注册方式(0:邮箱注册,10:手机号注册,20:系统添加)
*/
private Short regiterType;
/**
* 注册者IP
*/
private Long registerIp;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 手机号
*/
private Object phone;
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.timemail.email.infrastructure.persistence.po.ContentMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.timemail.email.infrastructure.persistence.po.UserMapper">
</mapper>