From 757c0df05342b8d8e846f752e935c42c91ad67ff Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Wed, 15 May 2024 09:29:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=AE=A1=E8=BE=96=E7=A7=91=E5=AE=A4?= =?UTF-8?q?=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collection/config/UserSyncConfig.java | 2 ++ .../collection/dto/UserModifyParam.java | 4 +++ .../service/impl/PowerUserServiceImpl.java | 25 +++++++++++++++++++ src/main/resources/bootstrap.yml | 1 + src/main/resources/mapper/PowerUserMapper.xml | 3 ++- 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/docus/server/collection/config/UserSyncConfig.java b/src/main/java/com/docus/server/collection/config/UserSyncConfig.java index a839af9..a902ca2 100644 --- a/src/main/java/com/docus/server/collection/config/UserSyncConfig.java +++ b/src/main/java/com/docus/server/collection/config/UserSyncConfig.java @@ -13,4 +13,6 @@ import org.springframework.stereotype.Component; public class UserSyncConfig { @Value("${docus.user.defpwd:}") private String password; + @Value("docus.user.powerdeptroles:") + private String powerDeptRoles; } diff --git a/src/main/java/com/docus/server/collection/dto/UserModifyParam.java b/src/main/java/com/docus/server/collection/dto/UserModifyParam.java index a4c656c..f28f6a4 100644 --- a/src/main/java/com/docus/server/collection/dto/UserModifyParam.java +++ b/src/main/java/com/docus/server/collection/dto/UserModifyParam.java @@ -53,4 +53,8 @@ public class UserModifyParam { * 用户手机号码 */ private String telephone; + /** + * 权限科室 拥有对科室查阅权限 + */ + private String powerDept; } diff --git a/src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java b/src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java index 55a3076..a8878ed 100644 --- a/src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java +++ b/src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java @@ -11,6 +11,7 @@ import com.docus.server.collection.service.IPowerUserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.*; /** * 用户服务实现 @@ -19,6 +20,7 @@ import javax.annotation.Resource; */ @Service public class PowerUserServiceImpl implements IPowerUserService { + @Resource private PowerUserMapper powerUserMapper; @Resource @@ -30,6 +32,7 @@ public class PowerUserServiceImpl implements IPowerUserService { public boolean register(UserDto userDto) { PowerUser powerUser = powerUserMapper.getUserByUserName(userDto.getUserName()); UserModifyParam userModifyParam = userDto.transUserAddParam(); + if (Func.isEmpty(powerUser)) { long userId = idService.getDateSeq(); userModifyParam.setUserId(userId); @@ -37,11 +40,33 @@ public class PowerUserServiceImpl implements IPowerUserService { powerUserMapper.addUser(userModifyParam); return true; } + String powerDept = getUpdatePowerDept(powerUser, userDto); + userModifyParam.setPowerDept(powerDept); userModifyParam.setUserId(powerUser.getUserId()); powerUserMapper.updateUser(userModifyParam); return true; } + private String getUpdatePowerDept(PowerUser powerUser, UserDto userDto) { + // 需要添加管辖科室的角色集合 + String powerDeptRoles = syncConfig.getPowerDeptRoles(); + List powerDeptRoleList = Objects.isNull(powerDeptRoles) ? new ArrayList<>() : Arrays.asList(powerDeptRoles.split(",")); + + Long roleId = powerUser.getRoleId(); + String powerDept = powerUser.getPowerDept(); + // 添加的角色特殊处理添加 + if (powerDeptRoleList.contains(String.valueOf(roleId))) { + Set powerDeptList = new HashSet<>(); + if (!Objects.isNull(powerUser.getPowerDept())) { + String[] origPowerDepts = powerUser.getPowerDept().split(","); + Collections.addAll(powerDeptList, origPowerDepts); + } + powerDeptList.add(userDto.getDeptId()); + powerDept = String.join(",", powerDeptList); + } + return powerDept; + } + @Override public boolean delUserByUserName(String userName) { PowerUser powerUser = powerUserMapper.getUserByUserName(userName); diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml index 95a98fd..8fb24ee 100644 --- a/src/main/resources/bootstrap.yml +++ b/src/main/resources/bootstrap.yml @@ -100,6 +100,7 @@ docus: user: # 用户默认密码 defpwd: fd29cd53ec12616e5f36b77d4afffbff + powerdeptroles: report: downurl: http://localhost:9291/api/downplatform/report # 质控时间,分钟 diff --git a/src/main/resources/mapper/PowerUserMapper.xml b/src/main/resources/mapper/PowerUserMapper.xml index 835a84e..ca9eb98 100644 --- a/src/main/resources/mapper/PowerUserMapper.xml +++ b/src/main/resources/mapper/PowerUserMapper.xml @@ -26,6 +26,7 @@ `user_position`=#{user.position}, `user_tel`=#{user.telephone}, `name`=#{user.name}, + `power_dept`=#{user.powerDept}, `update_date`=now() where `user_id`=#{user.userId} @@ -34,7 +35,7 @@