Commit 779b8978 by yuwei

项目初始化

parent 60477a04
...@@ -2,7 +2,6 @@ package cn.datax.common.base; ...@@ -2,7 +2,6 @@ package cn.datax.common.base;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
......
...@@ -14,8 +14,6 @@ public class BaseQueryParams implements Serializable { ...@@ -14,8 +14,6 @@ public class BaseQueryParams implements Serializable {
private Integer pageNum = 1; private Integer pageNum = 1;
// 分页条数 // 分页条数
private Integer pageSize = 20; private Integer pageSize = 20;
// 显示字段
private List<String> columnList;
// 排序 // 排序
private List<OrderItem> orderList; private List<OrderItem> orderList;
// 数据权限 // 数据权限
......
...@@ -8,7 +8,6 @@ import cn.datax.service.system.service.LogService; ...@@ -8,7 +8,6 @@ import cn.datax.service.system.service.LogService;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
......
...@@ -10,7 +10,6 @@ import cn.datax.service.system.service.PostService; ...@@ -10,7 +10,6 @@ import cn.datax.service.system.service.PostService;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
......
...@@ -8,10 +8,8 @@ import cn.datax.service.system.api.entity.RoleEntity; ...@@ -8,10 +8,8 @@ import cn.datax.service.system.api.entity.RoleEntity;
import cn.datax.service.system.mapstruct.RoleMapper; import cn.datax.service.system.mapstruct.RoleMapper;
import cn.datax.service.system.service.RoleService; import cn.datax.service.system.service.RoleService;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
......
...@@ -7,7 +7,6 @@ import cn.datax.service.system.api.entity.UserEntity; ...@@ -7,7 +7,6 @@ import cn.datax.service.system.api.entity.UserEntity;
import cn.datax.service.system.api.query.UserQuery; import cn.datax.service.system.api.query.UserQuery;
import cn.datax.service.system.service.UserService; import cn.datax.service.system.service.UserService;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -27,9 +26,6 @@ public class TestController extends BaseController { ...@@ -27,9 +26,6 @@ public class TestController extends BaseController {
@GetMapping("/users/pageDataScope") @GetMapping("/users/pageDataScope")
public R getUserPageDataScope(UserQuery userQuery) { public R getUserPageDataScope(UserQuery userQuery) {
QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
if(CollUtil.isNotEmpty(userQuery.getColumnList())){
queryWrapper.select(ArrayUtil.toArray(userQuery.getColumnList(), String.class));
}
queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername()); queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername());
queryWrapper.apply(StrUtil.isNotBlank(userQuery.getDeptId()), "(select dept_id from sys_user_dept where user_id = id) = {0}", userQuery.getDeptId()); queryWrapper.apply(StrUtil.isNotBlank(userQuery.getDeptId()), "(select dept_id from sys_user_dept where user_id = id) = {0}", userQuery.getDeptId());
if(CollUtil.isNotEmpty(userQuery.getOrderList())){ if(CollUtil.isNotEmpty(userQuery.getOrderList())){
......
...@@ -11,7 +11,6 @@ import cn.datax.service.system.api.query.UserQuery; ...@@ -11,7 +11,6 @@ import cn.datax.service.system.api.query.UserQuery;
import cn.datax.service.system.mapstruct.UserMapper; import cn.datax.service.system.mapstruct.UserMapper;
import cn.datax.service.system.service.UserService; import cn.datax.service.system.service.UserService;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -65,9 +64,6 @@ public class UserController extends BaseController { ...@@ -65,9 +64,6 @@ public class UserController extends BaseController {
@GetMapping("/page") @GetMapping("/page")
public R getUserPage(UserQuery userQuery) { public R getUserPage(UserQuery userQuery) {
QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
if(CollUtil.isNotEmpty(userQuery.getColumnList())){
queryWrapper.select(ArrayUtil.toArray(userQuery.getColumnList(), String.class));
}
queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername()); queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername());
queryWrapper.apply(StrUtil.isNotBlank(userQuery.getDeptId()), "(select dept_id from sys_user_dept where user_id = id) = {0}", userQuery.getDeptId()); queryWrapper.apply(StrUtil.isNotBlank(userQuery.getDeptId()), "(select dept_id from sys_user_dept where user_id = id) = {0}", userQuery.getDeptId());
if(CollUtil.isNotEmpty(userQuery.getOrderList())){ if(CollUtil.isNotEmpty(userQuery.getOrderList())){
......
...@@ -9,10 +9,8 @@ import com.baomidou.mybatisplus.generator.config.*; ...@@ -9,10 +9,8 @@ import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.ArrayList; import java.io.File;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
public class Generate { public class Generate {
...@@ -48,8 +46,8 @@ public class Generate { ...@@ -48,8 +46,8 @@ public class Generate {
// 数据源配置 // 数据源配置
DataSourceConfig dsc = new DataSourceConfig(); DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&useSSL=false&characterEncoding=utf8"); dsc.setUrl("jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root"); dsc.setUsername("root");
dsc.setPassword("1234@abcd"); dsc.setPassword("1234@abcd");
mpg.setDataSource(dsc); mpg.setDataSource(dsc);
...@@ -66,6 +64,9 @@ public class Generate { ...@@ -66,6 +64,9 @@ public class Generate {
InjectionConfig cfg = new InjectionConfig() { InjectionConfig cfg = new InjectionConfig() {
@Override @Override
public void initMap() { public void initMap() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("PackageParent", "cn.datax.service");
this.setMap(map);
} }
}; };
...@@ -77,7 +78,37 @@ public class Generate { ...@@ -77,7 +78,37 @@ public class Generate {
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!! // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/resources/mapper/" + pc.getModuleName() return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; + "/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_XML;
}
});
focList.add(new FileOutConfig("/templates/entity.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/entity/" + tableInfo.getEntityName() + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/mapstruct.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service".replace(".", File.separator) + File.separator + pc.getModuleName() + "/mapstruct/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/dto.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/dto/" + tableInfo.getEntityName().replace("Entity", "Dto") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/vo.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/vo/" + tableInfo.getEntityName().replace("Entity", "Vo") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/query.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/query/" + tableInfo.getEntityName().replace("Entity", "Query") + StringPool.DOT_JAVA;
} }
}); });
/* /*
...@@ -98,7 +129,7 @@ public class Generate { ...@@ -98,7 +129,7 @@ public class Generate {
// 配置自定义输出模板 // 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别 //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
templateConfig.setEntity("templates/entity.java"); templateConfig.setEntity(null);
templateConfig.setController("templates/controller.java"); templateConfig.setController("templates/controller.java");
templateConfig.setService("templates/service.java"); templateConfig.setService("templates/service.java");
templateConfig.setServiceImpl("templates/serviceImpl.java"); templateConfig.setServiceImpl("templates/serviceImpl.java");
...@@ -147,7 +178,7 @@ public class Generate { ...@@ -147,7 +178,7 @@ public class Generate {
// 策略配置 // 策略配置
StrategyConfig strategyConfig = getStrategyConfig(tableNames); StrategyConfig strategyConfig = getStrategyConfig(tableNames);
//自定义配置 //自定义配置
InjectionConfig injectionConfig = getInjectionConfig(); InjectionConfig injectionConfig = getInjectionConfig(moduleName, parentName);
//配置模板 //配置模板
TemplateConfig templateConfig = getTemplateConfig(); TemplateConfig templateConfig = getTemplateConfig();
//自动生成 //自动生成
...@@ -182,12 +213,12 @@ public class Generate { ...@@ -182,12 +213,12 @@ public class Generate {
* *
* @return templateConfig * @return templateConfig
*/ */
private InjectionConfig getInjectionConfig() { private InjectionConfig getInjectionConfig(String moduleName, String parentName) {
InjectionConfig cfg = new InjectionConfig() { InjectionConfig cfg = new InjectionConfig() {
@Override @Override
public void initMap() { public void initMap() {
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<>();
map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp"); map.put("PackageParent", parentName);
this.setMap(map); this.setMap(map);
} }
}; };
...@@ -195,7 +226,37 @@ public class Generate { ...@@ -195,7 +226,37 @@ public class Generate {
focList.add(new FileOutConfig("/templates/mapper.xml.vm") { focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
@Override @Override
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.home") + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; return System.getProperty("user.dir") + "/src/main/resources/mapper/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_XML;
}
});
focList.add(new FileOutConfig("/templates/entity.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/entity/" + tableInfo.getEntityName() + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/mapstruct.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/mapstruct/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/dto.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/dto/" + tableInfo.getEntityName().replace("Entity", "Dto") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/vo.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/vo/" + tableInfo.getEntityName().replace("Entity", "Vo") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/query.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/query/" + tableInfo.getEntityName().replace("Entity", "Query") + StringPool.DOT_JAVA;
} }
}); });
cfg.setFileOutConfigList(focList); cfg.setFileOutConfigList(focList);
...@@ -209,7 +270,7 @@ public class Generate { ...@@ -209,7 +270,7 @@ public class Generate {
*/ */
private TemplateConfig getTemplateConfig() { private TemplateConfig getTemplateConfig() {
return new TemplateConfig() return new TemplateConfig()
.setEntity("templates/entity.java") .setEntity(null)
.setController("templates/controller.java") .setController("templates/controller.java")
.setService("templates/service.java") .setService("templates/service.java")
.setServiceImpl("templates/serviceImpl.java") .setServiceImpl("templates/serviceImpl.java")
...@@ -259,7 +320,7 @@ public class Generate { ...@@ -259,7 +320,7 @@ public class Generate {
//指定生成的主键的ID类型 //指定生成的主键的ID类型
.setIdType(IdType.ID_WORKER_STR) .setIdType(IdType.ID_WORKER_STR)
//设置输出路径 //设置输出路径
.setOutputDir(System.getProperty("user.home") + "/src/main/java/") .setOutputDir(System.getProperty("user.dir") + "/src/main/java/")
.setEntityName("%sEntity") .setEntityName("%sEntity")
.setMapperName("%sDao") .setMapperName("%sDao")
.setXmlName("%sMapper") .setXmlName("%sMapper")
......
package ${package.Controller}; package ${package.Controller};
import cn.datax.common.core.R;
import cn.datax.common.validate.ValidateGroupForSave;
import cn.datax.common.validate.ValidateGroupForUpdate;
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.dto.${className}Dto;
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.entity.${entity};
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.query.${className}Query;
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.mapstruct.${className}Mapper;
import ${package.Service}.${table.serviceName};
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
#if(${restControllerStyle})
import org.springframework.web.bind.annotation.RestController;
#else
import org.springframework.stereotype.Controller;
#end
#if(${superControllerClassPackage}) #if(${superControllerClassPackage})
import ${superControllerClassPackage}; import ${superControllerClassPackage};
#end #end
...@@ -20,22 +33,95 @@ import ${superControllerClassPackage}; ...@@ -20,22 +33,95 @@ import ${superControllerClassPackage};
* @author ${author} * @author ${author}
* @since ${date} * @since ${date}
*/ */
#if(${restControllerStyle}) #if(${table.comment})
@RestController @Api(tags = {"${table.comment}"})
#else #else
@Controller @Api(tags = {"${className}"})
#end #end
@RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end") @RestController
#if(${kotlin}) @RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/${classNameLower}")
class ${table.controllerName}#if(${superControllerClass}) : ${superControllerClass}()#end
#else
#if(${superControllerClass}) #if(${superControllerClass})
public class ${table.controllerName} extends ${superControllerClass} { public class ${table.controllerName} extends ${superControllerClass} {
#else #else
public class ${table.controllerName} { public class ${table.controllerName} {
#end #end
} @Autowired
private ${table.serviceName} ${classNameLower}Service;
#end @Autowired
\ No newline at end of file private ${className}Mapper ${classNameLower}Mapper;
/**
* 通过ID查询信息
*
* @param id
* @return
*/
@ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
@GetMapping("/{id}")
public R get${className}ById(@PathVariable String id) {
${entity} ${classNameLower}Entity = ${classNameLower}Service.getById(id);
return R.ok().setData(${classNameLower}Mapper.toVO(${classNameLower}Entity));
}
/**
* 分页查询信息
*
* @param ${classNameLower}Query
* @return
*/
@ApiOperation(value = "分页查询", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "${classNameLower}Query", value = "查询实体${classNameLower}Query", required = true, dataTypeClass = ${className}Query.class)
})
@GetMapping("/page")
public R getRolePage(${className}Query ${classNameLower}Query) {
QueryWrapper<${entity}> queryWrapper = new QueryWrapper<>();
IPage<${entity}> page = ${classNameLower}Service.page(new Page<>(${classNameLower}Query.getPageNum(), ${classNameLower}Query.getPageSize()), queryWrapper);
return R.ok().setData(page);
}
/**
* 添加
* @param ${classNameLower}
* @return
*/
@ApiOperation(value = "添加信息", notes = "根据${classNameLower}对象添加信息")
@ApiImplicitParam(name = "${classNameLower}", value = "详细实体${classNameLower}", required = true, dataType = "${className}Dto")
@PostMapping()
public R save${className}(@RequestBody @Validated({ValidateGroupForSave.class}) ${className}Dto ${classNameLower}) {
${classNameLower}Service.save${className}(${classNameLower});
return R.ok();
}
/**
* 修改
* @param ${classNameLower}
* @return
*/
@ApiOperation(value = "修改信息", notes = "根据url的id来指定修改对象,并根据传过来的信息来修改详细信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path"),
@ApiImplicitParam(name = "${classNameLower}", value = "详细实体${classNameLower}", required = true, dataType = "${className}Dto")
})
@PutMapping("/{id}")
public R update${className}(@PathVariable String id, @RequestBody @Validated({ValidateGroupForUpdate.class}) ${className}Dto ${classNameLower}) {
${classNameLower}Service.update${className}(${classNameLower});
return R.ok();
}
/**
* 删除
* @param id
* @return
*/
@ApiOperation(value = "删除", notes = "根据url的id来指定删除对象")
@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
@DeleteMapping("/{id}")
public R delete${className}ById(@PathVariable String id) {
${classNameLower}Service.delete${className}ById(id);
return R.ok();
}
}
package ${package.Controller};
import org.springframework.web.bind.annotation.RequestMapping;
#if(${restControllerStyle})
import org.springframework.web.bind.annotation.RestController;
#else
import org.springframework.stereotype.Controller;
#end
#if(${superControllerClassPackage})
import ${superControllerClassPackage};
#end
/**
* <p>
* $!{table.comment} 前端控制器
* </p>
*
* @author ${author}
* @since ${date}
*/
#if(${restControllerStyle})
@RestController
#else
@Controller
#end
@RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end")
#if(${kotlin})
class ${table.controllerName}#if(${superControllerClass}) : ${superControllerClass}()#end
#else
#if(${superControllerClass})
public class ${table.controllerName} extends ${superControllerClass} {
#else
public class ${table.controllerName} {
#end
}
#end
\ No newline at end of file
package ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.dto;
import cn.datax.common.validate.ValidateGroupForSave;
import cn.datax.common.validate.ValidateGroupForUpdate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* <p>
* $!{table.comment} 实体DTO
* </p>
*
* @author ${author}
* @since ${date}
*/
@ApiModel(value = "$!{table.comment}Model")
@Data
public class ${className}Dto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidateGroupForUpdate.class})
private String id;
## ---------- BEGIN 字段循环遍历 ----------
#foreach($field in ${table.fields})
@ApiModelProperty(value = "${field.comment}")
private ${field.propertyType} ${field.propertyName};
#end
## ---------- END 字段循环遍历 ----------
}
package ${package.Entity}; package ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.entity;
#foreach($pkg in ${table.importPackages}) #foreach($pkg in ${table.importPackages})
import ${pkg}; import ${pkg};
......
package ${package.Entity};
#foreach($pkg in ${table.importPackages})
import ${pkg};
#end
#if(${swagger2})
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
#end
#if(${entityLombokModel})
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
#end
/**
* <p>
* $!{table.comment}
* </p>
*
* @author ${author}
* @since ${date}
*/
#if(${entityLombokModel})
@Data
#if(${superEntityClass})
@EqualsAndHashCode(callSuper = true)
#else
@EqualsAndHashCode(callSuper = false)
#end
@Accessors(chain = true)
#end
#if(${table.convert})
@TableName("${table.name}")
#end
#if(${swagger2})
@ApiModel(value="${entity}对象", description="$!{table.comment}")
#end
#if(${superEntityClass})
public class ${entity} extends ${superEntityClass}#if(${activeRecord})<${entity}>#end {
#elseif(${activeRecord})
public class ${entity} extends Model<${entity}> {
#else
public class ${entity} implements Serializable {
#end
#if(${entitySerialVersionUID})
private static final long serialVersionUID=1L;
#end
## ---------- BEGIN 字段循环遍历 ----------
#foreach($field in ${table.fields})
#if(${field.keyFlag})
#set($keyPropertyName=${field.propertyName})
#end
#if("$!field.comment" != "")
#if(${swagger2})
@ApiModelProperty(value = "${field.comment}")
#else
/**
* ${field.comment}
*/
#end
#end
#if(${field.keyFlag})
## 主键
#if(${field.keyIdentityFlag})
@TableId(value = "${field.name}", type = IdType.AUTO)
#elseif(!$null.isNull(${idType}) && "$!idType" != "")
@TableId(value = "${field.name}", type = IdType.${idType})
#elseif(${field.convert})
@TableId("${field.name}")
#end
## 普通字段
#elseif(${field.fill})
## ----- 存在字段填充设置 -----
#if(${field.convert})
@TableField(value = "${field.name}", fill = FieldFill.${field.fill})
#else
@TableField(fill = FieldFill.${field.fill})
#end
#elseif(${field.convert})
@TableField("${field.name}")
#end
## 乐观锁注解
#if(${versionFieldName}==${field.name})
@Version
#end
## 逻辑删除注解
#if(${logicDeleteFieldName}==${field.name})
@TableLogic
#end
private ${field.propertyType} ${field.propertyName};
#end
## ---------- END 字段循环遍历 ----------
#if(!${entityLombokModel})
#foreach($field in ${table.fields})
#if(${field.propertyType.equals("boolean")})
#set($getprefix="is")
#else
#set($getprefix="get")
#end
public ${field.propertyType} ${getprefix}${field.capitalName}() {
return ${field.propertyName};
}
#if(${entityBuilderModel})
public ${entity} set${field.capitalName}(${field.propertyType} ${field.propertyName}) {
#else
public void set${field.capitalName}(${field.propertyType} ${field.propertyName}) {
#end
this.${field.propertyName} = ${field.propertyName};
#if(${entityBuilderModel})
return this;
#end
}
#end
#end
#if(${entityColumnConstant})
#foreach($field in ${table.fields})
public static final String ${field.name.toUpperCase()} = "${field.name}";
#end
#end
#if(${activeRecord})
@Override
protected Serializable pkVal() {
#if(${keyPropertyName})
return this.${keyPropertyName};
#else
return null;
#end
}
#end
#if(!${entityLombokModel})
@Override
public String toString() {
return "${entity}{" +
#foreach($field in ${table.fields})
#if($!{foreach.index}==0)
"${field.propertyName}=" + ${field.propertyName} +
#else
", ${field.propertyName}=" + ${field.propertyName} +
#end
#end
"}";
}
#end
}
package ${package.Mapper}; package ${package.Mapper};
import ${package.Entity}.${entity};
import ${superMapperClassPackage}; import ${superMapperClassPackage};
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.entity.${entity};
import org.apache.ibatis.annotations.Mapper;
/** /**
* <p> * <p>
...@@ -11,10 +12,7 @@ import ${superMapperClassPackage}; ...@@ -11,10 +12,7 @@ import ${superMapperClassPackage};
* @author ${author} * @author ${author}
* @since ${date} * @since ${date}
*/ */
#if(${kotlin}) @Mapper
interface ${table.mapperName} : ${superMapperClass}<${entity}>
#else
public interface ${table.mapperName} extends ${superMapperClass}<${entity}> { public interface ${table.mapperName} extends ${superMapperClass}<${entity}> {
} }
#end
package ${package.Mapper};
import ${package.Entity}.${entity};
import ${superMapperClassPackage};
/**
* <p>
* $!{table.comment} Mapper 接口
* </p>
*
* @author ${author}
* @since ${date}
*/
#if(${kotlin})
interface ${table.mapperName} : ${superMapperClass}<${entity}>
#else
public interface ${table.mapperName} extends ${superMapperClass}<${entity}> {
}
#end
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#end #end
#if(${baseResultMap}) #if(${baseResultMap})
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="${package.Entity}.${entity}"> <resultMap id="BaseResultMap" type="${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.entity.${entity}">
#foreach($field in ${table.fields}) #foreach($field in ${table.fields})
#if(${field.keyFlag})##生成主键排在第一位 #if(${field.keyFlag})##生成主键排在第一位
<id column="${field.name}" property="${field.propertyName}" /> <id column="${field.name}" property="${field.propertyName}" />
......
<?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.Mapper}.${table.mapperName}">
#if(${enableCache})
<!-- 开启二级缓存 -->
<cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
#end
#if(${baseResultMap})
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
#foreach($field in ${table.fields})
#if(${field.keyFlag})##生成主键排在第一位
<id column="${field.name}" property="${field.propertyName}" />
#end
#end
#foreach($field in ${table.commonFields})##生成公共字段
<result column="${field.name}" property="${field.propertyName}" />
#end
#foreach($field in ${table.fields})
#if(!${field.keyFlag})##生成普通字段
<result column="${field.name}" property="${field.propertyName}" />
#end
#end
</resultMap>
#end
#if(${baseColumnList})
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
#foreach($field in ${table.commonFields})
${field.name},
#end
${table.fieldNames}
</sql>
#end
</mapper>
package ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.mapstruct;
import cn.datax.common.mapstruct.EntityMapper;
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.dto.${className}Dto;
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.entity.${entity};
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.vo.${className}Vo;
import org.mapstruct.Mapper;
/**
* <p>
* $!{table.comment} Mapper 实体映射
* </p>
*
* @author ${author}
* @since ${date}
*/
@Mapper(componentModel = "spring")
public interface ${table.mapperName} extends EntityMapper<${className}Dto, ${entity}, ${className}Vo> {
}
package ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* $!{table.comment} 查询实体
* </p>
*
* @author ${author}
* @since ${date}
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ${className}Query extends BaseQueryParams {
private static final long serialVersionUID=1L;
}
package ${package.Service}; package ${package.Service};
import ${package.Entity}.${entity}; import ${package.Entity}.${entity};
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.dto.${className}Dto;
import ${superServiceClassPackage}; import ${superServiceClassPackage};
/** /**
...@@ -11,10 +12,11 @@ import ${superServiceClassPackage}; ...@@ -11,10 +12,11 @@ import ${superServiceClassPackage};
* @author ${author} * @author ${author}
* @since ${date} * @since ${date}
*/ */
#if(${kotlin})
interface ${table.serviceName} : ${superServiceClass}<${entity}>
#else
public interface ${table.serviceName} extends ${superServiceClass}<${entity}> { public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
void save${className}(${className}Dto ${classNameLower});
void update${className}(${className}Dto ${classNameLower});
void delete${className}ById(String id);
} }
#end
package ${package.Service};
import ${package.Entity}.${entity};
import ${superServiceClassPackage};
/**
* <p>
* $!{table.comment} 服务类
* </p>
*
* @author ${author}
* @since ${date}
*/
#if(${kotlin})
interface ${table.serviceName} : ${superServiceClass}<${entity}>
#else
public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
}
#end
...@@ -3,8 +3,12 @@ package ${package.ServiceImpl}; ...@@ -3,8 +3,12 @@ package ${package.ServiceImpl};
import ${package.Entity}.${entity}; import ${package.Entity}.${entity};
import ${package.Mapper}.${table.mapperName}; import ${package.Mapper}.${table.mapperName};
import ${package.Service}.${table.serviceName}; import ${package.Service}.${table.serviceName};
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.mapstruct.${className}Mapper;
import ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.dao.${className}Dao;
import ${superServiceImplClassPackage}; import ${superServiceImplClassPackage};
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/** /**
* <p> * <p>
...@@ -15,12 +19,32 @@ import org.springframework.stereotype.Service; ...@@ -15,12 +19,32 @@ import org.springframework.stereotype.Service;
* @since ${date} * @since ${date}
*/ */
@Service @Service
#if(${kotlin}) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} {
}
#else
public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} { public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} {
@Autowired
private ${className}Dao ${classNameLower}Dao;
@Autowired
private ${className}Mapper ${classNameLower}Mapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void save${className}(${className}Dto ${classNameLower}Dto) {
${entity} ${classNameLower} = ${classNameLower}Mapper.toEntity(${classNameLower}Dto);
${classNameLower}Dao.insert(${classNameLower});
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update${className}(${className}Dto ${classNameLower}Dto) {
${entity} ${classNameLower} = ${classNameLower}Mapper.toEntity(${classNameLower}Dto);
${classNameLower}Dao.updateById(${classNameLower});
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete${className}ById(String id) {
${classNameLower}Dao.deleteById(id);
}
} }
#end
package ${package.ServiceImpl};
import ${package.Entity}.${entity};
import ${package.Mapper}.${table.mapperName};
import ${package.Service}.${table.serviceName};
import ${superServiceImplClassPackage};
import org.springframework.stereotype.Service;
/**
* <p>
* $!{table.comment} 服务实现类
* </p>
*
* @author ${author}
* @since ${date}
*/
@Service
#if(${kotlin})
open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} {
}
#else
public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} {
}
#end
package ${cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.vo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* $!{table.comment} 实体VO
* </p>
*
* @author ${author}
* @since ${date}
*/
@Data
public class ${className}Vo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private Integer status;
private LocalDateTime createTime;
## ---------- BEGIN 字段循环遍历 ----------
#foreach($field in ${table.fields})
private ${field.propertyType} ${field.propertyName};
#end
## ---------- END 字段循环遍历 ----------
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment