1. 完成代码生成的表和字段定义的编辑

2. 清理多余代码
This commit is contained in:
YunaiV
2021-02-10 13:41:00 +08:00
parent 9dd2bc95fb
commit 305090b7dc
39 changed files with 211 additions and 439 deletions

View File

@@ -1,4 +1,4 @@
package cn.iocoder.dashboard.modules.system.dal.redis.dao.auth;
package cn.iocoder.dashboard.modules.system.dal.redis.auth;
import cn.iocoder.dashboard.framework.security.core.LoginUser;
import cn.iocoder.dashboard.util.json.JsonUtils;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.dashboard.modules.system.dal.redis.dao.common;
package cn.iocoder.dashboard.modules.system.dal.redis.common;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Repository;

View File

@@ -1,4 +0,0 @@
/**
* 提供 Redis 访问的 DAO
*/
package cn.iocoder.dashboard.modules.system.dal.redis.dao;

View File

@@ -10,7 +10,7 @@ import cn.iocoder.dashboard.modules.system.controller.auth.vo.session.SysUserSes
import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper;
import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.dashboard.modules.system.dal.redis.dao.auth.SysLoginUserRedisDAO;
import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO;
import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService;
import cn.iocoder.dashboard.modules.system.service.user.SysUserService;
import org.springframework.stereotype.Service;

View File

@@ -6,7 +6,7 @@ import cn.hutool.core.util.IdUtil;
import cn.iocoder.dashboard.framework.captcha.config.CaptchaProperties;
import cn.iocoder.dashboard.modules.system.controller.common.vo.SysCaptchaImageRespVO;
import cn.iocoder.dashboard.modules.system.convert.common.SysCaptchaConvert;
import cn.iocoder.dashboard.modules.system.dal.redis.dao.common.SysCaptchaRedisDAO;
import cn.iocoder.dashboard.modules.system.dal.redis.common.SysCaptchaRedisDAO;
import cn.iocoder.dashboard.modules.system.service.common.SysCaptchaService;
import org.springframework.stereotype.Service;

View File

@@ -3,8 +3,9 @@ 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.controller.codegen.vo.ToolCodegenUpdateReqVO;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table.ToolCodegenTableRespVO;
import cn.iocoder.dashboard.modules.tool.convert.codegen.ToolCodegenConvert;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;
@@ -30,7 +31,7 @@ public class ToolCodegenController {
private ToolCodegenService codegenService;
@ApiOperation("获得表定义分页")
@GetMapping("/page")
@GetMapping("/table/page")
// TODO 权限 @PreAuthorize("@ss.hasPermi('tool:gen:list')")
public CommonResult<PageResult<ToolCodegenTableRespVO>> getCodeGenTablePage(@Valid ToolCodegenTablePageReqVO pageReqVO) {
PageResult<ToolCodegenTableDO> pageResult = codegenService.getCodeGenTablePage(pageReqVO);
@@ -50,8 +51,19 @@ public class ToolCodegenController {
@ApiOperation("基于数据库的表结构,创建代码生成器的表定义")
@PostMapping("/create")
// TODO 权限
public CommonResult<Long> createCodeGenTable(@RequestParam("tableName") String tableName) {
return success(codegenService.createCodegenTable(tableName));
public CommonResult<Long> createCodeGen(@RequestParam("tableName") String tableName) {
return success(codegenService.createCodegen(tableName));
}
/**
* 修改保存代码生成业务
*/
@ApiOperation("更新数据库的表和字段定义")
@PutMapping("/update")
// @PreAuthorize("@ss.hasPermi('tool:gen:edit')") TODO 权限
public CommonResult<Boolean> updateCodegen(@Valid @RequestBody ToolCodegenUpdateReqVO updateReqVO) {
codegenService.updateCodegen(updateReqVO);
return success(true);
}
}

View File

@@ -1,5 +1,7 @@
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.column.ToolCodegenColumnRespVO;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table.ToolCodegenTableRespVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -0,0 +1,49 @@
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.column.ToolCodegenColumnBaseVO;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table.ToolCodegenTableBaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
@ApiModel("代码生成表和字段的修改 Request VO")
@Data
public class ToolCodegenUpdateReqVO {
@Valid // 校验内嵌的字段
@NotNull(message = "表定义不能为空")
private Table table;
@Valid // 校验内嵌的字段
@NotNull(message = "字段定义不能为空")
private List<Column> columns;
@ApiModel("更新表定义")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public static class Table extends ToolCodegenTableBaseVO {
@ApiModelProperty(value = "编号", required = true, example = "1")
private Long id;
}
@ApiModel("更新表定义")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public static class Column extends ToolCodegenColumnBaseVO {
@ApiModelProperty(value = "编号", required = true, example = "1")
private Long id;
}
}

View File

@@ -1,4 +1,4 @@
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo.column;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo.column;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table;
import cn.iocoder.dashboard.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo;
package cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -1,9 +1,10 @@
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.ToolCodegenUpdateReqVO;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.column.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.controller.codegen.vo.table.ToolCodegenTableRespVO;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolInformationSchemaColumnDO;
@@ -38,6 +39,10 @@ public interface ToolCodegenConvert {
List<ToolCodegenColumnRespVO> convertList02(List<ToolCodegenColumnDO> list);
ToolCodegenTableDO convert(ToolCodegenUpdateReqVO.Table bean);
List<ToolCodegenColumnDO> convertList03(List<ToolCodegenUpdateReqVO.Column> columns);
// ========== 其它 ==========
default ToolCodegenDetailRespVO convert(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) {

View File

@@ -43,7 +43,7 @@ public class ToolCodegenTableDO extends BaseDO {
/**
* 模块名,即一级目录
*
* 例如说,infra、system、tool 等等
* 例如说system、infra、tool 等等
*/
private String moduleName;
/**

View File

@@ -3,7 +3,7 @@ package cn.iocoder.dashboard.modules.tool.dal.mysql.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.controller.codegen.vo.table.ToolCodegenTablePageReqVO;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.ibatis.annotations.Mapper;

View File

@@ -12,10 +12,10 @@ import lombok.Getter;
@Getter
public enum ToolCodegenTemplateTypeEnum {
CRUD(1), // 基础 CRUD
TREE(2), // 树形 CRUD
CRUD(1), // 单表(增删改查)
TREE(2), // 树表(增删改查)
// TODO 主子表,暂时不考虑支持。原因是较为灵活,形态较多,很难评估。
SUB(3) // 主子表 CRUD
SUB(3) // 主子表(增删改查)
;
/**

View File

@@ -1,7 +1,8 @@
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.controller.codegen.vo.ToolCodegenUpdateReqVO;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;
import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;
@@ -20,7 +21,14 @@ public interface ToolCodegenService {
* @param tableName 表名称
* @return 表定义的编号
*/
Long createCodegenTable(String tableName);
Long createCodegen(String tableName);
/**
* 更新数据库的表和字段定义
*
* @param updateReqVO 更新信息
*/
void updateCodegen(ToolCodegenUpdateReqVO updateReqVO);
/**
* 获得表定义分页

View File

@@ -2,7 +2,9 @@ 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.controller.codegen.vo.ToolCodegenUpdateReqVO;
import cn.iocoder.dashboard.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;
import cn.iocoder.dashboard.modules.tool.convert.codegen.ToolCodegenConvert;
import cn.iocoder.dashboard.modules.tool.dal.mysql.coegen.ToolCodegenColumnMapper;
import cn.iocoder.dashboard.modules.tool.dal.mysql.coegen.ToolCodegenTableMapper;
import cn.iocoder.dashboard.modules.tool.dal.mysql.coegen.ToolInformationSchemaColumnMapper;
@@ -42,7 +44,7 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
@Override
@Transactional
public Long createCodegenTable(String tableName) {
public Long createCodegen(String tableName) {
// 从数据库中,获得数据库表结构
ToolInformationSchemaTableDO schemaTable = informationSchemaTableMapper.selectByTableName(tableName);
if (schemaTable == null) {
@@ -69,6 +71,22 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
return table.getId();
}
@Override
@Transactional
public void updateCodegen(ToolCodegenUpdateReqVO updateReqVO) {
// 校验是否已经存在
if (codegenTableMapper.selectById(updateReqVO.getTable().getId()) == null) {
throw new RuntimeException(""); // TODO
}
// 更新 table 表定义
ToolCodegenTableDO updateTableObj = ToolCodegenConvert.INSTANCE.convert(updateReqVO.getTable());
codegenTableMapper.updateById(updateTableObj);
// 更新 column 字段定义
List<ToolCodegenColumnDO> updateColumnObjs = ToolCodegenConvert.INSTANCE.convertList03(updateReqVO.getColumns());
updateColumnObjs.forEach(updateColumnObj -> codegenColumnMapper.updateById(updateColumnObj));
}
@Override
public PageResult<ToolCodegenTableDO> getCodeGenTablePage(ToolCodegenTablePageReqVO pageReqVO) {
return codegenTableMapper.selectPage(pageReqVO);

View File

@@ -39,8 +39,8 @@ spring:
write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳
fail-on-empty-beans: false # 允许序列化无属性的 Bean
main:
lazy-initialization: true # TODO 芋艿:本地开发环境,可以配置下 lazy 延迟加载
# main:
# lazy-initialization: true # TODO 芋艿:本地开发环境,可以配置下 lazy 延迟加载
# 芋道配置项,设置当前项目所有自定义的配置
yudao:

View File

@@ -15,7 +15,7 @@ import ${CommonResultClassName};
import static ${CommonResultClassName}.success;
import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*;
import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
import ${basePackage}.${table.moduleName}.convert.${table.businessName}.${table.className}Convert;
import ${basePackage}.${table.moduleName}.service.${table.businessName}.${table.className}Service;

View File

@@ -7,7 +7,7 @@ import ${PageResultClassName};
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*;
import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
/**
* ${table.classComment} Convert

View File

@@ -1,4 +1,4 @@
package ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName};
package ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName};
import lombok.*;
import java.util.*;

View File

@@ -1,9 +1,9 @@
package ${basePackage}.${table.moduleName}.dal.mysql.dao.${table.businessName};
package ${basePackage}.${table.moduleName}.dal.mysql.${table.businessName};
import ${PageResultClassName};
import ${QueryWrapperClassName};
import ${BaseMapperClassName};
import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
import org.apache.ibatis.annotations.Mapper;
import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.${table.className}PageReqVO;

View File

@@ -3,7 +3,7 @@ package ${basePackage}.${table.moduleName}.service.${table.businessName};
import java.util.*;
import javax.validation.*;
import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*;
import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
import ${PageResultClassName};
/**

View File

@@ -7,11 +7,11 @@ import org.springframework.validation.annotation.Validated;
import java.util.*;
import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*;
import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO;
import ${PageResultClassName};
import ${basePackage}.${table.moduleName}.convert.${table.businessName}.${table.className}Convert;
import ${basePackage}.${table.moduleName}.dal.mysql.dao.${table.businessName}.${table.className}Mapper;
import ${basePackage}.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper;
import ${basePackage}.${table.moduleName}.service.${table.businessName}.${table.className}Service;
import ${ServiceExceptionUtilClassName};