Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
RuoYi-Vue-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
融通安全管理系统
RuoYi-Vue-master
Commits
39a9ee5b
Commit
39a9ee5b
authored
Jul 06, 2023
by
陈晓晋
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
http://git.censoft.com.cn/rongtong/ruoyi-vue-master
into xjchen
parents
db314a96
dfa89ab2
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
509 additions
and
335 deletions
+509
-335
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/controller/RiskPlanAppController.java
...oft/censoftrongtong/controller/RiskPlanAppController.java
+16
-5
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/domain/RiskPlanUserBuilding.java
.../censoft/censoftrongtong/domain/RiskPlanUserBuilding.java
+6
-0
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/mapper/RiskPlanMapper.java
...va/com/censoft/censoftrongtong/mapper/RiskPlanMapper.java
+5
-1
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/IRiskPlanService.java
...com/censoft/censoftrongtong/service/IRiskPlanService.java
+4
-1
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/IRiskPlanUserBuildingService.java
...censoftrongtong/service/IRiskPlanUserBuildingService.java
+2
-0
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/impl/RiskPlanServiceImpl.java
...oft/censoftrongtong/service/impl/RiskPlanServiceImpl.java
+21
-6
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/impl/RiskPlanUserBuildingServiceImpl.java
...ongtong/service/impl/RiskPlanUserBuildingServiceImpl.java
+57
-0
censoft-rongtong/src/main/resources/mapper/system/RiskPlanMapper.xml
...gtong/src/main/resources/mapper/system/RiskPlanMapper.xml
+23
-0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/SysMenuAppController.java
...va/com/ruoyi/web/controller/app/SysMenuAppController.java
+70
-0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
.../src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
+7
-0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
...c/main/java/com/ruoyi/system/service/ISysMenuService.java
+27
-20
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
...ava/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+98
-150
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
...system/src/main/resources/mapper/system/SysMenuMapper.xml
+173
-152
No files found.
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/controller/RiskPlanAppController.java
View file @
39a9ee5b
...
...
@@ -143,7 +143,7 @@ public class RiskPlanAppController extends BaseController {
,
RiskPlanStatusType
.
PROJECT_REPORT
,
RiskPlanStatusType
.
FINISH
);
state
=
"已执行"
;
}
List
<
RiskPlanAppListDto
>
list
=
riskPlanService
.
getRiskPlanAppListDtoList
(
statusList
,
getUserId
(),
null
);
List
<
RiskPlanAppListDto
>
list
=
riskPlanService
.
getRiskPlanAppListDtoList
(
statusList
,
getUserId
(),
null
,
null
);
String
finalState
=
state
;
list
.
forEach
(
dto
->
{
dto
.
setState
(
finalState
);
...
...
@@ -172,7 +172,7 @@ public class RiskPlanAppController extends BaseController {
,
RiskPlanStatusType
.
PROJECT_REPORT
,
RiskPlanStatusType
.
FINISH
);
state
=
"已完成"
;
}
List
<
RiskPlanAppListDto
>
list
=
riskPlanService
.
getRiskPlanAppListDtoList
(
statusList
,
getUserId
(),
null
);
List
<
RiskPlanAppListDto
>
list
=
riskPlanService
.
getRiskPlanAppListDtoList
(
statusList
,
getUserId
(),
null
,
null
);
String
finalState
=
state
;
list
.
forEach
(
dto
->
{
Long
finishNumber
=
riskPlanUserBuildingService
.
countStatusByPlanIdAndStatus
(
dto
.
getId
(),
"finish"
);
...
...
@@ -201,7 +201,7 @@ public class RiskPlanAppController extends BaseController {
*/
@GetMapping
(
"/task/list"
)
public
R
<
List
<
RiskPlanAppListDto
>>
getRiskPlanAppListDtoListByLeaderUser
()
{
return
R
.
ok
(
riskPlanService
.
getRiskPlanAppListDtoList
(
null
,
null
,
getUserId
()));
return
R
.
ok
(
riskPlanService
.
getRiskPlanAppListDtoList
(
null
,
null
,
getUserId
()
,
null
));
}
/**
...
...
@@ -394,6 +394,18 @@ public class RiskPlanAppController extends BaseController {
return
R
.
ok
(
riskPlanExistingListService
.
saveRiskExistingListSaveDto
(
saveDto
));
}
/**
* 风险评估-任务完成
*
* @param planId 任务id
* @param buildingId 楼宇id
* @real_return {@link R<Integer>}
*/
@PostMapping
(
"/submit/{planId}/{building}"
)
public
R
<
Integer
>
submitByPlanIdAndBuildingId
(
@PathVariable
Long
planId
,
@PathVariable
Long
buildingId
)
{
return
R
.
ok
(
riskPlanUserBuildingService
.
submitByPlanIdAndBuildingId
(
planId
,
buildingId
,
getUserId
()));
}
/**
* 根据风险任务审批列表
...
...
@@ -402,8 +414,7 @@ public class RiskPlanAppController extends BaseController {
*/
@GetMapping
(
"/approve/list"
)
public
R
<
List
<
RiskPlanAppListDto
>>
getRiskPlanAppListDtoListByApproveUser
()
{
List
<
RiskPlanStatusType
>
statusList
=
Arrays
.
asList
(
RiskPlanStatusType
.
WAIT_LEADER_APPROVE
);
return
R
.
ok
(
riskPlanService
.
getRiskPlanAppListDtoList
(
statusList
,
null
,
getUserId
()));
return
R
.
ok
(
riskPlanService
.
getRiskPlanAppListDtoListByApproveUser
(
getUserId
()));
}
...
...
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/domain/RiskPlanUserBuilding.java
View file @
39a9ee5b
...
...
@@ -57,4 +57,10 @@ public class RiskPlanUserBuilding {
@TableField
(
"status"
)
private
String
status
;
/**
* 提交人id
*/
@TableField
(
"submit_user_id"
)
private
Long
submitUserId
;
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/mapper/RiskPlanMapper.java
View file @
39a9ee5b
...
...
@@ -2,8 +2,10 @@ package com.censoft.censoftrongtong.mapper;
import
com.censoft.censoftrongtong.domain.RiskPlan
;
import
com.censoft.censoftrongtong.domain.dto.*
;
import
com.censoft.censoftrongtong.enums.RiskPlanStatusType
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Arrays
;
import
java.util.List
;
/**
...
...
@@ -63,7 +65,7 @@ public interface RiskPlanMapper
public
int
deleteRiskPlanByIds
(
Long
[]
ids
);
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoList
(
@Param
(
"statusStringList"
)
List
<
String
>
statusStringList
,
@Param
(
"createUserId"
)
Long
createUserId
,
@Param
(
"leaderUserId"
)
Long
leaderUserId
);
,
@Param
(
"createUserId"
)
Long
createUserId
,
@Param
(
"leaderUserId"
)
Long
leaderUserId
,
@Param
(
"workUserId"
)
Long
workUserId
);
RiskPlanAppDetailsDto
getRiskPlanAppDetailsDtoByPlanId
(
@Param
(
"planId"
)
Long
planId
);
...
...
@@ -73,4 +75,6 @@ public interface RiskPlanMapper
,
@Param
(
"buildingId"
)
Long
buildingId
);
List
<
RiskPlanAppApproveListDto
>
getApproveListDtoByPlanId
(
@Param
(
"planId"
)
Long
planId
);
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoListByApproveUser
(
@Param
(
"userId"
)
Long
userId
);
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/IRiskPlanService.java
View file @
39a9ee5b
...
...
@@ -67,7 +67,8 @@ public interface IRiskPlanService
int
saveRiskPlan
(
RiskPlan
riskPlan
);
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoList
(
List
<
RiskPlanStatusType
>
statusList
,
Long
createUserId
,
Long
leaderUserId
);
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoList
(
List
<
RiskPlanStatusType
>
statusList
,
Long
createUserId
,
Long
leaderUserId
,
Long
workUserId
);
RiskPlanAppDetailsDto
getRiskPlanAppDetailsDtoByPlanId
(
Long
planId
,
Long
buildingId
);
...
...
@@ -76,4 +77,6 @@ public interface IRiskPlanService
int
approveAppApproveDto
(
RiskPlanAppApproveDto
appApproveDto
);
int
revokeByPlanId
(
Long
planId
,
Long
userId
);
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoListByApproveUser
(
Long
userId
);
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/IRiskPlanUserBuildingService.java
View file @
39a9ee5b
...
...
@@ -17,4 +17,6 @@ public interface IRiskPlanUserBuildingService extends IService<RiskPlanUserBuild
Long
countStatusByPlanIdAndStatus
(
Long
planId
,
String
status
);
List
<
RiskPlanAppBuildingListDto
>
getRiskPlanAppBuildingListDtoByPlanId
(
Long
planId
);
Integer
submitByPlanIdAndBuildingId
(
Long
planId
,
Long
buildingId
,
Long
userId
);
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/impl/RiskPlanServiceImpl.java
View file @
39a9ee5b
...
...
@@ -154,7 +154,8 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
}
@Override
public
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoList
(
List
<
RiskPlanStatusType
>
statusList
,
Long
createUserId
,
Long
leaderUserId
)
{
public
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoList
(
List
<
RiskPlanStatusType
>
statusList
,
Long
createUserId
,
Long
leaderUserId
,
Long
workUserId
)
{
List
<
String
>
statusStringList
=
null
;
//枚举类转化为数据库存的状态值
if
(
statusList
!=
null
)
{
...
...
@@ -164,11 +165,13 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
}
//查询并把状态值转化为状态名称
return
riskPlanMapper
.
getRiskPlanAppListDtoList
(
statusStringList
,
createUserId
,
leaderUserId
).
stream
().
map
(
dto
->
{
String
status
=
RiskPlanStatusType
.
getTitleByStatus
(
dto
.
getStatus
()).
getTitle
();
dto
.
setStatus
(
status
);
return
dto
;
}).
collect
(
Collectors
.
toList
());
return
riskPlanMapper
.
getRiskPlanAppListDtoList
(
statusStringList
,
createUserId
,
leaderUserId
,
workUserId
)
.
stream
()
.
map
(
dto
->
{
String
status
=
RiskPlanStatusType
.
getTitleByStatus
(
dto
.
getStatus
()).
getTitle
();
dto
.
setStatus
(
status
);
return
dto
;
}).
collect
(
Collectors
.
toList
());
}
@Override
...
...
@@ -265,6 +268,18 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
return
1
;
}
@Override
public
List
<
RiskPlanAppListDto
>
getRiskPlanAppListDtoListByApproveUser
(
Long
userId
)
{
//查询并把状态值转化为状态名称
return
riskPlanMapper
.
getRiskPlanAppListDtoListByApproveUser
(
userId
)
.
stream
()
.
map
(
dto
->
{
String
status
=
RiskPlanStatusType
.
getTitleByStatus
(
dto
.
getStatus
()).
getTitle
();
dto
.
setStatus
(
status
);
return
dto
;
}).
collect
(
Collectors
.
toList
());
}
private
String
getNo
()
{
Random
random
=
new
Random
();
int
randomNumber
=
random
.
nextInt
(
1000
);
// 生成0到999之间的随机数
...
...
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/impl/RiskPlanUserBuildingServiceImpl.java
View file @
39a9ee5b
...
...
@@ -2,13 +2,19 @@ package com.censoft.censoftrongtong.service.impl;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.censoft.censoftrongtong.domain.RiskPlan
;
import
com.censoft.censoftrongtong.domain.RiskPlanTask
;
import
com.censoft.censoftrongtong.domain.RiskPlanUserBuilding
;
import
com.censoft.censoftrongtong.domain.dto.RiskPlanAppBuildingListDto
;
import
com.censoft.censoftrongtong.enums.RiskPlanStatusType
;
import
com.censoft.censoftrongtong.mapper.RiskPlanUserBuildingMapper
;
import
com.censoft.censoftrongtong.service.IRiskPlanService
;
import
com.censoft.censoftrongtong.service.IRiskPlanTaskService
;
import
com.censoft.censoftrongtong.service.IRiskPlanUserBuildingService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -25,6 +31,12 @@ public class RiskPlanUserBuildingServiceImpl
@Resource
private
RiskPlanUserBuildingMapper
riskPlanUserBuildingMapper
;
@Resource
private
IRiskPlanService
riskPlanService
;
@Resource
private
IRiskPlanTaskService
riskPlanTaskService
;
@Override
public
Long
countStatusByPlanIdAndStatus
(
Long
planId
,
String
status
)
{
...
...
@@ -37,4 +49,49 @@ public class RiskPlanUserBuildingServiceImpl
public
List
<
RiskPlanAppBuildingListDto
>
getRiskPlanAppBuildingListDtoByPlanId
(
Long
planId
)
{
return
riskPlanUserBuildingMapper
.
getRiskPlanAppBuildingListDtoByPlanId
(
planId
);
}
@Override
public
Integer
submitByPlanIdAndBuildingId
(
Long
planId
,
Long
buildingId
,
Long
userId
)
{
//更新楼宇人员关系表状态
LambdaQueryWrapper
<
RiskPlanUserBuilding
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
=
wrapper
.
eq
(
RiskPlanUserBuilding:
:
getPlanId
,
planId
).
eq
(
RiskPlanUserBuilding:
:
getBuildingId
,
buildingId
);
RiskPlanUserBuilding
riskPlanUserBuilding
=
getOne
(
wrapper
);
riskPlanUserBuilding
.
setStatus
(
"finish"
);
riskPlanUserBuilding
.
setFinishTime
(
new
Date
());
riskPlanUserBuilding
.
setSubmitUserId
(
userId
);
updateById
(
riskPlanUserBuilding
);
//查看是否全部楼宇提交
LambdaQueryWrapper
<
RiskPlanUserBuilding
>
wrapper2
=
new
LambdaQueryWrapper
<>();
wrapper2
=
wrapper2
.
eq
(
RiskPlanUserBuilding:
:
getPlanId
,
planId
).
eq
(
RiskPlanUserBuilding:
:
getBuildingId
,
buildingId
);
List
<
RiskPlanUserBuilding
>
list
=
list
(
wrapper2
);
if
(
list
.
stream
().
allMatch
(
po
->
po
.
getStatus
().
equals
(
"finish"
))){
//获取最新的task
RiskPlanTask
lastRiskPlanTask
=
riskPlanTaskService
.
getLastRiskPlanTaskByPlanId
(
planId
);
lastRiskPlanTask
.
setStatus
(
"completed"
);
lastRiskPlanTask
.
setCompletedTime
(
new
Date
());
riskPlanTaskService
.
updateRiskPlanTask
(
lastRiskPlanTask
);
//计划
RiskPlan
riskPlan
=
riskPlanService
.
selectRiskPlanById
(
planId
);
//插入任务表 组长验收任务
RiskPlanTask
riskPlanTask1
=
new
RiskPlanTask
();
riskPlanTask1
.
setPlanId
(
lastRiskPlanTask
.
getPlanId
());
riskPlanTask1
.
setApprovalUserId
(
riskPlan
.
getLeaderUserId
());
riskPlanTask1
.
setTaskKey
(
RiskPlanStatusType
.
WAIT_LEADER_APPROVE
.
getStatus
());
riskPlanTask1
.
setTaskName
(
RiskPlanStatusType
.
WAIT_LEADER_APPROVE
.
getStatus
());
riskPlanTask1
.
setStatus
(
"running"
);
riskPlanTask1
.
setStartTime
(
new
Date
());
riskPlanTaskService
.
insertRiskPlanTask
(
riskPlanTask1
);
//修改计划状态
riskPlan
.
setStatus
(
RiskPlanStatusType
.
WAIT_LEADER_APPROVE
.
getStatus
());
riskPlanService
.
updateRiskPlan
(
riskPlan
);
}
return
1
;
}
}
censoft-rongtong/src/main/resources/mapper/system/RiskPlanMapper.xml
View file @
39a9ee5b
...
...
@@ -65,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if
test=
"createUserId != null"
>
and rp.create_user_id = #{createUserId}
</if>
<if
test=
"leaderUserId != null"
>
and rp.leader_user_id = #{leaderUserId}
</if>
<if
test=
"workUserId != null"
>
and (find_in_set(#{leaderUserId},rp.work_user_ids) or rp.leader_user_id = #{leaderUserId})
</if>
<if
test=
"statusStringList != null and statusStringList.size >0"
>
and rp.`status` in
<foreach
collection=
"statusStringList"
item=
"status"
open=
"("
separator=
","
close=
")"
>
...
...
@@ -174,6 +175,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY
rpt.start_time ASC
</select>
<select
id=
"getRiskPlanAppListDtoListByApproveUser"
resultType=
"com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto"
>
SELECT
rp.id,
rp.`name`,
rp.start_time AS startTime,
rp.`status`,
su.nick_name AS leaderUserName
FROM
risk_plan rp
LEFT JOIN sys_user su ON su.user_id = rp.leader_user_id
<where>
<if
test=
"userId != null"
>
and ((rp.approval_user_id = #{userId} and rp.`status` = 'WAIT_LEADER_APPROVE')
or
(rp.create_user_id = #{userId} and rp.`status` = 'WAIT_APPROVE'))
</if>
</where>
ORDER BY
rp.start_time DESC
</select>
<insert
id=
"insertRiskPlan"
parameterType=
"com.censoft.censoftrongtong.domain.RiskPlan"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into risk_plan
...
...
ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/SysMenuAppController.java
0 → 100644
View file @
39a9ee5b
package
com
.
ruoyi
.
web
.
controller
.
app
;
import
com.censoft.censoftrongtong.domain.*
;
import
com.censoft.censoftrongtong.domain.dto.*
;
import
com.censoft.censoftrongtong.enums.RiskPlanStatusType
;
import
com.censoft.censoftrongtong.service.*
;
import
com.ruoyi.common.config.RuoYiConfig
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.domain.R
;
import
com.ruoyi.common.core.domain.entity.SysDictData
;
import
com.ruoyi.common.core.domain.entity.SysMenu
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.system.service.ISysDictDataService
;
import
com.ruoyi.system.service.ISysMenuService
;
import
com.ruoyi.system.service.ISysUploadFileService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 菜单app端接口
*
* @author censoft
* @date 2023-06-27
* @module 融通项目
*/
@RestController
@RequestMapping
(
"/app-api/menu"
)
public
class
SysMenuAppController
extends
BaseController
{
@Autowired
private
ISysMenuService
menuService
;
/**
* 菜单栏
*
* @param httpServletRequest
* @return
*/
@GetMapping
(
"/getMenu"
)
@ResponseBody
public
AjaxResult
menu
(
HttpServletRequest
httpServletRequest
)
{
SysMenu
menu
=
new
SysMenu
();
menu
.
setParentId
(
2055L
);
menu
.
getParams
().
put
(
"userId"
,
getUserId
());
Map
menus
=
new
HashMap
<>();
if
(
SysUser
.
isAdmin
(
getUserId
()))
{
menu
.
getParams
().
put
(
"isAdmin"
,
true
);
}
List
<
SysMenu
>
title
=
menuService
.
selectMenusApp
(
menu
);
for
(
int
i
=
0
;
i
<
title
.
size
();
i
++)
{
menu
.
setParentId
(
title
.
get
(
i
).
getMenuId
());
List
<
SysMenu
>
menus1
=
menuService
.
selectMenusApp
(
menu
);
menus
.
put
(
title
.
get
(
i
).
getMenuName
(),
menus1
);
}
return
AjaxResult
.
success
(
menus
);
}
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
View file @
39a9ee5b
...
...
@@ -19,6 +19,13 @@ public interface SysMenuMapper
*/
public
List
<
SysMenu
>
selectMenuList
(
SysMenu
menu
);
/**
* 查询移动端菜单
* @param menu
* @return
*/
public
List
<
SysMenu
>
selectMenusApp
(
SysMenu
menu
);
/**
* 根据用户所有权限
*
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
View file @
39a9ee5b
...
...
@@ -2,29 +2,36 @@ package com.ruoyi.system.service;
import
java.util.List
;
import
java.util.Set
;
import
com.ruoyi.common.core.domain.TreeSelect
;
import
com.ruoyi.common.core.domain.entity.SysMenu
;
import
com.ruoyi.system.domain.vo.RouterVo
;
/**
* 菜单 业务层
*
*
* @author ruoyi
*/
public
interface
ISysMenuService
{
public
interface
ISysMenuService
{
/**
* 根据用户查询系统菜单列表
*
*
* @param userId 用户ID
* @return 菜单列表
*/
public
List
<
SysMenu
>
selectMenuList
(
Long
userId
);
/**
* 根据用户查询移动端菜单列表
*
* @return 菜单列表
*/
public
List
<
SysMenu
>
selectMenusApp
(
SysMenu
menu
);
/**
* 根据用户查询系统菜单列表
*
* @param menu 菜单信息
*
* @param menu
菜单信息
* @param userId 用户ID
* @return 菜单列表
*/
...
...
@@ -32,7 +39,7 @@ public interface ISysMenuService
/**
* 根据用户ID查询权限
*
*
* @param userId 用户ID
* @return 权限列表
*/
...
...
@@ -40,7 +47,7 @@ public interface ISysMenuService
/**
* 根据角色ID查询权限
*
*
* @param roleId 角色ID
* @return 权限列表
*/
...
...
@@ -48,7 +55,7 @@ public interface ISysMenuService
/**
* 根据用户ID查询菜单树信息
*
*
* @param userId 用户ID
* @return 菜单列表
*/
...
...
@@ -56,7 +63,7 @@ public interface ISysMenuService
/**
* 根据角色ID查询菜单树信息
*
*
* @param roleId 角色ID
* @return 选中菜单列表
*/
...
...
@@ -64,7 +71,7 @@ public interface ISysMenuService
/**
* 构建前端路由所需要的菜单
*
*
* @param menus 菜单列表
* @return 路由列表
*/
...
...
@@ -72,7 +79,7 @@ public interface ISysMenuService
/**
* 构建前端所需要树结构
*
*
* @param menus 菜单列表
* @return 树结构列表
*/
...
...
@@ -80,7 +87,7 @@ public interface ISysMenuService
/**
* 构建前端所需要下拉树结构
*
*
* @param menus 菜单列表
* @return 下拉树结构列表
*/
...
...
@@ -88,7 +95,7 @@ public interface ISysMenuService
/**
* 根据菜单ID查询信息
*
*
* @param menuId 菜单ID
* @return 菜单信息
*/
...
...
@@ -96,7 +103,7 @@ public interface ISysMenuService
/**
* 是否存在菜单子节点
*
*
* @param menuId 菜单ID
* @return 结果 true 存在 false 不存在
*/
...
...
@@ -104,7 +111,7 @@ public interface ISysMenuService
/**
* 查询菜单是否存在角色
*
*
* @param menuId 菜单ID
* @return 结果 true 存在 false 不存在
*/
...
...
@@ -112,7 +119,7 @@ public interface ISysMenuService
/**
* 新增保存菜单信息
*
*
* @param menu 菜单信息
* @return 结果
*/
...
...
@@ -120,7 +127,7 @@ public interface ISysMenuService
/**
* 修改保存菜单信息
*
*
* @param menu 菜单信息
* @return 结果
*/
...
...
@@ -128,7 +135,7 @@ public interface ISysMenuService
/**
* 删除菜单管理信息
*
*
* @param menuId 菜单ID
* @return 结果
*/
...
...
@@ -136,7 +143,7 @@ public interface ISysMenuService
/**
* 校验菜单名称是否唯一
*
*
* @param menu 菜单信息
* @return 结果
*/
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
View file @
39a9ee5b
...
...
@@ -8,6 +8,7 @@ import java.util.LinkedList;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.ruoyi.common.constant.Constants
;
...
...
@@ -27,12 +28,11 @@ import com.ruoyi.system.service.ISysMenuService;
/**
* 菜单 业务层处理
*
*
* @author ruoyi
*/
@Service
public
class
SysMenuServiceImpl
implements
ISysMenuService
{
public
class
SysMenuServiceImpl
implements
ISysMenuService
{
public
static
final
String
PREMISSION_STRING
=
"perms[\"{0}\"]"
;
@Autowired
...
...
@@ -46,33 +46,38 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 根据用户查询系统菜单列表
*
*
* @param userId 用户ID
* @return 菜单列表
*/
@Override
public
List
<
SysMenu
>
selectMenuList
(
Long
userId
)
{
public
List
<
SysMenu
>
selectMenuList
(
Long
userId
)
{
return
selectMenuList
(
new
SysMenu
(),
userId
);
}
/**
* 查询移动端菜单
* @param menu
* @return
*/
@Override
public
List
<
SysMenu
>
selectMenusApp
(
SysMenu
menu
)
{
return
menuMapper
.
selectMenusApp
(
menu
);
}
/**
* 查询系统菜单列表
*
*
* @param menu 菜单信息
* @return 菜单列表
*/
@Override
public
List
<
SysMenu
>
selectMenuList
(
SysMenu
menu
,
Long
userId
)
{
public
List
<
SysMenu
>
selectMenuList
(
SysMenu
menu
,
Long
userId
)
{
List
<
SysMenu
>
menuList
=
null
;
// 管理员显示所有菜单信息
if
(
SysUser
.
isAdmin
(
userId
))
{
if
(
SysUser
.
isAdmin
(
userId
))
{
menuList
=
menuMapper
.
selectMenuList
(
menu
);
}
else
{
}
else
{
menu
.
getParams
().
put
(
"userId"
,
userId
);
menuList
=
menuMapper
.
selectMenuListByUserId
(
menu
);
}
...
...
@@ -81,19 +86,16 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 根据用户ID查询权限
*
*
* @param userId 用户ID
* @return 权限列表
*/
@Override
public
Set
<
String
>
selectMenuPermsByUserId
(
Long
userId
)
{
public
Set
<
String
>
selectMenuPermsByUserId
(
Long
userId
)
{
List
<
String
>
perms
=
menuMapper
.
selectMenuPermsByUserId
(
userId
);
Set
<
String
>
permsSet
=
new
HashSet
<>();
for
(
String
perm
:
perms
)
{
if
(
StringUtils
.
isNotEmpty
(
perm
))
{
for
(
String
perm
:
perms
)
{
if
(
StringUtils
.
isNotEmpty
(
perm
))
{
permsSet
.
addAll
(
Arrays
.
asList
(
perm
.
trim
().
split
(
","
)));
}
}
...
...
@@ -102,19 +104,16 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 根据角色ID查询权限
*
*
* @param roleId 角色ID
* @return 权限列表
*/
@Override
public
Set
<
String
>
selectMenuPermsByRoleId
(
Long
roleId
)
{
public
Set
<
String
>
selectMenuPermsByRoleId
(
Long
roleId
)
{
List
<
String
>
perms
=
menuMapper
.
selectMenuPermsByRoleId
(
roleId
);
Set
<
String
>
permsSet
=
new
HashSet
<>();
for
(
String
perm
:
perms
)
{
if
(
StringUtils
.
isNotEmpty
(
perm
))
{
for
(
String
perm
:
perms
)
{
if
(
StringUtils
.
isNotEmpty
(
perm
))
{
permsSet
.
addAll
(
Arrays
.
asList
(
perm
.
trim
().
split
(
","
)));
}
}
...
...
@@ -123,20 +122,16 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 根据用户ID查询菜单
*
*
* @param userId 用户名称
* @return 菜单列表
*/
@Override
public
List
<
SysMenu
>
selectMenuTreeByUserId
(
Long
userId
)
{
public
List
<
SysMenu
>
selectMenuTreeByUserId
(
Long
userId
)
{
List
<
SysMenu
>
menus
=
null
;
if
(
SecurityUtils
.
isAdmin
(
userId
))
{
if
(
SecurityUtils
.
isAdmin
(
userId
))
{
menus
=
menuMapper
.
selectMenuTreeAll
();
}
else
{
}
else
{
menus
=
menuMapper
.
selectMenuTreeByUserId
(
userId
);
}
return
getChildPerms
(
menus
,
0
);
...
...
@@ -144,29 +139,26 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 根据角色ID查询菜单树信息
*
*
* @param roleId 角色ID
* @return 选中菜单列表
*/
@Override
public
List
<
Long
>
selectMenuListByRoleId
(
Long
roleId
)
{
public
List
<
Long
>
selectMenuListByRoleId
(
Long
roleId
)
{
SysRole
role
=
roleMapper
.
selectRoleById
(
roleId
);
return
menuMapper
.
selectMenuListByRoleId
(
roleId
,
role
.
isMenuCheckStrictly
());
}
/**
* 构建前端路由所需要的菜单
*
*
* @param menus 菜单列表
* @return 路由列表
*/
@Override
public
List
<
RouterVo
>
buildMenus
(
List
<
SysMenu
>
menus
)
{
public
List
<
RouterVo
>
buildMenus
(
List
<
SysMenu
>
menus
)
{
List
<
RouterVo
>
routers
=
new
LinkedList
<
RouterVo
>();
for
(
SysMenu
menu
:
menus
)
{
for
(
SysMenu
menu
:
menus
)
{
RouterVo
router
=
new
RouterVo
();
router
.
setHidden
(
"1"
.
equals
(
menu
.
getVisible
()));
router
.
setName
(
getRouteName
(
menu
));
...
...
@@ -175,14 +167,11 @@ public class SysMenuServiceImpl implements ISysMenuService
router
.
setQuery
(
menu
.
getQuery
());
router
.
setMeta
(
new
MetaVo
(
menu
.
getMenuName
(),
menu
.
getIcon
(),
StringUtils
.
equals
(
"1"
,
menu
.
getIsCache
()),
menu
.
getPath
()));
List
<
SysMenu
>
cMenus
=
menu
.
getChildren
();
if
(
StringUtils
.
isNotEmpty
(
cMenus
)
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
()))
{
if
(
StringUtils
.
isNotEmpty
(
cMenus
)
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
()))
{
router
.
setAlwaysShow
(
true
);
router
.
setRedirect
(
"noRedirect"
);
router
.
setChildren
(
buildMenus
(
cMenus
));
}
else
if
(
isMenuFrame
(
menu
))
{
}
else
if
(
isMenuFrame
(
menu
))
{
router
.
setMeta
(
null
);
List
<
RouterVo
>
childrenList
=
new
ArrayList
<
RouterVo
>();
RouterVo
children
=
new
RouterVo
();
...
...
@@ -193,9 +182,7 @@ public class SysMenuServiceImpl implements ISysMenuService
children
.
setQuery
(
menu
.
getQuery
());
childrenList
.
add
(
children
);
router
.
setChildren
(
childrenList
);
}
else
if
(
menu
.
getParentId
().
intValue
()
==
0
&&
isInnerLink
(
menu
))
{
}
else
if
(
menu
.
getParentId
().
intValue
()
==
0
&&
isInnerLink
(
menu
))
{
router
.
setMeta
(
new
MetaVo
(
menu
.
getMenuName
(),
menu
.
getIcon
()));
router
.
setPath
(
"/"
);
List
<
RouterVo
>
childrenList
=
new
ArrayList
<
RouterVo
>();
...
...
@@ -215,27 +202,23 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 构建前端所需要树结构
*
*
* @param menus 菜单列表
* @return 树结构列表
*/
@Override
public
List
<
SysMenu
>
buildMenuTree
(
List
<
SysMenu
>
menus
)
{
public
List
<
SysMenu
>
buildMenuTree
(
List
<
SysMenu
>
menus
)
{
List
<
SysMenu
>
returnList
=
new
ArrayList
<
SysMenu
>();
List
<
Long
>
tempList
=
menus
.
stream
().
map
(
SysMenu:
:
getMenuId
).
collect
(
Collectors
.
toList
());
for
(
Iterator
<
SysMenu
>
iterator
=
menus
.
iterator
();
iterator
.
hasNext
();)
{
for
(
Iterator
<
SysMenu
>
iterator
=
menus
.
iterator
();
iterator
.
hasNext
();
)
{
SysMenu
menu
=
(
SysMenu
)
iterator
.
next
();
// 如果是顶级节点, 遍历该父节点的所有子节点
if
(!
tempList
.
contains
(
menu
.
getParentId
()))
{
if
(!
tempList
.
contains
(
menu
.
getParentId
()))
{
recursionFn
(
menus
,
menu
);
returnList
.
add
(
menu
);
}
}
if
(
returnList
.
isEmpty
())
{
if
(
returnList
.
isEmpty
())
{
returnList
=
menus
;
}
return
returnList
;
...
...
@@ -243,104 +226,95 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 构建前端所需要下拉树结构
*
*
* @param menus 菜单列表
* @return 下拉树结构列表
*/
@Override
public
List
<
TreeSelect
>
buildMenuTreeSelect
(
List
<
SysMenu
>
menus
)
{
public
List
<
TreeSelect
>
buildMenuTreeSelect
(
List
<
SysMenu
>
menus
)
{
List
<
SysMenu
>
menuTrees
=
buildMenuTree
(
menus
);
return
menuTrees
.
stream
().
map
(
TreeSelect:
:
new
).
collect
(
Collectors
.
toList
());
}
/**
* 根据菜单ID查询信息
*
*
* @param menuId 菜单ID
* @return 菜单信息
*/
@Override
public
SysMenu
selectMenuById
(
Long
menuId
)
{
public
SysMenu
selectMenuById
(
Long
menuId
)
{
return
menuMapper
.
selectMenuById
(
menuId
);
}
/**
* 是否存在菜单子节点
*
*
* @param menuId 菜单ID
* @return 结果
*/
@Override
public
boolean
hasChildByMenuId
(
Long
menuId
)
{
public
boolean
hasChildByMenuId
(
Long
menuId
)
{
int
result
=
menuMapper
.
hasChildByMenuId
(
menuId
);
return
result
>
0
;
}
/**
* 查询菜单使用数量
*
*
* @param menuId 菜单ID
* @return 结果
*/
@Override
public
boolean
checkMenuExistRole
(
Long
menuId
)
{
public
boolean
checkMenuExistRole
(
Long
menuId
)
{
int
result
=
roleMenuMapper
.
checkMenuExistRole
(
menuId
);
return
result
>
0
;
}
/**
* 新增保存菜单信息
*
*
* @param menu 菜单信息
* @return 结果
*/
@Override
public
int
insertMenu
(
SysMenu
menu
)
{
public
int
insertMenu
(
SysMenu
menu
)
{
return
menuMapper
.
insertMenu
(
menu
);
}
/**
* 修改保存菜单信息
*
*
* @param menu 菜单信息
* @return 结果
*/
@Override
public
int
updateMenu
(
SysMenu
menu
)
{
public
int
updateMenu
(
SysMenu
menu
)
{
return
menuMapper
.
updateMenu
(
menu
);
}
/**
* 删除菜单管理信息
*
*
* @param menuId 菜单ID
* @return 结果
*/
@Override
public
int
deleteMenuById
(
Long
menuId
)
{
public
int
deleteMenuById
(
Long
menuId
)
{
return
menuMapper
.
deleteMenuById
(
menuId
);
}
/**
* 校验菜单名称是否唯一
*
*
* @param menu 菜单信息
* @return 结果
*/
@Override
public
boolean
checkMenuNameUnique
(
SysMenu
menu
)
{
public
boolean
checkMenuNameUnique
(
SysMenu
menu
)
{
Long
menuId
=
StringUtils
.
isNull
(
menu
.
getMenuId
())
?
-
1L
:
menu
.
getMenuId
();
SysMenu
info
=
menuMapper
.
checkMenuNameUnique
(
menu
.
getMenuName
(),
menu
.
getParentId
());
if
(
StringUtils
.
isNotNull
(
info
)
&&
info
.
getMenuId
().
longValue
()
!=
menuId
.
longValue
())
{
if
(
StringUtils
.
isNotNull
(
info
)
&&
info
.
getMenuId
().
longValue
()
!=
menuId
.
longValue
())
{
return
UserConstants
.
NOT_UNIQUE
;
}
return
UserConstants
.
UNIQUE
;
...
...
@@ -348,16 +322,14 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 获取路由名称
*
*
* @param menu 菜单信息
* @return 路由名称
*/
public
String
getRouteName
(
SysMenu
menu
)
{
public
String
getRouteName
(
SysMenu
menu
)
{
String
routerName
=
StringUtils
.
capitalize
(
menu
.
getPath
());
// 非外链并且是一级目录(类型为目录)
if
(
isMenuFrame
(
menu
))
{
if
(
isMenuFrame
(
menu
))
{
routerName
=
StringUtils
.
EMPTY
;
}
return
routerName
;
...
...
@@ -365,27 +337,23 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 获取路由地址
*
*
* @param menu 菜单信息
* @return 路由地址
*/
public
String
getRouterPath
(
SysMenu
menu
)
{
public
String
getRouterPath
(
SysMenu
menu
)
{
String
routerPath
=
menu
.
getPath
();
// 内链打开外网方式
if
(
menu
.
getParentId
().
intValue
()
!=
0
&&
isInnerLink
(
menu
))
{
if
(
menu
.
getParentId
().
intValue
()
!=
0
&&
isInnerLink
(
menu
))
{
routerPath
=
innerLinkReplaceEach
(
routerPath
);
}
// 非外链并且是一级目录(类型为目录)
if
(
0
==
menu
.
getParentId
().
intValue
()
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
())
&&
UserConstants
.
NO_FRAME
.
equals
(
menu
.
getIsFrame
()))
{
&&
UserConstants
.
NO_FRAME
.
equals
(
menu
.
getIsFrame
()))
{
routerPath
=
"/"
+
menu
.
getPath
();
}
// 非外链并且是一级目录(类型为菜单)
else
if
(
isMenuFrame
(
menu
))
{
else
if
(
isMenuFrame
(
menu
))
{
routerPath
=
"/"
;
}
return
routerPath
;
...
...
@@ -393,23 +361,17 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 获取组件信息
*
*
* @param menu 菜单信息
* @return 组件信息
*/
public
String
getComponent
(
SysMenu
menu
)
{
public
String
getComponent
(
SysMenu
menu
)
{
String
component
=
UserConstants
.
LAYOUT
;
if
(
StringUtils
.
isNotEmpty
(
menu
.
getComponent
())
&&
!
isMenuFrame
(
menu
))
{
if
(
StringUtils
.
isNotEmpty
(
menu
.
getComponent
())
&&
!
isMenuFrame
(
menu
))
{
component
=
menu
.
getComponent
();
}
else
if
(
StringUtils
.
isEmpty
(
menu
.
getComponent
())
&&
menu
.
getParentId
().
intValue
()
!=
0
&&
isInnerLink
(
menu
))
{
}
else
if
(
StringUtils
.
isEmpty
(
menu
.
getComponent
())
&&
menu
.
getParentId
().
intValue
()
!=
0
&&
isInnerLink
(
menu
))
{
component
=
UserConstants
.
INNER_LINK
;
}
else
if
(
StringUtils
.
isEmpty
(
menu
.
getComponent
())
&&
isParentView
(
menu
))
{
}
else
if
(
StringUtils
.
isEmpty
(
menu
.
getComponent
())
&&
isParentView
(
menu
))
{
component
=
UserConstants
.
PARENT_VIEW
;
}
return
component
;
...
...
@@ -417,54 +379,48 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 是否为菜单内部跳转
*
*
* @param menu 菜单信息
* @return 结果
*/
public
boolean
isMenuFrame
(
SysMenu
menu
)
{
public
boolean
isMenuFrame
(
SysMenu
menu
)
{
return
menu
.
getParentId
().
intValue
()
==
0
&&
UserConstants
.
TYPE_MENU
.
equals
(
menu
.
getMenuType
())
&&
menu
.
getIsFrame
().
equals
(
UserConstants
.
NO_FRAME
);
}
/**
* 是否为内链组件
*
*
* @param menu 菜单信息
* @return 结果
*/
public
boolean
isInnerLink
(
SysMenu
menu
)
{
public
boolean
isInnerLink
(
SysMenu
menu
)
{
return
menu
.
getIsFrame
().
equals
(
UserConstants
.
NO_FRAME
)
&&
StringUtils
.
ishttp
(
menu
.
getPath
());
}
/**
* 是否为parent_view组件
*
*
* @param menu 菜单信息
* @return 结果
*/
public
boolean
isParentView
(
SysMenu
menu
)
{
public
boolean
isParentView
(
SysMenu
menu
)
{
return
menu
.
getParentId
().
intValue
()
!=
0
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
());
}
/**
* 根据父节点的ID获取所有子节点
*
* @param list 分类表
*
* @param list
分类表
* @param parentId 传入的父节点ID
* @return String
*/
public
List
<
SysMenu
>
getChildPerms
(
List
<
SysMenu
>
list
,
int
parentId
)
{
public
List
<
SysMenu
>
getChildPerms
(
List
<
SysMenu
>
list
,
int
parentId
)
{
List
<
SysMenu
>
returnList
=
new
ArrayList
<
SysMenu
>();
for
(
Iterator
<
SysMenu
>
iterator
=
list
.
iterator
();
iterator
.
hasNext
();)
{
for
(
Iterator
<
SysMenu
>
iterator
=
list
.
iterator
();
iterator
.
hasNext
();
)
{
SysMenu
t
=
(
SysMenu
)
iterator
.
next
();
// 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
if
(
t
.
getParentId
()
==
parentId
)
{
if
(
t
.
getParentId
()
==
parentId
)
{
recursionFn
(
list
,
t
);
returnList
.
add
(
t
);
}
...
...
@@ -474,19 +430,16 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 递归列表
*
*
* @param list 分类表
* @param t 子节点
* @param t
子节点
*/
private
void
recursionFn
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
private
void
recursionFn
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
// 得到子节点列表
List
<
SysMenu
>
childList
=
getChildList
(
list
,
t
);
t
.
setChildren
(
childList
);
for
(
SysMenu
tChild
:
childList
)
{
if
(
hasChild
(
list
,
tChild
))
{
for
(
SysMenu
tChild
:
childList
)
{
if
(
hasChild
(
list
,
tChild
))
{
recursionFn
(
list
,
tChild
);
}
}
...
...
@@ -495,15 +448,12 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 得到子节点列表
*/
private
List
<
SysMenu
>
getChildList
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
private
List
<
SysMenu
>
getChildList
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
List
<
SysMenu
>
tlist
=
new
ArrayList
<
SysMenu
>();
Iterator
<
SysMenu
>
it
=
list
.
iterator
();
while
(
it
.
hasNext
())
{
while
(
it
.
hasNext
())
{
SysMenu
n
=
(
SysMenu
)
it
.
next
();
if
(
n
.
getParentId
().
longValue
()
==
t
.
getMenuId
().
longValue
())
{
if
(
n
.
getParentId
().
longValue
()
==
t
.
getMenuId
().
longValue
())
{
tlist
.
add
(
n
);
}
}
...
...
@@ -513,19 +463,17 @@ public class SysMenuServiceImpl implements ISysMenuService
/**
* 判断是否有子节点
*/
private
boolean
hasChild
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
private
boolean
hasChild
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
return
getChildList
(
list
,
t
).
size
()
>
0
;
}
/**
* 内链域名特殊字符替换
*
*
* @return 替换后的内链域名
*/
public
String
innerLinkReplaceEach
(
String
path
)
{
return
StringUtils
.
replaceEach
(
path
,
new
String
[]
{
Constants
.
HTTP
,
Constants
.
HTTPS
,
Constants
.
WWW
,
"."
},
new
String
[]
{
""
,
""
,
""
,
"/"
});
public
String
innerLinkReplaceEach
(
String
path
)
{
return
StringUtils
.
replaceEach
(
path
,
new
String
[]{
Constants
.
HTTP
,
Constants
.
HTTPS
,
Constants
.
WWW
,
"."
},
new
String
[]{
""
,
""
,
""
,
"/"
});
}
}
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
View file @
39a9ee5b
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.ruoyi.system.mapper.SysMenuMapper"
>
<resultMap
type=
"SysMenu"
id=
"SysMenuResult"
>
<id
property=
"menuId"
column=
"menu_id"
/>
<result
property=
"menuName"
column=
"menu_name"
/>
<result
property=
"parentName"
column=
"parent_name"
/>
<result
property=
"parentId"
column=
"parent_id"
/>
<result
property=
"orderNum"
column=
"order_num"
/>
<result
property=
"path"
column=
"path"
/>
<result
property=
"component"
column=
"component"
/>
<result
property=
"query"
column=
"query"
/>
<result
property=
"isFrame"
column=
"is_frame"
/>
<result
property=
"isCache"
column=
"is_cache"
/>
<result
property=
"menuType"
column=
"menu_type"
/>
<result
property=
"visible"
column=
"visible"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"perms"
column=
"perms"
/>
<result
property=
"icon"
column=
"icon"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"remark"
column=
"remark"
/>
</resultMap>
<sql
id=
"selectMenuVo"
>
<resultMap
type=
"SysMenu"
id=
"SysMenuResult"
>
<id
property=
"menuId"
column=
"menu_id"
/>
<result
property=
"menuName"
column=
"menu_name"
/>
<result
property=
"parentName"
column=
"parent_name"
/>
<result
property=
"parentId"
column=
"parent_id"
/>
<result
property=
"orderNum"
column=
"order_num"
/>
<result
property=
"path"
column=
"path"
/>
<result
property=
"component"
column=
"component"
/>
<result
property=
"query"
column=
"query"
/>
<result
property=
"isFrame"
column=
"is_frame"
/>
<result
property=
"isCache"
column=
"is_cache"
/>
<result
property=
"menuType"
column=
"menu_type"
/>
<result
property=
"visible"
column=
"visible"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"perms"
column=
"perms"
/>
<result
property=
"icon"
column=
"icon"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"remark"
column=
"remark"
/>
</resultMap>
<sql
id=
"selectMenuVo"
>
select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
from sys_menu
</sql>
<select
id=
"selectMenuList"
parameterType=
"SysMenu"
resultMap=
"SysMenuResult"
>
<include
refid=
"selectMenuVo"
/>
<where>
<if
test=
"menuName != null and menuName != ''"
>
AND menu_name like concat('%', #{menuName}, '%')
</if>
<if
test=
"visible != null and visible != ''"
>
AND visible = #{visible}
</if>
<if
test=
"status != null and status != ''"
>
AND status = #{status}
</if>
</where>
order by parent_id, order_num
</select>
<select
id=
"selectMenuTreeAll"
resultMap=
"SysMenuResult"
>
<include
refid=
"selectMenuVo"
/>
<where>
<if
test=
"menuName != null and menuName != ''"
>
AND menu_name like concat('%', #{menuName}, '%')
</if>
<if
test=
"visible != null and visible != ''"
>
AND visible = #{visible}
</if>
<if
test=
"status != null and status != ''"
>
AND status = #{status}
</if>
</where>
order by parent_id, order_num
</select>
<select
id=
"selectMenusApp"
parameterType=
"SysMenu"
resultMap=
"SysMenuResult"
>
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status,
ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
LEFT JOIN sys_role ro on ur.role_id = ro.role_id
<where>
and m.parent_id = #{parentId}
<if
test=
" params.isAdmin ==null or !params.isAdmin "
>
AND ro.status = 0
and ur.user_id = #{params.userId}
</if>
</where>
order by m.parent_id, m.order_num
</select>
<select
id=
"selectMenuTreeAll"
resultMap=
"SysMenuResult"
>
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0
order by m.parent_id, m.order_num
</select>
<select
id=
"selectMenuListByUserId"
parameterType=
"SysMenu"
resultMap=
"SysMenuResult"
>
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role ro on ur.role_id = ro.role_id
where ur.user_id = #{params.userId}
<if
test=
"menuName != null and menuName != ''"
>
<select
id=
"selectMenuListByUserId"
parameterType=
"SysMenu"
resultMap=
"SysMenuResult"
>
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status,
ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role ro on ur.role_id = ro.role_id
where ur.user_id = #{params.userId}
<if
test=
"menuName != null and menuName != ''"
>
AND m.menu_name like concat('%', #{menuName}, '%')
</if>
<if
test=
"visible != null and visible != ''"
>
</if>
<if
test=
"visible != null and visible != ''"
>
AND m.visible = #{visible}
</if>
<if
test=
"status != null and status != ''"
>
</if>
<if
test=
"status != null and status != ''"
>
AND m.status = #{status}
</if>
order by m.parent_id, m.order_num
</select>
</if>
order by m.parent_id, m.order_num
</select>
<select
id=
"selectMenuTreeByUserId"
parameterType=
"Long"
resultMap=
"SysMenuResult"
>
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
...
...
@@ -83,26 +103,27 @@
where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0
order by m.parent_id, m.order_num
</select>
<select
id=
"selectMenuListByRoleId"
resultType=
"Long"
>
select m.menu_id
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
<select
id=
"selectMenuListByRoleId"
resultType=
"Long"
>
select m.menu_id
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
where rm.role_id = #{roleId}
<if
test=
"menuCheckStrictly"
>
and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
</if>
order by m.parent_id, m.order_num
</select>
<select
id=
"selectMenuPerms"
resultType=
"String"
>
<if
test=
"menuCheckStrictly"
>
and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id =
rm.menu_id and rm.role_id = #{roleId})
</if>
order by m.parent_id, m.order_num
</select>
<select
id=
"selectMenuPerms"
resultType=
"String"
>
select distinct m.perms
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
</select>
<select
id=
"selectMenuPermsByUserId"
parameterType=
"Long"
resultType=
"String"
>
<select
id=
"selectMenuPermsByUserId"
parameterType=
"Long"
resultType=
"String"
>
select distinct m.perms
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
...
...
@@ -110,92 +131,92 @@
left join sys_role r on r.role_id = ur.role_id
where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
</select>
<select
id=
"selectMenuPermsByRoleId"
parameterType=
"Long"
resultType=
"String"
>
<select
id=
"selectMenuPermsByRoleId"
parameterType=
"Long"
resultType=
"String"
>
select distinct m.perms
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
where m.status = '0' and rm.role_id = #{roleId}
</select>
<select
id=
"selectMenuById"
parameterType=
"Long"
resultMap=
"SysMenuResult"
>
<include
refid=
"selectMenuVo"
/>
where menu_id = #{menuId}
</select>
<select
id=
"hasChildByMenuId"
resultType=
"Integer"
>
<select
id=
"selectMenuById"
parameterType=
"Long"
resultMap=
"SysMenuResult"
>
<include
refid=
"selectMenuVo"
/>
where menu_id = #{menuId}
</select>
<select
id=
"hasChildByMenuId"
resultType=
"Integer"
>
select count(1) from sys_menu where parent_id = #{menuId}
</select>
<select
id=
"checkMenuNameUnique"
parameterType=
"SysMenu"
resultMap=
"SysMenuResult"
>
<include
refid=
"selectMenuVo"
/>
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
</select>
<update
id=
"updateMenu"
parameterType=
"SysMenu"
>
update sys_menu
<set>
<if
test=
"menuName != null and menuName != ''"
>
menu_name = #{menuName},
</if>
<if
test=
"parentId != null"
>
parent_id = #{parentId},
</if>
<if
test=
"orderNum != null"
>
order_num = #{orderNum},
</if>
<if
test=
"path != null and path != ''"
>
path = #{path},
</if>
<if
test=
"component != null"
>
component = #{component},
</if>
<if
test=
"query != null"
>
`query` = #{query},
</if>
<if
test=
"isFrame != null and isFrame != ''"
>
is_frame = #{isFrame},
</if>
<if
test=
"isCache != null and isCache != ''"
>
is_cache = #{isCache},
</if>
<if
test=
"menuType != null and menuType != ''"
>
menu_type = #{menuType},
</if>
<if
test=
"visible != null"
>
visible = #{visible},
</if>
<if
test=
"status != null"
>
status = #{status},
</if>
<if
test=
"perms !=null"
>
perms = #{perms},
</if>
<if
test=
"icon !=null and icon != ''"
>
icon = #{icon},
</if>
<if
test=
"remark != null and remark != ''"
>
remark = #{remark},
</if>
<if
test=
"updateBy != null and updateBy != ''"
>
update_by = #{updateBy},
</if>
update_time = sysdate()
</set>
where menu_id = #{menuId}
</update>
<insert
id=
"insertMenu"
parameterType=
"SysMenu"
>
insert into sys_menu(
<if
test=
"menuId != null and menuId != 0"
>
menu_id,
</if>
<if
test=
"parentId != null and parentId != 0"
>
parent_id,
</if>
<if
test=
"menuName != null and menuName != ''"
>
menu_name,
</if>
<if
test=
"orderNum != null"
>
order_num,
</if>
<if
test=
"path != null and path != ''"
>
path,
</if>
<if
test=
"component != null and component != ''"
>
component,
</if>
<if
test=
"query != null and query != ''"
>
`query`,
</if>
<if
test=
"isFrame != null and isFrame != ''"
>
is_frame,
</if>
<if
test=
"isCache != null and isCache != ''"
>
is_cache,
</if>
<if
test=
"menuType != null and menuType != ''"
>
menu_type,
</if>
<if
test=
"visible != null"
>
visible,
</if>
<if
test=
"status != null"
>
status,
</if>
<if
test=
"perms !=null and perms != ''"
>
perms,
</if>
<if
test=
"icon != null and icon != ''"
>
icon,
</if>
<if
test=
"remark != null and remark != ''"
>
remark,
</if>
<if
test=
"createBy != null and createBy != ''"
>
create_by,
</if>
create_time
)values(
<if
test=
"menuId != null and menuId != 0"
>
#{menuId},
</if>
<if
test=
"parentId != null and parentId != 0"
>
#{parentId},
</if>
<if
test=
"menuName != null and menuName != ''"
>
#{menuName},
</if>
<if
test=
"orderNum != null"
>
#{orderNum},
</if>
<if
test=
"path != null and path != ''"
>
#{path},
</if>
<if
test=
"component != null and component != ''"
>
#{component},
</if>
<if
test=
"query != null and query != ''"
>
#{query},
</if>
<if
test=
"isFrame != null and isFrame != ''"
>
#{isFrame},
</if>
<if
test=
"isCache != null and isCache != ''"
>
#{isCache},
</if>
<if
test=
"menuType != null and menuType != ''"
>
#{menuType},
</if>
<if
test=
"visible != null"
>
#{visible},
</if>
<if
test=
"status != null"
>
#{status},
</if>
<if
test=
"perms !=null and perms != ''"
>
#{perms},
</if>
<if
test=
"icon != null and icon != ''"
>
#{icon},
</if>
<if
test=
"remark != null and remark != ''"
>
#{remark},
</if>
<if
test=
"createBy != null and createBy != ''"
>
#{createBy},
</if>
sysdate()
)
</insert>
<delete
id=
"deleteMenuById"
parameterType=
"Long"
>
<select
id=
"checkMenuNameUnique"
parameterType=
"SysMenu"
resultMap=
"SysMenuResult"
>
<include
refid=
"selectMenuVo"
/>
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
</select>
<update
id=
"updateMenu"
parameterType=
"SysMenu"
>
update sys_menu
<set>
<if
test=
"menuName != null and menuName != ''"
>
menu_name = #{menuName},
</if>
<if
test=
"parentId != null"
>
parent_id = #{parentId},
</if>
<if
test=
"orderNum != null"
>
order_num = #{orderNum},
</if>
<if
test=
"path != null and path != ''"
>
path = #{path},
</if>
<if
test=
"component != null"
>
component = #{component},
</if>
<if
test=
"query != null"
>
`query` = #{query},
</if>
<if
test=
"isFrame != null and isFrame != ''"
>
is_frame = #{isFrame},
</if>
<if
test=
"isCache != null and isCache != ''"
>
is_cache = #{isCache},
</if>
<if
test=
"menuType != null and menuType != ''"
>
menu_type = #{menuType},
</if>
<if
test=
"visible != null"
>
visible = #{visible},
</if>
<if
test=
"status != null"
>
status = #{status},
</if>
<if
test=
"perms !=null"
>
perms = #{perms},
</if>
<if
test=
"icon !=null and icon != ''"
>
icon = #{icon},
</if>
<if
test=
"remark != null and remark != ''"
>
remark = #{remark},
</if>
<if
test=
"updateBy != null and updateBy != ''"
>
update_by = #{updateBy},
</if>
update_time = sysdate()
</set>
where menu_id = #{menuId}
</update>
<insert
id=
"insertMenu"
parameterType=
"SysMenu"
>
insert into sys_menu(
<if
test=
"menuId != null and menuId != 0"
>
menu_id,
</if>
<if
test=
"parentId != null and parentId != 0"
>
parent_id,
</if>
<if
test=
"menuName != null and menuName != ''"
>
menu_name,
</if>
<if
test=
"orderNum != null"
>
order_num,
</if>
<if
test=
"path != null and path != ''"
>
path,
</if>
<if
test=
"component != null and component != ''"
>
component,
</if>
<if
test=
"query != null and query != ''"
>
`query`,
</if>
<if
test=
"isFrame != null and isFrame != ''"
>
is_frame,
</if>
<if
test=
"isCache != null and isCache != ''"
>
is_cache,
</if>
<if
test=
"menuType != null and menuType != ''"
>
menu_type,
</if>
<if
test=
"visible != null"
>
visible,
</if>
<if
test=
"status != null"
>
status,
</if>
<if
test=
"perms !=null and perms != ''"
>
perms,
</if>
<if
test=
"icon != null and icon != ''"
>
icon,
</if>
<if
test=
"remark != null and remark != ''"
>
remark,
</if>
<if
test=
"createBy != null and createBy != ''"
>
create_by,
</if>
create_time
)values(
<if
test=
"menuId != null and menuId != 0"
>
#{menuId},
</if>
<if
test=
"parentId != null and parentId != 0"
>
#{parentId},
</if>
<if
test=
"menuName != null and menuName != ''"
>
#{menuName},
</if>
<if
test=
"orderNum != null"
>
#{orderNum},
</if>
<if
test=
"path != null and path != ''"
>
#{path},
</if>
<if
test=
"component != null and component != ''"
>
#{component},
</if>
<if
test=
"query != null and query != ''"
>
#{query},
</if>
<if
test=
"isFrame != null and isFrame != ''"
>
#{isFrame},
</if>
<if
test=
"isCache != null and isCache != ''"
>
#{isCache},
</if>
<if
test=
"menuType != null and menuType != ''"
>
#{menuType},
</if>
<if
test=
"visible != null"
>
#{visible},
</if>
<if
test=
"status != null"
>
#{status},
</if>
<if
test=
"perms !=null and perms != ''"
>
#{perms},
</if>
<if
test=
"icon != null and icon != ''"
>
#{icon},
</if>
<if
test=
"remark != null and remark != ''"
>
#{remark},
</if>
<if
test=
"createBy != null and createBy != ''"
>
#{createBy},
</if>
sysdate()
)
</insert>
<delete
id=
"deleteMenuById"
parameterType=
"Long"
>
delete from sys_menu where menu_id = #{menuId}
</delete>
...
...
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