springBoot 代码生成基础配置生成返回预览 /codeGenerate/runFileContent

pull/31/head
euleryang 2022-02-13 10:52:36 +08:00
parent 820f17dd6b
commit c7e0309a4e
4 changed files with 124 additions and 0 deletions

View File

@ -157,4 +157,24 @@ public class CodeGenerateController {
}
this.codeGenerateService.runDown(codeGenerateParam, response);
}
/**
*
*
* @author Sam
* @date 2022-02-11 01:55:48
*/
@Permission
@GetMapping("/codeGenerate/runFileContent")
@BusinessLog(title = "代码生成_返回预览", opType = LogAnnotionOpTypeEnum.QUERY)
public ResponseData runFileContent(@Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam) {
// 演示环境开启,则不允许操作
if (ConstantContextHolder.getDemoEnvFlag()) {
throw new DemoException();
}
return ResponseData.success(this.codeGenerateService.runFileContent(codeGenerateParam));
}
}

View File

@ -0,0 +1,57 @@
/*
Copyright [2020] [https://www.xiaonuo.vip]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SnowyAPACHE LICENSE 2.0使
1.LICENSE
2.Snowy
3.
4. https://gitee.com/xiaonuobase/snowy
5. https://gitee.com/xiaonuobase/snowy
6.Snowy https://www.xiaonuo.vip
*/
package vip.xiaonuo.generate.modular.result;
import lombok.Data;
/**
*
*
* @author Sam
* @datetime 2022020720:01:56
*/
@Data
public class FileContentResult {
/**
*
*/
public String fileName;
/**
*
*/
public String fileContent;
public FileContentResult() {
}
public FileContentResult(String name, String content) {
fileName = name;
fileContent = content;
}
}

View File

@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import vip.xiaonuo.core.pojo.page.PageResult;
import vip.xiaonuo.generate.modular.entity.CodeGenerate;
import vip.xiaonuo.generate.modular.param.CodeGenerateParam;
import vip.xiaonuo.generate.modular.result.FileContentResult;
import vip.xiaonuo.generate.modular.result.InformationResult;
import javax.servlet.http.HttpServletResponse;
@ -104,4 +105,12 @@ public interface CodeGenerateService extends IService<CodeGenerate> {
* @date 2020121621:03:15
*/
void runDown(CodeGenerateParam codeGenerateParam, HttpServletResponse response);
/**
*
*
* @author Sam
* @datetime 2022020720:01:56
*/
List<FileContentResult> runFileContent(CodeGenerateParam codeGenerateParam);
}

View File

@ -49,6 +49,7 @@ import vip.xiaonuo.generate.modular.enums.CodeGenerateExceptionEnum;
import vip.xiaonuo.generate.modular.mapper.CodeGenerateMapper;
import vip.xiaonuo.generate.modular.param.CodeGenerateParam;
import vip.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam;
import vip.xiaonuo.generate.modular.result.FileContentResult;
import vip.xiaonuo.generate.modular.result.InforMationColumnsResult;
import vip.xiaonuo.generate.modular.result.InformationResult;
import vip.xiaonuo.generate.modular.service.CodeGenerateService;
@ -57,6 +58,7 @@ import vip.xiaonuo.generate.modular.service.SysCodeGenerateConfigService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@ -180,6 +182,12 @@ public class CodeGenerateServiceImpl extends ServiceImpl<CodeGenerateMapper, Cod
downloadCode(xnCodeGenParam, response);
}
@Override
public List<FileContentResult> runFileContent(CodeGenerateParam codeGenerateParam) {
XnCodeGenParam xnCodeGenParam = copyParams(codeGenerateParam);
return fileContentCode(xnCodeGenParam);
}
/**
*
*
@ -216,6 +224,36 @@ public class CodeGenerateServiceImpl extends ServiceImpl<CodeGenerateMapper, Cod
}
}
/**
*
*
* @author yubaoshan
* @date 20201223 0032
*/
private List<FileContentResult> fileContentCode(XnCodeGenParam xnCodeGenParam) {
Util.initVelocity();
XnVelocityContext context = new XnVelocityContext();
List<FileContentResult> reList = new ArrayList<>();
String[] filePath = GenConstant.xnCodeGenFilePath(xnCodeGenParam.getBusName(), xnCodeGenParam.getPackageName());
for (int a = 0; a < filePath.length; a++) {
String templateName = GenConstant.xnCodeGenTempFile[a];
String fileBaseName = ResetFileBaseName(xnCodeGenParam.getClassName(),
templateName.substring(templateName.indexOf(GenConstant.FILE_SEP) + 1, templateName.lastIndexOf(TEMP_SUFFIX)));
VelocityContext velContext = context.createVelContext(xnCodeGenParam);
String tempName = GenConstant.templatePath + templateName;
StringWriter sw = new StringWriter();
Template tpl = Velocity.getTemplate(tempName, ENCODED);
tpl.merge(velContext, sw);
FileContentResult fcResult = new FileContentResult(fileBaseName, sw.toString());
reList.add(fcResult);
}
return reList;
}
/**
*
*