diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java index 2c69026..4108882 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java @@ -144,15 +144,19 @@ public class SysHospitalServiceImpl extends ServiceImpl currentHospital = sysHospitalMapper.getCurrentHospital(userId); - if (currentHospital.isEmpty()) { - hospitalId = raxUser.getHospitalId() != null ? raxUser.getHospitalId().toString() : null; - } else { - hospitalId = (String) currentHospital.get(0).get("hospital_id"); + String hospitalId = null; + Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + if (!(principal instanceof String)) { + RaxUser raxUser = (RaxUser) principal; + String userId = String.valueOf(raxUser.getId()); + hospitalId = (String) redisTemplate.opsForValue().get(CacheConstants.CURRENT_HOSPITAL + ":" + userId); + if (!StringUtils.hasText(hospitalId)) { + List currentHospital = sysHospitalMapper.getCurrentHospital(userId); + if (currentHospital.isEmpty()) { + hospitalId = raxUser.getHospitalId() != null ? raxUser.getHospitalId().toString() : null; + } else { + hospitalId = (String) currentHospital.get(0).get("hospital_id"); + } } } return hospitalId;