Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
guns-vip
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenjunxiong
guns-vip
Commits
76fe65ce
Commit
76fe65ce
authored
Dec 09, 2017
by
naan1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码生成重写
parent
57103bf1
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
1236 additions
and
195 deletions
+1236
-195
guns-admin/pom.xml
+4
-1
guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java
+59
-0
guns-admin/src/main/java/com/stylefeng/guns/modular/code/factory/DefaultTemplateFactory.java
+61
-0
guns-admin/src/main/java/com/stylefeng/guns/modular/code/service/TableService.java
+29
-0
guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/CodeController.java
+0
-68
guns-admin/src/main/resources/application.yml
+1
-0
guns-admin/src/main/webapp/WEB-INF/view/code/code.html
+101
-0
guns-admin/src/main/webapp/static/js/common/Feng.js
+8
-0
guns-admin/src/main/webapp/static/js/common/select-list-object.js
+37
-0
guns-admin/src/main/webapp/static/modular/code/gen.js
+94
-0
guns-core/src/main/java/com/stylefeng/guns/core/CoreFlag.java
+12
-0
guns-core/src/main/java/com/stylefeng/guns/core/util/ToolUtil.java
+21
-0
guns-generator/pom.xml
+31
-0
guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java
+7
-5
guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java
+17
-29
guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java
+32
-27
guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java
+97
-0
guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java
+297
-0
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java
+3
-2
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java
+2
-2
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java
+2
-2
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java
+26
-5
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java
+7
-6
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java
+4
-4
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java
+1
-1
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Permission.java
+234
-0
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java
+6
-6
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java
+38
-37
guns-parent/pom.xml
+5
-0
No files found.
guns-admin/pom.xml
View file @
76fe65ce
...
@@ -9,7 +9,6 @@
...
@@ -9,7 +9,6 @@
<relativePath>
../guns-parent/pom.xml
</relativePath>
<relativePath>
../guns-parent/pom.xml
</relativePath>
</parent>
</parent>
<groupId>
com.stylefeng
</groupId>
<artifactId>
guns-admin
</artifactId>
<artifactId>
guns-admin
</artifactId>
<version>
1.0.0-SNAPSHOT
</version>
<version>
1.0.0-SNAPSHOT
</version>
...
@@ -40,6 +39,10 @@
...
@@ -40,6 +39,10 @@
<groupId>
com.stylefeng
</groupId>
<groupId>
com.stylefeng
</groupId>
<artifactId>
guns-core
</artifactId>
<artifactId>
guns-core
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.stylefeng.guns
</groupId>
<artifactId>
guns-generator
</artifactId>
</dependency>
<!--spring boot依赖-->
<!--spring boot依赖-->
<dependency>
<dependency>
...
...
guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java
0 → 100644
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
modular
.
code
.
controller
;
import
com.stylefeng.guns.core.base.controller.BaseController
;
import
com.stylefeng.guns.core.datasource.DruidProperties
;
import
com.stylefeng.guns.generator.action.config.WebGeneratorConfig
;
import
com.stylefeng.guns.generator.action.model.GenQo
;
import
com.stylefeng.guns.modular.code.factory.DefaultTemplateFactory
;
import
com.stylefeng.guns.modular.code.service.TableService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 代码生成控制器
*
* @author fengshuonan
* @Date 2017年11月30日16:39:19
*/
@Controller
@RequestMapping
(
"/code"
)
public
class
CodeController
extends
BaseController
{
private
static
String
PREFIX
=
"/code"
;
@Autowired
private
TableService
tableService
;
@Autowired
private
DruidProperties
druidProperties
;
/**
* 跳转到代码生成主页
*/
@RequestMapping
(
""
)
public
String
blackboard
(
Model
model
)
{
model
.
addAttribute
(
"tables"
,
tableService
.
getAllTables
());
model
.
addAttribute
(
"params"
,
DefaultTemplateFactory
.
getDefaultParams
());
model
.
addAttribute
(
"templates"
,
DefaultTemplateFactory
.
getDefaultTemplates
());
return
PREFIX
+
"/code.html"
;
}
/**
* 生成代码
*/
@RequestMapping
(
"/generate"
)
@ResponseBody
public
Object
generate
(
GenQo
genQo
){
genQo
.
setUrl
(
druidProperties
.
getUrl
());
genQo
.
setUserName
(
druidProperties
.
getUsername
());
genQo
.
setPassword
(
druidProperties
.
getPassword
());
WebGeneratorConfig
webGeneratorConfig
=
new
WebGeneratorConfig
(
genQo
);
webGeneratorConfig
.
doMpGeneration
();
webGeneratorConfig
.
doAdiGeneration
();
return
SUCCESS_TIP
;
}
}
guns-admin/src/main/java/com/stylefeng/guns/modular/code/factory/DefaultTemplateFactory.java
0 → 100644
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
modular
.
code
.
factory
;
import
com.stylefeng.guns.GunsApplication
;
import
com.stylefeng.guns.core.CoreFlag
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.generator.action.model.GenQo
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 模板种类构建器
*
* @author fengshuonan
* @date 2017-12-04-下午2:59
*/
public
class
DefaultTemplateFactory
{
/**
* 获取所有的模板种类
*/
public
static
List
<
Map
<
String
,
Object
>>
getDefaultTemplates
(){
ArrayList
<
Map
<
String
,
Object
>>
templates
=
new
ArrayList
<>();
templates
.
add
(
create
(
"controllerSwitch"
,
"controller-控制器模板"
));
templates
.
add
(
create
(
"entitySwitch"
,
"entity-实体模板"
));
templates
.
add
(
create
(
"serviceSwitch"
,
"service-service模板"
));
templates
.
add
(
create
(
"daoSwitch"
,
"dao-dao模板"
));
templates
.
add
(
create
(
"indexPageSwitch"
,
"indexPage-首页模板"
));
templates
.
add
(
create
(
"addPageSwitch"
,
"addPage-添加页面模板"
));
templates
.
add
(
create
(
"editPageSwitch"
,
"editPage-编辑页面模板"
));
templates
.
add
(
create
(
"jsSwitch"
,
"indexJs-主页js模板"
));
templates
.
add
(
create
(
"infoJsSwitch"
,
"infoJs-详情页js模板"
));
templates
.
add
(
create
(
"sqlSwitch"
,
"sql-sql语句模板"
));
return
templates
;
}
/**
* 获取默认的参数
*/
public
static
GenQo
getDefaultParams
(){
GenQo
genQo
=
new
GenQo
();
genQo
.
setProjectPath
(
ToolUtil
.
getWebRootPath
(
null
));
genQo
.
setAuthor
(
"stylefeng"
);
genQo
.
setProjectPackage
(
GunsApplication
.
class
.
getPackage
().
getName
());
genQo
.
setCorePackage
(
CoreFlag
.
class
.
getPackage
().
getName
());
genQo
.
setIgnoreTabelPrefix
(
""
);
genQo
.
setModuleName
(
"system"
);
genQo
.
setParentMenuName
(
"系统管理"
);
return
genQo
;
}
private
static
Map
<
String
,
Object
>
create
(
String
key
,
String
desc
){
HashMap
<
String
,
Object
>
template
=
new
HashMap
<>();
template
.
put
(
"key"
,
key
);
template
.
put
(
"desc"
,
desc
);
return
template
;
}
}
guns-admin/src/main/java/com/stylefeng/guns/modular/code/service/TableService.java
0 → 100644
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
modular
.
code
.
service
;
import
com.baomidou.mybatisplus.mapper.SqlRunner
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
/**
* 获取数据库所有的表
*
* @author fengshuonan
* @date 2017-12-04-下午1:37
*/
@Service
public
class
TableService
{
@Value
(
"${spring.datasource.db-name}"
)
private
String
dbName
;
/**
* 获取当前数据库所有的表信息
*/
public
List
<
Map
<
String
,
Object
>>
getAllTables
()
{
String
sql
=
"select TABLE_NAME as tableName,TABLE_COMMENT as tableComment from information_schema.`TABLES` where TABLE_SCHEMA = '"
+
dbName
+
"'"
;
return
SqlRunner
.
db
().
selectList
(
sql
);
}
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/CodeController.java
deleted
100644 → 0
View file @
57103bf1
package
com
.
stylefeng
.
guns
.
modular
.
system
.
controller
;
import
com.stylefeng.guns.common.annotion.Permission
;
import
com.stylefeng.guns.common.constant.Const
;
import
com.stylefeng.guns.common.exception.BizExceptionEnum
;
import
com.stylefeng.guns.common.exception.BussinessException
;
import
com.stylefeng.guns.core.base.controller.BaseController
;
import
com.stylefeng.guns.core.template.config.ContextConfig
;
import
com.stylefeng.guns.core.template.engine.SimpleTemplateEngine
;
import
com.stylefeng.guns.core.template.engine.base.GunsTemplateEngine
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 代码生成控制器
*
* @author fengshuonan
* @Date 2017-05-23 18:52:34
*/
@Controller
@RequestMapping
(
"/code"
)
public
class
CodeController
extends
BaseController
{
private
String
PREFIX
=
"/system/code/"
;
/**
* 跳转到代码生成首页
*/
@RequestMapping
(
""
)
public
String
index
()
{
return
PREFIX
+
"code.html"
;
}
/**
* 代码生成
*/
@ApiOperation
(
"生成代码"
)
@RequestMapping
(
value
=
"/generate"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@Permission
(
Const
.
ADMIN_NAME
)
public
Object
add
(
@ApiParam
(
value
=
"模块名称"
,
required
=
true
)
@RequestParam
String
moduleName
,
@RequestParam
String
bizChName
,
@RequestParam
String
bizEnName
,
@RequestParam
String
path
)
{
if
(
ToolUtil
.
isOneEmpty
(
bizChName
,
bizEnName
))
{
throw
new
BussinessException
(
BizExceptionEnum
.
REQUEST_NULL
);
}
ContextConfig
contextConfig
=
new
ContextConfig
();
contextConfig
.
setBizChName
(
bizChName
);
contextConfig
.
setBizEnName
(
bizEnName
);
contextConfig
.
setModuleName
(
moduleName
);
if
(
ToolUtil
.
isNotEmpty
(
path
))
{
contextConfig
.
setProjectPath
(
path
);
}
GunsTemplateEngine
gunsTemplateEngine
=
new
SimpleTemplateEngine
();
gunsTemplateEngine
.
setContextConfig
(
contextConfig
);
gunsTemplateEngine
.
start
();
return
super
.
SUCCESS_TIP
;
}
}
guns-admin/src/main/resources/application.yml
View file @
76fe65ce
...
@@ -78,6 +78,7 @@ spring:
...
@@ -78,6 +78,7 @@ spring:
url
:
jdbc:mysql://127.0.0.1:3306/guns?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
url
:
jdbc:mysql://127.0.0.1:3306/guns?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
username
:
root
username
:
root
password
:
root
password
:
root
db-name
:
guns
filters
:
log4j,wall,mergeStat
filters
:
log4j,wall,mergeStat
#多数据源(flowabe的和业务的)
#多数据源(flowabe的和业务的)
...
...
guns-admin/src/main/webapp/WEB-INF/view/code/code.html
0 → 100644
View file @
76fe65ce
@layout("/common/_container.html"){
<div
class=
"row"
xmlns=
""
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
代码生成
</h5>
</div>
<div
class=
"ibox-content"
>
<div
class=
"row row-lg"
>
<div
class=
"col-sm-12"
>
<div
class=
"form-horizontal"
id=
"generate"
>
<div
class=
"row"
>
<div
class=
"col-sm-4"
>
<
#
input
id=
"projectPath"
name=
"项目路径"
value=
"${params.projectPath}"
/>
</div>
<div
class=
"col-sm-4"
>
<
#
input
id=
"projectPackage"
name=
"项目的包"
value=
"${params.projectPackage}"
/>
</div>
<div
class=
"col-sm-4"
>
<
#
input
id=
"corePackage"
name=
"核心包"
value=
"${params.corePackage}"
/>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-3"
>
<
#
input
id=
"author"
name=
"作者"
value=
"${params.author!}"
/>
</div>
<div
class=
"col-sm-3"
>
<
#
input
id=
"bizName"
name=
"业务名称"
/>
</div>
<div
class=
"col-sm-3"
>
<
#
input
id=
"moduleName"
name=
"模块名称"
value=
"${params.moduleName}"
/>
</div>
<div
class=
"col-sm-3"
>
<
#
input
id=
"parentMenuName"
name=
"父级菜单名称"
underline=
"false"
value=
"${params.parentMenuName}"
hidden=
"pid"
readonly=
"readonly"
clickFun=
"Code.showMenuSelectTree(); return false;"
style=
"background-color: #ffffff !important;"
selectFlag=
"true"
selectId=
"pcodeTreeDiv"
selectTreeId=
"pcodeTree"
selectStyle=
""
/>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-3"
>
<
#
input
id=
"tableName"
name=
"表名称"
disabled=
"disabled"
/>
</div>
<div
class=
"col-sm-3"
>
<
#
input
id=
"ignoreTabelPrefix"
name=
"表前缀"
value=
"${params.ignoreTabelPrefix}"
/>
</div>
<div
class=
"col-sm-3"
>
<
#
input
id=
"className"
name=
"类名"
disabled=
"disabled"
/>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<button
id=
"genBtn"
type=
"button"
class=
"btn btn-primary mr10"
onclick=
"Code.generate()"
>
<span
style=
"padding: 5px 20px;"
>
生成
</span>
</button>
</div>
</div>
</div>
<div
style=
"padding-top: 10px; overflow: hidden"
class=
"container-fluid"
>
<div
class=
"col-md-12"
>
<div
class=
"row admin-form"
>
<div
class=
"col-md-3 col-md-offset-3"
>
<h2>
数据表
</h2>
<div
class=
"list-group"
id=
"tableList"
data-bind=
"foreach: tables"
style=
"height: 500px; overflow-y: scroll"
>
@for(table in tables!){
<a
href=
"javascript:void(0)"
class=
"list-group-item"
tableName=
"${table.tableName}"
onclick=
"Code.selectTable('${table.tableName}')"
>
${table.tableName}-${table.tableComment}
</a>
@}
</div>
</div>
<div
class=
"col-md-3"
>
<span><h2>
模板
</h2></span>
<div
class=
"list-group"
id=
"templateList"
style=
"height: 500px; overflow-y: scroll"
>
@for(template in templates!){
<a
href=
"javascript:void(0)"
class=
"list-group-item"
key=
"${template.key}"
onclick=
"Code.selectTemplate('${template.key}')"
>
${template.desc}
</a>
@}
</div>
</div>
</div>
</div>
</div>
<ul
class=
"nav nav-list"
>
<li
class=
"divider"
></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<script
src=
"${ctxPath}/static/js/common/select-list-object.js"
></script>
<script
src=
"${ctxPath}/static/modular/code/gen.js"
></script>
@}
guns-admin/src/main/webapp/static/js/common/Feng.js
View file @
76fe65ce
...
@@ -137,5 +137,13 @@ var Feng = {
...
@@ -137,5 +137,13 @@ var Feng = {
live
:
'enabled'
,
live
:
'enabled'
,
message
:
'该字段不能为空'
message
:
'该字段不能为空'
});
});
},
underLineToCamel
:
function
(
str
)
{
var
strArr
=
str
.
split
(
'_'
);
for
(
var
i
=
1
;
i
<
strArr
.
length
;
i
++
)
{
strArr
[
i
]
=
strArr
[
i
].
charAt
(
0
).
toUpperCase
()
+
strArr
[
i
].
substring
(
1
);
}
var
result
=
strArr
.
join
(
''
);
return
result
.
charAt
(
0
).
toUpperCase
()
+
result
.
substring
(
1
);
}
}
};
};
guns-admin/src/main/webapp/static/js/common/select-list-object.js
0 → 100644
View file @
76fe65ce
var
SelectList
=
{};
SelectList
.
singelSelect
=
function
(
eleName
,
attr
,
data
)
{
var
result
=
false
;
$
(
"#"
+
eleName
).
find
(
"a"
).
each
(
function
(
i
,
d
)
{
if
(
$
(
this
).
attr
(
attr
)
==
data
)
{
if
(
$
(
this
).
hasClass
(
'active'
))
{
$
(
this
).
removeClass
(
'active'
);
}
else
{
$
(
this
).
addClass
(
'active'
);
result
=
true
;
}
}
else
{
$
(
this
).
removeClass
(
'active'
);
}
});
return
result
;
};
SelectList
.
mutiSelect
=
function
(
eleName
,
attr
,
data
)
{
var
result
=
false
;
$
(
"#"
+
eleName
).
find
(
"a"
).
each
(
function
(
i
,
d
)
{
if
(
$
(
this
).
attr
(
attr
)
==
data
)
{
if
(
$
(
this
).
hasClass
(
'active'
))
{
$
(
this
).
removeClass
(
'active'
);
}
else
{
$
(
this
).
addClass
(
'active'
);
result
=
true
;
}
}
});
return
result
;
};
SelectList
.
clearSelect
=
function
(
eleName
)
{
$
(
"#"
+
eleName
).
find
(
"a"
).
each
(
function
(
i
,
d
)
{
$
(
this
).
removeClass
(
'active'
);
});
};
\ No newline at end of file
guns-admin/src/main/webapp/static/modular/code/gen.js
0 → 100644
View file @
76fe65ce
/**
* 初始化
*/
var
Code
=
{
ztreeInstance
:
null
,
tableName
:
""
,
submitData
:
{},
switchs
:
{}
};
/**
* 选择table的事件
*/
Code
.
selectTable
=
function
(
tableName
)
{
SelectList
.
clearSelect
(
"templateList"
);
Code
.
switchs
=
{};
if
(
SelectList
.
singelSelect
(
"tableList"
,
"tableName"
,
tableName
)
==
true
)
{
Code
.
tableName
=
tableName
;
Code
.
setTableName
(
tableName
);
}
else
{
Code
.
tableName
=
""
;
}
};
/**
* 选择模板的事件
*/
Code
.
selectTemplate
=
function
(
templateKey
)
{
if
(
Code
.
tableName
!=
""
)
{
if
(
SelectList
.
mutiSelect
(
"templateList"
,
"key"
,
templateKey
)
==
true
)
{
Code
.
switchs
[
templateKey
]
=
true
;
}
else
{
Code
.
switchs
[
templateKey
]
=
false
;
}
}
else
{
Feng
.
info
(
"请先选择表"
);
}
};
/**
* 点击生成
*/
Code
.
generate
=
function
()
{
Code
.
submitData
=
{};
Code
.
submitData
.
tableName
=
Code
.
tableName
;
this
.
set
(
'projectPath'
).
set
(
'author'
).
set
(
'projectPackage'
).
set
(
'corePackage'
).
set
(
'ignoreTabelPrefix'
).
set
(
'bizName'
).
set
(
'moduleName'
).
set
(
'parentMenuName'
);
var
baseAjax
=
Feng
.
baseAjax
(
"/code/generate"
,
"生成代码"
);
for
(
var
item
in
Code
.
switchs
)
{
Code
.
submitData
[
item
]
=
Code
.
switchs
[
item
];
}
baseAjax
.
setData
(
Code
.
submitData
);
baseAjax
.
start
();
};
/**
* 设置表名称
*/
Code
.
setTableName
=
function
(
tableName
)
{
var
preSize
=
$
(
"#ignoreTabelPrefix"
).
val
().
length
;
$
(
"#tableName"
).
val
(
tableName
);
$
(
"#className"
).
val
(
Feng
.
underLineToCamel
(
tableName
.
substring
(
preSize
)));
};
/**
* 点击父级编号input框时
*/
Code
.
onClickDept
=
function
(
e
,
treeId
,
treeNode
)
{
$
(
"#parentMenuName"
).
attr
(
"value"
,
Code
.
ztreeInstance
.
getSelectedVal
());
};
/**
* 显示父级菜单选择的树
*/
Code
.
showMenuSelectTree
=
function
()
{
Feng
.
showInputTree
(
"parentMenuName"
,
"pcodeTreeDiv"
,
15
,
34
);
};
$
(
function
()
{
var
ztree
=
new
$ZTree
(
"pcodeTree"
,
"/menu/selectMenuTreeList"
);
ztree
.
bindOnClick
(
Code
.
onClickDept
);
ztree
.
init
();
Code
.
ztreeInstance
=
ztree
;
$
(
"#pcodeTree"
).
css
(
'width'
,
$
(
"#parentMenuName"
).
css
(
'width'
));
});
Code
.
set
=
function
(
key
,
val
)
{
Code
.
submitData
[
key
]
=
(
typeof
value
==
"undefined"
)
?
$
(
"#"
+
key
).
val
()
:
value
;
return
this
;
};
\ No newline at end of file
guns-core/src/main/java/com/stylefeng/guns/core/CoreFlag.java
0 → 100644
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
;
/**
* 此类用来获取core模块的包路径
*
* @author fengshuonan
* @Date 2017/12/5 下午12:44
*/
public
class
CoreFlag
{
}
\ No newline at end of file
guns-core/src/main/java/com/stylefeng/guns/core/util/ToolUtil.java
View file @
76fe65ce
...
@@ -22,6 +22,7 @@ import java.io.PrintWriter;
...
@@ -22,6 +22,7 @@ import java.io.PrintWriter;
import
java.io.StringWriter
;
import
java.io.StringWriter
;
import
java.lang.reflect.Array
;
import
java.lang.reflect.Array
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.net.URISyntaxException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.Map.Entry
;
import
java.util.Map.Entry
;
...
@@ -548,4 +549,23 @@ public class ToolUtil {
...
@@ -548,4 +549,23 @@ public class ToolUtil {
}
}
}
}
/**
* 获取项目路径
*/
public
static
String
getWebRootPath
(
String
filePath
)
{
try
{
String
path
=
ToolUtil
.
class
.
getClassLoader
().
getResource
(
""
).
toURI
().
getPath
();
path
=
path
.
replace
(
"/WEB-INF/classes/"
,
""
);
path
=
path
.
replace
(
"/target/classes/"
,
""
);
path
=
path
.
replace
(
"file:/"
,
""
);
if
(
ToolUtil
.
isEmpty
(
filePath
))
{
return
path
;
}
else
{
return
path
+
"/"
+
filePath
;
}
}
catch
(
URISyntaxException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
}
\ No newline at end of file
guns-generator/pom.xml
0 → 100644
View file @
76fe65ce
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
guns-generator
</artifactId>
<packaging>
jar
</packaging>
<name>
guns-generator
</name>
<description>
代码生成器
</description>
<parent>
<groupId>
com.stylefeng
</groupId>
<artifactId>
guns-parent
</artifactId>
<version>
1.0.0-SNAPSHOT
</version>
<relativePath>
../guns-parent/pom.xml
</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>
com.stylefeng
</groupId>
<artifactId>
guns-core
</artifactId>
</dependency>
<dependency>
<groupId>
com.ibeetl
</groupId>
<artifactId>
beetl
</artifactId>
</dependency>
</dependencies>
</project>
guns-
admin/src/main/java/generator
/GunsCodeGenerator.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/action
/GunsCodeGenerator.java
View file @
76fe65ce
package
generator
;
package
com
.
stylefeng
.
guns
.
generator
.
action
;
import
generator.config.GunsGeneratorConfig
;
import
com.stylefeng.guns.generator.action.config.GunsGeneratorConfig
;
/**
/**
* 代码生成器,可以生成实体,dao,service,controller,html,js
* 代码生成器,可以生成实体,dao,service,controller,html,js
...
@@ -20,10 +21,10 @@ public class GunsCodeGenerator {
...
@@ -20,10 +21,10 @@ public class GunsCodeGenerator {
gunsGeneratorConfig
.
doMpGeneration
();
gunsGeneratorConfig
.
doMpGeneration
();
/**
/**
*
guns
的生成器:
*
adi
的生成器:
*
guns
的代码生成器可以生成controller,html页面,页面对应的js
*
adi
的代码生成器可以生成controller,html页面,页面对应的js
*/
*/
gunsGeneratorConfig
.
do
Guns
Generation
();
gunsGeneratorConfig
.
do
Adi
Generation
();
}
}
}
}
\ No newline at end of file
guns-
admin/src/main/java/generator
/config/AbstractGeneratorConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/action
/config/AbstractGeneratorConfig.java
View file @
76fe65ce
package
generator
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
action
.
config
;
import
com.baomidou.mybatisplus.generator.AutoGenerator
;
import
com.baomidou.mybatisplus.generator.AutoGenerator
;
import
com.baomidou.mybatisplus.generator.config.DataSourceConfig
;
import
com.baomidou.mybatisplus.generator.config.DataSourceConfig
;
...
@@ -6,11 +6,11 @@ import com.baomidou.mybatisplus.generator.config.GlobalConfig;
...
@@ -6,11 +6,11 @@ import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import
com.baomidou.mybatisplus.generator.config.PackageConfig
;
import
com.baomidou.mybatisplus.generator.config.PackageConfig
;
import
com.baomidou.mybatisplus.generator.config.StrategyConfig
;
import
com.baomidou.mybatisplus.generator.config.StrategyConfig
;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.stylefeng.guns.core.template.config.ContextConfig
;
import
com.stylefeng.guns.core.template.config.SqlConfig
;
import
com.stylefeng.guns.core.template.engine.SimpleTemplateEngine
;
import
com.stylefeng.guns.core.template.engine.base.GunsTemplateEngine
;
import
com.stylefeng.guns.core.util.FileUtil
;
import
com.stylefeng.guns.core.util.FileUtil
;
import
com.stylefeng.guns.generator.engine.SimpleTemplateEngine
;
import
com.stylefeng.guns.generator.engine.base.GunsTemplateEngine
;
import
com.stylefeng.guns.generator.engine.config.ContextConfig
;
import
com.stylefeng.guns.generator.engine.config.SqlConfig
;
import
java.io.File
;
import
java.io.File
;
import
java.util.List
;
import
java.util.List
;
...
@@ -44,25 +44,13 @@ public abstract class AbstractGeneratorConfig {
...
@@ -44,25 +44,13 @@ public abstract class AbstractGeneratorConfig {
SqlConfig
sqlConfig
=
new
SqlConfig
();
SqlConfig
sqlConfig
=
new
SqlConfig
();
protected
abstract
void
globalConfig
();
protected
abstract
void
config
();
protected
abstract
void
dataSourceConfig
();
protected
abstract
void
strategyConfig
();
protected
abstract
void
packageConfig
();
protected
abstract
void
contextConfig
();
public
void
init
()
{
public
void
init
()
{
globalConfig
();
config
();
dataSourceConfig
();
strategyConfig
();
packageConfig
();
contextConfig
();
packageConfig
.
setService
(
"com.stylefeng.guns
.modular."
+
contextConfig
.
getModuleName
()
+
".service"
);
packageConfig
.
setService
(
contextConfig
.
getProPackage
()
+
"
.modular."
+
contextConfig
.
getModuleName
()
+
".service"
);
packageConfig
.
setServiceImpl
(
"com.stylefeng.guns
.modular."
+
contextConfig
.
getModuleName
()
+
".service.impl"
);
packageConfig
.
setServiceImpl
(
contextConfig
.
getProPackage
()
+
"
.modular."
+
contextConfig
.
getModuleName
()
+
".service.impl"
);
//controller没用掉,生成之后会自动删掉
//controller没用掉,生成之后会自动删掉
packageConfig
.
setController
(
"TTT"
);
packageConfig
.
setController
(
"TTT"
);
...
@@ -92,10 +80,10 @@ public abstract class AbstractGeneratorConfig {
...
@@ -92,10 +80,10 @@ public abstract class AbstractGeneratorConfig {
}
}
public
AbstractGeneratorConfig
()
{
public
AbstractGeneratorConfig
()
{
init
();
}
}
public
void
doMpGeneration
()
{
public
void
doMpGeneration
()
{
init
();
AutoGenerator
autoGenerator
=
new
AutoGenerator
();
AutoGenerator
autoGenerator
=
new
AutoGenerator
();
autoGenerator
.
setGlobalConfig
(
globalConfig
);
autoGenerator
.
setGlobalConfig
(
globalConfig
);
autoGenerator
.
setDataSource
(
dataSourceConfig
);
autoGenerator
.
setDataSource
(
dataSourceConfig
);
...
@@ -106,17 +94,17 @@ public abstract class AbstractGeneratorConfig {
...
@@ -106,17 +94,17 @@ public abstract class AbstractGeneratorConfig {
//获取table信息,用于guns代码生成
//获取table信息,用于guns代码生成
List
<
TableInfo
>
tableInfoList
=
autoGenerator
.
getConfig
().
getTableInfoList
();
List
<
TableInfo
>
tableInfoList
=
autoGenerator
.
getConfig
().
getTableInfoList
();
if
(
tableInfoList
!=
null
&&
tableInfoList
.
size
()
>
0
)
{
if
(
tableInfoList
!=
null
&&
tableInfoList
.
size
()
>
0
)
{
this
.
tableInfo
=
tableInfoList
.
get
(
0
);
this
.
tableInfo
=
tableInfoList
.
get
(
0
);
}
}
}
}
public
void
do
Guns
Generation
()
{
public
void
do
Adi
Generation
()
{
GunsTemplateEngine
g
unsTemplateEngine
=
new
SimpleTemplateEngine
();
GunsTemplateEngine
G
unsTemplateEngine
=
new
SimpleTemplateEngine
();
g
unsTemplateEngine
.
setContextConfig
(
contextConfig
);
G
unsTemplateEngine
.
setContextConfig
(
contextConfig
);
sqlConfig
.
setConnection
(
dataSourceConfig
.
getConn
());
sqlConfig
.
setConnection
(
dataSourceConfig
.
getConn
());
g
unsTemplateEngine
.
setSqlConfig
(
sqlConfig
);
G
unsTemplateEngine
.
setSqlConfig
(
sqlConfig
);
g
unsTemplateEngine
.
setTableInfo
(
tableInfo
);
G
unsTemplateEngine
.
setTableInfo
(
tableInfo
);
g
unsTemplateEngine
.
start
();
G
unsTemplateEngine
.
start
();
}
}
}
}
guns-
admin/src/main/java/generator
/config/GunsGeneratorConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/action
/config/GunsGeneratorConfig.java
View file @
76fe65ce
package
generator
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
action
.
config
;
import
com.baomidou.mybatisplus.generator.config.rules.DbType
;
import
com.baomidou.mybatisplus.generator.config.rules.DbType
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
...
@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
...
@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
*/
*/
public
class
GunsGeneratorConfig
extends
AbstractGeneratorConfig
{
public
class
GunsGeneratorConfig
extends
AbstractGeneratorConfig
{
@Override
protected
void
globalConfig
()
{
protected
void
globalConfig
()
{
globalConfig
.
setOutputDir
(
"D:\\ideaSpace\\guns\\guns-admin\\src\\main\\java"
);
//写自己项目的绝对路径,注意具体到java目录
globalConfig
.
setOutputDir
(
"D:\\ideaSpace\\guns\\guns-admin\\src\\main\\java"
);
//写自己项目的绝对路径,注意具体到java目录
globalConfig
.
setFileOverride
(
true
);
globalConfig
.
setFileOverride
(
true
);
...
@@ -19,58 +18,64 @@ public class GunsGeneratorConfig extends AbstractGeneratorConfig {
...
@@ -19,58 +18,64 @@ public class GunsGeneratorConfig extends AbstractGeneratorConfig {
globalConfig
.
setBaseResultMap
(
true
);
globalConfig
.
setBaseResultMap
(
true
);
globalConfig
.
setBaseColumnList
(
true
);
globalConfig
.
setBaseColumnList
(
true
);
globalConfig
.
setOpen
(
false
);
globalConfig
.
setOpen
(
false
);
globalConfig
.
setAuthor
(
"
stylefeng
"
);
globalConfig
.
setAuthor
(
"
fengshuonan
"
);
}
}
@Override
protected
void
dataSourceConfig
()
{
protected
void
dataSourceConfig
()
{
dataSourceConfig
.
setDbType
(
DbType
.
MYSQL
);
dataSourceConfig
.
setDbType
(
DbType
.
MYSQL
);
dataSourceConfig
.
setDriverName
(
"com.mysql.jdbc.Driver"
);
dataSourceConfig
.
setDriverName
(
"com.mysql.jdbc.Driver"
);
dataSourceConfig
.
setUsername
(
"root"
);
dataSourceConfig
.
setUsername
(
"root"
);
dataSourceConfig
.
setPassword
(
"root"
);
dataSourceConfig
.
setPassword
(
"root"
);
dataSourceConfig
.
setUrl
(
"jdbc:mysql://127.0.0.1:3306/
guns
?characterEncoding=utf8"
);
dataSourceConfig
.
setUrl
(
"jdbc:mysql://127.0.0.1:3306/
adi_user_center
?characterEncoding=utf8"
);
}
}
@Override
protected
void
strategyConfig
()
{
protected
void
strategyConfig
()
{
//strategy.setTablePrefix(new String[]{"_"});// 此处可以修改为您的表前缀
//strategyConfig.setTablePrefix(new String[]{"xx_"});// 此处可以修改为您的表前缀
strategyConfig
.
setInclude
(
new
String
[]{
"expense"
});
//这里限制需要生成的表,不写则是生成所有表
strategyConfig
.
setNaming
(
NamingStrategy
.
underline_to_camel
);
strategyConfig
.
setNaming
(
NamingStrategy
.
underline_to_camel
);
}
}
@Override
protected
void
packageConfig
()
{
protected
void
packageConfig
()
{
packageConfig
.
setParent
(
null
);
packageConfig
.
setParent
(
null
);
packageConfig
.
setEntity
(
"com.stylefeng.guns.
common
.persistence.model"
);
packageConfig
.
setEntity
(
"com.stylefeng.guns.
admin.modular.system
.persistence.model"
);
packageConfig
.
setMapper
(
"com.stylefeng.guns.
common
.persistence.dao"
);
packageConfig
.
setMapper
(
"com.stylefeng.guns.
admin.modular.system
.persistence.dao"
);
packageConfig
.
setXml
(
"com.stylefeng.guns.
common
.persistence.dao.mapping"
);
packageConfig
.
setXml
(
"com.stylefeng.guns.
admin.modular.system
.persistence.dao.mapping"
);
}
}
@Override
protected
void
contextConfig
()
{
protected
void
contextConfig
()
{
contextConfig
.
setBizChName
(
"报销管理"
);
contextConfig
.
setProPackage
(
"com.stylefeng.guns.admin"
);
contextConfig
.
setBizEnName
(
"expense"
);
contextConfig
.
setCoreBasePackage
(
"com.stylefeng.guns.core"
);
contextConfig
.
setModuleName
(
"flowable"
);
contextConfig
.
setBizChName
(
"字典管理"
);
contextConfig
.
setBizEnName
(
"sysDict"
);
contextConfig
.
setModuleName
(
"system"
);
contextConfig
.
setProjectPath
(
"D:\\ideaSpace\\guns\\guns-admin"
);
//写自己项目的绝对路径
contextConfig
.
setProjectPath
(
"D:\\ideaSpace\\guns\\guns-admin"
);
//写自己项目的绝对路径
contextConfig
.
setEntityName
(
"
Expense
"
);
contextConfig
.
setEntityName
(
"
SysDict
"
);
sqlConfig
.
setParentMenuName
(
null
);
//这里写已有菜单的名称,当做父节点
sqlConfig
.
setParentMenuName
(
null
);
//这里写已有菜单的名称,当做父节点
/**
/**
* mybatis-plus 生成器开关
* mybatis-plus 生成器开关
*/
*/
contextConfig
.
setEntitySwitch
(
true
);
contextConfig
.
setEntitySwitch
(
true
);
contextConfig
.
setDaoSwitch
(
fals
e
);
contextConfig
.
setDaoSwitch
(
tru
e
);
contextConfig
.
setServiceSwitch
(
fals
e
);
contextConfig
.
setServiceSwitch
(
tru
e
);
/**
/**
*
guns
生成器开关
*
adi
生成器开关
*/
*/
contextConfig
.
setControllerSwitch
(
false
);
contextConfig
.
setControllerSwitch
(
true
);
contextConfig
.
setIndexPageSwitch
(
false
);
contextConfig
.
setIndexPageSwitch
(
true
);
contextConfig
.
setAddPageSwitch
(
false
);
contextConfig
.
setAddPageSwitch
(
true
);
contextConfig
.
setEditPageSwitch
(
false
);
contextConfig
.
setEditPageSwitch
(
true
);
contextConfig
.
setJsSwitch
(
false
);
contextConfig
.
setJsSwitch
(
true
);
contextConfig
.
setInfoJsSwitch
(
false
);
contextConfig
.
setInfoJsSwitch
(
true
);
contextConfig
.
setSqlSwitch
(
false
);
contextConfig
.
setSqlSwitch
(
true
);
}
@Override
protected
void
config
()
{
globalConfig
();
dataSourceConfig
();
strategyConfig
();
packageConfig
();
contextConfig
();
}
}
}
}
guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java
0 → 100644
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
generator
.
action
.
config
;
import
com.baomidou.mybatisplus.generator.config.rules.DbType
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
import
com.stylefeng.guns.core.support.StrKit
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.generator.action.model.GenQo
;
import
java.io.File
;
/**
* 默认的代码生成的配置
*
* @author fengshuonan
* @date 2017-10-28-下午8:27
*/
public
class
WebGeneratorConfig
extends
AbstractGeneratorConfig
{
private
GenQo
genQo
;
public
WebGeneratorConfig
(
GenQo
genQo
)
{
this
.
genQo
=
genQo
;
}
@Override
protected
void
config
()
{
/**
* 数据库配置
*/
dataSourceConfig
.
setDbType
(
DbType
.
MYSQL
);
dataSourceConfig
.
setDriverName
(
"com.mysql.jdbc.Driver"
);
dataSourceConfig
.
setUsername
(
genQo
.
getUserName
());
dataSourceConfig
.
setPassword
(
genQo
.
getPassword
());
dataSourceConfig
.
setUrl
(
genQo
.
getUrl
());
/**
* 全局配置
*/
globalConfig
.
setOutputDir
(
genQo
.
getProjectPath
()
+
File
.
separator
+
"src"
+
File
.
separator
+
"main"
+
File
.
separator
+
"java"
);
globalConfig
.
setFileOverride
(
true
);
globalConfig
.
setEnableCache
(
false
);
globalConfig
.
setBaseResultMap
(
true
);
globalConfig
.
setBaseColumnList
(
true
);
globalConfig
.
setOpen
(
false
);
globalConfig
.
setAuthor
(
genQo
.
getAuthor
());
contextConfig
.
setProPackage
(
genQo
.
getProjectPackage
());
contextConfig
.
setCoreBasePackage
(
genQo
.
getCorePackage
());
/**
* 生成策略
*/
if
(
genQo
.
getIgnoreTabelPrefix
()
!=
null
)
{
strategyConfig
.
setTablePrefix
(
new
String
[]{
genQo
.
getIgnoreTabelPrefix
()});
}
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"
);
/**
* 业务代码配置
*/
contextConfig
.
setBizChName
(
genQo
.
getBizName
());
contextConfig
.
setModuleName
(
genQo
.
getModuleName
());
contextConfig
.
setProjectPath
(
genQo
.
getProjectPath
());
//写自己项目的绝对路径
if
(
ToolUtil
.
isEmpty
(
genQo
.
getIgnoreTabelPrefix
())){
String
entityName
=
StrKit
.
toCamelCase
(
genQo
.
getTableName
());
contextConfig
.
setEntityName
(
entityName
);
contextConfig
.
setBizEnName
(
StrKit
.
firstCharToLowerCase
(
entityName
));
}
else
{
String
entiyName
=
StrKit
.
toCamelCase
(
StrKit
.
removePrefix
(
genQo
.
getTableName
(),
genQo
.
getIgnoreTabelPrefix
()));
contextConfig
.
setEntityName
(
StrKit
.
firstCharToUpperCase
(
entiyName
));
contextConfig
.
setBizEnName
(
StrKit
.
firstCharToLowerCase
(
entiyName
));
}
sqlConfig
.
setParentMenuName
(
genQo
.
getParentMenuName
());
//这里写已有菜单的名称,当做父节点
/**
* mybatis-plus 生成器开关
*/
contextConfig
.
setEntitySwitch
(
genQo
.
getEntitySwitch
());
contextConfig
.
setDaoSwitch
(
genQo
.
getDaoSwitch
());
contextConfig
.
setServiceSwitch
(
genQo
.
getServiceSwitch
());
/**
* adi 生成器开关
*/
contextConfig
.
setControllerSwitch
(
genQo
.
getControllerSwitch
());
contextConfig
.
setIndexPageSwitch
(
genQo
.
getIndexPageSwitch
());
contextConfig
.
setAddPageSwitch
(
genQo
.
getAddPageSwitch
());
contextConfig
.
setEditPageSwitch
(
genQo
.
getEditPageSwitch
());
contextConfig
.
setJsSwitch
(
genQo
.
getJsSwitch
());
contextConfig
.
setInfoJsSwitch
(
genQo
.
getInfoJsSwitch
());
contextConfig
.
setSqlSwitch
(
genQo
.
getSqlSwitch
());
}
}
guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java
0 → 100644
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
generator
.
action
.
model
;
/**
* 代码生成的查询参数
*
* @author fengshuonan
* @date 2017-11-30-下午2:05
*/
public
class
GenQo
{
/**
* 数据库账号
*/
private
String
userName
;
/**
* 数据库密码
*/
private
String
password
;
/**
* 数据库url
*/
private
String
url
;
/**
* 项目地址
*/
private
String
projectPath
;
/**
* 作者
*/
private
String
author
;
/**
* 项目的包
*/
private
String
projectPackage
;
/**
* 核心模块的包
*/
private
String
corePackage
;
/**
* 表名称
*/
private
String
tableName
;
/**
* 忽略的表前缀
*/
private
String
ignoreTabelPrefix
;
/**
* 业务名称
*/
private
String
bizName
;
/**
* 模块名
*/
private
String
moduleName
;
/**
* 父级菜单名称
*/
private
String
parentMenuName
;
/**
* 是否生成控制器代码开关
*/
private
Boolean
controllerSwitch
=
false
;
/**
* 主页
*/
private
Boolean
indexPageSwitch
=
false
;
/**
* 添加页面
*/
private
Boolean
addPageSwitch
=
false
;
/**
* 编辑页面
*/
private
Boolean
editPageSwitch
=
false
;
/**
* 主页的js
*/
private
Boolean
jsSwitch
=
false
;
/**
* 详情页面js
*/
private
Boolean
infoJsSwitch
=
false
;
/**
* dao的开关
*/
private
Boolean
daoSwitch
=
false
;
/**
* service
*/
private
Boolean
serviceSwitch
=
false
;
/**
* 生成实体的开关
*/
private
Boolean
entitySwitch
=
false
;
/**
* 生成sql的开关
*/
private
Boolean
sqlSwitch
=
false
;
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getUrl
()
{
return
url
;
}
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
public
String
getProjectPath
()
{
return
projectPath
;
}
public
void
setProjectPath
(
String
projectPath
)
{
this
.
projectPath
=
projectPath
;
}
public
String
getAuthor
()
{
return
author
;
}
public
void
setAuthor
(
String
author
)
{
this
.
author
=
author
;
}
public
String
getCorePackage
()
{
return
corePackage
;
}
public
void
setCorePackage
(
String
corePackage
)
{
this
.
corePackage
=
corePackage
;
}
public
String
getProjectPackage
()
{
return
projectPackage
;
}
public
void
setProjectPackage
(
String
projectPackage
)
{
this
.
projectPackage
=
projectPackage
;
}
public
String
getTableName
()
{
return
tableName
;
}
public
void
setTableName
(
String
tableName
)
{
this
.
tableName
=
tableName
;
}
public
String
getIgnoreTabelPrefix
()
{
return
ignoreTabelPrefix
;
}
public
void
setIgnoreTabelPrefix
(
String
ignoreTabelPrefix
)
{
this
.
ignoreTabelPrefix
=
ignoreTabelPrefix
;
}
public
String
getBizName
()
{
return
bizName
;
}
public
void
setBizName
(
String
bizName
)
{
this
.
bizName
=
bizName
;
}
public
String
getModuleName
()
{
return
moduleName
;
}
public
void
setModuleName
(
String
moduleName
)
{
this
.
moduleName
=
moduleName
;
}
public
Boolean
getControllerSwitch
()
{
return
controllerSwitch
;
}
public
void
setControllerSwitch
(
Boolean
controllerSwitch
)
{
this
.
controllerSwitch
=
controllerSwitch
;
}
public
Boolean
getIndexPageSwitch
()
{
return
indexPageSwitch
;
}
public
void
setIndexPageSwitch
(
Boolean
indexPageSwitch
)
{
this
.
indexPageSwitch
=
indexPageSwitch
;
}
public
Boolean
getAddPageSwitch
()
{
return
addPageSwitch
;
}
public
void
setAddPageSwitch
(
Boolean
addPageSwitch
)
{
this
.
addPageSwitch
=
addPageSwitch
;
}
public
Boolean
getEditPageSwitch
()
{
return
editPageSwitch
;
}
public
void
setEditPageSwitch
(
Boolean
editPageSwitch
)
{
this
.
editPageSwitch
=
editPageSwitch
;
}
public
Boolean
getJsSwitch
()
{
return
jsSwitch
;
}
public
void
setJsSwitch
(
Boolean
jsSwitch
)
{
this
.
jsSwitch
=
jsSwitch
;
}
public
Boolean
getInfoJsSwitch
()
{
return
infoJsSwitch
;
}
public
void
setInfoJsSwitch
(
Boolean
infoJsSwitch
)
{
this
.
infoJsSwitch
=
infoJsSwitch
;
}
public
Boolean
getDaoSwitch
()
{
return
daoSwitch
;
}
public
void
setDaoSwitch
(
Boolean
daoSwitch
)
{
this
.
daoSwitch
=
daoSwitch
;
}
public
Boolean
getServiceSwitch
()
{
return
serviceSwitch
;
}
public
void
setServiceSwitch
(
Boolean
serviceSwitch
)
{
this
.
serviceSwitch
=
serviceSwitch
;
}
public
Boolean
getEntitySwitch
()
{
return
entitySwitch
;
}
public
void
setEntitySwitch
(
Boolean
entitySwitch
)
{
this
.
entitySwitch
=
entitySwitch
;
}
public
Boolean
getSqlSwitch
()
{
return
sqlSwitch
;
}
public
void
setSqlSwitch
(
Boolean
sqlSwitch
)
{
this
.
sqlSwitch
=
sqlSwitch
;
}
public
String
getParentMenuName
()
{
return
parentMenuName
;
}
public
void
setParentMenuName
(
String
parentMenuName
)
{
this
.
parentMenuName
=
parentMenuName
;
}
}
guns-
admin/src/main/java/com/stylefeng/guns/core/template
/engine/SimpleTemplateEngine.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator
/engine/SimpleTemplateEngine.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
template
.
engine
;
package
com
.
stylefeng
.
guns
.
generator
.
engine
;
import
com.stylefeng.guns.core.template.engine.base.GunsTemplateEngine
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.generator.engine.base.GunsTemplateEngine
;
/**
/**
* 通用的模板生成引擎
* 通用的模板生成引擎
...
...
guns-
admin/src/main/java/com/stylefeng/guns/core/template
/engine/base/AbstractTemplateEngine.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator
/engine/base/AbstractTemplateEngine.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
template
.
engine
.
base
;
package
com
.
stylefeng
.
guns
.
generator
.
engine
.
base
;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.stylefeng.guns.
core.templat
e.config.*
;
import
com.stylefeng.guns.
generator.engin
e.config.*
;
/**
/**
* 模板生成父类
* 模板生成父类
...
...
guns-
admin/src/main/java/com/stylefeng/guns/core/template
/engine/base/GunsTemplateEngine.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator
/engine/base/GunsTemplateEngine.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
template
.
engine
.
base
;
package
com
.
stylefeng
.
guns
.
generator
.
engine
.
base
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.sun.javafx.PlatformUtil
;
import
com.sun.javafx.PlatformUtil
;
...
@@ -14,7 +14,7 @@ import java.io.IOException;
...
@@ -14,7 +14,7 @@ import java.io.IOException;
import
java.util.Properties
;
import
java.util.Properties
;
/**
/**
*
guns
项目模板生成 引擎
*
ADI
项目模板生成 引擎
*
*
* @author fengshuonan
* @author fengshuonan
* @date 2017-05-07 22:15
* @date 2017-05-07 22:15
...
...
guns-
admin/src/main/java/com/stylefeng/guns/core/templat
e/config/ContextConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/engin
e/config/ContextConfig.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
template
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
engine
.
config
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.core.util.ToolUtil
;
...
@@ -10,15 +11,17 @@ import com.stylefeng.guns.core.util.ToolUtil;
...
@@ -10,15 +11,17 @@ import com.stylefeng.guns.core.util.ToolUtil;
*/
*/
public
class
ContextConfig
{
public
class
ContextConfig
{
private
String
templatePrefixPath
=
"
gunsT
emplate/advanced"
;
private
String
templatePrefixPath
=
"
t
emplate/advanced"
;
private
String
projectPath
=
"D:\\ideaSpace\\
guns
"
;
//模板输出的项目目录
private
String
projectPath
=
"D:\\ideaSpace\\
adi
"
;
//模板输出的项目目录
private
String
bizChName
;
//业务名称
private
String
bizChName
;
//业务名称
private
String
bizEnName
;
//业务英文名称
private
String
bizEnName
;
//业务英文名称
private
String
bizEnBigName
;
//业务英文名称(大写)
private
String
bizEnBigName
;
//业务英文名称(大写)
private
String
moduleName
=
"system"
;
//模块名称
private
String
moduleName
=
"system"
;
//模块名称
private
String
modelPackageName
=
"com.stylefeng.guns.common.persistence.model"
;
//model的包名
private
String
proPackage
=
"com.stylefeng.guns.admin"
;
private
String
modelMapperPackageName
=
"com.stylefeng.guns.common.persistence.dao"
;
//model的dao
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
entityName
;
//实体的名称
private
String
entityName
;
//实体的名称
private
Boolean
controllerSwitch
=
true
;
//是否生成控制器代码开关
private
Boolean
controllerSwitch
=
true
;
//是否生成控制器代码开关
...
@@ -36,6 +39,8 @@ public class ContextConfig {
...
@@ -36,6 +39,8 @@ public class ContextConfig {
if
(
entityName
==
null
)
{
if
(
entityName
==
null
)
{
entityName
=
bizEnBigName
;
entityName
=
bizEnBigName
;
}
}
modelPackageName
=
proPackage
+
"."
+
"modular.system.persistence.model"
;
modelMapperPackageName
=
proPackage
+
"."
+
"modular.system.persistence.dao"
;
}
}
public
String
getBizEnBigName
()
{
public
String
getBizEnBigName
()
{
...
@@ -190,4 +195,20 @@ public class ContextConfig {
...
@@ -190,4 +195,20 @@ public class ContextConfig {
public
void
setSqlSwitch
(
Boolean
sqlSwitch
)
{
public
void
setSqlSwitch
(
Boolean
sqlSwitch
)
{
this
.
sqlSwitch
=
sqlSwitch
;
this
.
sqlSwitch
=
sqlSwitch
;
}
}
public
String
getProPackage
()
{
return
proPackage
;
}
public
void
setProPackage
(
String
proPackage
)
{
this
.
proPackage
=
proPackage
;
}
public
String
getCoreBasePackage
()
{
return
coreBasePackage
;
}
public
void
setCoreBasePackage
(
String
coreBasePackage
)
{
this
.
coreBasePackage
=
coreBasePackage
;
}
}
}
guns-
admin/src/main/java/com/stylefeng/guns/core/templat
e/config/ControllerConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/engin
e/config/ControllerConfig.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
templat
e
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
engin
e
.
config
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -19,20 +19,20 @@ public class ControllerConfig {
...
@@ -19,20 +19,20 @@ public class ControllerConfig {
public
void
init
()
{
public
void
init
()
{
ArrayList
<
String
>
imports
=
new
ArrayList
<>();
ArrayList
<
String
>
imports
=
new
ArrayList
<>();
imports
.
add
(
"com.stylefeng.guns.core
.base.controller.BaseController"
);
imports
.
add
(
contextConfig
.
getCoreBasePackage
()
+
"
.base.controller.BaseController"
);
imports
.
add
(
"org.springframework.stereotype.Controller"
);
imports
.
add
(
"org.springframework.stereotype.Controller"
);
imports
.
add
(
"org.springframework.web.bind.annotation.RequestMapping"
);
imports
.
add
(
"org.springframework.web.bind.annotation.RequestMapping"
);
imports
.
add
(
"org.springframework.web.bind.annotation.ResponseBody"
);
imports
.
add
(
"org.springframework.web.bind.annotation.ResponseBody"
);
imports
.
add
(
"org.springframework.ui.Model"
);
imports
.
add
(
"org.springframework.ui.Model"
);
imports
.
add
(
"org.springframework.web.bind.annotation.PathVariable"
);
imports
.
add
(
"org.springframework.web.bind.annotation.PathVariable"
);
imports
.
add
(
"org.springframework.beans.factory.annotation.Autowired"
);
imports
.
add
(
"org.springframework.beans.factory.annotation.Autowired"
);
imports
.
add
(
"com.stylefeng.guns
.core.log.LogObjectHolder"
);
imports
.
add
(
contextConfig
.
getProPackage
()
+
"
.core.log.LogObjectHolder"
);
imports
.
add
(
"org.springframework.web.bind.annotation.RequestParam"
);
imports
.
add
(
"org.springframework.web.bind.annotation.RequestParam"
);
imports
.
add
(
contextConfig
.
getModelPackageName
()
+
"."
+
contextConfig
.
getEntityName
());
imports
.
add
(
contextConfig
.
getModelPackageName
()
+
"."
+
contextConfig
.
getEntityName
());
imports
.
add
(
"com.stylefeng.guns
.modular."
+
contextConfig
.
getModuleName
()
+
".service"
+
".I"
+
contextConfig
.
getEntityName
()
+
"Service"
);
imports
.
add
(
contextConfig
.
getProPackage
()
+
"
.modular."
+
contextConfig
.
getModuleName
()
+
".service"
+
".I"
+
contextConfig
.
getEntityName
()
+
"Service"
);
this
.
imports
=
imports
;
this
.
imports
=
imports
;
this
.
packageName
=
"com.stylefeng.guns
.modular."
+
contextConfig
.
getModuleName
()
+
".controller"
;
this
.
packageName
=
contextConfig
.
getProPackage
()
+
"
.modular."
+
contextConfig
.
getModuleName
()
+
".controller"
;
this
.
controllerPathTemplate
=
"\\src\\main\\java\\
com\\stylefeng\\guns
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\controller\\{}Controller.java"
;
this
.
controllerPathTemplate
=
"\\src\\main\\java\\
"
+
contextConfig
.
getProPackage
().
replaceAll
(
"\\."
,
"\\\\"
)+
"
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\controller\\{}Controller.java"
;
}
}
public
String
getPackageName
()
{
public
String
getPackageName
()
{
...
@@ -66,4 +66,5 @@ public class ControllerConfig {
...
@@ -66,4 +66,5 @@ public class ControllerConfig {
public
void
setContextConfig
(
ContextConfig
contextConfig
)
{
public
void
setContextConfig
(
ContextConfig
contextConfig
)
{
this
.
contextConfig
=
contextConfig
;
this
.
contextConfig
=
contextConfig
;
}
}
}
}
guns-
admin/src/main/java/com/stylefeng/guns/core/templat
e/config/DaoConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/engin
e/config/DaoConfig.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
templat
e
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
engin
e
.
config
;
/**
/**
* Dao模板生成的配置
* Dao模板生成的配置
...
@@ -16,9 +16,9 @@ public class DaoConfig {
...
@@ -16,9 +16,9 @@ public class DaoConfig {
private
String
packageName
;
private
String
packageName
;
public
void
init
()
{
public
void
init
()
{
this
.
daoPathTemplate
=
"\\src\\main\\java\\
com\\stylefeng\\guns
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\dao\\{}Dao.java"
;
this
.
daoPathTemplate
=
"\\src\\main\\java\\
"
+
contextConfig
.
getProPackage
().
replaceAll
(
"\\."
,
"\\\\"
)
+
"
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\dao\\{}Dao.java"
;
this
.
xmlPathTemplate
=
"\\src\\main\\java\\
com\\stylefeng\\guns
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\dao\\mapping\\{}Dao.xml"
;
this
.
xmlPathTemplate
=
"\\src\\main\\java\\
"
+
contextConfig
.
getProPackage
().
replaceAll
(
"\\."
,
"\\\\"
)
+
"
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\dao\\mapping\\{}Dao.xml"
;
this
.
packageName
=
"com.stylefeng.guns
.modular."
+
contextConfig
.
getModuleName
()
+
".dao"
;
this
.
packageName
=
contextConfig
.
getProPackage
()
+
"
.modular."
+
contextConfig
.
getModuleName
()
+
".dao"
;
}
}
public
String
getPackageName
()
{
public
String
getPackageName
()
{
...
...
guns-
admin/src/main/java/com/stylefeng/guns/core/templat
e/config/PageConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/engin
e/config/PageConfig.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
templat
e
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
engin
e
.
config
;
/**
/**
* 页面 模板生成的配置
* 页面 模板生成的配置
...
...
guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Permission.java
0 → 100644
View file @
76fe65ce
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
*/
@TableName
(
"adi_uc_permission"
)
public
class
Permission
extends
Model
<
Permission
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 权限的标识
*/
private
String
code
;
/**
* 父id
*/
private
Long
pid
;
/**
* 父id的集合
*/
private
String
pids
;
/**
* 权限名称
*/
private
String
name
;
/**
* 权限请求路径
*/
private
String
url
;
/**
* 菜单标识: Y-是菜单, N-不是
*/
@TableField
(
"menu_flag"
)
private
String
menuFlag
;
/**
* 图标
*/
private
String
icon
;
/**
* 菜单层级
*/
private
Integer
level
;
/**
* 排序
*/
private
Integer
sort
;
/**
* 创建时间
*/
@TableField
(
"create_time"
)
private
Date
createTime
;
/**
* 修改时间
*/
@TableField
(
"update_time"
)
private
Date
updateTime
;
/**
* 是否可用:Y-可用;N-不可用
*/
private
String
status
;
/**
* 是否删除: Y-已删除; N-未删除
*/
@TableField
(
"del_flag"
)
private
String
delFlag
;
/**
* 菜单是否打开的标识: Y-打开, N-不打开
*/
@TableField
(
"open_flag"
)
private
String
openFlag
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
Long
getPid
()
{
return
pid
;
}
public
void
setPid
(
Long
pid
)
{
this
.
pid
=
pid
;
}
public
String
getPids
()
{
return
pids
;
}
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
+
"}"
;
}
}
guns-
admin/src/main/java/com/stylefeng/guns/core/templat
e/config/ServiceConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/engin
e/config/ServiceConfig.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
templat
e
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
engin
e
.
config
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -26,8 +26,8 @@ public class ServiceConfig {
...
@@ -26,8 +26,8 @@ public class ServiceConfig {
imports
.
add
(
"org.springframework.stereotype.Service"
);
imports
.
add
(
"org.springframework.stereotype.Service"
);
imports
.
add
(
"com.baomidou.mybatisplus.service.impl.ServiceImpl"
);
imports
.
add
(
"com.baomidou.mybatisplus.service.impl.ServiceImpl"
);
imports
.
add
(
contextConfig
.
getModelPackageName
()
+
"."
+
contextConfig
.
getEntityName
());
imports
.
add
(
contextConfig
.
getModelPackageName
()
+
"."
+
contextConfig
.
getEntityName
());
imports
.
add
(
contextConfig
.
getModelMapperPackageName
()
+
"."
+
contextConfig
.
getEntityName
()
+
"Mapper"
);
imports
.
add
(
contextConfig
.
getModelMapperPackageName
()
+
"."
+
contextConfig
.
getEntityName
()
+
"Mapper"
);
imports
.
add
(
"com.stylefeng.guns
.modular."
+
contextConfig
.
getModuleName
()
+
".service.I"
+
contextConfig
.
getBizEnBigName
()
+
"Service"
);
imports
.
add
(
contextConfig
.
getProPackage
()
+
"
.modular."
+
contextConfig
.
getModuleName
()
+
".service.I"
+
contextConfig
.
getBizEnBigName
()
+
"Service"
);
this
.
serviceImplImports
=
imports
;
this
.
serviceImplImports
=
imports
;
ArrayList
<
String
>
interfaceImports
=
new
ArrayList
<>();
ArrayList
<
String
>
interfaceImports
=
new
ArrayList
<>();
...
@@ -35,9 +35,9 @@ public class ServiceConfig {
...
@@ -35,9 +35,9 @@ public class ServiceConfig {
interfaceImports
.
add
(
contextConfig
.
getModelPackageName
()
+
"."
+
contextConfig
.
getEntityName
());
interfaceImports
.
add
(
contextConfig
.
getModelPackageName
()
+
"."
+
contextConfig
.
getEntityName
());
this
.
serviceInterfaceImports
=
interfaceImports
;
this
.
serviceInterfaceImports
=
interfaceImports
;
this
.
servicePathTemplate
=
"\\src\\main\\java\\
com\\stylefeng\\guns
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\service\\I{}Service.java"
;
this
.
servicePathTemplate
=
"\\src\\main\\java\\
"
+
contextConfig
.
getProPackage
().
replaceAll
(
"\\."
,
"\\\\"
)
+
"
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\service\\I{}Service.java"
;
this
.
serviceImplPathTemplate
=
"\\src\\main\\java\\
com\\stylefeng\\guns
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\service\\impl\\{}ServiceImpl.java"
;
this
.
serviceImplPathTemplate
=
"\\src\\main\\java\\
"
+
contextConfig
.
getProPackage
().
replaceAll
(
"\\."
,
"\\\\"
)
+
"
\\modular\\"
+
contextConfig
.
getModuleName
()
+
"\\service\\impl\\{}ServiceImpl.java"
;
this
.
packageName
=
"com.stylefeng.guns
.modular."
+
contextConfig
.
getModuleName
()
+
".service"
;
this
.
packageName
=
contextConfig
.
getProPackage
()
+
"
.modular."
+
contextConfig
.
getModuleName
()
+
".service"
;
}
}
...
...
guns-
admin/src/main/java/com/stylefeng/guns/core/templat
e/config/SqlConfig.java
→
guns-
generator/src/main/java/com/stylefeng/guns/generator/engin
e/config/SqlConfig.java
View file @
76fe65ce
package
com
.
stylefeng
.
guns
.
core
.
templat
e
.
config
;
package
com
.
stylefeng
.
guns
.
generator
.
engin
e
.
config
;
import
com.stylefeng.guns.common.constant.state.IsMenu
;
import
com.baomidou.mybatisplus.toolkit.IdWorker
;
import
com.stylefeng.guns.common.constant.state.MenuOpenStatus
;
import
com.stylefeng.guns.common.constant.state.MenuStatus
;
import
com.stylefeng.guns.common.persistence.model.Menu
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
java.sql.Connection
;
import
java.sql.Connection
;
...
@@ -29,12 +26,16 @@ public class SqlConfig {
...
@@ -29,12 +26,16 @@ public class SqlConfig {
private
String
parentMenuName
;
private
String
parentMenuName
;
private
List
<
Menu
>
menus
=
new
ArrayList
<>(
6
);
private
List
<
Permission
>
menus
=
new
ArrayList
<>(
6
);
public
void
init
()
{
public
void
init
()
{
this
.
sqlPathTemplate
=
"\\src\\main\\java\\{}.sql"
;
this
.
sqlPathTemplate
=
"\\src\\main\\java\\{}.sql"
;
if
(
parentMenuName
==
null
){
return
;
}
//根据父菜单查询数据库中的pcode和pcodes
//根据父菜单查询数据库中的pcode和pcodes
String
[]
pcodeAndPcodes
=
getPcodeAndPcodes
();
String
[]
pcodeAndPcodes
=
getPcodeAndPcodes
();
if
(
pcodeAndPcodes
==
null
)
{
if
(
pcodeAndPcodes
==
null
)
{
...
@@ -43,80 +44,80 @@ public class SqlConfig {
...
@@ -43,80 +44,80 @@ public class SqlConfig {
}
}
//业务菜单
//业务菜单
Menu
menu
=
new
Menu
();
Permission
menu
=
new
Permission
();
menu
.
setId
(
IdWorker
.
getId
());
menu
.
setCode
(
contextConfig
.
getBizEnName
());
menu
.
setCode
(
contextConfig
.
getBizEnName
());
menu
.
setP
code
(
pcodeAndPcodes
[
0
]
);
menu
.
setP
id
(
Long
.
valueOf
(
pcodeAndPcodes
[
0
])
);
menu
.
setP
code
s
(
pcodeAndPcodes
[
1
]
+
"["
+
pcodeAndPcodes
[
0
]
+
"],"
);
menu
.
setP
id
s
(
pcodeAndPcodes
[
1
]
+
"["
+
pcodeAndPcodes
[
0
]
+
"],"
);
menu
.
setName
(
contextConfig
.
getBizChName
());
menu
.
setName
(
contextConfig
.
getBizChName
());
menu
.
setIcon
(
""
);
menu
.
setIcon
(
""
);
menu
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
());
menu
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
());
menu
.
setNum
(
99
);
menu
.
setSort
(
99
);
menu
.
setLevels
(
2
);
menu
.
setLevel
(
2
);
menu
.
setIsmenu
(
IsMenu
.
YES
.
getCode
());
menu
.
setMenuFlag
(
"Y"
);
menu
.
setTips
(
null
);
menu
.
setStatus
(
"Y"
);
menu
.
setStatus
(
MenuStatus
.
ENABLE
.
getCode
());
menu
.
setOpenFlag
(
"N"
);
menu
.
setIsopen
(
MenuOpenStatus
.
CLOSE
.
getCode
());
menus
.
add
(
menu
);
menus
.
add
(
menu
);
//列表
//列表
Menu
list
=
createSubMenu
(
menu
);
Permission
list
=
createSubMenu
(
menu
);
list
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_list"
);
list
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_list"
);
list
.
setName
(
contextConfig
.
getBizChName
()
+
"列表"
);
list
.
setName
(
contextConfig
.
getBizChName
()
+
"列表"
);
list
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/list"
);
list
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/list"
);
menus
.
add
(
list
);
menus
.
add
(
list
);
//添加
//添加
Menu
add
=
createSubMenu
(
menu
);
Permission
add
=
createSubMenu
(
menu
);
add
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_add"
);
add
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_add"
);
add
.
setName
(
contextConfig
.
getBizChName
()
+
"添加"
);
add
.
setName
(
contextConfig
.
getBizChName
()
+
"添加"
);
add
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/add"
);
add
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/add"
);
menus
.
add
(
add
);
menus
.
add
(
add
);
//更新
//更新
Menu
update
=
createSubMenu
(
menu
);
Permission
update
=
createSubMenu
(
menu
);
update
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_update"
);
update
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_update"
);
update
.
setName
(
contextConfig
.
getBizChName
()
+
"更新"
);
update
.
setName
(
contextConfig
.
getBizChName
()
+
"更新"
);
update
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/update"
);
update
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/update"
);
menus
.
add
(
update
);
menus
.
add
(
update
);
//删除
//删除
Menu
delete
=
createSubMenu
(
menu
);
Permission
delete
=
createSubMenu
(
menu
);
delete
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_delete"
);
delete
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_delete"
);
delete
.
setName
(
contextConfig
.
getBizChName
()
+
"删除"
);
delete
.
setName
(
contextConfig
.
getBizChName
()
+
"删除"
);
delete
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/delete"
);
delete
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/delete"
);
menus
.
add
(
delete
);
menus
.
add
(
delete
);
//详情
//详情
Menu
detail
=
createSubMenu
(
menu
);
Permission
detail
=
createSubMenu
(
menu
);
detail
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_detail"
);
detail
.
setCode
(
contextConfig
.
getBizEnName
()
+
"_detail"
);
detail
.
setName
(
contextConfig
.
getBizChName
()
+
"详情"
);
detail
.
setName
(
contextConfig
.
getBizChName
()
+
"详情"
);
detail
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/detail"
);
detail
.
setUrl
(
"/"
+
contextConfig
.
getBizEnName
()
+
"/detail"
);
menus
.
add
(
detail
);
menus
.
add
(
detail
);
}
}
private
Menu
createSubMenu
(
Menu
parentMenu
)
{
private
Permission
createSubMenu
(
Permission
parentMenu
)
{
Menu
menu
=
new
Menu
();
Permission
permission
=
new
Permission
();
menu
.
setPcode
(
parentMenu
.
getCode
());
permission
.
setId
(
IdWorker
.
getId
());
menu
.
setPcodes
(
parentMenu
.
getPcodes
()
+
"["
+
parentMenu
.
getCode
()
+
"],"
);
permission
.
setPid
(
parentMenu
.
getId
()
);
menu
.
setIcon
(
"
"
);
permission
.
setPids
(
parentMenu
.
getPids
()
+
"["
+
parentMenu
.
getId
()
+
"],
"
);
menu
.
setNum
(
99
);
permission
.
setIcon
(
""
);
menu
.
setLevels
(
3
);
permission
.
setSort
(
99
);
menu
.
setIsmenu
(
IsMenu
.
NO
.
getCode
()
);
permission
.
setLevel
(
3
);
menu
.
setTips
(
null
);
permission
.
setMenuFlag
(
"N"
);
menu
.
setStatus
(
MenuStatus
.
ENABLE
.
getCode
()
);
permission
.
setStatus
(
"Y"
);
menu
.
setIsopen
(
MenuOpenStatus
.
CLOSE
.
getCode
()
);
permission
.
setOpenFlag
(
"N"
);
return
menu
;
return
permission
;
}
}
public
String
[]
getPcodeAndPcodes
()
{
public
String
[]
getPcodeAndPcodes
()
{
PreparedStatement
preparedStatement
=
null
;
PreparedStatement
preparedStatement
=
null
;
try
{
try
{
preparedStatement
=
connection
.
prepareStatement
(
"select * from
menu
where name like ?"
);
preparedStatement
=
connection
.
prepareStatement
(
"select * from
adi_uc_permission
where name like ?"
);
preparedStatement
.
setString
(
1
,
"%"
+
parentMenuName
+
"%"
);
preparedStatement
.
setString
(
1
,
"%"
+
parentMenuName
+
"%"
);
ResultSet
results
=
preparedStatement
.
executeQuery
();
ResultSet
results
=
preparedStatement
.
executeQuery
();
while
(
results
.
next
())
{
while
(
results
.
next
())
{
String
pcode
=
results
.
getString
(
"code"
);
String
pcode
=
String
.
valueOf
(
results
.
getLong
(
"id"
)
);
String
pcodes
=
results
.
getString
(
"p
code
s"
);
String
pcodes
=
results
.
getString
(
"p
id
s"
);
if
(
ToolUtil
.
isNotEmpty
(
pcode
)
&&
ToolUtil
.
isNotEmpty
(
pcodes
))
{
if
(
ToolUtil
.
isNotEmpty
(
pcode
)
&&
ToolUtil
.
isNotEmpty
(
pcodes
))
{
String
[]
strings
=
{
pcode
,
pcodes
};
String
[]
strings
=
{
pcode
,
pcodes
};
return
strings
;
return
strings
;
...
@@ -174,11 +175,11 @@ public class SqlConfig {
...
@@ -174,11 +175,11 @@ public class SqlConfig {
this
.
sqlPathTemplate
=
sqlPathTemplate
;
this
.
sqlPathTemplate
=
sqlPathTemplate
;
}
}
public
List
<
Menu
>
getMenus
()
{
public
List
<
Permission
>
getMenus
()
{
return
menus
;
return
menus
;
}
}
public
void
setMenus
(
List
<
Menu
>
menus
)
{
public
void
setMenus
(
List
<
Permission
>
menus
)
{
this
.
menus
=
menus
;
this
.
menus
=
menus
;
}
}
}
}
guns-parent/pom.xml
View file @
76fe65ce
...
@@ -47,6 +47,11 @@
...
@@ -47,6 +47,11 @@
<dependencyManagement>
<dependencyManagement>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
com.stylefeng.guns
</groupId>
<artifactId>
guns-generator
</artifactId>
<version>
${guns.version}
</version>
</dependency>
<dependency>
<groupId>
org.flowable
</groupId>
<groupId>
org.flowable
</groupId>
<artifactId>
flowable-spring-boot-starter-basic
</artifactId>
<artifactId>
flowable-spring-boot-starter-basic
</artifactId>
<version>
${flowable.version}
</version>
<version>
${flowable.version}
</version>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment