Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-cloud-account
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.account
pica-cloud-account
提交
8f51d227
提交
8f51d227
编写于
3月 08, 2022
作者:
wenhao.qin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
人员角色支持多选配置
上级
f71d9f90
流水线
#43149
已取消 于阶段
变更
8
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
76 行增加
和
60 行删除
+76
-60
HospitalSaasUserController.java
...account/server/controller/HospitalSaasUserController.java
+2
-2
PermissionDoctorRoleMapper.java
...unt/account/server/mapper/PermissionDoctorRoleMapper.java
+5
-2
HospitalSaasUserReq.java
...cloud/account/account/server/req/HospitalSaasUserReq.java
+3
-2
HospitalSaasUserDto.java
...loud/account/account/server/resp/HospitalSaasUserDto.java
+4
-0
HospitalSaasUserEditResp.java
...account/account/server/resp/HospitalSaasUserEditResp.java
+4
-5
HospitalSaasUserServiceImpl.java
...ount/server/service/impl/HospitalSaasUserServiceImpl.java
+38
-29
AccountMapper.xml
server/src/main/resources/mybatis/AccountMapper.xml
+2
-14
PermissionDoctorRoleMapper.xml
...src/main/resources/mybatis/PermissionDoctorRoleMapper.xml
+18
-6
未找到文件。
server/src/main/java/com/pica/cloud/account/account/server/controller/HospitalSaasUserController.java
浏览文件 @
8f51d227
...
...
@@ -56,7 +56,7 @@ public class HospitalSaasUserController extends AccountBaseController {
@PostMapping
(
value
=
"/hospital/list"
)
@EnabledLoginValidate
public
PicaResponse
<
HospitalSaasUserResp
>
list
(
@RequestBody
HospitalSaasUserListReq
req
)
{
logger
.
info
(
"list: url:/saas/hospital/list.
start: {}"
,
JSON
.
toJSONString
(
req
));
logger
.
info
(
"list: url:/saas/hospital/list. start: {}"
,
JSON
.
toJSONString
(
req
));
return
PicaResponse
.
toResponse
(
hospitalSaasUserService
.
listByPage
(
req
));
}
...
...
@@ -64,7 +64,7 @@ public class HospitalSaasUserController extends AccountBaseController {
@GetMapping
(
value
=
"/hospital/edit/{id}"
)
@EnabledLoginValidate
public
PicaResponse
<
HospitalSaasUserEditResp
>
edit
(
@PathVariable
(
"id"
)
Long
id
)
{
logger
.
info
(
"edit: url:/saas/hospital/edit/id.
start: id={}"
,
id
);
logger
.
info
(
"edit: url:/saas/hospital/edit/id. start: id={}"
,
id
);
return
PicaResponse
.
toResponse
(
hospitalSaasUserService
.
edit
(
id
));
}
...
...
server/src/main/java/com/pica/cloud/account/account/server/mapper/PermissionDoctorRoleMapper.java
浏览文件 @
8f51d227
...
...
@@ -2,6 +2,7 @@ package com.pica.cloud.account.account.server.mapper;
import
com.pica.cloud.account.account.server.entity.PermissionDoctorRole
;
import
com.pica.cloud.account.account.server.resp.RoleDto
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
@@ -33,11 +34,13 @@ public interface PermissionDoctorRoleMapper {
List
<
PermissionDoctorRole
>
selectByRoleId
(
Long
id
);
PermissionDoctorRole
select
ByUserId
(
Long
id
);
List
<
RoleDto
>
selectRole
ByUserId
(
Long
id
);
int
deleteByRoleId
(
Map
<
String
,
Object
>
map
);
List
<
PermissionDoctorRole
>
queryDoctorMenu
(
Integer
doctorId
);
PermissionDoctorRole
selectByHospitalIdRoleId
(
@Param
(
"hospitalId"
)
Integer
hospitalId
,
@Param
(
"roleId"
)
Integer
roleId
);
PermissionDoctorRole
selectByHospitalIdRoleId
(
@Param
(
"hospitalId"
)
Integer
hospitalId
,
@Param
(
"roleId"
)
Integer
roleId
);
int
batchInsert
(
List
<
PermissionDoctorRole
>
list
);
}
\ No newline at end of file
server/src/main/java/com/pica/cloud/account/account/server/req/HospitalSaasUserReq.java
浏览文件 @
8f51d227
...
...
@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
org.apache.commons.lang.StringUtils
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.regex.Pattern
;
...
...
@@ -39,8 +40,8 @@ public class HospitalSaasUserReq {
@ApiModelProperty
(
"备注"
)
private
String
comment
;
@ApiModelProperty
(
"角色id 0 无角色 1 主管理员 2 管理员 3 saas系统管理员 4
开单医生
"
)
private
L
ong
roleId
;
@ApiModelProperty
(
"角色id 0 无角色 1 主管理员 2 管理员 3 saas系统管理员 4
saas用户
"
)
private
L
ist
<
Long
>
roleId
;
@ApiModelProperty
(
"产品类型 1.云鹊医 2.云鹊健康 3.SAAS"
)
private
Integer
productType
;
...
...
server/src/main/java/com/pica/cloud/account/account/server/resp/HospitalSaasUserDto.java
浏览文件 @
8f51d227
...
...
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @Author qinwh
* @Date 2022/3/1 15:13
...
...
@@ -22,6 +24,8 @@ public class HospitalSaasUserDto {
private
String
mobile
;
@ApiModelProperty
(
"备注"
)
private
String
comment
;
@ApiModelProperty
(
"角色"
)
private
List
<
RoleDto
>
roles
;
@ApiModelProperty
(
"角色id"
)
private
Long
roleId
;
@ApiModelProperty
(
"角色名称"
)
...
...
server/src/main/java/com/pica/cloud/account/account/server/resp/HospitalSaasUserEditResp.java
浏览文件 @
8f51d227
...
...
@@ -4,13 +4,14 @@ package com.pica.cloud.account.account.server.resp;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @Author Pica
* @Date 2022/3/3 17:58
*/
@Data
public
class
HospitalSaasUserEditResp
{
@ApiModelProperty
(
"id"
)
private
Long
id
;
@ApiModelProperty
(
"姓名"
)
...
...
@@ -19,10 +20,8 @@ public class HospitalSaasUserEditResp {
private
String
mobile
;
@ApiModelProperty
(
"备注"
)
private
String
comment
;
@ApiModelProperty
(
"角色id"
)
private
Integer
roleId
;
@ApiModelProperty
(
"角色名称"
)
private
String
roleName
;
@ApiModelProperty
(
"角色"
)
private
List
<
RoleDto
>
roles
;
@ApiModelProperty
(
"密码"
)
private
String
password
;
@ApiModelProperty
(
"密码是否可修改 1 不可修改 2 可修改"
)
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/impl/HospitalSaasUserServiceImpl.java
浏览文件 @
8f51d227
...
...
@@ -7,10 +7,7 @@ import com.pica.cloud.account.account.server.enums.SaasRoleEnum;
import
com.pica.cloud.account.account.server.mapper.*
;
import
com.pica.cloud.account.account.server.req.HospitalSaasUserListReq
;
import
com.pica.cloud.account.account.server.req.HospitalSaasUserReq
;
import
com.pica.cloud.account.account.server.resp.HospitalSaasUserDetailResp
;
import
com.pica.cloud.account.account.server.resp.HospitalSaasUserDto
;
import
com.pica.cloud.account.account.server.resp.HospitalSaasUserEditResp
;
import
com.pica.cloud.account.account.server.resp.HospitalSaasUserResp
;
import
com.pica.cloud.account.account.server.resp.*
;
import
com.pica.cloud.account.account.server.service.AccountService
;
import
com.pica.cloud.account.account.server.service.HospitalSaasUserService
;
import
com.pica.cloud.account.account.server.service.PasswordService
;
...
...
@@ -25,6 +22,7 @@ import com.pica.cloud.foundation.utils.entity.PicaUser;
import
com.pica.cloud.foundation.utils.utils.MD5Util
;
import
com.pica.cloud.trade.store.client.StoreCertifyServiceClient
;
import
com.pica.cloud.trade.store.resp.certify.StoreCertifyStatus
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -130,19 +128,23 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
}
private
void
insertSaasRole
(
HospitalSaasUserReq
req
,
Long
doctorId
,
Long
userId
)
{
if
(
Objects
.
equals
(
req
.
getRoleId
(),
SaasRoleEnum
.
NULL_ROLE
.
getCode
()))
{
if
(
CollectionUtils
.
isEmpty
(
req
.
getRoleId
()))
{
return
;
}
PermissionDoctorRole
doctorRole
=
new
PermissionDoctorRole
();
doctorRole
.
setDoctorId
(
doctorId
);
doctorRole
.
setHospitalId
(
req
.
getHospitalId
().
longValue
());
doctorRole
.
setRoleId
(
req
.
getRoleId
());
doctorRole
.
setDeleteFlag
(
1
);
doctorRole
.
setCreatedId
(
userId
);
doctorRole
.
setCreatedTime
(
new
Date
());
doctorRole
.
setModifiedId
(
userId
);
doctorRole
.
setModifiedTime
(
new
Date
());
doctorRoleMapper
.
insert
(
doctorRole
);
List
<
PermissionDoctorRole
>
list
=
new
ArrayList
<>();
req
.
getRoleId
().
forEach
(
t
->
{
PermissionDoctorRole
doctorRole
=
new
PermissionDoctorRole
();
doctorRole
.
setDoctorId
(
doctorId
);
doctorRole
.
setHospitalId
(
req
.
getHospitalId
().
longValue
());
doctorRole
.
setRoleId
(
t
);
doctorRole
.
setDeleteFlag
(
1
);
doctorRole
.
setCreatedId
(
userId
);
doctorRole
.
setCreatedTime
(
new
Date
());
doctorRole
.
setModifiedId
(
userId
);
doctorRole
.
setModifiedTime
(
new
Date
());
list
.
add
(
doctorRole
);
});
doctorRoleMapper
.
batchInsert
(
list
);
}
@Override
...
...
@@ -159,12 +161,13 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
if
(
count
<
1
)
{
return
new
HospitalSaasUserResp
(
Collections
.
emptyList
(),
0
);
}
map
.
put
(
"pageNo"
,
(
req
.
getPageNo
()
-
1
)
*
req
.
getPageSize
());
map
.
put
(
"pageSize"
,
req
.
getPageSize
());
List
<
HospitalSaasUserDto
>
lists
=
accountMapper
.
listByPage
(
map
);
//手机号 解密脱敏
lists
.
stream
().
forEach
(
t
->
{
List
<
RoleDto
>
roleDtos
=
doctorRoleMapper
.
selectRoleByUserId
(
t
.
getId
());
t
.
setRoles
(
roleDtos
);
String
phone
=
EncryptUtils
.
decryptContent
(
t
.
getMobile
(),
EncryptConstants
.
ENCRYPT_TYPE_MOBILE
,
EncryptConstants
.
ENCRYPT_DECRYPT_KEY
);
String
mixMobile
=
mixMobile
(
phone
);
t
.
setMobile
(
mixMobile
);
...
...
@@ -178,14 +181,20 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
return
new
HospitalSaasUserResp
(
lists
,
count
);
}
private
void
validatorAdminRole
(
Long
roleId
,
Long
hospitalId
)
{
// private void validatorAdminRole(Long roleId, Long hospitalId) {
// int count = accountMapper.adminRoleCountByhospitalId(hospitalId);
// if (count >= 1 && null != roleId && Objects.equals(roleId, SaasRoleEnum.SAAS_MAIN_ADMIN.getCode())) {
// throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "当前已存在系统管理员,请勿重复设置");
// }
// }
private
void
validatorAdminRole
(
List
<
Long
>
roleId
,
Long
hospitalId
)
{
int
count
=
accountMapper
.
adminRoleCountByhospitalId
(
hospitalId
);
if
(
count
>=
1
&&
null
!=
roleId
&&
Objects
.
equals
(
roleId
,
SaasRoleEnum
.
SAAS_MAIN_ADMIN
.
getCode
()
))
{
if
(
count
>=
1
&&
CollectionUtils
.
isNotEmpty
(
roleId
)
&&
roleId
.
contains
(
SaasRoleEnum
.
SAAS_MAIN_ADMIN
))
{
throw
new
PicaException
(
PicaResultCode
.
PARAM_IS_INVALID
.
code
(),
"当前已存在系统管理员,请勿重复设置"
);
}
}
@Override
public
int
upsert
(
HospitalSaasUserReq
req
,
Long
doctorId
)
{
if
(
Objects
.
isNull
(
req
)
||
Objects
.
isNull
(
req
.
getHospitalId
()))
{
...
...
@@ -197,13 +206,13 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
if
(
accountExist
==
null
)
{
throw
new
PicaException
(
PicaResultCode
.
PARAM_IS_INVALID
.
code
(),
"当前用户不存在"
);
}
HospitalSaasUserEditResp
saasUser
=
accountMapper
.
selectUserRoleById
(
req
.
getId
());
if
(
req
.
getLoginFlag
()
==
1
&&
saasUser
!=
null
&&
saasUser
.
getRoleId
()
!=
null
&&
!
Objects
.
equals
(
req
.
getRoleId
(),
saasUser
.
getRoleId
())
&&
req
.
getRoleId
()
!=
0
&&
saasUser
.
getRoleId
()
<
SaasRoleEnum
.
SAAS_MAIN_ADMIN
.
getCode
())
{
throw
new
PicaException
(
PicaResultCode
.
PARAM_IS_INVALID
.
code
(),
"当前角色不可编辑"
);
}
if
(
req
.
getLoginFlag
()
==
0
&&
saasUser
!=
null
&&
saasUser
.
getRoleId
()
!=
null
&&
!
Objects
.
equals
(
req
.
getRoleId
(),
saasUser
.
getRoleId
())
&&
req
.
getRoleId
()
!=
0
&&
saasUser
.
getRoleId
()
<
SaasRoleEnum
.
SAAS_DOCTOR
.
getCode
())
{
throw
new
PicaException
(
PicaResultCode
.
PARAM_IS_INVALID
.
code
(),
"当前角色不可编辑"
);
}
//
HospitalSaasUserEditResp saasUser = accountMapper.selectUserRoleById(req.getId());
//
if (req.getLoginFlag() == 1 && saasUser != null && saasUser.getRoleId() != null && !Objects.equals(req.getRoleId(), saasUser.getRoleId()) && req.getRoleId() != 0 && saasUser.getRoleId() < SaasRoleEnum.SAAS_MAIN_ADMIN.getCode()) {
//
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "当前角色不可编辑");
//
}
//
if (req.getLoginFlag() == 0 && saasUser != null && saasUser.getRoleId() != null && !Objects.equals(req.getRoleId(), saasUser.getRoleId()) && req.getRoleId() != 0 && saasUser.getRoleId() < SaasRoleEnum.SAAS_DOCTOR.getCode()) {
//
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "当前角色不可编辑");
//
}
Account
account
=
new
Account
();
account
.
setId
(
req
.
getId
());
account
.
setModifyId
(
doctorId
);
...
...
@@ -282,18 +291,18 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
@Override
public
HospitalSaasUserEditResp
edit
(
Long
id
)
{
HospitalSaasUserEditResp
resp
=
accountMapper
.
selectUserRoleById
(
id
);
List
<
RoleDto
>
roleDtos
=
doctorRoleMapper
.
selectRoleByUserId
(
resp
.
getId
());
resp
.
setRoles
(
roleDtos
);
if
(
null
==
resp
)
{
return
new
HospitalSaasUserEditResp
();
}
resp
.
setPwdFlag
(
2
);
//手机号 不为空 解密脱敏
if
(
StringUtils
.
isNotBlank
(
resp
.
getMobile
()))
{
String
phone
=
EncryptUtils
.
decryptContent
(
resp
.
getMobile
(),
EncryptConstants
.
ENCRYPT_TYPE_MOBILE
,
EncryptConstants
.
ENCRYPT_DECRYPT_KEY
);
resp
.
setMobile
(
phone
);
return
resp
;
}
resp
.
setPwdFlag
(
2
);
if
(
StringUtils
.
isNotBlank
(
resp
.
getPassword
()))
{
resp
.
setPwdFlag
(
1
);
}
...
...
server/src/main/resources/mybatis/AccountMapper.xml
浏览文件 @
8f51d227
...
...
@@ -364,9 +364,7 @@
</sql>
<select
id=
"listCountByPage"
resultType=
"java.lang.Integer"
>
select count(*)
from p_doctor as p left join permission_doctor_role as pdr
ON p.id=pdr.doctor_id and p.hospital_id=pdr.hospital_id and pdr.delete_flag=1
left join permission_role as pr ON pdr.role_id = pr.id and pr.delete_flag=1
from p_doctor as p
where
<include
refid=
"select_list_page"
></include>
</select>
...
...
@@ -376,13 +374,8 @@
p.name as name,
p.hospital_id as hospitalId,
p.mobile_phone as mobile,
p.comment as comment,
pr.id as roleId,
pr.role_name as roleName
p.comment as comment
from p_doctor as p
left join permission_doctor_role as pdr ON p.id=pdr.doctor_id and p.hospital_id=pdr.hospital_id and
pdr.delete_flag=1
left join permission_role as pr ON pdr.role_id = pr.id and pr.delete_flag=1
where
<include
refid=
"select_list_page"
></include>
ORDER BY p.reg_time DESC
...
...
@@ -395,13 +388,8 @@
p.hospital_id as hospitalId,
p.mobile_phone as mobile,
p.comment as comment,
pr.id as roleId,
pr.role_name as roleName,
p.password as password
from p_doctor as p
left join permission_doctor_role as pdr
ON p.id = pdr.doctor_id and p.hospital_id = pdr.hospital_id and pdr.delete_flag = 1
left join permission_role as pr ON pdr.role_id = pr.id and pr.delete_flag = 1
where p.id = #{id, jdbcType=INTEGER}
limit 1
</select>
...
...
server/src/main/resources/mybatis/PermissionDoctorRoleMapper.xml
浏览文件 @
8f51d227
...
...
@@ -118,6 +118,17 @@
</if>
</trim>
</insert>
<insert
id=
"batchInsert"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into permission_doctor_role (doctor_id, hospital_id,
role_id, delete_flag, created_id,
created_time, modified_id, modified_time)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
( #{item.doctorId,jdbcType=BIGINT}, #{item.hospitalId,jdbcType=BIGINT},
#{item.roleId,jdbcType=BIGINT}, #{item.deleteFlag,jdbcType=INTEGER}, #{item.createdId,jdbcType=BIGINT},
#{item.createdTime,jdbcType=TIMESTAMP}, #{item.modifiedId,jdbcType=BIGINT}, #{item.modifiedTime,jdbcType=TIMESTAMP})
</foreach>
</insert>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"com.pica.cloud.account.account.server.entity.PermissionDoctorRole"
>
update permission_doctor_role
...
...
@@ -201,11 +212,12 @@
order by pr.modified_time desc
limit 1
</select>
<select
id=
"selectByUserId"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from permission_doctor_role
where doctor_id = #{id,jdbcType=BIGINT} and delete_flag = 1
limit 1;
<select
id=
"selectRoleByUserId"
resultType=
"com.pica.cloud.account.account.server.resp.RoleDto"
>
select pr.id as id,
pr.role_name as name
from permission_doctor_role as pdr
left join permission_role as pr ON pdr.role_id = pr.id and pr.delete_flag = 1
where pdr.doctor_id = #{id,jdbcType=BIGINT}
and pdr.delete_flag = 1
</select>
</mapper>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录