Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
aserver
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
15所TongWeb
aserver
Commits
558f4bb7
Commit
558f4bb7
authored
Sep 01, 2020
by
李德才
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
区分显示菜单和跳转菜单
parent
4062b413
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
195 additions
and
173 deletions
+195
-173
MenuController.java
...n/java/com/archser/aserver/controller/MenuController.java
+182
-172
DM_UpdateSQL.xml
src/main/resources/DBUpdate/DM_UpdateSQL.xml
+12
-0
oracle.sql
src/main/resources/oracle.sql
+1
-1
No files found.
src/main/java/com/archser/aserver/controller/MenuController.java
View file @
558f4bb7
...
@@ -23,183 +23,193 @@ import com.jfinal.plugin.activerecord.Db;
...
@@ -23,183 +23,193 @@ import com.jfinal.plugin.activerecord.Db;
* 应用菜单相关操作
* 应用菜单相关操作
*
*
* @author dgq
* @author dgq
*
*/
*/
public
class
MenuController
extends
Controller
{
public
class
MenuController
extends
Controller
{
@Inject
@Inject
private
LogService
logService
;
private
LogService
logService
;
@Inject
@Inject
private
MenuService
menuService
;
private
MenuService
menuService
;
/**
/**
获取权限菜单
* 获取权限菜单
*/
*/
public
void
index
()
{
public
void
index
()
{
String
username
=
this
.
getAttrForStr
(
"username"
);
String
username
=
this
.
getAttrForStr
(
"username"
);
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
username
);
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
username
);
List
<
System
>
systems
=
System
.
dao
.
template
(
"getSystems"
).
find
();
List
<
System
>
systems
=
System
.
dao
.
template
(
"getSystems"
).
find
();
Kv
kvSystems
=
CollectionUtil
.
toIntMap
(
systems
,
"ID"
);
Kv
kvSystems
=
CollectionUtil
.
toIntMap
(
systems
,
"ID"
);
List
<
Menu
>
menus
=
null
;
List
<
Menu
>
menus
=
null
;
if
(
"admin"
.
equals
(
username
))
{
if
(
"admin"
.
equals
(
username
))
{
menus
=
Menu
.
dao
.
template
(
"getMenus"
).
find
();
menus
=
Menu
.
dao
.
template
(
"getMenus"
).
find
();
}
else
{
}
else
{
menus
=
Menu
.
dao
.
template
(
"getMenusByUser"
,
Kv
.
by
(
"userId"
,
userId
)).
find
();
menus
=
Menu
.
dao
.
template
(
"getMenusByUser"
,
Kv
.
by
(
"userId"
,
userId
)).
find
();
}
List
<
MenuStar
>
stars
=
MenuStar
.
dao
.
template
(
"getMenuStar"
,
userId
).
find
();
for
(
Menu
menu
:
menus
)
{
System
system
=
(
System
)
kvSystems
.
get
(
menu
.
getSystemId
());
if
(
system
!=
null
)
{
menu
.
put
(
"system"
,
system
.
getName
());
menu
.
put
(
"url"
,
system
.
getUrl
());
menu
.
put
(
"star"
,
exist
(
menu
.
getId
(),
stars
));
List
<
Menu
>
abilities
=
system
.
get
(
"menus"
,
new
ArrayList
<
Menu
>());
abilities
.
add
(
menu
);
system
.
put
(
"menus"
,
abilities
);
}
}
this
.
renderJson
(
Ret
.
ok
(
"apps"
,
systems
));
}
}
List
<
MenuStar
>
stars
=
MenuStar
.
dao
.
template
(
"getMenuStar"
,
userId
).
find
();
for
(
Menu
menu
:
menus
)
{
System
system
=
(
System
)
kvSystems
.
get
(
menu
.
getSystemId
());
/**
if
(
system
!=
null
)
{
* 获取菜单列表
menu
.
put
(
"system"
,
system
.
getName
());
*/
menu
.
put
(
"url"
,
system
.
getUrl
());
public
void
getMenuList
()
{
menu
.
put
(
"star"
,
exist
(
menu
.
getId
(),
stars
));
try
{
List
<
Menu
>
abilities
=
system
.
get
(
"menus"
,
new
ArrayList
<
Menu
>());
Integer
sysId
=
getParaToInt
(
"sysId"
);
abilities
.
add
(
menu
);
String
condStr
=
getPara
(
"condStr"
);
system
.
put
(
"menus"
,
abilities
);
renderJson
(
Ret
.
ok
(
"data"
,
menuService
.
getMenuListBySysId
(
sysId
,
condStr
)));
}
}
catch
(
Exception
e
)
{
}
e
.
printStackTrace
();
this
.
renderJson
(
Ret
.
ok
(
"apps"
,
systems
));
renderJson
(
Ret
.
fail
(
"msg"
,
"获取菜单列表出错,请刷新后重试!"
));
}
}
}
/**
/**
* 获取菜单列表
* 保存菜单数据
*/
*/
public
void
getMenuList
()
{
public
void
saveMenuData
()
{
try
{
try
{
Integer
sysId
=
getParaToInt
(
"sysId"
);
Menu
menu
=
getBean
(
Menu
.
class
,
"menu"
);
String
condStr
=
getPara
(
"condStr"
);
boolean
state
=
menuService
.
saveMenuData
(
menu
);
renderJson
(
Ret
.
ok
(
"data"
,
menuService
.
getMenuListBySysId
(
sysId
,
condStr
)));
renderJson
(
Ret
.
ok
(
"msg"
,
state
?
"保存菜单数据成功!"
:
"保存菜单数据出错,请刷新后重试!"
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
renderJson
(
Ret
.
fail
(
"msg"
,
"获取菜单列表出错,请刷新后重试!"
));
renderJson
(
Ret
.
fail
(
"msg"
,
"保存菜单数据出错,请刷新后重试!"
));
}
}
}
}
/**
/**
* 保存菜单数据
* 删除菜单数据
*/
*/
public
void
saveMenuData
()
{
public
void
deleteMenu
()
{
try
{
try
{
Menu
menu
=
getBean
(
Menu
.
class
,
"menu"
);
String
[]
ids
=
getPara
(
"ids"
).
split
(
","
);
boolean
state
=
menuService
.
saveMenuData
(
menu
);
boolean
state
=
menuService
.
deleteMenu
(
ids
);
renderJson
(
Ret
.
ok
(
"msg"
,
state
?
"保存菜单数据成功!"
:
"保存菜单数据出错,请刷新后重试!"
));
renderJson
(
Ret
.
ok
(
"msg"
,
state
?
"删除菜单数据成功!"
:
"删除菜单数据出错!"
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
renderJson
(
Ret
.
fail
(
"msg"
,
"保存菜单数据出错,请刷新后重试!"
));
renderJson
(
Ret
.
fail
(
"msg"
,
"删除菜单数据出错,请刷新后重试!"
));
}
}
}
}
/**
* 删除菜单数据
/**
*/
* 菜单加星
public
void
deleteMenu
()
{
*
try
{
* @param menuId
String
[]
ids
=
getPara
(
"ids"
).
split
(
","
);
*/
boolean
state
=
menuService
.
deleteMenu
(
ids
);
public
void
star
(
int
menuId
)
{
renderJson
(
Ret
.
ok
(
"msg"
,
state
?
"删除菜单数据成功!"
:
"删除菜单数据出错!"
));
String
username
=
this
.
getAttrForStr
(
"username"
);
}
catch
(
Exception
e
)
{
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
username
);
e
.
printStackTrace
();
renderJson
(
Ret
.
fail
(
"msg"
,
"删除菜单数据出错,请刷新后重试!"
));
MenuStar
star
=
new
MenuStar
();
}
star
.
setMenuId
(
menuId
);
}
star
.
setUserId
(
userId
);
star
.
set
(
"ID"
,
"SEQ_MENU_STAR.nextval"
);
Menu
MeunStr
=
Menu
.
dao
.
findById
(
menuId
);
/**
System
systemStr
=
System
.
dao
.
findById
(
MeunStr
.
getSystemId
());
* 菜单加星
if
(
star
.
save
())
{
*
this
.
renderJson
(
Ret
.
ok
(
"star"
,
star
.
getId
()));
* @param menuId
logService
.
saveAsLog
(
"operate"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
*/
MeunStr
.
getTitle
()
+
"-菜单加星成功"
,
systemStr
.
getName
());
public
void
star
(
int
menuId
)
{
}
else
{
String
username
=
this
.
getAttrForStr
(
"username"
);
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"菜单加星操作失败"
));
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
username
);
logService
.
saveAsLog
(
"operate"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
MeunStr
.
getTitle
()
+
"-菜单加星失败"
,
systemStr
.
getName
());
MenuStar
star
=
new
MenuStar
();
}
star
.
setMenuId
(
menuId
);
}
star
.
setUserId
(
userId
);
star
.
set
(
"ID"
,
"SEQ_MENU_STAR.nextval"
);
/**
Menu
MeunStr
=
Menu
.
dao
.
findById
(
menuId
);
* 取消菜单加星
System
systemStr
=
System
.
dao
.
findById
(
MeunStr
.
getSystemId
());
*
if
(
star
.
save
())
{
* @param menuId
this
.
renderJson
(
Ret
.
ok
(
"star"
,
star
.
getId
()));
*/
logService
.
saveAsLog
(
"operate"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
@SuppressWarnings
(
"unused"
)
MeunStr
.
getTitle
()
+
"-菜单加星成功"
,
systemStr
.
getName
());
public
void
cancelStar
(
int
menuId
)
{
}
else
{
String
username
=
this
.
getAttrForStr
(
"username"
);
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"菜单加星操作失败"
));
String
app
=
this
.
getPara
(
"app"
);
logService
.
saveAsLog
(
"operate"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
username
);
MeunStr
.
getTitle
()
+
"-菜单加星失败"
,
systemStr
.
getName
());
Menu
MeunStr
=
Menu
.
dao
.
findById
(
menuId
);
}
System
systemStr
=
System
.
dao
.
findById
(
MeunStr
.
getSystemId
());
}
Db
.
update
(
Db
.
getSqlPara
(
"deleteMenuStar"
,
Kv
.
by
(
"userId"
,
userId
).
set
(
"menuId"
,
menuId
)));
this
.
renderJson
(
Ret
.
ok
(
"star"
,
0
));
/**
logService
.
saveAsLog
(
"operate"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
* 取消菜单加星
MeunStr
.
getTitle
()
+
"-菜单取消加星成功"
,
systemStr
.
getName
());
*
}
* @param menuId
*/
/**
@SuppressWarnings
(
"unused"
)
* 菜单是否加星
public
void
cancelStar
(
int
menuId
)
{
*
String
username
=
this
.
getAttrForStr
(
"username"
);
* @param menuId
String
app
=
this
.
getPara
(
"app"
);
* @param stars
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
username
);
* @return
Menu
MeunStr
=
Menu
.
dao
.
findById
(
menuId
);
*/
System
systemStr
=
System
.
dao
.
findById
(
MeunStr
.
getSystemId
());
private
Integer
exist
(
Integer
menuId
,
List
<
MenuStar
>
stars
)
{
Db
.
update
(
Db
.
getSqlPara
(
"deleteMenuStar"
,
Kv
.
by
(
"userId"
,
userId
).
set
(
"menuId"
,
menuId
)));
for
(
MenuStar
star
:
stars
)
{
this
.
renderJson
(
Ret
.
ok
(
"star"
,
0
));
if
(
menuId
.
intValue
()
==
star
.
getMenuId
().
intValue
())
{
logService
.
saveAsLog
(
"operate"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
return
star
.
getId
();
MeunStr
.
getTitle
()
+
"-菜单取消加星成功"
,
systemStr
.
getName
());
}
}
}
return
0
;
/**
}
* 菜单是否加星
*
public
void
accessLog
()
{
* @param menuId
String
routName
=
getPara
(
"routname"
);
* @param stars
String
app
=
getPara
(
"app"
);
* @return
String
title
=
Db
.
queryStr
(
Db
.
getSql
(
"findSystemTitleByType"
),
app
);
*/
String
username
=
getAttr
(
"username"
);
private
Integer
exist
(
Integer
menuId
,
List
<
MenuStar
>
stars
)
{
String
ip
=
JwtInterceptor
.
getIpAddr
(
getRequest
());
for
(
MenuStar
star
:
stars
)
{
String
content
=
title
+
"-功能访问-"
+
routName
;
if
(
menuId
.
intValue
()
==
star
.
getMenuId
().
intValue
())
{
logService
.
saveAsLog
(
"access"
,
username
,
ip
,
content
,
app
);
return
star
.
getId
();
renderJson
(
Ret
.
ok
());
}
}
}
return
0
;
}
public
void
getMenuGroup
()
{
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
this
.
getAttrForStr
(
"username"
));
public
void
accessLog
()
{
// 所有菜单
String
routName
=
getPara
(
"routname"
);
List
<
Menu
>
allMenuList
=
new
Menu
().
dao
().
template
(
"getMenuGroup"
,
Kv
.
by
(
"userId"
,
userId
)).
find
();
String
app
=
getPara
(
"app"
);
List
<
System
>
systems
=
System
.
dao
.
template
(
"getSystems"
).
find
();
String
title
=
Db
.
queryStr
(
Db
.
getSql
(
"findSystemTitleByType"
),
app
);
Map
<
Integer
,
System
>
systemMap
=
systems
.
stream
().
collect
(
Collectors
.
toMap
(
System:
:
getId
,
System
->
System
));
String
username
=
getAttr
(
"username"
);
List
<
MenuStar
>
stars
=
MenuStar
.
dao
.
template
(
"getMenuStar"
,
userId
).
find
();
String
ip
=
JwtInterceptor
.
getIpAddr
(
getRequest
());
String
content
=
title
+
"-功能访问-"
+
routName
;
Map
<
String
,
Map
<
String
,
List
<
Menu
>>>
menuGroup
=
new
HashMap
<>();
logService
.
saveAsLog
(
"access"
,
username
,
ip
,
content
,
app
);
allMenuList
.
forEach
(
menu
->
{
renderJson
(
Ret
.
ok
());
// 处理菜单属性
System
system
=
systemMap
.
get
(
menu
.
getSystemId
());
}
menu
.
put
(
"system"
,
system
.
getName
());
menu
.
put
(
"url"
,
system
.
getUrl
());
public
void
getMenuGroup
()
{
menu
.
put
(
"star"
,
exist
(
menu
.
getId
(),
stars
));
Integer
userId
=
Db
.
queryInt
(
Db
.
getSql
(
"getUserId"
),
this
.
getAttrForStr
(
"username"
));
// 所有菜单
List
<
Menu
>
allMenuList
=
new
Menu
().
dao
().
template
(
"getMenuGroup"
,
Kv
.
by
(
"userId"
,
userId
)).
find
();
List
<
System
>
systems
=
System
.
dao
.
template
(
"getSystems"
).
find
();
Map
<
Integer
,
System
>
systemMap
=
systems
.
stream
().
collect
(
Collectors
.
toMap
(
System:
:
getId
,
System
->
System
));
List
<
MenuStar
>
stars
=
MenuStar
.
dao
.
template
(
"getMenuStar"
,
userId
).
find
();
// 系统中的菜单,用于系统正常跳转
Map
<
String
,
Map
<
String
,
List
<
Menu
>>>
menuGroup
=
new
HashMap
<>();
// 页面中显示的菜单,过滤隐藏的菜单
Map
<
String
,
Map
<
String
,
List
<
Menu
>>>
viewApps
=
new
HashMap
<>();
allMenuList
.
forEach
(
menu
->
{
// 处理菜单属性
System
system
=
systemMap
.
get
(
menu
.
getSystemId
());
menu
.
put
(
"system"
,
system
.
getName
());
menu
.
put
(
"url"
,
system
.
getUrl
());
// 过滤不需要显示的菜单
if
(
menu
.
getHidden
()
==
null
||
menu
.
getHidden
()
!=
1
)
{
menu
.
put
(
"star"
,
exist
(
menu
.
getId
(),
stars
));
// 一级菜单组
viewApps
.
putIfAbsent
(
menu
.
getFirstLevelName
(),
new
HashMap
<
String
,
List
<
Menu
>>());
// 二级菜单组
viewApps
.
get
(
menu
.
getFirstLevelName
()).
putIfAbsent
(
menu
.
getSecondLevelName
(),
new
ArrayList
<
Menu
>());
// 最终菜单
viewApps
.
get
(
menu
.
getFirstLevelName
()).
get
(
menu
.
getSecondLevelName
()).
add
(
menu
);
}
// 一级菜单组
// 一级菜单组
menuGroup
.
putIfAbsent
(
menu
.
getFirstLevelName
(),
new
HashMap
<
String
,
List
<
Menu
>>());
menuGroup
.
putIfAbsent
(
menu
.
getFirstLevelName
(),
new
HashMap
<
String
,
List
<
Menu
>>());
// 二级菜单组
// 二级菜单组
menuGroup
.
get
(
menu
.
getFirstLevelName
()).
putIfAbsent
(
menu
.
getSecondLevelName
(),
new
ArrayList
<
Menu
>());
menuGroup
.
get
(
menu
.
getFirstLevelName
()).
putIfAbsent
(
menu
.
getSecondLevelName
(),
new
ArrayList
<
Menu
>());
// 最终菜单
// 最终菜单
menuGroup
.
get
(
menu
.
getFirstLevelName
()).
get
(
menu
.
getSecondLevelName
()).
add
(
menu
);
menuGroup
.
get
(
menu
.
getFirstLevelName
()).
get
(
menu
.
getSecondLevelName
()).
add
(
menu
);
});
});
renderJson
(
Ret
.
ok
(
"apps"
,
menuGroup
).
set
(
"allMenu"
,
allMenuList
));
renderJson
(
Ret
.
ok
(
"apps"
,
menuGroup
).
set
(
"viewApps"
,
viewApps
).
set
(
"allMenu"
,
allMenuList
));
}
}
}
}
src/main/resources/DBUpdate/DM_UpdateSQL.xml
View file @
558f4bb7
...
@@ -1929,4 +1929,15 @@
...
@@ -1929,4 +1929,15 @@
</sql>
</sql>
</version>
</version>
<version
edition=
"76"
description=
"添加task表字段"
>
<sql
creator=
"lidecai"
createDate=
"20200901"
note=
"设置菜单排序默认值"
>
alter table AS_MENU modify GROUP_ORDER default 0;
</sql>
</version>
</update>
</update>
\ No newline at end of file
src/main/resources/oracle.sql
View file @
558f4bb7
...
@@ -295,7 +295,7 @@ select * from AS_MENU where ID in (
...
@@ -295,7 +295,7 @@ select * from AS_MENU where ID in (
select
MENU_ID
from
AS_ROLE_MENU
where
ROLE_ID
in
(
select
MENU_ID
from
AS_ROLE_MENU
where
ROLE_ID
in
(
select
r
.
ID
from
AS_ROLE
r
,
AS_ROLE_USER
ru
where
r
.
ID
=
ru
.
ROLE_ID
and
ru
.
USER_ID
=#
para
(
userId
)
select
r
.
ID
from
AS_ROLE
r
,
AS_ROLE_USER
ru
where
r
.
ID
=
ru
.
ROLE_ID
and
ru
.
USER_ID
=#
para
(
userId
)
)
)
)
order
by
GROUP_ORDER
;
)
order
by
GROUP_ORDER
DESC
;
#
end
#
end
...
...
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