4 changed files with 385 additions and 399 deletions
@ -1,372 +0,0 @@ |
|||
import logging |
|||
import os |
|||
from datetime import datetime |
|||
from jinja2 import Environment, FileSystemLoader,TemplateNotFound |
|||
# from config import * |
|||
from db import get_table, get_columns |
|||
from utils import * |
|||
import argparse |
|||
import yaml |
|||
import re |
|||
|
|||
env = Environment(loader=FileSystemLoader("templates/java")) |
|||
|
|||
def build_fields(table_name): |
|||
columns = get_columns(table_name) |
|||
fields = [] |
|||
for c in columns: |
|||
fields.append({ |
|||
"java_name": to_camel(c["column_name"]), |
|||
"tab_name": c["column_name"], |
|||
"tab_type": c["data_type"], |
|||
"java_get_name": to_class(c["column_name"]), |
|||
"java_type": mysql_to_java(c["data_type"]), |
|||
"comment": c["column_comment"] |
|||
}) |
|||
return fields |
|||
|
|||
def render(template_name, out_path, context, java_version, overwrite=False): |
|||
""" |
|||
:param template_name: 模板文件名 |
|||
:param out_path: 输出文件路径 |
|||
:param context: 渲染上下文 |
|||
:param overwrite: 是否覆盖已存在文件,默认 False |
|||
""" |
|||
|
|||
# 文件存在且不允许覆盖 → 跳过 |
|||
if os.path.exists(out_path) and not overwrite: |
|||
logging.info("Skip exists file: %s", out_path) |
|||
return |
|||
|
|||
if java_version != "": |
|||
template_name = java_version+"."+template_name |
|||
|
|||
real_template = template_name |
|||
|
|||
print(">>>>template_name:", template_name) |
|||
|
|||
# 1️⃣ 尝试原模板 |
|||
try: |
|||
env.loader.get_source(env, real_template) |
|||
except TemplateNotFound: |
|||
# 2️⃣ 去掉数字前缀,如 21.controller.java.j2 → controller.java.j2 |
|||
fallback = re.sub(r"^\d+\.", "", template_name) |
|||
|
|||
if fallback != template_name: |
|||
try: |
|||
env.loader.get_source(env, fallback) |
|||
logging.warning( |
|||
"Template not found: %s, fallback to %s", |
|||
template_name, fallback |
|||
) |
|||
real_template = fallback |
|||
except TemplateNotFound: |
|||
raise FileNotFoundError( |
|||
f"Template not found: {template_name} and fallback {fallback}" |
|||
) |
|||
else: |
|||
raise FileNotFoundError(f"Template not found: {template_name}") |
|||
|
|||
# 3️⃣ 正式渲染 |
|||
tpl = env.get_template(real_template) |
|||
content = tpl.render(**context) |
|||
|
|||
os.makedirs(os.path.dirname(out_path), exist_ok=True) |
|||
with open(out_path, "w", encoding="utf-8") as f: |
|||
f.write(content) |
|||
|
|||
logging.info("Generated file: %s (template: %s)", out_path, real_template) |
|||
|
|||
|
|||
def generate(table_names: list[str], model_names: list[str], conf_name: str, over_write: bool, java_version: str): |
|||
|
|||
with open(conf_name, "r", encoding="utf-8") as f: |
|||
cfg = yaml.safe_load(f) |
|||
cfg = resolve_config(cfg) |
|||
|
|||
context = { |
|||
"mainModule": cfg["mainModule"], |
|||
"moduleName": cfg["moduleName"], |
|||
"groupId": cfg["groupId"], |
|||
"author": cfg["author"], |
|||
"wechat": cfg["wechat"], |
|||
"date": datetime.now().strftime("%Y-%m-%d"), |
|||
"entityLombokModel": cfg["entityLombokModel"], |
|||
"package": cfg["package"], |
|||
"db": cfg["db"], |
|||
"application": cfg["application"], |
|||
"restControllerStyle": cfg["restControllerStyle"] |
|||
} |
|||
# MAIN_BASE_PACKAGE_DIR = f"{OUTPUT_DIR}/java/{to_path(BASE_PACKAGE)}" |
|||
# MAIN_OUTPUT_DIR = f"{MAIN_BASE_PACKAGE_DIR}/{DEFAULT_PREFIX_URL}" |
|||
|
|||
BASE_DIR = cfg["baseDir"] |
|||
BASE_PACKAGE = cfg["package"]["Base"] |
|||
OUTPUT_DIR = cfg["outputDir"] |
|||
MAIN_MODULE = cfg["mainModule"] |
|||
MODULE_NAME = cfg["moduleName"] |
|||
MAIN_BASE_PACKAGE_DIR = f"{cfg['outputDir']}/java/{to_path(BASE_PACKAGE)}" |
|||
MAIN_OUTPUT_DIR = f"{MAIN_BASE_PACKAGE_DIR}/{cfg['package']['Models']}" |
|||
|
|||
|
|||
# ========= 按表循环 ========= |
|||
for table_name in table_names: |
|||
table = get_table(table_name) |
|||
entity = to_class(table_name) |
|||
|
|||
context = dict(context) |
|||
context.update({ |
|||
"fields": build_fields(table_name), |
|||
"table": { |
|||
"tabToPath": tab_to_path(table_name), |
|||
"entity": entity, |
|||
"lowerEntity": lower_first(entity), |
|||
"name": table_name, |
|||
"comment": table["table_comment"] |
|||
} |
|||
}) |
|||
|
|||
# ========= 需要循环生成的模板 ========= |
|||
render( |
|||
"entity.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/entity/{entity}.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"controller.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/{entity}Controller.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"service.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/service/{entity}Service.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"serviceImpl.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/service/impl/{entity}MPJBaseServiceImpl.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"mapper.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/mapper/{entity}Mapper.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"mapper.xml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/mappers/{entity}Mapper.xml", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
# ========= 生成固定模板 ========= |
|||
# BaseEntity |
|||
render( |
|||
"baseEntity.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/entity/BaseEntity.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# common MybatisPlusConfig |
|||
render( |
|||
"mybatisPlusConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/MybatisPlusConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# common MybatisPlusConfig |
|||
render( |
|||
"webLogAspect.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/WebLogAspect.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# common 基础输出result |
|||
render( |
|||
"result.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/vo/Result.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#Util 公共功能 |
|||
for file in ["Md5HashUtil.java.j2","FilesUtil.java.j2"]: |
|||
render( |
|||
file, |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/unit/{file.replace('.j2', '')}", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# application 启动的方法 |
|||
render( |
|||
"application.java.j2", |
|||
f"{BASE_DIR}{MAIN_BASE_PACKAGE_DIR}/Application.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# test 测试类 |
|||
render( |
|||
"applicationTests.java.j2", |
|||
f"{BASE_DIR}{OUTPUT_DIR}/test/{to_path(BASE_PACKAGE)}/ApplicationTests.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# 主pom文件 |
|||
render( |
|||
"main.pom.xml.j2", |
|||
f"{BASE_DIR}{MAIN_MODULE}/pom.xml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# 子项目pom文件 |
|||
render( |
|||
"project.pom.xml.j2", |
|||
f"{BASE_DIR}{MAIN_MODULE}/{MODULE_NAME}/pom.xml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#项目的yml配置文件 resources 生成环境配置为了最低限度能将项目跑起来 |
|||
render( |
|||
"application.yml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/application.yml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|||
render( |
|||
"application-dev.yml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/application-dev.yml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|||
render( |
|||
"logback.xml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/logback.xml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# ========= 功能模块 ========= |
|||
for model_name in model_names: |
|||
match model_name: |
|||
case "swagger": |
|||
# common Swagger2 |
|||
render( |
|||
"SwaggerConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/Swagger2.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "saToken": |
|||
# common GlobalException soToken 报错自定义 |
|||
render( |
|||
"globalException.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/GlobalException.java", |
|||
context, |
|||
java_version |
|||
) |
|||
render( |
|||
"SaTokenConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/SaTokenConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "minio": |
|||
#MinioConfig |
|||
render( |
|||
"MinioConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/MinioConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
render( |
|||
"MinioUpController.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/MinioUpController.java", |
|||
context, |
|||
java_version |
|||
) |
|||
render( |
|||
"MinioUpComponent.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/unit/MinioUpComponent.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "xxlJob": |
|||
# common XxlJobConfig |
|||
render( |
|||
"xxlJobConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/XxlJobConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
# common xxjob的测试类 |
|||
render( |
|||
"testJob.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/job/TestJob.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "vue": |
|||
# 如果生成vue,则一定要有table_names |
|||
if table_names is None or len(table_names) == 0: |
|||
print("生成vue相关公共,需要生成相对应的表") |
|||
else : |
|||
render( |
|||
"CommonController.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/CommonController.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"CommonVueEnumsEntity.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/entity/CommonVueEnumsEntity.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
if __name__ == "__main__": |
|||
args = parse_args() |
|||
|
|||
tables = [t.strip() for t in args.tab.split(",") if t.strip()] |
|||
models = [m.strip() for m in args.model.split(",") if m.strip()] |
|||
conf = args.conf |
|||
version = args.jdk |
|||
rew = args.rew |
|||
|
|||
generate( |
|||
table_names=tables, |
|||
model_names=models, |
|||
conf_name=conf, |
|||
java_version=version, |
|||
over_write=rew |
|||
) |
|||
@ -0,0 +1,377 @@ |
|||
import logging |
|||
import os |
|||
from datetime import datetime |
|||
from jinja2 import Environment, FileSystemLoader,TemplateNotFound |
|||
# from config import * |
|||
from db import get_table, get_columns |
|||
from utils import * |
|||
import argparse |
|||
import yaml |
|||
import re |
|||
from vue import generate_vue # ✅ 核心:引入前端模块 |
|||
|
|||
env = Environment(loader=FileSystemLoader("templates/java")) |
|||
|
|||
def build_fields(table_name): |
|||
columns = get_columns(table_name) |
|||
fields = [] |
|||
for c in columns: |
|||
fields.append({ |
|||
"java_name": to_camel(c["column_name"]), |
|||
"tab_name": c["column_name"], |
|||
"tab_type": c["data_type"], |
|||
"java_get_name": to_class(c["column_name"]), |
|||
"java_type": mysql_to_java(c["data_type"]), |
|||
"comment": c["column_comment"] |
|||
}) |
|||
return fields |
|||
|
|||
def render(template_name, out_path, context, java_version, overwrite=False): |
|||
""" |
|||
:param template_name: 模板文件名 |
|||
:param out_path: 输出文件路径 |
|||
:param context: 渲染上下文 |
|||
:param overwrite: 是否覆盖已存在文件,默认 False |
|||
""" |
|||
|
|||
# 文件存在且不允许覆盖 → 跳过 |
|||
if os.path.exists(out_path) and not overwrite: |
|||
logging.info("Skip exists file: %s", out_path) |
|||
return |
|||
|
|||
if java_version != "": |
|||
template_name = java_version+"."+template_name |
|||
|
|||
real_template = template_name |
|||
|
|||
print(">>>>template_name:", template_name) |
|||
|
|||
# 1️⃣ 尝试原模板 |
|||
try: |
|||
env.loader.get_source(env, real_template) |
|||
except TemplateNotFound: |
|||
# 2️⃣ 去掉数字前缀,如 21.controller.java.j2 → controller.java.j2 |
|||
fallback = re.sub(r"^\d+\.", "", template_name) |
|||
|
|||
if fallback != template_name: |
|||
try: |
|||
env.loader.get_source(env, fallback) |
|||
logging.warning( |
|||
"Template not found: %s, fallback to %s", |
|||
template_name, fallback |
|||
) |
|||
real_template = fallback |
|||
except TemplateNotFound: |
|||
raise FileNotFoundError( |
|||
f"Template not found: {template_name} and fallback {fallback}" |
|||
) |
|||
else: |
|||
raise FileNotFoundError(f"Template not found: {template_name}") |
|||
|
|||
# 3️⃣ 正式渲染 |
|||
tpl = env.get_template(real_template) |
|||
content = tpl.render(**context) |
|||
|
|||
os.makedirs(os.path.dirname(out_path), exist_ok=True) |
|||
with open(out_path, "w", encoding="utf-8") as f: |
|||
f.write(content) |
|||
|
|||
logging.info("Generated file: %s (template: %s)", out_path, real_template) |
|||
|
|||
|
|||
def generate(table_names: list[str], model_names: list[str], conf_name: str, over_write: bool, java_version: str, vue: str): |
|||
|
|||
with open(conf_name, "r", encoding="utf-8") as f: |
|||
cfg = yaml.safe_load(f) |
|||
cfg = resolve_config(cfg) |
|||
if(vue!=""): |
|||
generate_vue(vue, cfg) |
|||
else : |
|||
context = { |
|||
"mainModule": cfg["mainModule"], |
|||
"moduleName": cfg["moduleName"], |
|||
"groupId": cfg["groupId"], |
|||
"author": cfg["author"], |
|||
"wechat": cfg["wechat"], |
|||
"date": datetime.now().strftime("%Y-%m-%d"), |
|||
"entityLombokModel": cfg["entityLombokModel"], |
|||
"package": cfg["package"], |
|||
"db": cfg["db"], |
|||
"application": cfg["application"], |
|||
"restControllerStyle": cfg["restControllerStyle"] |
|||
} |
|||
# MAIN_BASE_PACKAGE_DIR = f"{OUTPUT_DIR}/java/{to_path(BASE_PACKAGE)}" |
|||
# MAIN_OUTPUT_DIR = f"{MAIN_BASE_PACKAGE_DIR}/{DEFAULT_PREFIX_URL}" |
|||
|
|||
BASE_DIR = cfg["baseDir"] |
|||
BASE_PACKAGE = cfg["package"]["Base"] |
|||
OUTPUT_DIR = cfg["outputDir"] |
|||
MAIN_MODULE = cfg["mainModule"] |
|||
MODULE_NAME = cfg["moduleName"] |
|||
MAIN_BASE_PACKAGE_DIR = f"{cfg['outputDir']}/java/{to_path(BASE_PACKAGE)}" |
|||
MAIN_OUTPUT_DIR = f"{MAIN_BASE_PACKAGE_DIR}/{cfg['package']['Models']}" |
|||
|
|||
|
|||
# ========= 按表循环 ========= |
|||
for table_name in table_names: |
|||
table = get_table(table_name) |
|||
entity = to_class(table_name) |
|||
|
|||
context = dict(context) |
|||
context.update({ |
|||
"fields": build_fields(table_name), |
|||
"table": { |
|||
"tabToPath": tab_to_path(table_name), |
|||
"entity": entity, |
|||
"lowerEntity": lower_first(entity), |
|||
"name": table_name, |
|||
"comment": table["table_comment"] |
|||
} |
|||
}) |
|||
|
|||
# ========= 需要循环生成的模板 ========= |
|||
render( |
|||
"entity.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/entity/{entity}.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"controller.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/{entity}Controller.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"service.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/service/{entity}Service.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"serviceImpl.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/service/impl/{entity}MPJBaseServiceImpl.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"mapper.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/mapper/{entity}Mapper.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"mapper.xml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/mappers/{entity}Mapper.xml", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
# ========= 生成固定模板 ========= |
|||
# BaseEntity |
|||
render( |
|||
"baseEntity.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/entity/BaseEntity.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# common MybatisPlusConfig |
|||
render( |
|||
"mybatisPlusConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/MybatisPlusConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# common MybatisPlusConfig |
|||
render( |
|||
"webLogAspect.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/WebLogAspect.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# common 基础输出result |
|||
render( |
|||
"result.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/vo/Result.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#Util 公共功能 |
|||
for file in ["Md5HashUtil.java.j2","FilesUtil.java.j2"]: |
|||
render( |
|||
file, |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/unit/{file.replace('.j2', '')}", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# application 启动的方法 |
|||
render( |
|||
"application.java.j2", |
|||
f"{BASE_DIR}{MAIN_BASE_PACKAGE_DIR}/Application.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# test 测试类 |
|||
render( |
|||
"applicationTests.java.j2", |
|||
f"{BASE_DIR}{OUTPUT_DIR}/test/{to_path(BASE_PACKAGE)}/ApplicationTests.java", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# 主pom文件 |
|||
render( |
|||
"main.pom.xml.j2", |
|||
f"{BASE_DIR}{MAIN_MODULE}/pom.xml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# 子项目pom文件 |
|||
render( |
|||
"project.pom.xml.j2", |
|||
f"{BASE_DIR}{MAIN_MODULE}/{MODULE_NAME}/pom.xml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#项目的yml配置文件 resources 生成环境配置为了最低限度能将项目跑起来 |
|||
render( |
|||
"application.yml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/application.yml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|||
render( |
|||
"application-dev.yml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/application-dev.yml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
#项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|||
render( |
|||
"logback.xml.j2", |
|||
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/logback.xml", |
|||
context, |
|||
java_version |
|||
) |
|||
|
|||
# ========= 功能模块 ========= |
|||
for model_name in model_names: |
|||
match model_name: |
|||
case "swagger": |
|||
# common Swagger2 |
|||
render( |
|||
"SwaggerConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/Swagger2.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "saToken": |
|||
# common GlobalException soToken 报错自定义 |
|||
render( |
|||
"globalException.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/GlobalException.java", |
|||
context, |
|||
java_version |
|||
) |
|||
render( |
|||
"SaTokenConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/SaTokenConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "minio": |
|||
#MinioConfig |
|||
render( |
|||
"MinioConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/MinioConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
render( |
|||
"MinioUpController.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/MinioUpController.java", |
|||
context, |
|||
java_version |
|||
) |
|||
render( |
|||
"MinioUpComponent.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/unit/MinioUpComponent.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "xxlJob": |
|||
# common XxlJobConfig |
|||
render( |
|||
"xxlJobConfig.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/XxlJobConfig.java", |
|||
context, |
|||
java_version |
|||
) |
|||
# common xxjob的测试类 |
|||
render( |
|||
"testJob.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/job/TestJob.java", |
|||
context, |
|||
java_version |
|||
) |
|||
case "vue": |
|||
# 如果生成vue,则一定要有table_names |
|||
if table_names is None or len(table_names) == 0: |
|||
print("生成vue相关公共,需要生成相对应的表") |
|||
else : |
|||
render( |
|||
"CommonController.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/CommonController.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
render( |
|||
"CommonVueEnumsEntity.java.j2", |
|||
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/entity/CommonVueEnumsEntity.java", |
|||
context, |
|||
java_version, |
|||
over_write |
|||
) |
|||
|
|||
|
|||
if __name__ == "__main__": |
|||
args = parse_args() |
|||
|
|||
tables = [t.strip() for t in args.tab.split(",") if t.strip()] |
|||
models = [m.strip() for m in args.model.split(",") if m.strip()] |
|||
conf = args.conf |
|||
version = args.jdk |
|||
rew = args.rew |
|||
|
|||
generate( |
|||
table_names=tables, |
|||
model_names=models, |
|||
conf_name=conf, |
|||
java_version=version, |
|||
over_write=rew, |
|||
vue=args.vue |
|||
) |
|||
Loading…
Reference in new issue