浏览代码

修改调参状态接口

fly 2 年之前
父节点
当前提交
1b747cff60
共有 2 个文件被更改,包括 75 次插入0 次删除
  1. 48 0
      LiveConsultationRoomManager.cs
  2. 27 0
      LiveConsultationService.cs

+ 48 - 0
LiveConsultationRoomManager.cs

@@ -83,6 +83,54 @@ namespace WingLiveConsultationService
                             });
             return liveRoom != null;
         }
+
+        /// <summary>
+        /// 从缓存获取房间信息,通过设备code或者用户code
+        /// </summary>
+        /// <param name="deviceCode"></param>
+        /// <param name="userCode"></param>
+        public LiveConsultationRoom GetRoomInfoByConditionCode(string deviceCode, string userCode)
+        {
+            try
+            {
+                LiveConsultationRoom defaultRoom = null;
+                if (_rooms?.Count > 0)
+                {
+                    foreach (var tempRoom in _rooms.Values)
+                    {
+                        if (tempRoom != null && tempRoom != null && !string.IsNullOrEmpty(tempRoom.RoomId))
+                        {
+                            if (tempRoom.Status == LiveConsultationRoomStatus.Connected || tempRoom.Status == LiveConsultationRoomStatus.Initiating)
+                            {
+                                if (!string.IsNullOrEmpty(deviceCode) && !string.IsNullOrEmpty(userCode) &&
+                                    tempRoom?.DeviceInfos?.Count(c => c.Id == deviceCode && c.Status == LiveConsultationMemberStatus.Joined) > 0 &&
+                                    tempRoom?.UserInfos?.Count(c => c.Id == userCode && c.Status == LiveConsultationMemberStatus.Joined) > 0)
+                                {
+                                    defaultRoom = tempRoom;
+                                    break;
+                                }
+                                else if (!string.IsNullOrEmpty(deviceCode) && tempRoom?.DeviceInfos?.Count(c => c.Id == deviceCode && c.Status == LiveConsultationMemberStatus.Joined) > 0)
+                                {
+                                    defaultRoom = tempRoom;
+                                    break;
+                                }
+                                else if (!string.IsNullOrEmpty(userCode) && tempRoom?.UserInfos?.Count(c => c.Id == userCode && c.Status == LiveConsultationMemberStatus.Joined) > 0)
+                                {
+                                    defaultRoom = tempRoom;
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                }
+                return defaultRoom;
+            }
+            catch (Exception ex)
+            {
+                return null;
+            }
+        }
+
     }
 
 }

+ 27 - 0
LiveConsultationService.cs

@@ -1533,6 +1533,33 @@ namespace WingLiveConsultationService
             return result;
         }
 
+        /// <summary>
+        /// 更改调参状态
+        /// </summary>
+        /// <param name="request">请求实体</param>
+        /// <returns>true</returns>
+        /// <show>false</show>
+        public async Task<bool> ChangeConsultationControllingStateAsync(ChangeConsultationControllingStateRequest request)
+        {
+            var userCode = request.UserCode;
+            var isControllingParameter = request.IsControllingParameter;
+            var room = _liveConsultationRoomManager.GetRoomInfoByConditionCode(request.DeviceCode, userCode);
+            if (room != null && !string.IsNullOrWhiteSpace(room.RoomId))
+            {
+                room.ChangeControllingParameterState(userCode, isControllingParameter);
+                var syncInfo = new ControllingParameterInLiveConsultationJson
+                {
+                    ConsultationRecordCode = room.RoomId,
+                    RoomCode = room.RoomId,
+                    InitatorCode = room.Initiator?.Id,
+                    OperatorCode = userCode,
+                    IsControllingParameter = isControllingParameter
+                };
+                await SyncToMasterAsync(SyncTypeEnum.ChangeControllingParameter, room.RoomId, room.PatientName, syncInfo);
+            }
+            return await Task.FromResult(true);
+        }
+
         /// <summary>
         /// 发送会诊提醒短信通知
         /// </summary>