diff --git a/openhis-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java b/openhis-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java index 22206453..e0ed71df 100644 --- a/openhis-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java +++ b/openhis-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java @@ -3,13 +3,14 @@ package com.core.common.core.domain.model; import java.util.Collection; import java.util.Set; -import lombok.Data; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import com.alibaba.fastjson2.annotation.JSONField; import com.core.common.core.domain.entity.SysUser; +import lombok.Data; + /** * 登录用户身份权限 * @@ -72,6 +73,16 @@ public class LoginUser implements UserDetails { /** 租户ID */ private Integer tenantId; + /** + * 机构/科室id + */ + private Long orgId; + + /** + * 参与者id + */ + private Long practitionerId; + /** * 用户信息 */ diff --git a/openhis-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUserExtend.java b/openhis-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUserExtend.java new file mode 100644 index 00000000..e3bc85c2 --- /dev/null +++ b/openhis-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUserExtend.java @@ -0,0 +1,21 @@ +package com.core.common.core.domain.model; + +import lombok.Data; + +/** + * 登录用户扩展 + */ +@Data +public class LoginUserExtend { + + /** + * 机构/科室id + */ + private Long orgId; + + /** + * 参与者id + */ + private Long practitionerId; + +} diff --git a/openhis-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java b/openhis-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java index 1dd9fb0d..e3506c6a 100644 --- a/openhis-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java +++ b/openhis-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java @@ -17,6 +17,7 @@ import com.core.common.constant.Constants; import com.core.common.constant.UserConstants; import com.core.common.core.domain.entity.SysUser; import com.core.common.core.domain.model.LoginUser; +import com.core.common.core.domain.model.LoginUserExtend; import com.core.common.core.redis.RedisCache; import com.core.common.exception.ServiceException; import com.core.common.exception.user.*; @@ -63,7 +64,7 @@ public class SysLoginService { */ public String login(String username, String password, String code, String uuid) { // 验证码校验 - // validateCaptcha(username, code, uuid); + validateCaptcha(username, code, uuid); // 登录前置校验 loginPreCheck(username, password); // 用户验证 @@ -91,7 +92,7 @@ public class SysLoginService { MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser)authentication.getPrincipal(); - // -----start-----登录时set租户id,正常应该从请求头获取,这行代码只是测试使用 + // -----start-----登录时set租户id Integer tenantId = 0; ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); if (attributes != null) { @@ -103,8 +104,12 @@ public class SysLoginService { } } loginUser.setTenantId(tenantId); - // -----end-----登录时set租户id,正常应该从请求头获取,这行代码只是测试使用 + // -----end-----登录时set租户id recordLoginInfo(loginUser.getUserId()); + // 设置 机构id和参与者id + LoginUserExtend loginUserExtend = userService.getLoginUserExtend(loginUser.getUserId()); + loginUser.setOrgId(loginUserExtend.getOrgId()); + loginUser.setPractitionerId(loginUserExtend.getPractitionerId()); // 生成token return tokenService.createToken(loginUser); } diff --git a/openhis-server/core-system/src/main/java/com/core/system/mapper/SysUserMapper.java b/openhis-server/core-system/src/main/java/com/core/system/mapper/SysUserMapper.java index 5cab676f..d2f90d53 100644 --- a/openhis-server/core-system/src/main/java/com/core/system/mapper/SysUserMapper.java +++ b/openhis-server/core-system/src/main/java/com/core/system/mapper/SysUserMapper.java @@ -2,6 +2,7 @@ package com.core.system.mapper; import java.util.List; +import com.core.common.core.domain.model.LoginUserExtend; import org.apache.ibatis.annotations.Param; import com.core.common.core.domain.entity.SysUser; @@ -125,4 +126,12 @@ public interface SysUserMapper { * @return 结果 */ public SysUser checkEmailUnique(String email); + + /** + * 扩展属性 + * + * @param userId 系统用户id + * @return 扩展属性 + */ + LoginUserExtend getLoginUserExtend(@Param("userId") Long userId); } diff --git a/openhis-server/core-system/src/main/java/com/core/system/service/ISysUserService.java b/openhis-server/core-system/src/main/java/com/core/system/service/ISysUserService.java index 9718b9c4..769bf5df 100644 --- a/openhis-server/core-system/src/main/java/com/core/system/service/ISysUserService.java +++ b/openhis-server/core-system/src/main/java/com/core/system/service/ISysUserService.java @@ -3,6 +3,7 @@ package com.core.system.service; import java.util.List; import com.core.common.core.domain.entity.SysUser; +import com.core.common.core.domain.model.LoginUserExtend; /** * 用户 业务层 @@ -203,4 +204,12 @@ public interface ISysUserService { * @return 结果 */ public String importUser(List userList, Boolean isUpdateSupport, String operName); + + /** + * 扩展属性 + * + * @param userId 系统用户id + * @return 扩展属性 + */ + LoginUserExtend getLoginUserExtend(Long userId); } diff --git a/openhis-server/core-system/src/main/java/com/core/system/service/impl/SysUserServiceImpl.java b/openhis-server/core-system/src/main/java/com/core/system/service/impl/SysUserServiceImpl.java index 3a313f0a..2f2a742e 100644 --- a/openhis-server/core-system/src/main/java/com/core/system/service/impl/SysUserServiceImpl.java +++ b/openhis-server/core-system/src/main/java/com/core/system/service/impl/SysUserServiceImpl.java @@ -6,6 +6,7 @@ import java.util.stream.Collectors; import javax.validation.Validator; +import com.core.common.core.domain.model.LoginUserExtend; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -484,4 +485,16 @@ public class SysUserServiceImpl implements ISysUserService { } return successMsg.toString(); } + + /** + * 扩展属性 + * + * @param userId 系统用户id + * @return 扩展属性 + */ + @Override + public LoginUserExtend getLoginUserExtend(Long userId) { + return userMapper.getLoginUserExtend(userId); + } + } diff --git a/openhis-server/core-system/src/main/resources/mapper/system/SysUserMapper.xml b/openhis-server/core-system/src/main/resources/mapper/system/SysUserMapper.xml index 017811f8..c0062a6b 100644 --- a/openhis-server/core-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/openhis-server/core-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -265,4 +265,12 @@ + + \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java index e3fcd178..38efeda4 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java @@ -224,6 +224,9 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { */ @Override public R delUserPractitioner(Long userId) { + if (1L == userId) { + return R.fail(null, "admin不允许删除"); + } iBizUserService.remove(new LambdaQueryWrapper().eq(BizUser::getUserId, userId)); practitionerAppAppMapper.delUserRole(userId); Practitioner one = diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/ChargeItemFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/ChargeItemFormData.java index 32f6a7c4..5ed61f87 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/ChargeItemFormData.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/ChargeItemFormData.java @@ -84,8 +84,8 @@ public class ChargeItemFormData { this.statusEnum = ChargeItemStatus.BILLED.getValue(); this.contextEnum = EncounterClass.AMB.getValue(); this.occurrenceTime = new Date(); - this.performerId = SecurityUtils.getLoginUser().getUserId(); - this.entererId = SecurityUtils.getLoginUser().getUserId(); + this.performerId = SecurityUtils.getLoginUser().getPractitionerId(); + this.entererId = SecurityUtils.getLoginUser().getPractitionerId(); this.enteredDate = new Date(); this.serviceTable = CommonConstants.TableName.ADM_HEALTHCARE_SERVICE; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java index 5d6781dd..54f84bc6 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java @@ -2,6 +2,7 @@ package com.openhis.web.doctorstation.dto; import java.math.BigDecimal; +import com.core.common.utils.SecurityUtils; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.enums.EncounterClass; @@ -126,8 +127,7 @@ public class AdviceSaveDto { this.statusEnum = RequestStatus.DRAFT.getValue(); this.categoryEnum = EncounterClass.AMB.getValue(); this.therapyEnum = TherapyTimeType.TEMPORARY.getValue(); - // TODO: 应该从当前登录账号获取参与者id,现在没有 - // this.practitionerId + this.practitionerId = SecurityUtils.getLoginUser().getPractitionerId(); } }