|
|
@@ -1,8 +1,12 @@
|
|
|
package com.nb.im.service;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
+import com.nb.app.assistant.api.entity.AssistantUserBindEntity;
|
|
|
+import com.nb.app.assistant.api.event.UpdateBindPatientEvent;
|
|
|
+import com.nb.app.assistant.api.feign.result.UpdateBindPatientParam;
|
|
|
import com.nb.app.msg.enums.MsgEnum;
|
|
|
import com.nb.common.crud.BaseService;
|
|
|
import com.nb.common.queue.delay.manager.DelayMessageManager;
|
|
|
@@ -22,6 +26,7 @@ import com.nb.im.ws.PubMsgInfo;
|
|
|
import com.nb.web.api.feign.IPatientClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
+import org.springframework.context.event.EventListener;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -61,6 +66,29 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
|
|
|
@Lazy
|
|
|
private DelayMessageManager delayMessageManager;
|
|
|
|
|
|
+
|
|
|
+ @EventListener
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void updateRoomInfo(UpdateBindPatientEvent event){
|
|
|
+ String assistId = event.getAssistId();
|
|
|
+ String doctorId = event.getDoctorId();
|
|
|
+ String oldPatientId = event.getOldPatientId();
|
|
|
+ UpdateBindPatientParam param = event.getParam();
|
|
|
+ this.update(new UpdateWrapper<ImRoomEntity>()
|
|
|
+ .lambda()
|
|
|
+ .eq(ImRoomEntity::getAssistId,assistId)
|
|
|
+ .eq(ImRoomEntity::getDoctorId,doctorId)
|
|
|
+ .eq(ImRoomEntity::getPatientId,oldPatientId)
|
|
|
+ .in(ImRoomEntity::getStatus,ImStatusEnum.WAITING,ImStatusEnum.SUCCESS)
|
|
|
+ .set(StrUtil.isNotEmpty(param.getPatientId()), ImRoomEntity::getPatientId, param.getPatientId())
|
|
|
+ .set(StrUtil.isNotEmpty(param.getPatientAge()), ImRoomEntity::getPatientAge, param.getPatientAge())
|
|
|
+ .set(StrUtil.isNotEmpty(param.getPatientCode()), ImRoomEntity::getPatientCode, param.getPatientCode())
|
|
|
+ .set(StrUtil.isNotEmpty(param.getPatientName()), ImRoomEntity::getPatientName, param.getPatientName())
|
|
|
+ .set(ObjectUtil.isNotNull(param.getPatientSex()), ImRoomEntity::getPatientSex, param.getPatientSex())
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public void validateBeforeSave(ImRoomEntity entity) {
|
|
|
if(entity.getManageType()==null&& StrUtil.isNotEmpty(entity.getPatientId())){
|
|
|
@@ -84,7 +112,8 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
|
|
|
@Override
|
|
|
public void postUpdate(ImRoomEntity entity) {
|
|
|
if(ImStatusEnum.SUCCESS.equals(entity.getStatus())){
|
|
|
- autoFinishRoom(entity.getId()); }
|
|
|
+ autoFinishRoom(entity.getId());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|