|
|
@@ -18,6 +18,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
+import cn.hutool.core.lang.Pair;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
@@ -26,6 +27,7 @@ import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
+import cn.tr.module.api.sys.user.SysMenuApi;
|
|
|
import cn.tr.module.gen.core.util.CommonDownloadUtil;
|
|
|
import cn.tr.module.gen.core.util.CommonResponseUtil;
|
|
|
import cn.tr.module.gen.core.util.GenDbTypeUtil;
|
|
|
@@ -53,6 +55,7 @@ import org.beetl.core.Configuration;
|
|
|
import org.beetl.core.GroupTemplate;
|
|
|
import org.beetl.core.Template;
|
|
|
import org.beetl.core.resource.ClasspathResourceLoader;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.env.Environment;
|
|
|
import org.springframework.jdbc.support.JdbcUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -74,7 +77,8 @@ import java.util.stream.Collectors;
|
|
|
**/
|
|
|
@Service
|
|
|
public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> implements GenBasicService {
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private SysMenuApi sysMenuApi;
|
|
|
// private static final String DB_URL_KEY = "spring.datasource.dynamic.datasource.master.url";
|
|
|
private static final String DB_URL_KEY = "spring.datasource.url";
|
|
|
|
|
|
@@ -97,7 +101,7 @@ public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> i
|
|
|
JSONUtil.createObj().set("name", "Oracle.sql.btl"));
|
|
|
|
|
|
private static final List<JSONObject> GEN_FRONT_FILE_LIST = CollectionUtil.newArrayList(
|
|
|
- JSONUtil.createObj().set("name", "Api.js.btl").set("path", "api" + File.separator ),
|
|
|
+ JSONUtil.createObj().set("name", "Api.ts.btl").set("path", "api" + File.separator ),
|
|
|
JSONUtil.createObj().set("name", "data.ts.btl").set("path", "views" + File.separator ),
|
|
|
JSONUtil.createObj().set("name", "index.vue.btl").set("path", "views" + File.separator ),
|
|
|
JSONUtil.createObj().set("name", "formDrawer.vue.btl").set("path", "views" + File.separator),
|
|
|
@@ -296,6 +300,8 @@ public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> i
|
|
|
CommonResponseUtil.renderError(response, "代码生成基础不存在,id值为:" + genBasicIdParam.getId());
|
|
|
return;
|
|
|
}
|
|
|
+ GenBasic genBasic = this.queryEntity(genBasicIdParam.getId());
|
|
|
+ Pair<String, String> idAndComponentId = sysMenuApi.addForGenMenu(genBasic.getMenuPid(),genBasic.getBusName(), genBasic.getFrontModuleName(), genBasic.getBackendModuleName(),genBasic.getBackendModuleName()+":"+genBasic.getBusName()+":", genBasic.getFunctionName());
|
|
|
// 压缩
|
|
|
File zip = ZipUtil.zip(tempFolder);
|
|
|
// 压缩完毕删除临时目录
|
|
|
@@ -325,15 +331,8 @@ public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> i
|
|
|
try {
|
|
|
GenBasic genBasic = this.queryEntity(genBasicIdParam.getId());
|
|
|
|
|
|
-// // 生成菜单
|
|
|
-// String menuId = sysMenuApi.addForGenMenu(genBasic.getMenuPid(), genBasic.getBusName(), genBasic.getModule(), genBasic.getFunctionName(),
|
|
|
-// StrUtil.SLASH + MODULE_KEY + StrUtil.SLASH + genBasic.getBusName());
|
|
|
-//
|
|
|
-// // 生成按钮
|
|
|
-// sysButtonApi.addForGenButton(menuId, genBasic.getClassName(), genBasic.getFunctionName());
|
|
|
-//
|
|
|
-// // 授权菜单
|
|
|
-// sysRoleApi.grantForGenMenuAndButton(menuId);
|
|
|
+ // 生成菜单
|
|
|
+ Pair<String, String> idAndComponentId = sysMenuApi.addForGenMenu(genBasic.getMenuPid(), genBasic.getBusName(),genBasic.getFrontModuleName(), genBasic.getBackendModuleName(), genBasic.getFunctionName(),genBasic.getBackendModuleName()+":"+genBasic.getBusName()+":");
|
|
|
|
|
|
//前端代码移动到前端
|
|
|
FileUtil.moveContent(FileUtil.file(tempFolder + File.separator + "frontend"), FileUtil.file(genProjectFrontendPath), true);
|
|
|
@@ -348,6 +347,7 @@ public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> i
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 获取临时目录
|
|
|
*
|
|
|
@@ -377,11 +377,11 @@ public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> i
|
|
|
// 生成前端代码到临时目录
|
|
|
genBasicPreviewResult.getGenBasicCodeFrontendResultList().forEach(genBasicCodeResult ->
|
|
|
FileUtil.writeUtf8String(genBasicCodeResult.getCodeFileContent(), FileUtil.file(tempFolder + File.separator
|
|
|
- + "frontend" + File.separator + genBasicCodeResult.getCodeFileWithPathName())));
|
|
|
+ + "frontend" + File.separator + File.separator+genBasicCodeResult.getCodeFileWithPathName())));
|
|
|
// 生成后端代码到临时目录
|
|
|
genBasicPreviewResult.getGenBasicCodeBackendResultList().forEach(genBasicCodeResult ->
|
|
|
FileUtil.writeUtf8String(genBasicCodeResult.getCodeFileContent(), FileUtil.file(tempFolder + File.separator
|
|
|
- + "backend" + File.separator + genBasicCodeResult.getCodeFileWithPathName())));
|
|
|
+ + "backend" + File.separator +genBasicCodeResult.getCodeFileWithPathName())));
|
|
|
return tempFolder;
|
|
|
}
|
|
|
|
|
|
@@ -423,13 +423,13 @@ public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> i
|
|
|
Template templateFront = groupTemplateFront.getTemplate(fileTemplateName);
|
|
|
templateFront.binding(bindingJsonObject);
|
|
|
String resultName = StrUtil.removeSuffix(fileTemplateName, ".btl");
|
|
|
- if(fileTemplateName.equalsIgnoreCase("Api.js.btl")) {
|
|
|
+ if(fileTemplateName.equalsIgnoreCase("Api.ts.btl")) {
|
|
|
resultName =genBasic.getFrontModuleName()+ StrUtil.upperFirst(genBasic.getBusName())+ resultName;
|
|
|
genBasicCodeFrontResult.setCodeFileName(resultName);
|
|
|
- genBasicCodeFrontResult.setCodeFileWithPathName(genFrontBasicPath + fileTemplatePath + File.separator + resultName);
|
|
|
+ genBasicCodeFrontResult.setCodeFileWithPathName(genFrontBasicPath + File.separator +fileTemplatePath +File.separator+genBasic.getFrontModuleName()+ File.separator + resultName);
|
|
|
} else {
|
|
|
genBasicCodeFrontResult.setCodeFileName(resultName);
|
|
|
- genBasicCodeFrontResult.setCodeFileWithPathName(genFrontBasicPath + fileTemplatePath + File.separator + genBasic.getBusName() + File.separator + resultName);
|
|
|
+ genBasicCodeFrontResult.setCodeFileWithPathName(genFrontBasicPath + File.separator + fileTemplatePath+File.separator+genBasic.getFrontModuleName() + File.separator + genBasic.getBusName() + File.separator + resultName);
|
|
|
}
|
|
|
genBasicCodeFrontResult.setCodeFileContent(templateFront.render());
|
|
|
genBasicCodeFrontendResultList.add(genBasicCodeFrontResult);
|
|
|
@@ -594,6 +594,8 @@ public class GenBasicServiceImpl extends ServiceImpl<GenBasicMapper, GenBasic> i
|
|
|
configItem.set("whetherRetract", genConfig.getWhetherRetract().equalsIgnoreCase(GenYesNoEnum.Y.getValue()));
|
|
|
// 增改
|
|
|
configItem.set("whetherAddUpdate", genConfig.getWhetherAddUpdate().equalsIgnoreCase(GenYesNoEnum.Y.getValue()));
|
|
|
+ // 是否必填
|
|
|
+ configItem.set("whetherRequired", genConfig.getWhetherRequired().equalsIgnoreCase(GenYesNoEnum.Y.getValue()));
|
|
|
// 作用类型
|
|
|
configItem.set("effectType", genConfig.getEffectType());
|
|
|
// 字典值
|