Browse Source

add
绑定医院

18339543638 6 tháng trước cách đây
mục cha
commit
aa34213cd7

+ 6 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizWxUserService.java

@@ -79,5 +79,10 @@ public interface IBizWxUserService{
 
     void updateLastLoginInfo(String id, Date loginTime,String ip,String cityInfo);
 
-
+    /**
+     * 为用户绑定医院
+     * @param currentUserId
+     * @param hospitalId
+     */
+    void bindHospital(String currentUserId, String hospitalId);
 }

+ 30 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizWxUserServiceImpl.java

@@ -1,10 +1,13 @@
 package cn.tr.module.smart.common.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.tr.core.annotation.TenantIgnore;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.strategy.LoginUserStrategy;
+import cn.tr.module.smart.common.po.BizHospitalPO;
 import cn.tr.module.smart.common.po.BizWxUserHospitalPO;
+import cn.tr.module.smart.common.repository.BizHospitalRepository;
 import cn.tr.module.smart.common.repository.BizWxUserHospitalRepository;
 import cn.tr.module.smart.wx.controller.vo.BizWxUserBindHospitalVO;
 import cn.tr.module.sys.user.service.ISysUserService;
@@ -26,6 +29,9 @@ import cn.tr.module.smart.common.dto.BizWxUserQueryDTO;
 import java.util.*;
 import cn.tr.module.smart.common.service.IBizWxUserService;
 import cn.tr.module.smart.common.mapper.BizWxUserMapper;
+
+import javax.annotation.Resources;
+
 /**
  * 微信用户Service接口实现类
  *
@@ -43,6 +49,9 @@ public class BizWxUserServiceImpl implements IBizWxUserService {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private BizHospitalRepository hospitalRepository;
+
     /**
      * 根据条件查询微信用户
      * @param    query 查询参数
@@ -163,4 +172,25 @@ public class BizWxUserServiceImpl implements IBizWxUserService {
         baseRepository.updateById(wxUserPO);
         sysUserService.delUserIdAndNickNameCache();
     }
+
+    @Override
+    public void bindHospital(String currentUserId, String hospitalId) {
+        //判断医院是否存在
+        BizHospitalPO hospital = hospitalRepository.selectById(hospitalId);
+        if(ObjectUtil.isEmpty(hospital)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"医院不存在");
+        }
+        BizWxUserHospitalPO bizWxUserHospital = wxUserHospitalRepository.selectOne(new LambdaQueryWrapper<BizWxUserHospitalPO>()
+                .eq(BizWxUserHospitalPO::getWxUserId, currentUserId)
+                .eq(BizWxUserHospitalPO::getTenantId, hospital)
+                .last("limit 1"));
+        if(ObjectUtil.isNotEmpty(bizWxUserHospital)){
+            return;
+        }
+        BizWxUserHospitalPO insertSource = new BizWxUserHospitalPO();
+        insertSource.setWxUserId(currentUserId);
+        insertSource.setTenantId(hospitalId);
+        wxUserHospitalRepository.insert(insertSource);
+        return;
+    }
 }

+ 9 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/WxAppletUserController.java

@@ -6,9 +6,11 @@ import cn.binarywang.wx.miniapp.util.WxMaConfigHolder;
 import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.pojo.CommonResult;
+import cn.tr.core.strategy.LoginUserStrategy;
 import cn.tr.module.smart.common.service.IBizWxUserService;
 import cn.tr.module.smart.web.dto.WxAppletEncodeInfoDTO;
 import cn.tr.module.smart.wx.controller.vo.BizWxUserBindHospitalVO;
+import cn.tr.module.smart.wx.dto.BizWxUserBindHospitalDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -73,5 +75,12 @@ public class WxAppletUserController {
         return CommonResult.success( wxUserService.allBindHospital());
     }
 
+    @PostMapping("/bindHospital")
+    @ApiOperation(value = "当前用户绑定医院",position = 5)
+    public CommonResult<Boolean> bindHospital(@RequestBody BizWxUserBindHospitalDTO source){
+        String currentUserId = LoginUserStrategy.tr.getCurrentUserId();
+        wxUserService.bindHospital(currentUserId,source.getHospitalId());
+        return CommonResult.success(Boolean.TRUE);
+    }
 
 }

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizWxUserBindHospitalDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.wx.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName : BizWxUserBindHospitalDTO
+ * @Description :
+ * @Author : LF
+ * @Date: 2025年06月06日
+ */
+@Data
+@ApiModel("绑定医院id")
+public class BizWxUserBindHospitalDTO {
+    @ApiModelProperty("医院id")
+    private String hospitalId;
+}