Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sv-springboot
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
bsoft
sv-springboot
Commits
c3daae30
Commit
c3daae30
authored
Jun 28, 2021
by
songzhenmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:新增导出权限控制
parent
a321a625
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
368 additions
and
1 deletions
+368
-1
hs-admin/src/main/java/com/hs/admin/controller/UserController.java
+28
-0
hs-admin/src/main/java/com/hs/admin/mapper/SysDataMenuMapper.java
+17
-0
hs-admin/src/main/java/com/hs/admin/model/SysDataMenu.java
+38
-0
hs-admin/src/main/java/com/hs/admin/model/SysDataMenuRs.java
+25
-0
hs-admin/src/main/java/com/hs/admin/model/reqmodel/UserReq.java
+50
-0
hs-admin/src/main/java/com/hs/admin/service/SysDataMenuService.java
+14
-0
hs-admin/src/main/java/com/hs/admin/service/UserService.java
+2
-1
hs-admin/src/main/java/com/hs/admin/service/impl/SysDataMenuServiceImpl.java
+40
-0
hs-admin/src/main/java/com/hs/admin/service/impl/UserServiceImpl.java
+24
-0
hs-admin/src/main/resources/mapper/SysDataMenuMapper.xml
+59
-0
hs-api/src/main/java/com/hs/api/mapper/SysUserMapper.java
+4
-0
hs-api/src/main/java/com/hs/api/model/SysDataMenu.java
+36
-0
hs-api/src/main/java/com/hs/api/model/respmodel/LoginInfo.java
+12
-0
hs-api/src/main/java/com/hs/api/service/Impl/LoginServiceImpl.java
+3
-0
hs-api/src/main/resources/mapper/SysUserMapper.xml
+16
-0
No files found.
hs-admin/src/main/java/com/hs/admin/controller/UserController.java
View file @
c3daae30
...
...
@@ -5,6 +5,7 @@ import com.hs.admin.common.annotations.CurrentUser;
import
com.hs.admin.common.annotations.Token
;
import
com.hs.admin.common.base.PageRequest
;
import
com.hs.admin.common.base.PageResult
;
import
com.hs.admin.model.SysDataMenu
;
import
com.hs.admin.model.SysRole
;
import
com.hs.admin.model.SysUser
;
import
com.hs.admin.model.reqmodel.AddUserReq
;
...
...
@@ -12,6 +13,7 @@ import com.hs.admin.model.reqmodel.UpdateUserReq;
import
com.hs.admin.model.reqmodel.UserReq
;
import
com.hs.admin.model.respmodel.SysMenuList
;
import
com.hs.admin.model.respmodel.SysUserList
;
import
com.hs.admin.service.SysDataMenuService
;
import
com.hs.admin.service.SysMenuService
;
import
com.hs.admin.service.SysUserRoleRsService
;
import
com.hs.admin.service.UserService
;
...
...
@@ -24,8 +26,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
java.util.List
;
import
java.util.Map
;
@Api
(
tags
=
"用户API"
,
produces
=
"produces"
,
consumes
=
"consumes"
,
protocols
=
"protocols"
)
@RequestMapping
(
"/user"
)
...
...
@@ -37,6 +41,8 @@ public class UserController {
private
SysUserRoleRsService
sysUserRoleRsService
;
@Autowired
private
SysMenuService
sysMenuService
;
@Resource
private
SysDataMenuService
sysDataMenuService
;
@PostMapping
(
"all"
)
@Token
...
...
@@ -141,4 +147,26 @@ public class UserController {
return
Result
.
success
(
updateresult
);
}
@PostMapping
(
"getDataMenuList"
)
@Token
@ApiOperation
(
"查询数据菜单列表"
)
public
Object
getDataMenuList
(
@RequestBody
UserReq
.
UserDataMenuReq
req
)
throws
Exception
{
Map
<
String
,
List
<
SysDataMenu
>>
listMap
=
sysDataMenuService
.
getDataMenuList
(
req
.
getUserId
(),
req
.
getRoleId
(),
req
.
getType
());
return
Result
.
success
(
listMap
);
}
@PostMapping
(
"addUserDataMenu"
)
@Token
@ApiOperation
(
"添加数据菜单权限"
)
public
Object
saveUserDataMenurs
(
@RequestBody
UserReq
.
UserDataMenuRsReq
req
)
throws
Exception
{
sysDataMenuService
.
saveUserDataMenurs
(
req
.
getUserId
(),
req
.
getDataMenuIds
());
return
Result
.
success
(
true
);
}
@PostMapping
(
"initSysDataMenuRs"
)
@ApiOperation
(
"初始化数据菜单权限"
)
public
Object
initSysDataMenuRs
(
@RequestBody
UserReq
.
UserDataMenuRsReq
req
)
throws
Exception
{
userService
.
initSysDataMenuRs
();
return
Result
.
success
(
true
);
}
}
hs-admin/src/main/java/com/hs/admin/mapper/SysDataMenuMapper.java
0 → 100644
View file @
c3daae30
package
com
.
hs
.
admin
.
mapper
;
import
com.hs.admin.model.SysDataMenu
;
import
org.mapstruct.Mapper
;
import
java.util.List
;
@Mapper
public
interface
SysDataMenuMapper
{
List
<
SysDataMenu
>
getDataMenuList
(
Integer
userId
,
Integer
roleId
,
String
type
);
boolean
deleteByUserId
(
Integer
userId
);
void
insert
(
Integer
userId
,
Integer
dataMenuId
);
}
\ No newline at end of file
hs-admin/src/main/java/com/hs/admin/model/SysDataMenu.java
0 → 100644
View file @
c3daae30
package
com
.
hs
.
admin
.
model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
public
class
SysDataMenu
{
private
Integer
id
;
private
Date
createDate
;
@Setter
private
boolean
state
;
@Setter
private
String
type
;
@Setter
private
String
name
;
@Setter
private
String
moduleName
;
@Setter
private
String
code
;
@Setter
private
String
firstCode
;
@Setter
private
String
roles
;
@Setter
private
boolean
checked
;
}
\ No newline at end of file
hs-admin/src/main/java/com/hs/admin/model/SysDataMenuRs.java
0 → 100644
View file @
c3daae30
package
com
.
hs
.
admin
.
model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
public
class
SysDataMenuRs
{
private
Integer
id
;
private
Date
createDate
;
@Setter
private
boolean
state
;
@Setter
private
String
type
;
@Setter
private
String
name
;
}
\ No newline at end of file
hs-admin/src/main/java/com/hs/admin/model/reqmodel/UserReq.java
View file @
c3daae30
...
...
@@ -2,9 +2,12 @@ package com.hs.admin.model.reqmodel;
import
com.hs.admin.common.base.PageRequest
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
public
class
UserReq
{
public
static
class
SysconfigReq
{
...
...
@@ -292,4 +295,51 @@ public class UserReq {
'}'
;
}
}
public
static
class
UserDataMenuReq
{
@ApiModelProperty
(
value
=
"用户ID"
,
required
=
false
)
@Setter
@Getter
private
Integer
userId
;
@ApiModelProperty
(
value
=
"角色ID"
,
required
=
false
)
@Setter
@Getter
private
Integer
roleId
;
@Setter
@Getter
@ApiModelProperty
(
value
=
"类型"
,
required
=
true
)
@NotBlank
(
message
=
"类型 参数必传"
)
private
String
type
;
@Override
public
String
toString
()
{
return
"UserDataMenuReq{"
+
"roleId="
+
roleId
+
", sex='"
+
type
+
'\''
+
'}'
;
}
}
public
static
class
UserDataMenuRsReq
{
@ApiModelProperty
(
value
=
"角色ID"
,
required
=
false
)
@Setter
@Getter
private
Integer
userId
;
@Setter
@Getter
@ApiModelProperty
(
value
=
"类型"
,
required
=
true
)
@NotBlank
(
message
=
"类型 参数必传"
)
private
List
<
Integer
>
dataMenuIds
;
@Override
public
String
toString
()
{
return
"UserDataMenuReq{"
+
"userId="
+
userId
+
", dataMenuIds='"
+
dataMenuIds
+
'\''
+
'}'
;
}
}
}
hs-admin/src/main/java/com/hs/admin/service/SysDataMenuService.java
0 → 100644
View file @
c3daae30
package
com
.
hs
.
admin
.
service
;
import
com.hs.admin.model.SysDataMenu
;
import
java.util.List
;
import
java.util.Map
;
public
interface
SysDataMenuService
{
Map
<
String
,
List
<
SysDataMenu
>>
getDataMenuList
(
Integer
userId
,
Integer
roleId
,
String
type
);
void
saveUserDataMenurs
(
Integer
userId
,
List
<
Integer
>
dataMenuIds
);
}
hs-admin/src/main/java/com/hs/admin/service/UserService.java
View file @
c3daae30
...
...
@@ -29,7 +29,8 @@ public interface UserService {
boolean
updateSysconfig
(
String
state
);
String
selectpwdcontol
()
;
String
selectpwdcontol
()
;
void
initSysDataMenuRs
();
}
hs-admin/src/main/java/com/hs/admin/service/impl/SysDataMenuServiceImpl.java
0 → 100644
View file @
c3daae30
package
com
.
hs
.
admin
.
service
.
impl
;
import
com.hs.admin.mapper.SysDataMenuMapper
;
import
com.hs.admin.model.SysDataMenu
;
import
com.hs.admin.service.SysDataMenuService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.StringUtils
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Service
public
class
SysDataMenuServiceImpl
implements
SysDataMenuService
{
@Resource
SysDataMenuMapper
sysDataMenuMapper
;
@Override
public
Map
<
String
,
List
<
SysDataMenu
>>
getDataMenuList
(
Integer
userId
,
Integer
roleId
,
String
type
)
{
List
<
SysDataMenu
>
dataMenuList
=
sysDataMenuMapper
.
getDataMenuList
(
userId
,
roleId
,
type
);
Map
<
String
,
List
<
SysDataMenu
>>
listMap
=
dataMenuList
.
stream
().
collect
(
Collectors
.
groupingBy
(
SysDataMenu:
:
getModuleName
));
return
listMap
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
saveUserDataMenurs
(
Integer
userId
,
List
<
Integer
>
dataMenuIds
){
if
(
userId
!=
null
)
{
boolean
b
=
sysDataMenuMapper
.
deleteByUserId
(
userId
);
}
for
(
Integer
dataMenuId
:
dataMenuIds
)
{
sysDataMenuMapper
.
insert
(
userId
,
dataMenuId
);
}
}
}
hs-admin/src/main/java/com/hs/admin/service/impl/UserServiceImpl.java
View file @
c3daae30
...
...
@@ -8,13 +8,16 @@ import com.hs.admin.common.base.PageResult;
import
com.hs.admin.common.enums.StateType
;
import
com.hs.admin.common.utils.AESUtil
;
import
com.hs.admin.common.utils.PageUtil
;
import
com.hs.admin.mapper.SysDataMenuMapper
;
import
com.hs.admin.mapper.SysUserMapper
;
import
com.hs.admin.model.SysDataMenu
;
import
com.hs.admin.model.SysUser
;
import
com.hs.admin.model.reqmodel.AddUserReq
;
import
com.hs.admin.model.reqmodel.UpdateUserReq
;
import
com.hs.admin.model.reqmodel.UserReq
;
import
com.hs.admin.model.respmodel.SysUserList
;
import
com.hs.admin.service.DicOrgService
;
import
com.hs.admin.service.SysDataMenuService
;
import
com.hs.admin.service.SysRoleService
;
import
com.hs.admin.service.UserService
;
import
org.springframework.stereotype.Service
;
...
...
@@ -24,6 +27,7 @@ import javax.annotation.Resource;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Service
...
...
@@ -35,6 +39,10 @@ public class UserServiceImpl implements UserService {
private
SysRoleService
sysRoleService
;
@Resource
private
DicOrgService
dicOrgService
;
@Resource
private
SysDataMenuService
sysDataMenuService
;
@Resource
private
SysDataMenuMapper
sysDataMenuMapper
;
@Override
public
SysUser
findByLoginName
(
String
loginName
)
{
...
...
@@ -177,4 +185,20 @@ public class UserServiceImpl implements UserService {
return
sysUserMapper
.
selectpwdcontol
();
}
@Override
public
void
initSysDataMenuRs
()
{
List
<
SysUser
>
sysUsers
=
sysUserMapper
.
selectAll
();
List
<
SysDataMenu
>
dataMenuList
=
sysDataMenuMapper
.
getDataMenuList
(
null
,
null
,
"export"
);
List
<
Integer
>
list
=
new
ArrayList
<>();
for
(
SysDataMenu
sysDataMenu
:
dataMenuList
)
{
list
.
add
(
sysDataMenu
.
getId
());
}
for
(
SysUser
sysUser
:
sysUsers
)
{
Integer
userId
=
sysUser
.
getId
();
sysDataMenuService
.
saveUserDataMenurs
(
userId
,
list
);
}
}
}
hs-admin/src/main/resources/mapper/SysDataMenuMapper.xml
0 → 100644
View file @
c3daae30
<?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">
<mapper
namespace=
"com.hs.admin.mapper.SysDataMenuMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.hs.admin.model.SysDataMenu"
>
<id
column=
"ID"
jdbcType=
"DECIMAL"
property=
"id"
/>
<result
column=
"CREATE_DATE"
jdbcType=
"TIMESTAMP"
property=
"createDate"
/>
<result
column=
"STATE"
jdbcType=
"BOOLEAN"
property=
"state"
/>
<result
column=
"type"
jdbcType=
"DECIMAL"
property=
"type"
/>
<result
column=
"module_name"
jdbcType=
"VARCHAR"
property=
"moduleName"
/>
<result
column=
"name"
jdbcType=
"VARCHAR"
property=
"name"
/>
<result
column=
"code"
jdbcType=
"VARCHAR"
property=
"code"
/>
<result
column=
"roles"
jdbcType=
"VARCHAR"
property=
"roles"
/>
<result
column=
"checked"
jdbcType=
"BOOLEAN"
property=
"checked"
/>
</resultMap>
<insert
id=
"insert"
>
insert into sys_user_datamenu_rs (CREATE_DATE, CREATE_USERID,
USER_ID, DATAMENU_ID
)
values (now(), 1, #{userId,jdbcType=DECIMAL}, #{dataMenuId,jdbcType=DECIMAL}
)
</insert>
<select
id=
"getDataMenuList"
resultMap=
"BaseResultMap"
>
SELECT
sd.*,
<if
test=
"userId != null and userId != ''"
>
CASE
WHEN sydrs.USER_ID IS NULL THEN
0 ELSE 1
END AS checked
</if>
<if
test=
"userId == null or userId == ''"
>
0 AS checked
</if>
FROM
sys_datamenu sd
LEFT JOIN sys_user_datamenu_rs sydrs ON sydrs.DATAMENU_ID = sd.id
<if
test=
"userId != null and userId != ''"
>
AND sydrs.user_id = #{userId}
</if>
WHERE
sd.state = 1
AND sd.type = #{type}
<if
test=
"roleId != null and roleId != ''"
>
AND INSTR( sd.roles, #{roleId} )>0
</if>
ORDER BY sd.id
</select>
<delete
id=
"deleteByUserId"
>
DELETE
FROM
sys_user_datamenu_rs
WHERE
user_id = #{userId}
</delete>
</mapper>
\ No newline at end of file
hs-api/src/main/java/com/hs/api/mapper/SysUserMapper.java
View file @
c3daae30
package
com
.
hs
.
api
.
mapper
;
import
com.hs.api.model.SysDataMenu
;
import
com.hs.api.model.SysUser
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -31,6 +32,9 @@ public interface SysUserMapper {
List
<
Map
<
String
,
String
>>
getdatacontentlist
(
@Param
(
"datasourcesql"
)
String
datasourcesql
);
List
<
SysDataMenu
>
getSysDataMenus
(
Long
id
);
...
...
hs-api/src/main/java/com/hs/api/model/SysDataMenu.java
0 → 100644
View file @
c3daae30
package
com
.
hs
.
api
.
model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
public
class
SysDataMenu
{
private
Integer
id
;
private
Date
createDate
;
@Setter
private
boolean
state
;
@Setter
private
String
type
;
@Getter
@Setter
private
String
name
;
@Setter
private
String
moduleName
;
@Getter
@Setter
private
String
code
;
@Setter
private
String
firstCode
;
@Setter
private
String
roles
;
}
\ No newline at end of file
hs-api/src/main/java/com/hs/api/model/respmodel/LoginInfo.java
View file @
c3daae30
...
...
@@ -18,6 +18,9 @@ public class LoginInfo {
private
List
<
DicOrg
>
org
;
@ApiModelProperty
(
"用户科室信息"
)
private
SerDepartment
dept
;
@ApiModelProperty
(
"数据菜单权限信息"
)
private
List
<
SysDataMenu
>
dataMenus
;
@ApiModelProperty
(
"病案信息"
)
private
SysVersion
version
;
...
...
@@ -70,6 +73,14 @@ public class LoginInfo {
this
.
role
=
role
;
}
public
List
<
SysDataMenu
>
getDataMenus
()
{
return
dataMenus
;
}
public
void
setDataMenus
(
List
<
SysDataMenu
>
dataMenus
)
{
this
.
dataMenus
=
dataMenus
;
}
public
SysVersion
getVersion
()
{
return
version
;
}
...
...
@@ -86,6 +97,7 @@ public class LoginInfo {
", role="
+
role
+
", org="
+
org
+
", dept="
+
dept
+
", dataMenus="
+
dataMenus
+
", version="
+
version
+
'}'
;
}
...
...
hs-api/src/main/java/com/hs/api/service/Impl/LoginServiceImpl.java
View file @
c3daae30
...
...
@@ -89,6 +89,9 @@ public class LoginServiceImpl implements LoginService {
}
loginInfo
.
setOrg
(
orgList
);
List
<
SysDataMenu
>
sysDataMenus
=
sysUserMapper
.
getSysDataMenus
(
user
.
getId
());
loginInfo
.
setDataMenus
(
sysDataMenus
);
HttpSession
session
=
SessionUtil
.
getSession
();
session
.
setAttribute
(
"userId"
,
user
.
getId
());
session
.
setAttribute
(
"token"
,
token
);
...
...
hs-api/src/main/resources/mapper/SysUserMapper.xml
View file @
c3daae30
...
...
@@ -25,6 +25,10 @@
<result
column=
"IS_LEADER"
jdbcType=
"BOOLEAN"
property=
"isLeader"
/>
<result
column=
"IS_ADMIN"
jdbcType=
"BOOLEAN"
property=
"isAdmin"
/>
</resultMap>
<resultMap
id=
"SysDataMenuMap"
type=
"com.hs.api.model.SysDataMenu"
>
<result
column=
"name"
jdbcType=
"VARCHAR"
property=
"name"
/>
<result
column=
"code"
jdbcType=
"VARCHAR"
property=
"code"
/>
</resultMap>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Long"
>
delete
from SYS_USER
...
...
@@ -173,6 +177,17 @@
) datacontent*/
</select>
<select
id=
"getSysDataMenus"
resultMap=
"SysDataMenuMap"
>
SELECT
sd.name,sd.code
FROM
sys_user_datamenu_rs sydrs
LEFT JOIN sys_datamenu sd ON sd.id = sydrs.datamenu_id
WHERE
user_id = #{userId}
AND sydrs.state =1
</select>
</mapper>
\ No newline at end of file
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