|
|
@@ -1,10 +1,13 @@
|
|
|
package com.nb.app.assistant.controller;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.nb.app.assistant.controller.vo.InviteCodePatientVo;
|
|
|
import com.nb.app.assistant.controller.vo.MonitorAddVo;
|
|
|
import com.nb.app.assistant.entity.AssistantUserBindEntity;
|
|
|
+import com.nb.app.assistant.enums.BindEnum;
|
|
|
import com.nb.app.assistant.service.LocalAssistantUserBindService;
|
|
|
+import com.nb.auth.utils.SecurityUtil;
|
|
|
import com.nb.core.exception.CustomException;
|
|
|
import com.nb.core.result.R;
|
|
|
import com.nb.web.api.feign.IPatientClient;
|
|
|
@@ -42,8 +45,9 @@ public class PatientOperationController {
|
|
|
@PostMapping("/save")
|
|
|
@ApiOperation(value = "发起添加看护人申请")
|
|
|
public R<Boolean> saveMonitor(@RequestBody MonitorAddVo vo){
|
|
|
+ judgePatient(vo.getPatientId());
|
|
|
+ judgeUser();
|
|
|
AssistantUserBindEntity resource = BeanUtil.copyProperties(vo, AssistantUserBindEntity.class);
|
|
|
- //判断是否被绑定 todo
|
|
|
return R.success(userBindService.save(resource));
|
|
|
}
|
|
|
|
|
|
@@ -54,6 +58,54 @@ public class PatientOperationController {
|
|
|
if(inviteCodeResult.getResult()==null){
|
|
|
throw new CustomException("系统繁忙,请稍后重试");
|
|
|
}
|
|
|
+ judgePatient(inviteCodeResult.getResult().getPatientId());
|
|
|
+ judgeUser();
|
|
|
return R.success(BeanUtil.copyProperties(inviteCodeResult.getResult(), InviteCodePatientVo.class));
|
|
|
}
|
|
|
+
|
|
|
+ @PostMapping("/call/{bindId}")
|
|
|
+ @ApiOperation(value = "一键呼叫")
|
|
|
+ public R<Boolean> painCall(@PathVariable("bindId")String bindId){
|
|
|
+ userBindService.painCall(bindId);
|
|
|
+ return R.success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 描述: 判断患者是否已被绑定
|
|
|
+ * @author lifang
|
|
|
+ * @date 2022/8/12 14:45
|
|
|
+ * @param patientId
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ private void judgePatient(String patientId){
|
|
|
+ AssistantUserBindEntity userBind = userBindService.getOne(new QueryWrapper<AssistantUserBindEntity>()
|
|
|
+ .lambda()
|
|
|
+ .eq(AssistantUserBindEntity::getStatus, BindEnum.SUCCESS)
|
|
|
+ .eq(AssistantUserBindEntity::getPatientId, patientId)
|
|
|
+ );
|
|
|
+
|
|
|
+ if(userBind!=null){
|
|
|
+ throw new CustomException("该病号已被他人监护");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 描述: 判断当前用户绑定人数是否已超过限制
|
|
|
+ * @author lifang
|
|
|
+ * @date 2022/8/12 14:45
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ private void judgeUser(){
|
|
|
+ String id =String.valueOf( SecurityUtil.getId());
|
|
|
+ Long bindCount = userBindService.count(new QueryWrapper<AssistantUserBindEntity>()
|
|
|
+ .lambda()
|
|
|
+ .eq(AssistantUserBindEntity::getStatus, BindEnum.SUCCESS)
|
|
|
+ .eq(AssistantUserBindEntity::getUserId, id)
|
|
|
+ );
|
|
|
+
|
|
|
+ if(bindCount>=6){
|
|
|
+ throw new CustomException("最多同时监护6名患者");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|