mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-17 20:45:06 +08:00
代码生成器的编辑界面~
This commit is contained in:
@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
@ -14,6 +15,7 @@ import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOU
|
||||
@ApiModel("参数配置分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class InfConfigPageReqVO extends PageParam {
|
||||
|
||||
@ApiModelProperty(value = "参数名称", example = "模糊匹配")
|
||||
|
@ -1,33 +0,0 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen;
|
||||
|
||||
import cn.iocoder.dashboard.common.pojo.CommonResult;
|
||||
import cn.iocoder.dashboard.common.pojo.PageResult;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodeGenTablePageItemRespVO;
|
||||
import cn.iocoder.dashboard.modules.tool.service.codegen.ToolCodegenService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import static cn.iocoder.dashboard.common.pojo.CommonResult.success;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/tool/codegen")
|
||||
public class ToolCodeGenController {
|
||||
|
||||
@Resource
|
||||
private ToolCodegenService codegenService;
|
||||
|
||||
@GetMapping("/table/page")
|
||||
public CommonResult<PageResult<ToolCodeGenTablePageItemRespVO>> getCodeGenTablePage() {
|
||||
return success(null);
|
||||
}
|
||||
|
||||
@ApiOperation("基于数据库的表结构,创建代码生成器的表定义")
|
||||
@PostMapping("/table/create")
|
||||
// TODO 权限
|
||||
public CommonResult<Long> createCodeGenTable(@RequestParam("tableName") String tableName) {
|
||||
return success(codegenService.createCodegenTable(tableName));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen;
|
||||
|
||||
import cn.iocoder.dashboard.common.pojo.CommonResult;
|
||||
import cn.iocoder.dashboard.common.pojo.PageResult;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenDetailRespVO;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenTablePageReqVO;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenTableRespVO;
|
||||
import cn.iocoder.dashboard.modules.tool.convert.codegen.ToolCodegenConvert;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
|
||||
import cn.iocoder.dashboard.modules.tool.service.codegen.ToolCodegenService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.dashboard.common.pojo.CommonResult.success;
|
||||
|
||||
@Api(tags = "代码生成器 API")
|
||||
@RestController
|
||||
@RequestMapping("/tool/codegen")
|
||||
@Validated
|
||||
public class ToolCodegenController {
|
||||
|
||||
@Resource
|
||||
private ToolCodegenService codegenService;
|
||||
|
||||
@ApiOperation("获得表定义分页")
|
||||
@GetMapping("/page")
|
||||
// TODO 权限 @PreAuthorize("@ss.hasPermi('tool:gen:list')")
|
||||
public CommonResult<PageResult<ToolCodegenTableRespVO>> getCodeGenTablePage(@Valid ToolCodegenTablePageReqVO pageReqVO) {
|
||||
PageResult<ToolCodegenTableDO> pageResult = codegenService.getCodeGenTablePage(pageReqVO);
|
||||
return success(ToolCodegenConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@ApiOperation("获得表和字段的明细")
|
||||
@GetMapping("/detail")
|
||||
// todo @PreAuthorize("@ss.hasPermi('tool:gen:query')")
|
||||
public CommonResult<ToolCodegenDetailRespVO> getCodeGenDetail(@RequestParam("tableId") Long tableId) {
|
||||
ToolCodegenTableDO table = codegenService.getCodeGenTablePage(tableId);
|
||||
List<ToolCodegenColumnDO> columns = codegenService.getCodegenColumnListByTableId(tableId);
|
||||
// 拼装返回
|
||||
return success(ToolCodegenConvert.INSTANCE.convert(table, columns));
|
||||
}
|
||||
|
||||
@ApiOperation("基于数据库的表结构,创建代码生成器的表定义")
|
||||
@PostMapping("/create")
|
||||
// TODO 权限
|
||||
public CommonResult<Long> createCodeGenTable(@RequestParam("tableName") String tableName) {
|
||||
return success(codegenService.createCodegenTable(tableName));
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
public class ToolCodeGenTableBaseRespVO {
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
public class ToolCodeGenTablePageItemRespVO extends ToolCodeGenTableBaseRespVO {
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 代码生成字段定义 Base VO,提供给添加、修改、详细的子 VO 使用
|
||||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
||||
*/
|
||||
@Data
|
||||
public class ToolCodegenColumnBaseVO {
|
||||
|
||||
@ApiModelProperty(value = "表编号", required = true, example = "1")
|
||||
@NotNull(message = "表编号不能为空")
|
||||
private Long tableId;
|
||||
|
||||
@ApiModelProperty(value = "字段名", required = true, example = "user_age")
|
||||
@NotNull(message = "字段名不能为空")
|
||||
private String columnName;
|
||||
|
||||
@ApiModelProperty(value = "字段类型", required = true, example = "int(11)")
|
||||
@NotNull(message = "字段类型不能为空")
|
||||
private String columnType;
|
||||
|
||||
@ApiModelProperty(value = "字段描述", required = true, example = "年龄")
|
||||
@NotNull(message = "字段描述不能为空")
|
||||
private String columnComment;
|
||||
|
||||
@ApiModelProperty(value = "是否允许为空", required = true, example = "true")
|
||||
@NotNull(message = "是否允许为空不能为空")
|
||||
private Boolean nullable;
|
||||
|
||||
@ApiModelProperty(value = "是否主键", required = true, example = "false")
|
||||
@NotNull(message = "是否主键不能为空")
|
||||
private Boolean primaryKey;
|
||||
|
||||
@ApiModelProperty(value = "是否自增", required = true, example = "true")
|
||||
@NotNull(message = "是否自增不能为空")
|
||||
private String autoIncrement;
|
||||
|
||||
@ApiModelProperty(value = "排序", required = true, example = "10")
|
||||
@NotNull(message = "排序不能为空")
|
||||
private Integer ordinalPosition;
|
||||
|
||||
@ApiModelProperty(value = "Java 属性类型", required = true, example = "userAge")
|
||||
@NotNull(message = "Java 属性类型不能为空")
|
||||
private String javaType;
|
||||
|
||||
@ApiModelProperty(value = "Java 属性名", required = true, example = "Integer")
|
||||
@NotNull(message = "Java 属性名不能为空")
|
||||
private String javaField;
|
||||
|
||||
@ApiModelProperty(value = "字典类型", example = "sys_gender")
|
||||
private String dictType;
|
||||
|
||||
@ApiModelProperty(value = "数据示例", example = "1024")
|
||||
private String example;
|
||||
|
||||
@ApiModelProperty(value = "是否为 Create 创建操作的字段", required = true, example = "true")
|
||||
@NotNull(message = "是否为 Create 创建操作的字段不能为空")
|
||||
private Boolean createOperation;
|
||||
|
||||
@ApiModelProperty(value = "是否为 Update 更新操作的字段", required = true, example = "false")
|
||||
@NotNull(message = "是否为 Update 更新操作的字段不能为空")
|
||||
private Boolean updateOperation;
|
||||
|
||||
@ApiModelProperty(value = "是否为 List 查询操作的字段", required = true, example = "true")
|
||||
@NotNull(message = "是否为 List 查询操作的字段不能为空")
|
||||
private Boolean listOperation;
|
||||
|
||||
@ApiModelProperty(value = "List 查询操作的条件类型", required = true, example = "LIKE", notes = "参见 ToolCodegenColumnListConditionEnum 枚举")
|
||||
@NotNull(message = "List 查询操作的条件类型不能为空")
|
||||
private String listOperationCondition;
|
||||
|
||||
@ApiModelProperty(value = "是否为 List 查询操作的返回字段", required = true, example = "true")
|
||||
@NotNull(message = "是否为 List 查询操作的返回字段不能为空")
|
||||
private Boolean listOperationResult;
|
||||
|
||||
@ApiModelProperty(value = "显示类型", required = true, example = "input")
|
||||
@NotNull(message = "显示类型不能为空")
|
||||
private String htmlType;
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@ApiModel("代码生成字段定义 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ToolCodegenColumnRespVO extends ToolCodegenColumnBaseVO {
|
||||
|
||||
@ApiModelProperty(value = "编号", required = true, example = "1")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "创建时间", required = true)
|
||||
private Date createTime;
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ApiModel("代码生成表和字段的明细 Response VO")
|
||||
@Data
|
||||
public class ToolCodegenDetailRespVO {
|
||||
|
||||
@ApiModelProperty("表定义")
|
||||
private ToolCodegenTableRespVO table;
|
||||
|
||||
@ApiModelProperty("字段定义")
|
||||
private List<ToolCodegenColumnRespVO> columns;
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 代码生成 Base VO,提供给添加、修改、详细的子 VO 使用
|
||||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
||||
*/
|
||||
@Data
|
||||
public class ToolCodegenTableBaseVO {
|
||||
|
||||
@ApiModelProperty(value = "表名称", required = true, example = "yudao")
|
||||
@NotNull(message = "表名称不能为空")
|
||||
private String tableName;
|
||||
|
||||
@ApiModelProperty(value = "表描述", required = true, example = "芋道")
|
||||
@NotNull(message = "表描述不能为空")
|
||||
private String tableComment;
|
||||
|
||||
@ApiModelProperty(value = "备注", example = "我是备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "模块名", required = true, example = "system")
|
||||
@NotNull(message = "模块名不能为空")
|
||||
private String moduleName;
|
||||
|
||||
@ApiModelProperty(value = "业务名", required = true, example = "codegen")
|
||||
@NotNull(message = "业务名不能为空")
|
||||
private String businessName;
|
||||
|
||||
@ApiModelProperty(value = "类名称", required = true, example = "ToolCodegenTable")
|
||||
@NotNull(message = "类名称不能为空")
|
||||
private String className;
|
||||
|
||||
@ApiModelProperty(value = "类描述", required = true, example = "代码生成器的表定义")
|
||||
@NotNull(message = "类描述不能为空")
|
||||
private String classComment;
|
||||
|
||||
@ApiModelProperty(value = "作者", required = true, example = "芋道源码")
|
||||
@NotNull(message = "作者不能为空")
|
||||
private String author;
|
||||
|
||||
@ApiModelProperty(value = "模板类型", required = true, example = "1", notes = "参见 ToolCodegenTemplateTypeEnum 枚举")
|
||||
@NotNull(message = "模板类型不能为空")
|
||||
private Integer templateType;
|
||||
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
import cn.iocoder.dashboard.common.pojo.PageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@ApiModel("表定义分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ToolCodegenTablePageReqVO extends PageParam {
|
||||
|
||||
@ApiModelProperty(value = "表名称", example = "yudao", notes = "模糊匹配")
|
||||
private String tableName;
|
||||
|
||||
@ApiModelProperty(value = "表描述", example = "芋道", notes = "模糊匹配")
|
||||
private String tableComment;
|
||||
|
||||
@ApiModelProperty(value = "开始创建时间", example = "2020-10-24 00:00:00")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private Date beginCreateTime;
|
||||
|
||||
@ApiModelProperty(value = "结束创建时间", example = "2020-10-24 23:59:59")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private Date endCreateTime;
|
||||
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@ApiModel("代码生成表定义 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ToolCodegenTableRespVO extends ToolCodegenTableBaseVO {
|
||||
|
||||
@ApiModelProperty(value = "编号", required = true, example = "1")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "创建时间", required = true)
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "更新时间", required = true)
|
||||
private Date updateTime;
|
||||
|
||||
}
|
@ -1 +0,0 @@
|
||||
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
|
@ -1,21 +0,0 @@
|
||||
package cn.iocoder.dashboard.modules.tool.convert.codegen;
|
||||
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolInformationSchemaColumnDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolInformationSchemaTableDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface CodegenConvert {
|
||||
|
||||
CodegenConvert INSTANCE = Mappers.getMapper(CodegenConvert.class);
|
||||
|
||||
ToolCodegenTableDO convert(ToolInformationSchemaTableDO bean);
|
||||
|
||||
List<ToolCodegenColumnDO> convertList(List<ToolInformationSchemaColumnDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package cn.iocoder.dashboard.modules.tool.convert.codegen;
|
||||
|
||||
import cn.iocoder.dashboard.common.pojo.PageResult;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenColumnRespVO;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenDetailRespVO;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenTableRespVO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolInformationSchemaColumnDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolInformationSchemaTableDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface ToolCodegenConvert {
|
||||
|
||||
ToolCodegenConvert INSTANCE = Mappers.getMapper(ToolCodegenConvert.class);
|
||||
|
||||
// ========== ToolInformationSchemaTableDO 和 ToolInformationSchemaColumnDO 相关 ==========
|
||||
|
||||
ToolCodegenTableDO convert(ToolInformationSchemaTableDO bean);
|
||||
|
||||
List<ToolCodegenColumnDO> convertList(List<ToolInformationSchemaColumnDO> list);
|
||||
|
||||
ToolCodegenTableRespVO convert(ToolInformationSchemaColumnDO bean);
|
||||
|
||||
// ========== ToolCodegenTableDO 相关 ==========
|
||||
|
||||
// List<ToolCodegenTableRespVO> convertList02(List<ToolCodegenTableDO> list);
|
||||
|
||||
ToolCodegenTableRespVO convert(ToolCodegenTableDO bean);
|
||||
|
||||
PageResult<ToolCodegenTableRespVO> convertPage(PageResult<ToolCodegenTableDO> page);
|
||||
|
||||
// ========== ToolCodegenTableDO 相关 ==========
|
||||
|
||||
List<ToolCodegenColumnRespVO> convertList02(List<ToolCodegenColumnDO> list);
|
||||
|
||||
// ========== 其它 ==========
|
||||
|
||||
default ToolCodegenDetailRespVO convert(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) {
|
||||
ToolCodegenDetailRespVO respVO = new ToolCodegenDetailRespVO();
|
||||
respVO.setTable(convert(table));
|
||||
respVO.setColumns(convertList02(columns));
|
||||
return respVO;
|
||||
}
|
||||
|
||||
}
|
@ -10,7 +10,7 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface ToolCodegenColumnMapper extends BaseMapperX<ToolCodegenColumnDO> {
|
||||
|
||||
default List<ToolCodegenColumnDO> selectByTableId(Long tableId) {
|
||||
default List<ToolCodegenColumnDO> selectListByTableId(Long tableId) {
|
||||
return selectList(new QueryWrapper<ToolCodegenColumnDO>()
|
||||
.eq("table_id", tableId)
|
||||
.orderByAsc("ordinal_position"));
|
||||
|
@ -1,6 +1,9 @@
|
||||
package cn.iocoder.dashboard.modules.tool.dal.mysql.dao.coegen;
|
||||
|
||||
import cn.iocoder.dashboard.common.pojo.PageResult;
|
||||
import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenTablePageReqVO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -12,4 +15,11 @@ public interface ToolCodegenTableMapper extends BaseMapperX<ToolCodegenTableDO>
|
||||
return selectOne(new QueryWrapper<ToolCodegenTableDO>().eq("table_name", tableName));
|
||||
}
|
||||
|
||||
default PageResult<ToolCodegenTableDO> selectPage(ToolCodegenTablePageReqVO pageReqVO) {
|
||||
return selectPage(pageReqVO, new QueryWrapperX<ToolCodegenTableDO>()
|
||||
.likeIfPresent("table_name", pageReqVO.getTableName())
|
||||
.likeIfPresent("table_comment", pageReqVO.getTableComment())
|
||||
.betweenIfPresent("create_time", pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime()));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode;
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName(value = "tool_codegen_table_column", autoResultMap = true)
|
||||
@TableName(value = "tool_codegen_column", autoResultMap = true)
|
||||
@Data
|
||||
@Builder
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ -60,7 +60,7 @@ public class ToolCodegenColumnDO extends BaseDO {
|
||||
*/
|
||||
private Boolean autoIncrement;
|
||||
/**
|
||||
* 排序字段
|
||||
* 排序
|
||||
*/
|
||||
private Integer ordinalPosition;
|
||||
|
||||
@ -122,5 +122,4 @@ public class ToolCodegenColumnDO extends BaseDO {
|
||||
*/
|
||||
private String htmlType;
|
||||
|
||||
|
||||
}
|
||||
|
@ -28,12 +28,10 @@ public class ToolCodegenTableDO extends BaseDO {
|
||||
/**
|
||||
* 表名称
|
||||
*/
|
||||
// @NotBlank(message = "表名称不能为空")
|
||||
private String tableName;
|
||||
/**
|
||||
* 表描述
|
||||
*/
|
||||
// @NotBlank(message = "表描述不能为空")
|
||||
private String tableComment;
|
||||
/**
|
||||
* 备注
|
||||
@ -47,31 +45,26 @@ public class ToolCodegenTableDO extends BaseDO {
|
||||
*
|
||||
* 例如说,infra、system、tool 等等
|
||||
*/
|
||||
// @NotBlank(message = "模块名不能为空")
|
||||
private String moduleName;
|
||||
/**
|
||||
* 业务名,即二级目录
|
||||
*
|
||||
* 例如说,user、permission、dict 等等
|
||||
*/
|
||||
// @NotBlank(message = "生成业务名不能为空")
|
||||
private String businessName;
|
||||
/**
|
||||
* 类名称(首字母大写)
|
||||
*
|
||||
* 例如说,SysUser、SysMenu、SysDictData 等等
|
||||
*/
|
||||
// @NotBlank(message = "实体类名称不能为空")
|
||||
private String className;
|
||||
/**
|
||||
* 类描述
|
||||
*/
|
||||
// @NotBlank(message = "生成功能名不能为空")
|
||||
private String classComment;
|
||||
/**
|
||||
* 作者
|
||||
*/
|
||||
// @NotBlank(message = "作者不能为空")
|
||||
private String author;
|
||||
|
||||
// ========== 生成相关字段 ==========
|
||||
|
@ -14,7 +14,8 @@ public enum ToolCodegenTemplateTypeEnum {
|
||||
|
||||
CRUD(1), // 基础 CRUD
|
||||
TREE(2), // 树形 CRUD
|
||||
SUB(3) // 子表 CRUD
|
||||
// TODO 主子表,暂时不考虑支持。原因是较为灵活,形态较多,很难评估。
|
||||
SUB(3) // 主子表 CRUD
|
||||
;
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,12 @@
|
||||
package cn.iocoder.dashboard.modules.tool.service.codegen;
|
||||
|
||||
import cn.iocoder.dashboard.common.pojo.PageResult;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenTablePageReqVO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 代码生成 Service 接口
|
||||
*
|
||||
@ -15,4 +22,28 @@ public interface ToolCodegenService {
|
||||
*/
|
||||
Long createCodegenTable(String tableName);
|
||||
|
||||
/**
|
||||
* 获得表定义分页
|
||||
*
|
||||
* @param pageReqVO 分页条件
|
||||
* @return 表定义分页
|
||||
*/
|
||||
PageResult<ToolCodegenTableDO> getCodeGenTablePage(ToolCodegenTablePageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得表定义
|
||||
*
|
||||
* @param id 表编号
|
||||
* @return 表定义
|
||||
*/
|
||||
ToolCodegenTableDO getCodeGenTablePage(Long id);
|
||||
|
||||
/**
|
||||
* 获得指定表的字段定义数组
|
||||
*
|
||||
* @param tableId 表编号
|
||||
* @return 字段定义数组
|
||||
*/
|
||||
List<ToolCodegenColumnDO> getCodegenColumnListByTableId(Long tableId);
|
||||
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package cn.iocoder.dashboard.modules.tool.service.codegen.impl;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.dashboard.modules.tool.convert.codegen.CodegenConvert;
|
||||
import cn.iocoder.dashboard.modules.tool.convert.codegen.ToolCodegenConvert;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolInformationSchemaColumnDO;
|
||||
@ -113,7 +113,7 @@ public class ToolCodegenBuilder {
|
||||
}
|
||||
|
||||
public ToolCodegenTableDO buildTable(ToolInformationSchemaTableDO schemaTable) {
|
||||
ToolCodegenTableDO table = CodegenConvert.INSTANCE.convert(schemaTable);
|
||||
ToolCodegenTableDO table = ToolCodegenConvert.INSTANCE.convert(schemaTable);
|
||||
initTableDefault(table);
|
||||
return table;
|
||||
}
|
||||
@ -136,7 +136,7 @@ public class ToolCodegenBuilder {
|
||||
}
|
||||
|
||||
public List<ToolCodegenColumnDO> buildColumns(List<ToolInformationSchemaColumnDO> schemaColumns) {
|
||||
List<ToolCodegenColumnDO> columns = CodegenConvert.INSTANCE.convertList(schemaColumns);
|
||||
List<ToolCodegenColumnDO> columns = ToolCodegenConvert.INSTANCE.convertList(schemaColumns);
|
||||
columns.forEach(this::initColumnDefault);
|
||||
return columns;
|
||||
}
|
||||
|
@ -95,12 +95,12 @@ public class ToolCodegenEngine {
|
||||
// String result = templateEngine.getTemplate("codegen/controller/vo/baseVO.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/controller/vo/createReqVO.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/controller/vo/updateReqVO.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/controller/vo/respVO.vm").render(bindingMap);
|
||||
String result = templateEngine.getTemplate("codegen/controller/vo/respVO.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/convert/convert.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/enums/errorcode.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/service/service.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/service/serviceImpl.vm").render(bindingMap);
|
||||
String result = templateEngine.getTemplate("codegen/controller/controller.vm").render(bindingMap);
|
||||
// String result = templateEngine.getTemplate("codegen/controller/controller.vm").render(bindingMap);
|
||||
System.out.println(result);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
package cn.iocoder.dashboard.modules.tool.service.codegen.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.iocoder.dashboard.common.pojo.PageResult;
|
||||
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.ToolCodegenTablePageReqVO;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dao.coegen.ToolCodegenColumnMapper;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dao.coegen.ToolCodegenTableMapper;
|
||||
import cn.iocoder.dashboard.modules.tool.dal.mysql.dao.coegen.ToolInformationSchemaColumnMapper;
|
||||
@ -67,4 +69,19 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
|
||||
return table.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ToolCodegenTableDO> getCodeGenTablePage(ToolCodegenTablePageReqVO pageReqVO) {
|
||||
return codegenTableMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToolCodegenTableDO getCodeGenTablePage(Long id) {
|
||||
return codegenTableMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ToolCodegenColumnDO> getCodegenColumnListByTableId(Long tableId) {
|
||||
return codegenColumnMapper.selectListByTableId(tableId);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user