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 @@