Commit 062d16bb by naan1993

代码生成重写

parent 76fe65ce
......@@ -9,7 +9,7 @@ import com.stylefeng.guns.common.persistence.model.Test;
* </p>
*
* @author stylefeng
* @since 2017-07-11
* @since 2017-12-09
*/
public interface TestMapper extends BaseMapper<Test> {
......
......@@ -8,4 +8,9 @@
<result column="value" property="value" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, value
</sql>
</mapper>
package com.stylefeng.guns.common.persistence.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
......@@ -10,8 +11,9 @@ import java.io.Serializable;
* </p>
*
* @author stylefeng
* @since 2017-07-11
* @since 2017-12-09
*/
@TableName("test")
public class Test extends Model<Test> {
private static final long serialVersionUID = 1L;
......
<% for(menu in sqls.menus!){ %>
INSERT INTO `guns`.`menu` (`code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('${menu.code}', '${menu.pcode}', '${menu.pcodes}', '${menu.name}', '${menu.icon}', '${menu.url}', '${menu.num}', '${menu.levels}', '${menu.ismenu}', NULL, '${menu.status}', '${menu.isopen}');
<% } %>
\ No newline at end of file
......@@ -36,9 +36,9 @@ public class GunsGeneratorConfig extends AbstractGeneratorConfig {
protected void packageConfig() {
packageConfig.setParent(null);
packageConfig.setEntity("com.stylefeng.guns.admin.modular.system.persistence.model");
packageConfig.setMapper("com.stylefeng.guns.admin.modular.system.persistence.dao");
packageConfig.setXml("com.stylefeng.guns.admin.modular.system.persistence.dao.mapping");
packageConfig.setEntity("com.stylefeng.guns.admin.common.persistence.model");
packageConfig.setMapper("com.stylefeng.guns.admin.common.persistence.dao");
packageConfig.setXml("com.stylefeng.guns.admin.common.persistence.dao.mapping");
}
protected void contextConfig() {
......
......@@ -55,9 +55,9 @@ public class WebGeneratorConfig extends AbstractGeneratorConfig {
strategyConfig.setInclude(new String[]{genQo.getTableName()});
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
packageConfig.setParent(null);
packageConfig.setEntity(genQo.getProjectPackage() + ".modular.system.persistence.model");
packageConfig.setMapper(genQo.getProjectPackage() + ".modular.system.persistence.dao");
packageConfig.setXml(genQo.getProjectPackage() + ".modular.system.persistence.dao.mapping");
packageConfig.setEntity(genQo.getProjectPackage() + ".common.persistence.model");
packageConfig.setMapper(genQo.getProjectPackage() + ".common.persistence.dao");
packageConfig.setXml(genQo.getProjectPackage() + ".common.persistence.dao.mapping");
/**
* 业务代码配置
......@@ -67,7 +67,7 @@ public class WebGeneratorConfig extends AbstractGeneratorConfig {
contextConfig.setProjectPath(genQo.getProjectPath());//写自己项目的绝对路径
if(ToolUtil.isEmpty(genQo.getIgnoreTabelPrefix())){
String entityName = StrKit.toCamelCase(genQo.getTableName());
contextConfig.setEntityName(entityName);
contextConfig.setEntityName(StrKit.firstCharToUpperCase(entityName));
contextConfig.setBizEnName(StrKit.firstCharToLowerCase(entityName));
}else{
String entiyName = StrKit.toCamelCase(StrKit.removePrefix(genQo.getTableName(), genQo.getIgnoreTabelPrefix()));
......
......@@ -50,7 +50,7 @@ public abstract class GunsTemplateEngine extends AbstractTemplateEngine {
template.binding("dao", super.daoConfig);
template.binding("service", super.serviceConfig);
template.binding("sqls", super.sqlConfig);
template.binding("table",super.tableInfo);
template.binding("table", super.tableInfo);
}
protected void generateFile(String template, String filePath) {
......@@ -66,10 +66,18 @@ public abstract class GunsTemplateEngine extends AbstractTemplateEngine {
if (!parentFile.exists()) {
parentFile.mkdirs();
}
FileOutputStream fileOutputStream = null;
try {
pageTemplate.renderTo(new FileOutputStream(file));
fileOutputStream = new FileOutputStream(file);
pageTemplate.renderTo(fileOutputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
......
......@@ -11,7 +11,7 @@ import com.stylefeng.guns.core.util.ToolUtil;
*/
public class ContextConfig {
private String templatePrefixPath = "template/advanced";
private String templatePrefixPath = "gunsTemplate/advanced";
private String projectPath = "D:\\ideaSpace\\adi";//模板输出的项目目录
private String bizChName; //业务名称
private String bizEnName; //业务英文名称
......@@ -20,8 +20,8 @@ public class ContextConfig {
private String proPackage = "com.stylefeng.guns.admin";
private String coreBasePackage = "com.stylefeng.guns.core";
private String modelPackageName = "com.stylefeng.guns.admin.modular.system.persistence.model"; //model的包名
private String modelMapperPackageName = "com.stylefeng.guns.admin.modular.system.persistence.dao"; //model的dao
private String modelPackageName = "com.stylefeng.guns.admin.common.persistence.model"; //model的包名
private String modelMapperPackageName = "com.stylefeng.guns.admin.common.persistence.dao"; //model的dao
private String entityName; //实体的名称
private Boolean controllerSwitch = true; //是否生成控制器代码开关
......@@ -39,8 +39,8 @@ public class ContextConfig {
if (entityName == null) {
entityName = bizEnBigName;
}
modelPackageName = proPackage + "." + "modular.system.persistence.model";
modelMapperPackageName = proPackage + "." + "modular.system.persistence.dao";
modelPackageName = proPackage + "." + "common.persistence.model";
modelMapperPackageName = proPackage + "." + "common.persistence.dao";
}
public String getBizEnBigName() {
......
package com.stylefeng.guns.generator.engine.config;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 资源
* 菜单
* </p>
*
* @author fengshuonan
* @since 2017-11-23
* @author stylefeng
* @since 2017-07-11
*/
@TableName("adi_uc_permission")
public class Permission extends Model<Permission> {
public class Menu extends Model<Menu> {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Long id;
/**
* 权限的标识
* 主键id
*/
private String code;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 父id
* 菜单编号
*/
private Long pid;
private String code;
/**
* 父id的集合
* 菜单父编号
*/
private String pids;
private String pcode;
/**
* 权限名称
* 当前菜单的所有父菜单编号
*/
private String name;
private String pcodes;
/**
* 权限请求路径
* 菜单名称
*/
private String url;
private String name;
/**
* 菜单标识: Y-是菜单, N-不是
* 菜单图标
*/
@TableField("menu_flag")
private String menuFlag;
private String icon;
/**
* 图标
* url地址
*/
private String icon;
private String url;
/**
* 菜单层级
*/
private Integer level;
/**
* 排序
* 菜单排序号
*/
private Integer sort;
private Integer num;
/**
* 创建时间
* 菜单层级
*/
@TableField("create_time")
private Date createTime;
private Integer levels;
/**
* 修改时间
* 是否是菜单(1:是 0:不是)
*/
@TableField("update_time")
private Date updateTime;
private Integer ismenu;
/**
* 是否可用:Y-可用;N-不可用
* 备注
*/
private String status;
private String tips;
/**
* 是否删除: Y-已删除; N-未删除
* 菜单状态 : 1:启用 0:不启用
*/
@TableField("del_flag")
private String delFlag;
private Integer status;
/**
* 菜单是否打开的标识: Y-打开, N-不打开
* 是否打开: 1:打开 0:不打开
*/
@TableField("open_flag")
private String openFlag;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
private Integer isopen;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Long getId() {
return id;
}
public Long getPid() {
return pid;
}
public void setId(Long id) {
this.id = id;
}
public void setPid(Long pid) {
this.pid = pid;
}
public String getCode() {
return code;
}
public String getPids() {
return pids;
}
public void setCode(String code) {
this.code = code;
}
public void setPids(String pids) {
this.pids = pids;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMenuFlag() {
return menuFlag;
}
public void setMenuFlag(String menuFlag) {
this.menuFlag = menuFlag;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDelFlag() {
return delFlag;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public String getOpenFlag() {
return openFlag;
}
public void setOpenFlag(String openFlag) {
this.openFlag = openFlag;
}
@Override
protected Serializable pkVal() {
return this.id;
}
@Override
public String toString() {
return "Permission{" +
"permId=" + id +
", code=" + code +
", pid=" + pid +
", pids=" + pids +
", name=" + name +
", url=" + url +
", menuFlag=" + menuFlag +
", icon=" + icon +
", level=" + level +
", sort=" + sort +
", createTime=" + createTime +
", updateTime=" + updateTime +
", status=" + status +
", delFlag=" + delFlag +
", openFlag=" + openFlag +
"}";
}
public String getPcode() {
return pcode;
}
public void setPcode(String pcode) {
this.pcode = pcode;
}
public String getPcodes() {
return pcodes;
}
public void setPcodes(String pcodes) {
this.pcodes = pcodes;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
public Integer getLevels() {
return levels;
}
public void setLevels(Integer levels) {
this.levels = levels;
}
public Integer getIsmenu() {
return ismenu;
}
public void setIsmenu(Integer ismenu) {
this.ismenu = ismenu;
}
public String getTips() {
return tips;
}
public void setTips(String tips) {
this.tips = tips;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getIsopen() {
return isopen;
}
public void setIsopen(Integer isopen) {
this.isopen = isopen;
}
@Override
protected Serializable pkVal() {
return this.id;
}
@Override
public String toString() {
return "Menu{" +
"id=" + id +
", code=" + code +
", pcode=" + pcode +
", pcodes=" + pcodes +
", name=" + name +
", icon=" + icon +
", url=" + url +
", num=" + num +
", levels=" + levels +
", ismenu=" + ismenu +
", tips=" + tips +
", status=" + status +
", isopen=" + isopen +
"}";
}
}
package com.stylefeng.guns.generator.engine.config;
import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.stylefeng.guns.core.constant.IsMenu;
import com.stylefeng.guns.core.util.ToolUtil;
import java.sql.Connection;
......@@ -26,14 +27,14 @@ public class SqlConfig {
private String parentMenuName;
private List<Permission> menus = new ArrayList<>(6);
private List<Menu> menus = new ArrayList<>(6);
public void init() {
this.sqlPathTemplate = "\\src\\main\\java\\{}.sql";
if(parentMenuName == null){
return ;
if (parentMenuName == null) {
return;
}
//根据父菜单查询数据库中的pcode和pcodes
......@@ -44,80 +45,80 @@ public class SqlConfig {
}
//业务菜单
Permission menu = new Permission();
Menu menu = new Menu();
menu.setId(IdWorker.getId());
menu.setCode(contextConfig.getBizEnName());
menu.setPid(Long.valueOf(pcodeAndPcodes[0]));
menu.setPids(pcodeAndPcodes[1] + "[" + pcodeAndPcodes[0] + "],");
menu.setPcode(pcodeAndPcodes[0]);
menu.setPcodes(pcodeAndPcodes[1] + "[" + pcodeAndPcodes[0] + "],");
menu.setName(contextConfig.getBizChName());
menu.setIcon("");
menu.setUrl("/" + contextConfig.getBizEnName());
menu.setSort(99);
menu.setLevel(2);
menu.setMenuFlag("Y");
menu.setStatus("Y");
menu.setOpenFlag("N");
menu.setNum(99);
menu.setLevels(2);
menu.setIsmenu(IsMenu.YES.getCode());
menu.setStatus(1);
menu.setIsopen(0);
menus.add(menu);
//列表
Permission list = createSubMenu(menu);
Menu list = createSubMenu(menu);
list.setCode(contextConfig.getBizEnName() + "_list");
list.setName(contextConfig.getBizChName() + "列表");
list.setUrl("/" + contextConfig.getBizEnName() + "/list");
menus.add(list);
//添加
Permission add = createSubMenu(menu);
Menu add = createSubMenu(menu);
add.setCode(contextConfig.getBizEnName() + "_add");
add.setName(contextConfig.getBizChName() + "添加");
add.setUrl("/" + contextConfig.getBizEnName() + "/add");
menus.add(add);
//更新
Permission update = createSubMenu(menu);
Menu update = createSubMenu(menu);
update.setCode(contextConfig.getBizEnName() + "_update");
update.setName(contextConfig.getBizChName() + "更新");
update.setUrl("/" + contextConfig.getBizEnName() + "/update");
menus.add(update);
//删除
Permission delete = createSubMenu(menu);
Menu delete = createSubMenu(menu);
delete.setCode(contextConfig.getBizEnName() + "_delete");
delete.setName(contextConfig.getBizChName() + "删除");
delete.setUrl("/" + contextConfig.getBizEnName() + "/delete");
menus.add(delete);
//详情
Permission detail = createSubMenu(menu);
Menu detail = createSubMenu(menu);
detail.setCode(contextConfig.getBizEnName() + "_detail");
detail.setName(contextConfig.getBizChName() + "详情");
detail.setUrl("/" + contextConfig.getBizEnName() + "/detail");
menus.add(detail);
}
private Permission createSubMenu(Permission parentMenu) {
Permission permission = new Permission();
permission.setId(IdWorker.getId());
permission.setPid(parentMenu.getId());
permission.setPids(parentMenu.getPids() + "[" + parentMenu.getId() + "],");
permission.setIcon("");
permission.setSort(99);
permission.setLevel(3);
permission.setMenuFlag("N");
permission.setStatus("Y");
permission.setOpenFlag("N");
return permission;
private Menu createSubMenu(Menu parentMenu) {
Menu menu = new Menu();
menu.setId(IdWorker.getId());
menu.setPcode(parentMenu.getCode());
menu.setPcodes(parentMenu.getPcodes() + "[" + parentMenu.getId() + "],");
menu.setIcon("");
menu.setNum(99);
menu.setLevels(3);
menu.setIsmenu(IsMenu.NO.getCode());
menu.setStatus(1);
menu.setIsopen(0);
return menu;
}
public String[] getPcodeAndPcodes() {
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection.prepareStatement("select * from adi_uc_permission where name like ?");
preparedStatement = connection.prepareStatement("select * from menu where name like ?");
preparedStatement.setString(1, "%" + parentMenuName + "%");
ResultSet results = preparedStatement.executeQuery();
while (results.next()) {
String pcode = String.valueOf(results.getLong("id"));
String pcodes = results.getString("pids");
String pcodes = results.getString("pcodes");
if (ToolUtil.isNotEmpty(pcode) && ToolUtil.isNotEmpty(pcodes)) {
String[] strings = {pcode, pcodes};
return strings;
......@@ -175,11 +176,11 @@ public class SqlConfig {
this.sqlPathTemplate = sqlPathTemplate;
}
public List<Permission> getMenus() {
public List<Menu> getMenus() {
return menus;
}
public void setMenus(List<Permission> menus) {
public void setMenus(List<Menu> menus) {
this.menus = menus;
}
}
<% for(menu in sqls.menus!){ %>
INSERT INTO `guns`.`menu` (`id`, `code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('${menu.id}', '${menu.code}', '${menu.pcode}', '${menu.pcodes}', '${menu.name}', '${menu.icon}', '${menu.url}', '${menu.num}', '${menu.levels}', '${menu.ismenu}', NULL, '${menu.status}', '${menu.isopen}');
<% } %>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment