Skip to content

Commit

Permalink
update: 优化细节,近一步少些代码
Browse files Browse the repository at this point in the history
  • Loading branch information
Wizzercn committed Apr 26, 2024
1 parent 1fccc44 commit 30be240
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 38 deletions.
2 changes: 1 addition & 1 deletion META-INF/plugin.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<idea-plugin>
<id>com.budwk.code</id>
<name>WkCodegenerator</name>
<version>8.0</version>
<version>8.1</version>
<vendor email="[email protected]" url="https://budwk.com">BudWk</vendor>

<description>BudWk MVC Java Code Generator IDEA Plugin</description>
Expand Down
2 changes: 1 addition & 1 deletion resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<idea-plugin>
<id>com.budwk.code</id>
<name>WkCodegenerator</name>
<version>8.0</version>
<version>8.1</version>
<vendor email="[email protected]" url="https://budwk.com">BudWk</vendor>

<description>BudWk MVC Java Code Generator IDEA Plugin</description>
Expand Down
21 changes: 12 additions & 9 deletions src/com/budwk/code/CodeGeneratorAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ public void actionPerformed(AnActionEvent e) {
CodeGeneratorUIDialog dialog = new CodeGeneratorUIDialog(fileName, basePackage, new CodeGeneratorUIDialog.DialogCallBack() {
@Override
public void ok(String author, String projectName, String basePackage, String commonPath, String serverPath,
boolean openapi, boolean replace) {
boolean openapi, boolean replace, String modelName) {
generator(fileName, projectName, author, basePackage, commonPath, serverPath,
openapi, replace);
openapi, replace, modelName);
}
});
dialog.setSize(400, 300);
Expand All @@ -46,19 +46,21 @@ public void ok(String author, String projectName, String basePackage, String com
}

public void generator(String fileName, String projectName, String author, String basePackage, String commonPath, String serverPath,
boolean openapi, boolean replace) {
boolean openapi, boolean replace,String modelTitle) {
fileName = fileName.substring(0, fileName.lastIndexOf("."));
// cms
String modelName = basePackage.substring(basePackage.lastIndexOf(".") + 1);
// article
String subName = fileName.toLowerCase(Locale.ROOT);
String subPath = fileName.toLowerCase(Locale.ROOT);
if (subName.contains("_")) {
subName = subName.substring(subName.indexOf("_") + 1).replaceAll("_", "");
subName = subName.substring(subName.indexOf("_") + 1).replaceAll("_", ".");
subPath = subPath.substring(subPath.indexOf("_") + 1).replaceAll("_", "/");
}
// cms.article
String permission = modelName + "." + subName;
// /platform/cms/article
String urlPath = "/" + subName;
String urlPath = "/" + subPath;
// com.budwk.app
String rootPackage = basePackage.substring(0, basePackage.lastIndexOf("."));
// com.budwk
Expand All @@ -72,19 +74,19 @@ public void generator(String fileName, String projectName, String author, String
try {
// service 接口类生成
content = readTemplateFile("service.txt");
content = dealTemplateContent(content, fileName, author, urlPath, modelName, basePackage, rootPackage, humpName, varName, permission);
content = dealTemplateContent(content, fileName, author, urlPath, modelName, basePackage, rootPackage, humpName, varName, permission, modelTitle);
writeToFile(content, getPath(projectName,serverPath, basePackage + ".services"), humpName + "Service.java", replace);
// service 实现类生成
content = readTemplateFile("service.impl.txt");
content = dealTemplateContent(content, fileName, author, urlPath, modelName, basePackage, rootPackage, humpName, varName, permission);
content = dealTemplateContent(content, fileName, author, urlPath, modelName, basePackage, rootPackage, humpName, varName, permission, modelTitle);
writeToFile(content, getPath(projectName,serverPath, basePackage + ".services.impl"), humpName + "ServiceImpl.java", replace);
// controller 控制类生成
if (openapi) {
content = readTemplateFile("controller.openapi.txt");
} else {
content = readTemplateFile("controller.txt");
}
content = dealTemplateContent(content, fileName, author, urlPath, modelName, basePackage, rootPackage, humpName, varName, permission);
content = dealTemplateContent(content, fileName, author, urlPath, modelName, basePackage, rootPackage, humpName, varName, permission, modelTitle);
writeToFile(content, getPath(projectName,serverPath, basePackage + ".controllers.admin"), humpName + "Controller.java", replace);
} catch (Exception e) {
Messages.showErrorDialog(project, e.getMessage(), "Error");
Expand Down Expand Up @@ -114,7 +116,7 @@ private void writeToFile(String content, String classPath, String className, boo
}

private String dealTemplateContent(String content, String fileName, String author, String urlPath, String modelName, String basePackage,
String rootPackage, String humpName, String varName, String permission) {
String rootPackage, String humpName, String varName, String permission,String modelTitle) {
content = content.replace("${fileName}", fileName);
content = content.replace("${author}", getAuthor(author));
content = content.replace("${urlPath}", urlPath);
Expand All @@ -124,6 +126,7 @@ private String dealTemplateContent(String content, String fileName, String autho
content = content.replace("${humpName}", humpName);
content = content.replace("${varName}", varName);
content = content.replace("${permission}", permission);
content = content.replace("${modelTitle}", modelTitle);
return content;
}

Expand Down
28 changes: 18 additions & 10 deletions src/com/budwk/code/template/controller.openapi.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import ${basePackage}.models.${fileName};
import ${basePackage}.services.${humpName}Service;
import ${rootPackage}.starter.common.openapi.annotation.*;
import ${rootPackage}.starter.common.openapi.enums.ParamIn;
import ${rootPackage}.starter.common.page.PageUtil;
import ${rootPackage}.starter.common.page.Pagination;
import ${rootPackage}.starter.common.result.Result;
import ${rootPackage}.starter.common.result.ResultCode;
Expand All @@ -14,15 +15,16 @@ import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Cnd;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
import org.nutz.mvc.annotation.*;

import javax.servlet.http.HttpServletRequest;

${author}
@IocBean
@At("/admin${urlPath}")
@SLog(tag = "${fileName}")
@ApiDefinition(tag = "${fileName}")
@SLog(tag = "${modelTitle}")
@ApiDefinition(tag = "${modelTitle}")
@Slf4j
public class ${humpName}Controller {
@Inject
Expand All @@ -45,18 +47,24 @@ public class ${humpName}Controller {
)
@SaCheckPermission("${permission}")
public Result<?> list(@Param("pageNo") int pageNo, @Param("pageSize") int pageSize, @Param("pageOrderName") String pageOrderName, @Param("pageOrderBy") String pageOrderBy) {
return Result.data(${varName}Service.listPage(pageNo, pageSize, Cnd.NEW().asc("location")));
Cnd cnd = Cnd.NEW();
if (Strings.isNotBlank(pageOrderName) && Strings.isNotBlank(pageOrderBy)) {
cnd.orderBy(pageOrderName, PageUtil.getOrder(pageOrderBy));
} else {
cnd.desc("createdAt");
}
return Result.data(${varName}Service.listPage(pageNo, pageSize, cnd));
}

@At
@Ok("json")
@POST
@ApiOperation(name = "新增${fileName}")
@ApiOperation(name = "新增${modelTitle}")
@ApiFormParams(
implementation = ${fileName}.class
)
@ApiResponses
@SLog("新增${fileName}:${${varName}.id}")
@SLog("新增${modelTitle}:${${varName}.name}")
@SaCheckPermission("${permission}.create")
public Result<?> create(@Param("..") ${fileName} ${varName}, HttpServletRequest req) {
${varName}.setCreatedBy(SecurityUtil.getUserId());
Expand All @@ -68,12 +76,12 @@ public class ${humpName}Controller {
@At
@Ok("json")
@POST
@ApiOperation(name = "修改${fileName}")
@ApiOperation(name = "修改${modelTitle}")
@ApiFormParams(
implementation = ${fileName}.class
)
@ApiResponses
@SLog("修改${fileName}:${${varName}.name}")
@SLog("修改${modelTitle}:${${varName}.name}")
@SaCheckPermission("${permission}.update")
public Result<?> update(@Param("..") ${fileName} ${varName}, HttpServletRequest req) {
${varName}.setUpdatedBy(SecurityUtil.getUserId());
Expand All @@ -84,7 +92,7 @@ public class ${humpName}Controller {
@At("/get/{id}")
@Ok("json")
@GET
@ApiOperation(name = "获取${fileName}")
@ApiOperation(name = "获取${modelTitle}")
@ApiImplicitParams(
{
@ApiImplicitParam(name = "id", in = ParamIn.PATH, required = true, check = true)
Expand All @@ -103,15 +111,15 @@ public class ${humpName}Controller {
@At("/delete")
@Ok("json")
@POST
@ApiOperation(name = "删除${fileName}")
@ApiOperation(name = "删除${modelTitle}")
@ApiFormParams(
{
@ApiFormParam(name = "id", required = true, check = true),
@ApiFormParam(name = "name")
}
)
@ApiResponses
@SLog("删除${fileName}:${name}")
@SLog("删除${modelTitle}:${name}")
@SaCheckPermission("${permission}.delete")
public Result<?> delete(@Param("id") String id, @Param("name") String name, HttpServletRequest req) {
${varName}Service.delete(id);
Expand Down
20 changes: 14 additions & 6 deletions src/com/budwk/code/template/controller.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import ${basePackage}.models.${fileName};
import ${basePackage}.services.${humpName}Service;
import com.osdiot.starter.common.openapi.annotation.ApiDefinition;
import ${rootPackage}.starter.common.page.PageUtil;
import ${rootPackage}.starter.common.result.Result;
import ${rootPackage}.starter.common.result.ResultCode;
import ${rootPackage}.starter.log.annotation.SLog;
Expand All @@ -12,15 +13,16 @@ import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Cnd;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
import org.nutz.mvc.annotation.*;

import javax.servlet.http.HttpServletRequest;

${author}
@IocBean
@At("/admin${urlPath}")
@SLog(tag = "${fileName}")
@ApiDefinition(tag = "${fileName}")
@SLog(tag = "${modelTitle}")
@ApiDefinition(tag = "${modelTitle}")
@Slf4j
public class ${humpName}Controller {
@Inject
Expand All @@ -31,13 +33,19 @@ public class ${humpName}Controller {
@POST
@SaCheckPermission("${permission}")
public Result<?> list(@Param("pageNo") int pageNo, @Param("pageSize") int pageSize, @Param("pageOrderName") String pageOrderName, @Param("pageOrderBy") String pageOrderBy) {
return Result.data(${varName}Service.listPage(pageNo, pageSize, Cnd.NEW().asc("location")));
Cnd cnd = Cnd.NEW();
if (Strings.isNotBlank(pageOrderName) && Strings.isNotBlank(pageOrderBy)) {
cnd.orderBy(pageOrderName, PageUtil.getOrder(pageOrderBy));
} else {
cnd.desc("createdAt");
}
return Result.data(${varName}Service.listPage(pageNo, pageSize, cnd));
}

@At
@Ok("json")
@POST
@SLog("新增${fileName}:${${varName}.id}")
@SLog("新增${modelTitle}:${${varName}.name}")
@SaCheckPermission("${permission}.create")
public Result<?> create(@Param("..") ${fileName} ${varName}, HttpServletRequest req) {
${varName}.setCreatedBy(SecurityUtil.getUserId());
Expand All @@ -49,7 +57,7 @@ public class ${humpName}Controller {
@At
@Ok("json")
@POST
@SLog("修改${fileName}:${${varName}.name}")
@SLog("修改${modelTitle}:${${varName}.name}")
@SaCheckPermission("${permission}.update")
public Result<?> update(@Param("..") ${fileName} ${varName}, HttpServletRequest req) {
${varName}.setUpdatedBy(SecurityUtil.getUserId());
Expand All @@ -72,7 +80,7 @@ public class ${humpName}Controller {
@At("/delete")
@Ok("json")
@POST
@SLog("删除${fileName}:${name}")
@SLog("删除${modelTitle}:${name}")
@SaCheckPermission("${permission}.delete")
public Result<?> delete(@Param("id") String id, @Param("name") String name, HttpServletRequest req) {
${varName}Service.delete(id);
Expand Down
34 changes: 25 additions & 9 deletions src/com/budwk/code/ui/CodeGeneratorUIDialog.form
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
</component>
</children>
</grid>
<grid id="e3588" layout-manager="GridLayoutManager" row-count="5" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="e3588" layout-manager="GridLayoutManager" row-count="6" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
Expand All @@ -86,15 +86,15 @@
</component>
<component id="2601a" class="javax.swing.JTextField" binding="tf_basePackage">
<constraints>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
<component id="59409" class="javax.swing.JTextField" binding="tf_serverPath">
<constraints>
<grid row="4" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<grid row="5" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
Expand All @@ -104,52 +104,68 @@
</component>
<component id="a67b4" class="javax.swing.JTextField" binding="tf_commonPath">
<constraints>
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<grid row="4" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
<component id="60aec" class="javax.swing.JLabel">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Base Package"/>
</properties>
</component>
<component id="52b2d" class="javax.swing.JLabel">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Common Path"/>
</properties>
</component>
<component id="b730b" class="javax.swing.JLabel">
<constraints>
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Server Path"/>
</properties>
</component>
<component id="72b5b" class="javax.swing.JTextField" binding="tf_projectName">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
<component id="be2b2" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Project Prefix"/>
</properties>
</component>
<component id="665b4" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Model Name"/>
</properties>
</component>
<component id="50b6b" class="javax.swing.JTextField" binding="tf_modelName">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
</children>
</grid>
</children>
Expand Down
6 changes: 4 additions & 2 deletions src/com/budwk/code/ui/CodeGeneratorUIDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public class CodeGeneratorUIDialog extends JDialog {
private JButton buttonOK;
private JButton buttonCancel;
private JTextField tf_author;
private JTextField tf_modelName;
private JTextField tf_basePackage;
private JTextField tf_commonPath;
private JTextField tf_serverPath;
Expand All @@ -28,6 +29,7 @@ public CodeGeneratorUIDialog(String fileName, String basePackage, DialogCallBack
modelName = basePackage.substring(basePackage.lastIndexOf(".") + 1);
this.projectName = modelName;
this.tf_projectName.setText(projectName);
this.tf_modelName.setText(projectName);
this.setText();
this.setViews(fileName);
}
Expand Down Expand Up @@ -110,7 +112,7 @@ private void onOK() {
}
dialogCallBack.ok(tf_author.getText().trim(), tf_projectName.getText().trim(), tf_basePackage.getText().trim(),
tf_commonPath.getText().trim(),
tf_serverPath.getText().trim(), oepnapiCheckBox.isSelected(), replaceCheckBox.isSelected());
tf_serverPath.getText().trim(), oepnapiCheckBox.isSelected(), replaceCheckBox.isSelected(), tf_modelName.getText().trim());
dispose();
}

Expand All @@ -120,6 +122,6 @@ private void onCancel() {

public interface DialogCallBack {
void ok(String author, String projectName, String basePackage, String commonPath, String serverPath,
boolean openapi, boolean replace);
boolean openapi, boolean replace,String modelName);
}
}

0 comments on commit 30be240

Please sign in to comment.