add file
This commit is contained in:
parent
66995ca148
commit
4c1a99c746
@ -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();
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
@ -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) {
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|
||||||
|
}
|
||||||
81
src/main/java/com/baomidou/ant/timemail/entity/TmUser.java
Normal file
81
src/main/java/com/baomidou/ant/timemail/entity/TmUser.java
Normal 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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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 {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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
|
||||||
5
src/main/resources/mapper/timemail/UserMapper.xml
Normal file
5
src/main/resources/mapper/timemail/UserMapper.xml
Normal 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>
|
||||||
@ -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>
|
||||||
}
|
}
|
||||||
16
src/main/resources/template/mapper.ftl
Normal file
16
src/main/resources/template/mapper.ftl
Normal 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}> {
|
||||||
|
|
||||||
|
}
|
||||||
5
src/main/resources/template/mapper.xml.ftl
Normal file
5
src/main/resources/template/mapper.xml.ftl
Normal 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>
|
||||||
@ -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
|
||||||
|
|||||||
28
src/main/resources/template/reqDto.ftl
Normal file
28
src/main/resources/template/reqDto.ftl
Normal 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>
|
||||||
|
}
|
||||||
28
src/main/resources/template/resDto.ftl
Normal file
28
src/main/resources/template/resDto.ftl
Normal 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>
|
||||||
|
}
|
||||||
0
src/main/resources/template/service.ftl
Normal file
0
src/main/resources/template/service.ftl
Normal 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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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>
|
||||||
5
timemail-server/src/main/resources/mapper/UserMapper.xml
Normal file
5
timemail-server/src/main/resources/mapper/UserMapper.xml
Normal 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>
|
||||||
Loading…
Reference in New Issue
Block a user