|
|
|
@ -1,17 +1,18 @@ |
|
|
|
import logging |
|
|
|
import os |
|
|
|
from datetime import datetime |
|
|
|
from jinja2 import Environment, FileSystemLoader,TemplateNotFound |
|
|
|
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 # ✅ 核心:引入前端模块 |
|
|
|
from vue import generate_vue # ✅ 核心:引入前端模块 |
|
|
|
|
|
|
|
env = Environment(loader=FileSystemLoader("templates/java")) |
|
|
|
|
|
|
|
|
|
|
|
def build_fields(table_name): |
|
|
|
columns = get_columns(table_name) |
|
|
|
fields = [] |
|
|
|
@ -26,6 +27,7 @@ def build_fields(table_name): |
|
|
|
}) |
|
|
|
return fields |
|
|
|
|
|
|
|
|
|
|
|
def render(template_name, out_path, context, java_version, overwrite=False): |
|
|
|
""" |
|
|
|
:param template_name: 模板文件名 |
|
|
|
@ -40,7 +42,7 @@ def render(template_name, out_path, context, java_version, overwrite=False): |
|
|
|
return |
|
|
|
|
|
|
|
if java_version != "": |
|
|
|
template_name = java_version+"."+template_name |
|
|
|
template_name = java_version + "." + template_name |
|
|
|
|
|
|
|
real_template = template_name |
|
|
|
|
|
|
|
@ -79,14 +81,14 @@ def render(template_name, out_path, context, java_version, overwrite=False): |
|
|
|
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): |
|
|
|
|
|
|
|
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!=""): |
|
|
|
if (vue != ""): |
|
|
|
generate_vue(vue, cfg) |
|
|
|
else : |
|
|
|
else: |
|
|
|
context = { |
|
|
|
"mainModule": cfg["mainModule"], |
|
|
|
"moduleName": cfg["moduleName"], |
|
|
|
@ -111,7 +113,6 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove |
|
|
|
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) |
|
|
|
@ -211,8 +212,8 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove |
|
|
|
java_version |
|
|
|
) |
|
|
|
|
|
|
|
#Util 公共功能 |
|
|
|
for file in ["Md5HashUtil.java.j2","FilesUtil.java.j2"]: |
|
|
|
# Util 公共功能 |
|
|
|
for file in ["Md5HashUtil.java.j2", "FilesUtil.java.j2"]: |
|
|
|
render( |
|
|
|
file, |
|
|
|
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/unit/{file.replace('.j2', '')}", |
|
|
|
@ -252,7 +253,7 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove |
|
|
|
java_version |
|
|
|
) |
|
|
|
|
|
|
|
#项目的yml配置文件 resources 生成环境配置为了最低限度能将项目跑起来 |
|
|
|
# 项目的yml配置文件 resources 生成环境配置为了最低限度能将项目跑起来 |
|
|
|
render( |
|
|
|
"application.yml.j2", |
|
|
|
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/application.yml", |
|
|
|
@ -260,7 +261,7 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove |
|
|
|
java_version |
|
|
|
) |
|
|
|
|
|
|
|
#项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|
|
|
# 项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|
|
|
render( |
|
|
|
"application-dev.yml.j2", |
|
|
|
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/application-dev.yml", |
|
|
|
@ -268,7 +269,7 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove |
|
|
|
java_version |
|
|
|
) |
|
|
|
|
|
|
|
#项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|
|
|
# 项目开发环境的yml配置文件 resources yml 只生成dev环境配置为了最低限度能将项目跑起来 |
|
|
|
render( |
|
|
|
"logback.xml.j2", |
|
|
|
f"{MAIN_MODULE}/{MODULE_NAME}/src/main/resources/logback.xml", |
|
|
|
@ -302,7 +303,7 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove |
|
|
|
java_version |
|
|
|
) |
|
|
|
case "minio": |
|
|
|
#MinioConfig |
|
|
|
# MinioConfig |
|
|
|
render( |
|
|
|
"MinioConfig.java.j2", |
|
|
|
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/common/config/MinioConfig.java", |
|
|
|
@ -340,7 +341,7 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove |
|
|
|
# 如果生成vue,则一定要有table_names |
|
|
|
if table_names is None or len(table_names) == 0: |
|
|
|
print("生成vue相关公共,需要生成相对应的表") |
|
|
|
else : |
|
|
|
else: |
|
|
|
render( |
|
|
|
"CommonController.java.j2", |
|
|
|
f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/CommonController.java", |
|
|
|
@ -374,4 +375,4 @@ if __name__ == "__main__": |
|
|
|
java_version=version, |
|
|
|
over_write=rew, |
|
|
|
vue=args.vue |
|
|
|
) |
|
|
|
) |
|
|
|
|