|
|
@@ -9,22 +9,27 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.http.useragent.UserAgent;
|
|
|
import cn.hutool.http.useragent.UserAgentUtil;
|
|
|
import cn.tr.core.annotation.TenantIgnore;
|
|
|
+import cn.tr.core.exception.ServiceException;
|
|
|
+import cn.tr.core.exception.TRExcCode;
|
|
|
import cn.tr.core.utils.IpUtil;
|
|
|
import cn.tr.core.utils.ServletUtils;
|
|
|
import cn.tr.module.smart.common.dto.BizWxUserDTO;
|
|
|
import cn.tr.module.smart.common.mapper.BizWxUserMapper;
|
|
|
+import cn.tr.module.smart.common.po.BizWxUserHospitalPO;
|
|
|
+import cn.tr.module.smart.common.po.BizWxUserPO;
|
|
|
+import cn.tr.module.smart.common.repository.BizWxUserHospitalRepository;
|
|
|
+import cn.tr.module.smart.common.repository.BizWxUserRepository;
|
|
|
import cn.tr.module.smart.common.service.IBizWxUserService;
|
|
|
import cn.tr.module.sys.oauth2.LoginTypeConstant;
|
|
|
import cn.tr.module.sys.oauth2.dto.AccountUserInfoDTO;
|
|
|
import cn.tr.module.sys.oauth2.dto.AccountUserInfoEditDTO;
|
|
|
import cn.tr.module.sys.oauth2.dto.OAuth2PswLoginInfoDTO;
|
|
|
import cn.tr.module.sys.oauth2.dto.OAuth2PswReqDTO;
|
|
|
-import cn.tr.module.sys.oauth2.mapper.OAuth2Mapper;
|
|
|
import cn.tr.module.sys.oauth2.psw.operator.AbstractOAuth2PswUserOperator;
|
|
|
import cn.tr.module.sys.oauth2.psw.operator.LoginOAuth2PswUserOperator;
|
|
|
-import cn.tr.module.sys.user.service.ISysUserService;
|
|
|
import cn.tr.plugin.security.bo.UserLoginInfoBO;
|
|
|
import cn.tr.plugin.security.utils.SaTokenUtils;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import lombok.SneakyThrows;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
@@ -52,6 +57,11 @@ public class WxAppletOauth2UserOperator extends AbstractOAuth2PswUserOperator {
|
|
|
@Autowired
|
|
|
private IBizWxUserService wxUserService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BizWxUserRepository wxUserRepository;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BizWxUserHospitalRepository wxUserHospitalRepository;
|
|
|
|
|
|
@SneakyThrows
|
|
|
@Override
|
|
|
@@ -59,6 +69,9 @@ public class WxAppletOauth2UserOperator extends AbstractOAuth2PswUserOperator {
|
|
|
String appId = source.getAppId();
|
|
|
String wxAppletCode = source.getWxAppletCode();
|
|
|
String username = source.getUsername();
|
|
|
+ //当前登录的医院id
|
|
|
+ String tenantId = source.getTenantId();
|
|
|
+
|
|
|
Date loginTime = new Date();
|
|
|
//获取Request对象
|
|
|
HttpServletRequest request = ServletUtils.getRequest();
|
|
|
@@ -124,6 +137,19 @@ public class WxAppletOauth2UserOperator extends AbstractOAuth2PswUserOperator {
|
|
|
.orgId("")
|
|
|
.signature("")
|
|
|
.build();
|
|
|
+
|
|
|
+ if(StrUtil.isNotBlank(source.getTenantId())){
|
|
|
+ //如果有医院信息,则绑定医院关系
|
|
|
+ BizWxUserHospitalPO wxUserHospital = wxUserHospitalRepository.selectOne(new LambdaQueryWrapper<BizWxUserHospitalPO>()
|
|
|
+ .eq(BizWxUserHospitalPO::getWxUserId, wxUser.getId())
|
|
|
+ .eq(BizWxUserHospitalPO::getTenantId, source.getTenantId())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtil.isNull(wxUserHospital)) {
|
|
|
+ wxUserHospital.setWxUserId(wxUser.getId());
|
|
|
+ wxUserHospital.setTenantId(source.getTenantId());
|
|
|
+ wxUserHospitalRepository.insert(wxUserHospital);
|
|
|
+ }
|
|
|
+ }
|
|
|
setSessionUser(tokenValue,loginInfo);
|
|
|
return tokenValue;
|
|
|
}
|
|
|
@@ -146,7 +172,17 @@ public class WxAppletOauth2UserOperator extends AbstractOAuth2PswUserOperator {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @TenantIgnore
|
|
|
public void updateAccountUserInfo(String userId, AccountUserInfoEditDTO source) {
|
|
|
+ BizWxUserPO wxUser = wxUserRepository.selectById(userId);
|
|
|
+ if(ObjectUtil.isNotNull(wxUser)){
|
|
|
+ wxUser.setNickname(source.getNickname());
|
|
|
+ wxUser.setAvatar(source.getAvatar());
|
|
|
+ wxUser.setPhone(source.getPhone());
|
|
|
+ wxUserRepository.updateById(wxUser);
|
|
|
+ }else {
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"该用户不存在");
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|