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
528db9bb
Commit
528db9bb
authored
Mar 29, 2019
by
fengshuonan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复菜单修改的bug
parent
95ed6da9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
15 deletions
+24
-15
src/main/java/cn/stylefeng/guns/modular/system/service/MenuService.java
+24
-15
No files found.
src/main/java/cn/stylefeng/guns/modular/system/service/MenuService.java
View file @
528db9bb
package
cn
.
stylefeng
.
guns
.
modular
.
system
.
service
;
package
cn
.
stylefeng
.
guns
.
modular
.
system
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.stylefeng.guns.core.common.constant.factory.ConstantFactory
;
import
cn.stylefeng.guns.core.common.constant.factory.ConstantFactory
;
import
cn.stylefeng.guns.core.common.constant.state.MenuStatus
;
import
cn.stylefeng.guns.core.common.constant.state.MenuStatus
;
import
cn.stylefeng.guns.core.common.exception.BizExceptionEnum
;
import
cn.stylefeng.guns.core.common.exception.BizExceptionEnum
;
...
@@ -88,39 +89,47 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> {
...
@@ -88,39 +89,47 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> {
throw
new
RequestEmptyException
();
throw
new
RequestEmptyException
();
}
}
//如果菜单编号修改了,则遍历该菜单的所有子菜单,把对应的编码改了
if
(!
menu
.
getCode
().
equals
(
menuDto
.
getCode
()))
{
this
.
updateSubMenuCodes
(
menu
.
getCode
(),
menuDto
.
getCode
());
}
//设置父级菜单编号
//设置父级菜单编号
Menu
resultMenu
=
this
.
menuSetPcode
(
menuDto
);
Menu
resultMenu
=
this
.
menuSetPcode
(
menuDto
);
//查找该节点的子集合,并修改相应的pcodes和level(因为修改菜单后,层级可能变化了)
updateSubMenuLevels
(
menu
,
resultMenu
);
this
.
updateById
(
resultMenu
);
this
.
updateById
(
resultMenu
);
}
}
/**
/**
* 更新所有子菜单的
编码
* 更新所有子菜单的
结构
*
*
* @param
code 原编码
* @param
oldMenu 原来的菜单
* @param new
Code 新编码
* @param new
Menu 新菜单
* @author fengshuonan
* @author fengshuonan
* @Date 2019/2/27 4:25 PM
* @Date 2019/2/27 4:25 PM
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateSubMenu
Codes
(
String
code
,
String
newCode
)
{
public
void
updateSubMenu
Levels
(
Menu
oldMenu
,
Menu
newMenu
)
{
QueryWrapper
<
Menu
>
wrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
Menu
>
wrapper
=
new
QueryWrapper
<>();
wrapper
=
wrapper
.
like
(
"PCODES"
,
"%["
+
code
+
"]%"
);
wrapper
=
wrapper
.
like
(
"PCODES"
,
"%["
+
oldMenu
.
getCode
()
+
"]%"
);
List
<
Menu
>
menus
=
menuMapper
.
selectList
(
wrapper
);
List
<
Menu
>
menus
=
menuMapper
.
selectList
(
wrapper
);
for
(
Menu
menu
:
menus
)
{
for
(
Menu
menu
:
menus
)
{
if
(
code
.
equals
(
menu
.
getPcode
()))
{
menu
.
setPcode
(
newCode
);
//更新pcode
if
(
oldMenu
.
getCode
().
equals
(
menu
.
getPcode
()))
{
menu
.
setPcode
(
newMenu
.
getCode
());
}
}
String
pcodes
=
menu
.
getPcodes
();
String
resultPcodes
=
pcodes
.
replaceFirst
(
"\\["
+
code
+
"\\]"
,
"\\["
+
newCode
+
"\\]"
);
//更新pcodes
menu
.
setPcodes
(
resultPcodes
);
String
oldPcodesPrefix
=
oldMenu
.
getPcodes
()
+
"["
+
oldMenu
.
getCode
()
+
"],"
;
String
oldPcodesSuffix
=
menu
.
getPcodes
().
substring
(
oldPcodesPrefix
.
length
());
String
menuPcodes
=
newMenu
.
getPcodes
()
+
"["
+
newMenu
.
getCode
()
+
"],"
+
oldPcodesSuffix
;
menu
.
setPcodes
(
menuPcodes
);
//更新levels
int
level
=
StrUtil
.
count
(
menuPcodes
,
"["
);
menu
.
setLevels
(
level
);
this
.
updateById
(
menu
);
this
.
updateById
(
menu
);
}
}
...
...
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