微服务版后端初始化
This commit is contained in:
65
xjrsoft-service-api/xjrsoft-service-generate-api/pom.xml
Normal file
65
xjrsoft-service-api/xjrsoft-service-generate-api/pom.xml
Normal file
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>xjrsoft-service-api</artifactId>
|
||||
<groupId>com.xjrsoft</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>xjrsoft-service-generate-api</artifactId>
|
||||
<properties>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
|
||||
<!--引入hutool依赖-->
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!--引入Lombok依赖-->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.freemarker</groupId>
|
||||
<artifactId>freemarker</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-collections</groupId>
|
||||
<artifactId>commons-collections</artifactId>
|
||||
<version>3.2.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.xjrsoft</groupId>
|
||||
<artifactId>xjrsoft-common-generate</artifactId>
|
||||
<version>${xjrsoft.framework.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.xjrsoft</groupId>
|
||||
<artifactId>xjrsoft-common-mybatis</artifactId>
|
||||
<version>${xjrsoft.framework.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,34 @@
|
||||
package com.xjrsoft.generate.client;
|
||||
|
||||
import com.xjrsoft.common.core.constant.GlobalConstant;
|
||||
import com.xjrsoft.generate.dto.DataFirstPreviewDto;
|
||||
import com.xjrsoft.generate.dto.GeneratorAppDto;
|
||||
import com.xjrsoft.generate.fallback.GenerateClientFallBack;
|
||||
import com.xjrsoft.generate.vo.GeneratorCodeVo;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2023/10/10 19:05
|
||||
*/
|
||||
@FeignClient(value = GlobalConstant.CLIENT_GENERATE_NAME,fallback = GenerateClientFallBack.class)
|
||||
public interface IGenerateClient {
|
||||
|
||||
/**
|
||||
* 生成代码
|
||||
* @param dto
|
||||
*/
|
||||
@PostMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_GENERETOR_NAME + "/generateAppCodes")
|
||||
void generateAppCodesFeign(@RequestBody GeneratorAppDto dto);
|
||||
|
||||
/**
|
||||
* 生成预览代码
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_GENERETOR_NAME + "/getPreviewCodesFeign")
|
||||
GeneratorCodeVo getPreviewCodesFeign(@RequestParam("dto") DataFirstPreviewDto dto);
|
||||
}
|
||||
@ -0,0 +1,165 @@
|
||||
package com.xjrsoft.generate.constant;
|
||||
|
||||
public interface ComponentTypeConstant {
|
||||
|
||||
/**
|
||||
* 子表单
|
||||
*/
|
||||
String SUB_FORM = "form";
|
||||
|
||||
/**
|
||||
* 子表单
|
||||
*/
|
||||
String ONE_FOR_ONE_FORM = "one-for-one";
|
||||
|
||||
/**
|
||||
* 选项卡
|
||||
*/
|
||||
String TAB = "tab";
|
||||
|
||||
/**
|
||||
* 卡片布局
|
||||
*/
|
||||
String CARD = "card";
|
||||
|
||||
/**
|
||||
* 栅格布局
|
||||
*/
|
||||
String GRID = "grid";
|
||||
|
||||
/**
|
||||
* 表格布局
|
||||
*/
|
||||
String TABLE_LAYOUT = "table-layout";
|
||||
|
||||
/**
|
||||
*信息体
|
||||
*/
|
||||
String INFO = "info";
|
||||
|
||||
/**
|
||||
*下拉选择框
|
||||
*/
|
||||
String SELECT = "select";
|
||||
|
||||
/**
|
||||
*联想下拉
|
||||
*/
|
||||
String ASSOCIATE_SELECT = "associate-select";
|
||||
|
||||
/**
|
||||
*联想弹层
|
||||
*/
|
||||
String ASSOCIATE_POPUP = "associate-popup";
|
||||
|
||||
/**
|
||||
*多选弹层
|
||||
*/
|
||||
String MULTIPLE_POPUP = "multiple-popup";
|
||||
|
||||
/**
|
||||
*级联组件
|
||||
*/
|
||||
String CASCADE = "cascader";
|
||||
|
||||
/**
|
||||
*行政区域
|
||||
*/
|
||||
String AREA = "area";
|
||||
|
||||
/**
|
||||
*多选组件
|
||||
*/
|
||||
String CHECKBOX = "checkbox";
|
||||
|
||||
/**
|
||||
*单选组件
|
||||
*/
|
||||
String RADIO = "radio";
|
||||
|
||||
/**
|
||||
*人员选择
|
||||
*/
|
||||
String USER = "user";
|
||||
|
||||
/**
|
||||
*组织架构
|
||||
*/
|
||||
String ORGANIZATION = "organization";
|
||||
|
||||
/**
|
||||
*时间组件
|
||||
*/
|
||||
String TIME = "time";
|
||||
|
||||
/**
|
||||
*时间范围
|
||||
*/
|
||||
String TIME_RANGE = "time-range";
|
||||
|
||||
/**
|
||||
*日期
|
||||
*/
|
||||
String DATE = "date";
|
||||
|
||||
/**
|
||||
*日期范围
|
||||
*/
|
||||
String DATE_RANGE = "date-range";
|
||||
|
||||
/**
|
||||
* 意见簿
|
||||
*/
|
||||
String OPINION = "opinion";
|
||||
|
||||
/**
|
||||
* 自动编码
|
||||
*/
|
||||
String AUTO_CODE = "auto-code";
|
||||
|
||||
|
||||
/**
|
||||
* 导入按钮
|
||||
*/
|
||||
String BUTTON_IMPORT = "import";
|
||||
|
||||
/**
|
||||
* 导出按钮
|
||||
*/
|
||||
String BUTTON_EXPORT = "export";
|
||||
|
||||
/**
|
||||
* 分隔符
|
||||
*/
|
||||
String SEPARATOR = "separator";
|
||||
|
||||
/**
|
||||
* 显示格式
|
||||
*/
|
||||
String SHOW_FORMAT = "showFormat";
|
||||
|
||||
/**
|
||||
* 自定编码的编码
|
||||
*/
|
||||
String AUTO_CODE_RULE = "autoCodeRule";
|
||||
|
||||
/**
|
||||
* iframe组件
|
||||
*/
|
||||
String IFRAME = "iframe";
|
||||
|
||||
/**
|
||||
* 文本
|
||||
*/
|
||||
String TEXT = "text";
|
||||
|
||||
/**
|
||||
* 分割线
|
||||
*/
|
||||
String DIVIDER = "divider";
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
String TITLE = "title";
|
||||
}
|
||||
@ -0,0 +1,135 @@
|
||||
package com.xjrsoft.generate.constant;
|
||||
|
||||
/**
|
||||
* @title: 实体类模板引擎常量
|
||||
* @Author tzx
|
||||
* @Date: 2022/4/17 14:29
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
public interface EntityConstant {
|
||||
/**
|
||||
* @des 包名
|
||||
* */
|
||||
String PACKAGE = "package";
|
||||
|
||||
/**
|
||||
* @des 创建人
|
||||
* */
|
||||
String AUTH_NAME = "author";
|
||||
|
||||
/**
|
||||
* @des 创建时间
|
||||
* */
|
||||
String DATE = "date";
|
||||
|
||||
/**
|
||||
* @des 表备注
|
||||
* */
|
||||
String TABLE_COMMENT = "tableComment";
|
||||
|
||||
/**
|
||||
* @des 表名
|
||||
* */
|
||||
String TABLE_NAME = "tableName";
|
||||
|
||||
/**
|
||||
* @des 实体类名
|
||||
* */
|
||||
String ENTITY_CLASS_NAME = "entityClass";
|
||||
|
||||
/**
|
||||
* @des 功能类名
|
||||
* */
|
||||
String FUNCTION_CLASS_NAME = "className";
|
||||
|
||||
|
||||
/**
|
||||
* @des 表里面所有列
|
||||
* */
|
||||
String TABLE_FIELDS = "fields";
|
||||
|
||||
/**
|
||||
* 主键名
|
||||
*/
|
||||
String PK_FIELD = "pkField";
|
||||
|
||||
/**
|
||||
* 主键类型
|
||||
*/
|
||||
String PK_TYPE = "pkType";
|
||||
|
||||
/**
|
||||
* @des 是否分页
|
||||
* */
|
||||
String IS_PAGE = "isPage";
|
||||
|
||||
/**
|
||||
* @des 是否多表
|
||||
* */
|
||||
String IS_MULTI = "isMulti";
|
||||
|
||||
/**
|
||||
* @des 默认排序类型
|
||||
* */
|
||||
String ORDER_TYPE = "orderType";
|
||||
|
||||
/**
|
||||
* @des 默认排序字段
|
||||
* */
|
||||
String ORDER_FIELD = "orderField";
|
||||
|
||||
|
||||
/**
|
||||
* @des 子表
|
||||
* */
|
||||
String CHILD_TABLES = "childTables";
|
||||
|
||||
/**
|
||||
* @des 主表主键
|
||||
* */
|
||||
String PARENT_TABLE_KEY = "parentKey";
|
||||
|
||||
|
||||
/**
|
||||
* @des 子表所关联的主表字段
|
||||
* */
|
||||
String PARENT_RELATION_FIELD_KEY = "relationTableField";
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @des 输出区域
|
||||
* */
|
||||
String OUTPUT_AREA = "outputArea";
|
||||
|
||||
/**
|
||||
* 导入按钮
|
||||
*/
|
||||
String IS_IMPORT = "isImport";
|
||||
|
||||
/**
|
||||
* 导出按钮
|
||||
*/
|
||||
String IS_EXPORT = "isExport";
|
||||
|
||||
/**
|
||||
* 导出excel必填字段标识符
|
||||
*/
|
||||
String REQUIRED_SUFFIX = "requiredSuffix";
|
||||
|
||||
/**
|
||||
* 数据源id
|
||||
*/
|
||||
String DATASOURCE_ID = "databaseId";
|
||||
|
||||
/**
|
||||
* 权限字段
|
||||
*/
|
||||
String IS_DATA_AUTH = "isDataAuth";
|
||||
|
||||
/**
|
||||
* 自动编码值,逗号隔开
|
||||
*/
|
||||
String CODE_RULES = "codeRules";
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.xjrsoft.generate.dto;
|
||||
|
||||
import com.xjrsoft.common.generate.model.FrontCode;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2023/9/1 17:43
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class BatchGeneratorDto extends DataFirstPreviewDto {
|
||||
/**
|
||||
* 代码模板id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 前端代码
|
||||
*/
|
||||
private FrontCode frontCode;
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 代码模板名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package com.xjrsoft.generate.dto;
|
||||
|
||||
import com.xjrsoft.common.generate.model.FrontCode;
|
||||
import com.xjrsoft.common.generate.model.MenuConfig;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2022/6/6 16:05
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CodeFirstGeneratorDto extends CodeFirstPreviewDto {
|
||||
|
||||
/**
|
||||
* 代码模板id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 前端代码
|
||||
*/
|
||||
private FrontCode frontCode;
|
||||
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 代码模板名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 菜单配置
|
||||
*/
|
||||
@NotNull(message = "菜单配置不能为空!")
|
||||
@Valid
|
||||
private MenuConfig menuConfig;
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package com.xjrsoft.generate.dto;
|
||||
|
||||
import com.xjrsoft.common.core.domain.generator.FormConfig;
|
||||
import com.xjrsoft.common.generate.model.ListConfig;
|
||||
import com.xjrsoft.common.generate.model.OutputConfig;
|
||||
import com.xjrsoft.common.generate.model.TableConfig;
|
||||
import com.xjrsoft.common.generate.model.TableStructureConfig;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @title: CodeFirstDto
|
||||
* @Author tzx
|
||||
* @Date: 2022/4/30 22:42
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class CodeFirstPreviewDto {
|
||||
/**
|
||||
* 数据库id
|
||||
*/
|
||||
@NotNull(message = "数据库id不能为空!")
|
||||
private String databaseId;
|
||||
|
||||
/**
|
||||
* 表关联信息
|
||||
*/
|
||||
private List<TableConfig> tableConfigs;
|
||||
|
||||
/**
|
||||
* 表结构配置
|
||||
*/
|
||||
@Valid
|
||||
@NotNull(message = "表结构配置不能为空!")
|
||||
private List<TableStructureConfig> tableStructureConfigs;
|
||||
|
||||
/**
|
||||
* 表单设计json
|
||||
*/
|
||||
@NotNull(message = "表单设计不能为空!")
|
||||
private FormConfig formJson;
|
||||
|
||||
/**
|
||||
* 列表配置
|
||||
*/
|
||||
@NotNull(message = "列表配置不能为空!")
|
||||
@Valid
|
||||
private ListConfig listConfig;
|
||||
|
||||
/**
|
||||
* 输出配置
|
||||
*/
|
||||
@NotNull(message = "输出配置不能为空!")
|
||||
@Valid
|
||||
private OutputConfig outputConfig;
|
||||
|
||||
@Schema(name = "表单事件")
|
||||
private Map<String, Object> formEventConfig;
|
||||
|
||||
/**
|
||||
* 是否配置数据权限
|
||||
*/
|
||||
@Schema(name = "是否数据权限")
|
||||
private Boolean isDataAuth;
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package com.xjrsoft.generate.dto;
|
||||
|
||||
import com.xjrsoft.common.generate.model.FrontCode;
|
||||
import com.xjrsoft.common.generate.model.MenuConfig;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 数据优先生成代码
|
||||
*
|
||||
* @Author: tzx
|
||||
* @Date: 2022/6/2 15:45
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class DataFirstGeneratorDto extends DataFirstPreviewDto {
|
||||
/**
|
||||
* 代码模板id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 前端代码
|
||||
*/
|
||||
private FrontCode frontCode;
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 代码模板名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 菜单配置
|
||||
*/
|
||||
@NotNull(message = "菜单配置不能为空!")
|
||||
@Valid
|
||||
private MenuConfig menuConfig;
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
package com.xjrsoft.generate.dto;
|
||||
|
||||
import com.xjrsoft.common.core.domain.generator.FormConfig;
|
||||
import com.xjrsoft.common.generate.model.ListConfig;
|
||||
import com.xjrsoft.common.generate.model.OutputConfig;
|
||||
import com.xjrsoft.common.generate.model.TableConfig;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @title: 预览代码
|
||||
* @Author tzx
|
||||
* @Date: 2022/4/12 21:08
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class DataFirstPreviewDto {
|
||||
/**
|
||||
* 数据库id
|
||||
*/
|
||||
@NotNull(message = "数据库id不能为空!")
|
||||
private String databaseId;
|
||||
|
||||
/**
|
||||
* 表关联信息
|
||||
*/
|
||||
@NotNull(message = "表配置不能为空!")
|
||||
@Valid
|
||||
private List<TableConfig> tableConfigs;
|
||||
|
||||
/**
|
||||
* 表单设计json
|
||||
*/
|
||||
@NotNull(message = "表单设计不能为空!")
|
||||
private FormConfig formJson;
|
||||
|
||||
/**
|
||||
* 列表配置
|
||||
*/
|
||||
@NotNull(message = "列表配置不能为空!")
|
||||
@Valid
|
||||
private ListConfig listConfig;
|
||||
|
||||
/**
|
||||
* 输出配置
|
||||
*/
|
||||
@NotNull(message = "输出配置不能为空!")
|
||||
@Valid
|
||||
private OutputConfig outputConfig;
|
||||
|
||||
@Schema(name = "表单事件")
|
||||
private Map<String, Object> formEventConfig;
|
||||
|
||||
/**
|
||||
* 是否配置数据权限
|
||||
*/
|
||||
private Boolean isDataAuth;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package com.xjrsoft.generate.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2023/7/19 17:46
|
||||
*/
|
||||
@Data
|
||||
public class GeneratorAppDto implements Serializable {
|
||||
|
||||
|
||||
/**
|
||||
* 功能类名
|
||||
*/
|
||||
private String className;
|
||||
|
||||
|
||||
/**
|
||||
* 输出区域
|
||||
*/
|
||||
private String outputArea;
|
||||
|
||||
/**
|
||||
* 输出区域
|
||||
*/
|
||||
private String outputValue;
|
||||
|
||||
/**
|
||||
* components\system-form\index.vue 文件替换内容
|
||||
*/
|
||||
private String tagString;
|
||||
|
||||
/**
|
||||
* 列表页面代码
|
||||
*/
|
||||
private String listCode;
|
||||
/**
|
||||
* 表单页面代码
|
||||
*/
|
||||
private String formCode;
|
||||
|
||||
/**
|
||||
* 接口请求代码
|
||||
*/
|
||||
private String apiCode;
|
||||
|
||||
/**
|
||||
* 配置json 代码
|
||||
*/
|
||||
private String configJsonCode;
|
||||
|
||||
/**
|
||||
* 表单容器代码
|
||||
*/
|
||||
private String containerCode;
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.xjrsoft.generate.dto;
|
||||
|
||||
import com.xjrsoft.common.generate.model.TableConfig;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2022/5/27 9:53
|
||||
*/
|
||||
@Data
|
||||
public class TableInfoDto {
|
||||
private String databaseId;
|
||||
private List<TableConfig> tableConfigs;
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.xjrsoft.generate.fallback;
|
||||
|
||||
import com.xjrsoft.generate.client.IGenerateClient;
|
||||
import com.xjrsoft.generate.dto.DataFirstPreviewDto;
|
||||
import com.xjrsoft.generate.dto.GeneratorAppDto;
|
||||
import com.xjrsoft.generate.vo.GeneratorCodeVo;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2023/10/10 19:06
|
||||
*/
|
||||
@Component
|
||||
public class GenerateClientFallBack implements IGenerateClient {
|
||||
|
||||
|
||||
@Override
|
||||
public void generateAppCodesFeign(GeneratorAppDto dto) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratorCodeVo getPreviewCodesFeign(DataFirstPreviewDto dto) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,75 @@
|
||||
package com.xjrsoft.generate.utils;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.xjrsoft.common.core.enums.PostgreSqlFieldsType;
|
||||
import com.xjrsoft.tenant.config.TenantConfig;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2022/5/5 11:54
|
||||
*/
|
||||
public class SqlUtil {
|
||||
|
||||
|
||||
public static List<String> buildAddDataAuthFieldSqls(DbType dbType, String tableName) {
|
||||
List<String> sqlList = new ArrayList<>();
|
||||
switch (dbType) {
|
||||
case MYSQL:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD rule_user_id bigint NULL COMMENT '权限所属人员id'");
|
||||
break;
|
||||
case SQL_SERVER:
|
||||
case SQL_SERVER2005:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD rule_user_id bigint NULL");
|
||||
sqlList.add("EXEC sp_addextendedproperty 'MS_Description', '权限所属人员id', 'user', 'dbo', 'table', '" + tableName + "', 'column', 'rule_user_id'");
|
||||
break;
|
||||
case ORACLE:
|
||||
case ORACLE_12C:
|
||||
case DM:
|
||||
case DB2:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD rule_user_id NUMBER(20,0)");
|
||||
sqlList.add("COMMENT ON COLUMN " + tableName + ".rule_user_id IS '权限所属人员id'");
|
||||
break;
|
||||
case POSTGRE_SQL:
|
||||
case KINGBASE_ES:
|
||||
case GAUSS:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD rule_user_id " + PostgreSqlFieldsType.FK.getType());
|
||||
sqlList.add("COMMENT ON COLUMN " + tableName + ".rule_user_id IS '租户id'");
|
||||
break;
|
||||
}
|
||||
return sqlList;
|
||||
}
|
||||
|
||||
public static List<String> buildAddTenantFieldSqls(DbType dbType, String tableName) {
|
||||
TenantConfig tenantConfig = SpringUtil.getBean(TenantConfig.class);
|
||||
List<String> sqlList = new ArrayList<>();
|
||||
String tenantField = tenantConfig.getTenantField();
|
||||
switch (dbType) {
|
||||
case MYSQL:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD " + tenantField + " bigint NULL COMMENT '租户id'");
|
||||
break;
|
||||
case SQL_SERVER:
|
||||
case SQL_SERVER2005:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD " + tenantField + " bigint NULL");
|
||||
sqlList.add("EXEC sp_addextendedproperty 'MS_Description', '租户id', 'user', 'dbo', 'table', '" + tableName + "', 'column', '" + tenantField + "'");
|
||||
break;
|
||||
case ORACLE:
|
||||
case ORACLE_12C:
|
||||
case DM:
|
||||
case DB2:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD " + tenantField + " NUMBER(20,0)");
|
||||
sqlList.add("COMMENT ON COLUMN " + tableName + "." + tenantField + " IS '租户id'");
|
||||
break;
|
||||
case POSTGRE_SQL:
|
||||
case KINGBASE_ES:
|
||||
case GAUSS:
|
||||
sqlList.add("ALTER TABLE " + tableName + " ADD " + tenantField + PostgreSqlFieldsType.FK.getType());
|
||||
sqlList.add("COMMENT ON COLUMN " + tableName + "." + tenantField + " IS '租户id'");
|
||||
break;
|
||||
}
|
||||
return sqlList;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.xjrsoft.generate.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2022/5/27 9:43
|
||||
*/
|
||||
@Data
|
||||
public class ColumnInfoVo {
|
||||
/**
|
||||
* 列名
|
||||
*/
|
||||
private String columnName;
|
||||
/**
|
||||
* 列名类型
|
||||
*/
|
||||
private Integer columnType;
|
||||
/**
|
||||
* 列长度
|
||||
*/
|
||||
private Long columnLength;
|
||||
/**
|
||||
* 是否主键
|
||||
*/
|
||||
private Boolean isPrimaryKey;
|
||||
/**
|
||||
* 是否可空
|
||||
*/
|
||||
private Boolean isNullable;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.xjrsoft.generate.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @title: GeneratorCodeVo
|
||||
* @Author tzx
|
||||
* @Date: 2022/4/16 23:20
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class GeneratorCodeVo {
|
||||
private Map<String, String> controllerCode;
|
||||
|
||||
private Map<String, String> entityCode;
|
||||
|
||||
private Map<String, String> dtoCode;
|
||||
|
||||
private Map<String, String> voCode;
|
||||
|
||||
private Map<String, String> serviceCode;
|
||||
|
||||
private Map<String, String> implCode;
|
||||
|
||||
private Map<String, String> mapperCode;
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xjrsoft.generate.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: tzx
|
||||
* @Date: 2022/5/27 9:42
|
||||
*/
|
||||
@Data
|
||||
public class TableInfoVo {
|
||||
private String tableName;
|
||||
private String tableComment;
|
||||
private List<ColumnInfoVo> columnInfos;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user