refactor: 代码生成器增强

1. 增加代码生成器 启用状态,开发环境可以直接禁用代码生成器(安全保障)
2. 代码模板 增加删除防护(至少保障 单类型下有一个模板)
v1.4.1
Carina 4 years ago
parent f580b86af3
commit d12e7c216e

@ -40,6 +40,8 @@ public class GlobalProperties {
/** Excel类 */ /** Excel类 */
private Excel excel; private Excel excel;
/** 代码生成器 */
private Generator generator;
// ============== 内部类 ============= // ============== 内部类 =============
@ -134,5 +136,17 @@ public class GlobalProperties {
} }
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = false)
public static class Generator {
/** 启用 */
private Boolean enable;
}
} }

@ -170,6 +170,14 @@
"type": "java.lang.Integer", "type": "java.lang.Integer",
"defaultValue": 20000, "defaultValue": 20000,
"description": "Excel 导出最大操作数." "description": "Excel 导出最大操作数."
},
{
"name": "opsli.generator.enable",
"sourceType": "org.opsli.core.autoconfigure.properties.GlobalProperties$Generator",
"type": "java.lang.Boolean",
"defaultValue": false,
"description": "代码生成器."
} }
] ]
} }

@ -27,6 +27,7 @@ import org.opsli.modulars.generator.logs.api.GenLogsApi;
import org.opsli.modulars.generator.logs.entity.GenLogs; import org.opsli.modulars.generator.logs.entity.GenLogs;
import org.opsli.modulars.generator.logs.service.IGenLogsService; import org.opsli.modulars.generator.logs.service.IGenLogsService;
import org.opsli.modulars.generator.logs.wrapper.GenLogsModel; import org.opsli.modulars.generator.logs.wrapper.GenLogsModel;
import org.opsli.plugins.generator.utils.GeneratorHandleUtil;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -47,6 +48,9 @@ public class GenLogsRestController extends BaseRestController<GenLogs, GenLogsMo
@RequiresPermissions("dev_generator_select") @RequiresPermissions("dev_generator_select")
@Override @Override
public ResultVo<GenLogsModel> getByTableId(String tableId) { public ResultVo<GenLogsModel> getByTableId(String tableId) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
GenLogsModel byTableId = IService.getByTableId(tableId); GenLogsModel byTableId = IService.getByTableId(tableId);
return ResultVo.success(byTableId); return ResultVo.success(byTableId);
} }
@ -60,6 +64,9 @@ public class GenLogsRestController extends BaseRestController<GenLogs, GenLogsMo
@EnableLog @EnableLog
@Override @Override
public void create(GenLogsModel model, HttpServletResponse response) { public void create(GenLogsModel model, HttpServletResponse response) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 调用生成方法 // 调用生成方法
IService.create(model, response); IService.create(model, response);
@ -77,6 +84,9 @@ public class GenLogsRestController extends BaseRestController<GenLogs, GenLogsMo
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> createMenu(String menuParentId, String tableId) { public ResultVo<?> createMenu(String menuParentId, String tableId) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
super.demoError(); super.demoError();

@ -41,6 +41,7 @@ import org.opsli.modulars.generator.table.entity.GenTable;
import org.opsli.modulars.generator.table.service.IGenTableService; import org.opsli.modulars.generator.table.service.IGenTableService;
import org.opsli.modulars.generator.table.wrapper.GenTableAndColumnModel; import org.opsli.modulars.generator.table.wrapper.GenTableAndColumnModel;
import org.opsli.modulars.generator.table.wrapper.GenTableModel; import org.opsli.modulars.generator.table.wrapper.GenTableModel;
import org.opsli.plugins.generator.utils.GeneratorHandleUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -73,6 +74,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@RequiresPermissions("dev_generator_select") @RequiresPermissions("dev_generator_select")
@Override @Override
public ResultVo<GenTableAndColumnModel> get(GenTableModel model) { public ResultVo<GenTableAndColumnModel> get(GenTableModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 如果系统内部调用 则直接查数据库 // 如果系统内部调用 则直接查数据库
if(model != null && model.getIzApi() != null && model.getIzApi()){ if(model != null && model.getIzApi() != null && model.getIzApi()){
model = IService.get(model); model = IService.get(model);
@ -106,6 +110,8 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@RequiresPermissions("dev_generator_select") @RequiresPermissions("dev_generator_select")
@Override @Override
public ResultVo<?> findPage(Integer pageNo, Integer pageSize, HttpServletRequest request) { public ResultVo<?> findPage(Integer pageNo, Integer pageSize, HttpServletRequest request) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
QueryBuilder<GenTable> queryBuilder = new WebQueryBuilder<>(GenTable.class, request.getParameterMap()); QueryBuilder<GenTable> queryBuilder = new WebQueryBuilder<>(GenTable.class, request.getParameterMap());
Page<GenTable, GenTableModel> page = new Page<>(pageNo, pageSize); Page<GenTable, GenTableModel> page = new Page<>(pageNo, pageSize);
@ -125,6 +131,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> insert(GenTableAndColumnModel model) { public ResultVo<?> insert(GenTableAndColumnModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
//super.demoError(); //super.demoError();
@ -144,6 +153,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> update(GenTableAndColumnModel model) { public ResultVo<?> update(GenTableAndColumnModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
//super.demoError(); //super.demoError();
@ -164,6 +176,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> del(String id){ public ResultVo<?> del(String id){
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
//super.demoError(); //super.demoError();
@ -188,6 +203,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> delAll(String ids){ public ResultVo<?> delAll(String ids){
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
//super.demoError(); //super.demoError();
String[] idArray = Convert.toStrArray(ids); String[] idArray = Convert.toStrArray(ids);
@ -213,6 +231,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> sync(String id){ public ResultVo<?> sync(String id){
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
super.demoError(); super.demoError();
@ -239,6 +260,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@RequiresPermissions("dev_generator_select") @RequiresPermissions("dev_generator_select")
@Override @Override
public ResultVo<?> getTables() { public ResultVo<?> getTables() {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
return ResultVo.success(ImportTableUtil.findTables()); return ResultVo.success(ImportTableUtil.findTables());
} }
@ -247,6 +271,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> importTables(String tableNames) { public ResultVo<?> importTables(String tableNames) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
String[] tableNameArray = Convert.toStrArray(tableNames); String[] tableNameArray = Convert.toStrArray(tableNames);
if(tableNameArray == null){ if(tableNameArray == null){
// 未选中表,无法导入 // 未选中表,无法导入
@ -260,6 +287,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
notes = "获得数据库类型下 字段类型") notes = "获得数据库类型下 字段类型")
@Override @Override
public ResultVo<List<String>> getFieldTypes() { public ResultVo<List<String>> getFieldTypes() {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
return ResultVo.success(ImportTableUtil.getFieldTypes()); return ResultVo.success(ImportTableUtil.getFieldTypes());
} }
@ -267,6 +297,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
notes = "获得数据库类型下 全部类型对应Java类型") notes = "获得数据库类型下 全部类型对应Java类型")
@Override @Override
public ResultVo<Map<String, String>> getJavaFieldTypes() { public ResultVo<Map<String, String>> getJavaFieldTypes() {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
return ResultVo.success(ImportTableUtil.getJavaFieldTypes()); return ResultVo.success(ImportTableUtil.getJavaFieldTypes());
} }
@ -274,6 +307,9 @@ public class GenTableRestController extends BaseRestController<GenTable, GenTabl
notes = "获得全部类型对应Java类型集合兜底String 类型)") notes = "获得全部类型对应Java类型集合兜底String 类型)")
@Override @Override
public ResultVo<Map<String, List<String>>> getJavaFieldTypesBySafety() { public ResultVo<Map<String, List<String>>> getJavaFieldTypesBySafety() {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
return ResultVo.success(ImportTableUtil.getJavaFieldTypesBySafety()); return ResultVo.success(ImportTableUtil.getJavaFieldTypesBySafety());
} }
} }

@ -119,14 +119,6 @@ public interface GenTemplateRestApi {
@PostMapping("/del") @PostMapping("/del")
ResultVo<?> del(String id); ResultVo<?> del(String id);
/**
*
* @param ids ID
* @return ResultVo
*/
@PostMapping("/delAll")
ResultVo<?> delAll(String ids);
/** /**
* Excel * Excel
* *

@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.opsli.common.constants.MyBatisConstants; import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.exception.ServiceException; import org.opsli.common.exception.ServiceException;
import org.opsli.common.utils.FieldUtil;
import org.opsli.common.utils.WrapperUtil; import org.opsli.common.utils.WrapperUtil;
import org.opsli.core.base.service.impl.CrudServiceImpl; import org.opsli.core.base.service.impl.CrudServiceImpl;
import org.opsli.core.msg.CoreMsg; import org.opsli.core.msg.CoreMsg;
@ -185,6 +186,16 @@ public class GenTemplateServiceImpl extends CrudServiceImpl<GenTemplateMapper, G
return false; return false;
} }
// 验证 是否允许删除
QueryWrapper<GenTemplate> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("table_type", base.getTableType());
queryWrapper.notIn(FieldUtil.humpToUnderline(MyBatisConstants.FIELD_ID), id);
int count = this.count(queryWrapper);
if(count == 0){
// 代码模板同一表类型下,至少保障有一个模板
throw new GeneratorException(GeneratorMsg.EXCEPTION_TEMPLATE_AT_LEAST_ONE);
}
iGenTemplateDetailService.delByParent(id); iGenTemplateDetailService.delByParent(id);
return super.delete(id); return super.delete(id);

@ -22,18 +22,25 @@ import cn.hutool.core.convert.Convert;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.annotation.RequiresPermissionsCus; import org.opsli.common.annotation.RequiresPermissionsCus;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.opsli.api.base.result.ResultVo; import org.opsli.api.base.result.ResultVo;
import org.opsli.common.annotation.ApiRestController; import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog; import org.opsli.common.annotation.EnableLog;
import org.opsli.common.exception.ServiceException;
import org.opsli.core.base.controller.BaseRestController; import org.opsli.core.base.controller.BaseRestController;
import org.opsli.core.msg.CoreMsg;
import org.opsli.core.persistence.Page; import org.opsli.core.persistence.Page;
import org.opsli.core.persistence.querybuilder.QueryBuilder; import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.persistence.querybuilder.WebQueryBuilder; import org.opsli.core.persistence.querybuilder.WebQueryBuilder;
import org.opsli.core.utils.UserUtil;
import org.opsli.modulars.generator.template.api.GenTemplateDetailRestApi; import org.opsli.modulars.generator.template.api.GenTemplateDetailRestApi;
import org.opsli.modulars.generator.template.wrapper.GenTemplateDetailModel; import org.opsli.modulars.generator.template.wrapper.GenTemplateDetailModel;
import org.opsli.plugins.generator.msg.GeneratorMsg;
import org.opsli.plugins.generator.utils.GenTemplateUtil; import org.opsli.plugins.generator.utils.GenTemplateUtil;
import org.opsli.plugins.generator.utils.GeneratorHandleUtil;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -67,6 +74,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@RequiresPermissions("generator_template_select") @RequiresPermissions("generator_template_select")
@Override @Override
public ResultVo<GenTemplateDetailModel> get(GenTemplateDetailModel model) { public ResultVo<GenTemplateDetailModel> get(GenTemplateDetailModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 如果系统内部调用 则直接查数据库 // 如果系统内部调用 则直接查数据库
if(model != null && model.getIzApi() != null && model.getIzApi()){ if(model != null && model.getIzApi() != null && model.getIzApi()){
model = IService.get(model); model = IService.get(model);
@ -87,6 +97,8 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@Override @Override
public ResultVo<?> findPage(Integer pageNo, Integer pageSize, HttpServletRequest request) { public ResultVo<?> findPage(Integer pageNo, Integer pageSize, HttpServletRequest request) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
QueryBuilder<GenTemplateDetail> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap()); QueryBuilder<GenTemplateDetail> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
Page<GenTemplateDetail, GenTemplateDetailModel> page = new Page<>(pageNo, pageSize); Page<GenTemplateDetail, GenTemplateDetailModel> page = new Page<>(pageNo, pageSize);
@ -106,6 +118,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> insert(GenTemplateDetailModel model) { public ResultVo<?> insert(GenTemplateDetailModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 调用新增方法 // 调用新增方法
IService.insert(model); IService.insert(model);
return ResultVo.success("新增代码模板详情成功"); return ResultVo.success("新增代码模板详情成功");
@ -121,6 +136,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> update(GenTemplateDetailModel model) { public ResultVo<?> update(GenTemplateDetailModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 调用修改方法 // 调用修改方法
IService.update(model); IService.update(model);
return ResultVo.success("修改代码模板详情成功"); return ResultVo.success("修改代码模板详情成功");
@ -137,6 +155,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> del(String id){ public ResultVo<?> del(String id){
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
IService.delete(id); IService.delete(id);
return ResultVo.success("删除代码模板详情成功"); return ResultVo.success("删除代码模板详情成功");
} }
@ -151,6 +172,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> delAll(String ids){ public ResultVo<?> delAll(String ids){
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
String[] idArray = Convert.toStrArray(ids); String[] idArray = Convert.toStrArray(ids);
IService.deleteAll(idArray); IService.deleteAll(idArray);
return ResultVo.success("批量删除代码模板详情成功"); return ResultVo.success("批量删除代码模板详情成功");
@ -176,6 +200,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@EnableLog @EnableLog
@Override @Override
public void exportExcel(HttpServletRequest request, HttpServletResponse response) { public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 当前方法 // 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel"); Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<GenTemplateDetail> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap()); QueryBuilder<GenTemplateDetail> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
@ -193,6 +220,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> importExcel(MultipartHttpServletRequest request) { public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
return super.importExcel(request); return super.importExcel(request);
} }
@ -205,6 +235,9 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@RequiresPermissionsCus("generator_template_import") @RequiresPermissionsCus("generator_template_import")
@Override @Override
public void importTemplate(HttpServletResponse response) { public void importTemplate(HttpServletResponse response) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 当前方法 // 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate"); Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(GenTemplateDetailRestApi.SUB_TITLE, response, method); super.importTemplate(GenTemplateDetailRestApi.SUB_TITLE, response, method);
@ -212,6 +245,10 @@ public class GenTemplateDetailRestController extends BaseRestController<GenTempl
@Override @Override
public ResultVo<List<GenTemplateDetailModel>> findListByParentId(String parentId) { public ResultVo<List<GenTemplateDetailModel>> findListByParentId(String parentId) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
return ResultVo.success(GenTemplateUtil.getTemplateDetailList(parentId)); return ResultVo.success(GenTemplateUtil.getTemplateDetailList(parentId));
} }
} }

@ -35,6 +35,7 @@ import org.opsli.modulars.generator.template.api.GenTemplateRestApi;
import org.opsli.modulars.generator.template.wrapper.GenTemplateAndDetailModel; import org.opsli.modulars.generator.template.wrapper.GenTemplateAndDetailModel;
import org.opsli.modulars.generator.template.wrapper.GenTemplateCopyModel; import org.opsli.modulars.generator.template.wrapper.GenTemplateCopyModel;
import org.opsli.modulars.generator.template.wrapper.GenTemplateModel; import org.opsli.modulars.generator.template.wrapper.GenTemplateModel;
import org.opsli.plugins.generator.utils.GeneratorHandleUtil;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -69,6 +70,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@RequiresPermissions("generator_template_select") @RequiresPermissions("generator_template_select")
@Override @Override
public ResultVo<GenTemplateModel> get(GenTemplateModel model) { public ResultVo<GenTemplateModel> get(GenTemplateModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 如果系统内部调用 则直接查数据库 // 如果系统内部调用 则直接查数据库
if(model != null && model.getIzApi() != null && model.getIzApi()){ if(model != null && model.getIzApi() != null && model.getIzApi()){
model = IService.get(model); model = IService.get(model);
@ -87,6 +91,8 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@RequiresPermissions("generator_template_select") @RequiresPermissions("generator_template_select")
@Override @Override
public ResultVo<?> findPage(Integer pageNo, Integer pageSize, HttpServletRequest request) { public ResultVo<?> findPage(Integer pageNo, Integer pageSize, HttpServletRequest request) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
QueryBuilder<GenTemplate> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap()); QueryBuilder<GenTemplate> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
Page<GenTemplate, GenTemplateModel> page = new Page<>(pageNo, pageSize); Page<GenTemplate, GenTemplateModel> page = new Page<>(pageNo, pageSize);
@ -106,6 +112,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> insert(GenTemplateModel model) { public ResultVo<?> insert(GenTemplateModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
super.demoError(); super.demoError();
@ -124,6 +133,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> insertAndDetail(GenTemplateAndDetailModel model) { public ResultVo<?> insertAndDetail(GenTemplateAndDetailModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
super.demoError(); super.demoError();
@ -142,6 +154,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> update(GenTemplateModel model) { public ResultVo<?> update(GenTemplateModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
super.demoError(); super.demoError();
@ -160,6 +175,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> updateAndDetail(GenTemplateAndDetailModel model) { public ResultVo<?> updateAndDetail(GenTemplateAndDetailModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
super.demoError(); super.demoError();
@ -178,6 +196,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> copy(GenTemplateCopyModel model) { public ResultVo<?> copy(GenTemplateCopyModel model) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 调用复制方法 // 调用复制方法
IService.copy(model); IService.copy(model);
return ResultVo.success("复制代码模板成功"); return ResultVo.success("复制代码模板成功");
@ -193,6 +214,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> del(String id){ public ResultVo<?> del(String id){
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 演示模式 不允许操作 // 演示模式 不允许操作
super.demoError(); super.demoError();
@ -200,25 +224,6 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
return ResultVo.success("删除代码模板成功"); return ResultVo.success("删除代码模板成功");
} }
/**
*
* @param ids ID
* @return ResultVo
*/
@ApiOperation(value = "批量删除代码模板数据", notes = "批量删除代码模板数据")
@RequiresPermissions("generator_template_update")
@EnableLog
@Override
public ResultVo<?> delAll(String ids){
// 演示模式 不允许操作
super.demoError();
String[] idArray = Convert.toStrArray(ids);
IService.deleteAll(idArray);
return ResultVo.success("批量删除代码模板成功");
}
/** /**
* Excel * Excel
* RequiresPermissionsCus * RequiresPermissionsCus
@ -238,6 +243,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public void exportExcel(HttpServletRequest request, HttpServletResponse response) { public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 当前方法 // 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel"); Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<GenTemplate> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap()); QueryBuilder<GenTemplate> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
@ -255,6 +263,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@EnableLog @EnableLog
@Override @Override
public ResultVo<?> importExcel(MultipartHttpServletRequest request) { public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
return super.importExcel(request); return super.importExcel(request);
} }
@ -267,6 +278,9 @@ public class GenTemplateRestController extends BaseRestController<GenTemplate, G
@RequiresPermissionsCus("generator_template_import") @RequiresPermissionsCus("generator_template_import")
@Override @Override
public void importTemplate(HttpServletResponse response) { public void importTemplate(HttpServletResponse response) {
// 判断代码生成器 是否启用
GeneratorHandleUtil.judgeGeneratorEnable(super.globalProperties);
// 当前方法 // 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate"); Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(GenTemplateRestApi.SUB_TITLE, response, method); super.importTemplate(GenTemplateRestApi.SUB_TITLE, response, method);

@ -62,13 +62,15 @@ public enum GeneratorMsg implements BaseMsg {
* *
*/ */
EXCEPTION_TEMPLATE_NAME_REPEAT(50150,"模板名称重复"), EXCEPTION_TEMPLATE_NAME_REPEAT(50150,"模板名称重复"),
EXCEPTION_TEMPLATE_COPY_NULL(50151,"暂无该模板"), EXCEPTION_TEMPLATE_AT_LEAST_ONE(50151,"代码模板同一表类型下,至少保障有一个模板"),
EXCEPTION_TEMPLATE_COPY_NULL(50152,"暂无该模板"),
/** /**
* *
*/ */
EXCEPTION_OTHER_NULL(50200,"暂无数据"), EXCEPTION_OTHER_NULL(50200,"暂无数据"),
EXCEPTION_NOT_ENABLE(50201,"代码生成器未启用"),
; ;

@ -22,13 +22,16 @@ import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.opsli.common.enums.DictType; import org.opsli.common.enums.DictType;
import org.opsli.common.enums.ValidatorType; import org.opsli.common.enums.ValidatorType;
import org.opsli.common.exception.ServiceException;
import org.opsli.common.utils.FieldUtil; import org.opsli.common.utils.FieldUtil;
import org.opsli.common.utils.ListDistinctUtil; import org.opsli.common.utils.ListDistinctUtil;
import org.opsli.core.autoconfigure.properties.GlobalProperties;
import org.opsli.modulars.generator.column.wrapper.GenTableColumnModel; import org.opsli.modulars.generator.column.wrapper.GenTableColumnModel;
import org.opsli.modulars.generator.importable.ImportTableUtil; import org.opsli.modulars.generator.importable.ImportTableUtil;
import org.opsli.modulars.generator.logs.wrapper.GenBuilderModel; import org.opsli.modulars.generator.logs.wrapper.GenBuilderModel;
import org.opsli.modulars.generator.table.wrapper.GenTableAndColumnModel; import org.opsli.modulars.generator.table.wrapper.GenTableAndColumnModel;
import org.opsli.plugins.generator.enums.JavaType; import org.opsli.plugins.generator.enums.JavaType;
import org.opsli.plugins.generator.msg.GeneratorMsg;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -172,6 +175,20 @@ public final class GeneratorHandleUtil {
return builderModel; return builderModel;
} }
/**
*
*
* @param globalProperties
*/
public static void judgeGeneratorEnable(GlobalProperties globalProperties){
// 代码生成器未启用
if(globalProperties.getGenerator() == null ||
!globalProperties.getGenerator().getEnable()){
// 代码生成器未启用
throw new ServiceException(GeneratorMsg.EXCEPTION_NOT_ENABLE);
}
}
// ================= // =================
private GeneratorHandleUtil(){} private GeneratorHandleUtil(){}

@ -72,6 +72,9 @@ knife4j:
opsli: opsli:
# 演示模式 # 演示模式
enable-demo: true enable-demo: true
# 代码生成器
generator:
enable: true
# web 上传文件路径 # web 上传文件路径
web: web:
upload-path: var/files upload-path: var/files

@ -77,6 +77,9 @@ knife4j:
opsli: opsli:
# 演示模式 # 演示模式
enable-demo: false enable-demo: false
# 代码生成器
generator:
enable: true
# web 上传文件路径 # web 上传文件路径
web: web:
upload-path: var/files upload-path: var/files

@ -77,6 +77,9 @@ knife4j:
opsli: opsli:
# 演示模式 # 演示模式
enable-demo: false enable-demo: false
# 代码生成器
generator:
enable: true
# web 上传文件路径 # web 上传文件路径
web: web:
upload-path: var/files upload-path: var/files

@ -72,6 +72,9 @@ knife4j:
opsli: opsli:
# 演示模式 # 演示模式
enable-demo: true enable-demo: true
# 代码生成器
generator:
enable: true
# web 上传文件路径 # web 上传文件路径
web: web:
upload-path: var/files upload-path: var/files

Loading…
Cancel
Save