/// <summary> /// 获取用户当前的在座状态 /// </summary> /// <param name="studentNo">学号</param> /// <returns></returns> public string GetUserNowState(string studentNo) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "学号不能为空"; return(JSONSerializer.Serialize(result)); } ReaderInfo readerInfo = seatManageDateService.GetReader(studentNo, true); if (readerInfo == null) { result.Result = false; result.Msg = "未查询到该读者的当前状态"; return(JSONSerializer.Serialize(result)); } AJM_ReaderStatus ajmReaderStatus = new AJM_ReaderStatus(); if (readerInfo.EnterOutLog != null) { AJM_EnterOutLog ajmEnterOutLog = new AJM_EnterOutLog { EnterOutTime = readerInfo.EnterOutLog.EnterOutTime.ToString("yyyy-MM-dd HH:mm:ss"), EnterOutState = readerInfo.EnterOutLog.EnterOutState.ToString(), Id = readerInfo.EnterOutLog.EnterOutLogID, Operator = readerInfo.EnterOutLog.Flag.ToString(), Remark = readerInfo.EnterOutLog.Remark, RoomName = readerInfo.EnterOutLog.ReadingRoomName, RoomNo = readerInfo.EnterOutLog.ReadingRoomNo, SeatNo = readerInfo.EnterOutLog.SeatNo, SeatShortNo = readerInfo.EnterOutLog.ShortSeatNo }; switch (readerInfo.EnterOutLog.EnterOutState) { case EnterOutLogType.None: case EnterOutLogType.Leave: case EnterOutLogType.BookingCancel: case EnterOutLogType.WaitingCancel: case EnterOutLogType.BespeakWaiting: ajmReaderStatus.Status = ReaderStatus.Leave.ToString(); break; case EnterOutLogType.BookingConfirmation: case EnterOutLogType.CancelTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ReselectSeat: case EnterOutLogType.SelectSeat: case EnterOutLogType.Timing: case EnterOutLogType.WaitingSuccess: ajmReaderStatus.Status = ReaderStatus.Seating.ToString(); break; case EnterOutLogType.ShortLeave: ajmReaderStatus.Status = ReaderStatus.ShortLeave.ToString(); break; case EnterOutLogType.Waiting: ajmReaderStatus.Status = ReaderStatus.Waiting.ToString(); break; } ajmReaderStatus.AjmEnterOutLog = ajmEnterOutLog; } if (readerInfo.WaitSeatLog != null) { AJM_WaitSeatLog ajmWaitSeatLog = new AJM_WaitSeatLog { RoomName = readerInfo.WaitSeatLog.EnterOutLog.ReadingRoomName, RoomNo = readerInfo.WaitSeatLog.ReadingRoomNo, SeatNo = readerInfo.WaitSeatLog.SeatNo, SeatShortNo = readerInfo.WaitSeatLog.EnterOutLog.ShortSeatNo, SeatWaitId = readerInfo.WaitSeatLog.SeatWaitingID, SeatWaitTime = readerInfo.WaitSeatLog.SeatWaitTime.ToString("yyyy-MM-dd HH:mm:ss"), StudentNo_A = readerInfo.WaitSeatLog.CardNo, StudentNo_B = readerInfo.WaitSeatLog.CardNoB }; ajmReaderStatus.AjmWaitSeatLogs = ajmWaitSeatLog; ajmReaderStatus.Status = ReaderStatus.Waiting.ToString(); } if (readerInfo.BespeakLog.Count > 0) { foreach (BespeakLogInfo model in readerInfo.BespeakLog) { if (model.BsepeakTime.Date == DateTime.Now.Date) { ajmReaderStatus.Status = ReaderStatus.Booking.ToString(); } AJM_BespeakLog ajmBespeakLog = new AJM_BespeakLog { Id = model.BsepeaklogID, BookTime = model.BsepeakTime.ToString("yyyy-MM-dd HH:mm:ss"), IsValid = true, Remark = model.Remark, RoomName = model.ReadingRoomName, RoomNo = model.ReadingRoomNo, SeatNo = model.SeatNo, SeatShortNo = model.ShortSeatNum, SubmitDateTime = model.SubmitTime.ToString("yyyy-MM-dd HH:mm:ss") }; ajmReaderStatus.AjmBespeakLogs.Add(ajmBespeakLog); } } result.Result = true; result.Msg = JSONSerializer.Serialize(ajmReaderStatus); return(JSONSerializer.Serialize(result)); } catch (Exception ex) { WriteLog.Write(string.Format("获取读者当前状态发生异常:{0}", ex.Message)); result.Result = false; result.Msg = "获取用户状态执行异常!"; return(JSONSerializer.Serialize(result)); } }
/// <summary> /// 获取登录读者详细信息 /// </summary> /// <param name="studentNo"></param> /// <returns></returns> public string GetUserInfo_WeiXin(string studentNo) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "学号不能为空!"; return(JSONSerializer.Serialize(result)); } ReaderInfo readerInfo = seatManageDateService.GetReader(studentNo, true); if (readerInfo == null) { result.Result = false; result.Msg = "未查询到该读者的当前状态"; return(JSONSerializer.Serialize(result)); } AJM_WeiXinUserInfo ajmWeiXinUserInfo = new AJM_WeiXinUserInfo(); ajmWeiXinUserInfo.StudentNo = readerInfo.CardNo; ajmWeiXinUserInfo.Name = readerInfo.Name; ajmWeiXinUserInfo.ReaderType = readerInfo.ReaderType; //预约网站设置 ajmWeiXinUserInfo.AjmPecketBookSetting.UseBookComfirm = readerInfo.PecketWebSetting.UseBookComfirm; ajmWeiXinUserInfo.AjmPecketBookSetting.UseBookNextDaySeat = readerInfo.PecketWebSetting.UseBookNextDaySeat; ajmWeiXinUserInfo.AjmPecketBookSetting.UseBookNowDaySeat = readerInfo.PecketWebSetting.UseBookNowDaySeat; ajmWeiXinUserInfo.AjmPecketBookSetting.UseBookSeat = readerInfo.PecketWebSetting.UseBookSeat; ajmWeiXinUserInfo.AjmPecketBookSetting.UseCanLeave = readerInfo.PecketWebSetting.UseCanLeave; ajmWeiXinUserInfo.AjmPecketBookSetting.UseCancelBook = readerInfo.PecketWebSetting.UseCancelBook; ajmWeiXinUserInfo.AjmPecketBookSetting.UseCancelWait = readerInfo.PecketWebSetting.UseCancelWait; ajmWeiXinUserInfo.AjmPecketBookSetting.UseChangeSeat = readerInfo.PecketWebSetting.UseChangeSeat; ajmWeiXinUserInfo.AjmPecketBookSetting.UseComeBack = readerInfo.PecketWebSetting.UseComeBack; ajmWeiXinUserInfo.AjmPecketBookSetting.UseContinue = readerInfo.PecketWebSetting.UseContinue; ajmWeiXinUserInfo.AjmPecketBookSetting.UseSelectSeat = readerInfo.PecketWebSetting.UseSelectSeat; ajmWeiXinUserInfo.AjmPecketBookSetting.UseShortLeave = readerInfo.PecketWebSetting.UseShortLeave; ajmWeiXinUserInfo.AjmPecketBookSetting.UseWaitSeat = readerInfo.PecketWebSetting.UseWaitSeat; AJM_ReaderStatus ajmReaderStatus = new AJM_ReaderStatus(); if (readerInfo.EnterOutLog != null) { AJM_EnterOutLog ajmEnterOutLog = new AJM_EnterOutLog(); ajmEnterOutLog.EnterOutTime = readerInfo.EnterOutLog.EnterOutTime.ToString("yyyy-MM-dd HH:mm:ss"); ajmEnterOutLog.EnterOutState = readerInfo.EnterOutLog.EnterOutState.ToString(); ajmEnterOutLog.Id = readerInfo.EnterOutLog.EnterOutLogID; ajmEnterOutLog.Operator = readerInfo.EnterOutLog.Flag.ToString(); ajmEnterOutLog.Remark = readerInfo.EnterOutLog.Remark; ajmEnterOutLog.RoomName = readerInfo.EnterOutLog.ReadingRoomName; ajmEnterOutLog.RoomNo = readerInfo.EnterOutLog.ReadingRoomNo; ajmEnterOutLog.SeatNo = readerInfo.EnterOutLog.SeatNo; ajmEnterOutLog.SeatShortNo = readerInfo.EnterOutLog.ShortSeatNo; ajmWeiXinUserInfo.AjmReadingRoomState = GetSingleRoomOpenState(ajmEnterOutLog.RoomNo); switch (readerInfo.EnterOutLog.EnterOutState) { case EnumType.EnterOutLogType.None: case EnumType.EnterOutLogType.Leave: case EnumType.EnterOutLogType.BookingCancel: case EnumType.EnterOutLogType.WaitingCancel: case EnumType.EnterOutLogType.BespeakWaiting: ajmReaderStatus.Status = EnumType.ReaderStatus.Leave.ToString(); break; case EnumType.EnterOutLogType.BookingConfirmation: case EnumType.EnterOutLogType.CancelTime: case EnumType.EnterOutLogType.ComeBack: case EnumType.EnterOutLogType.ContinuedTime: case EnumType.EnterOutLogType.ReselectSeat: case EnumType.EnterOutLogType.SelectSeat: case EnumType.EnterOutLogType.Timing: case EnumType.EnterOutLogType.WaitingSuccess: ajmReaderStatus.Status = EnumType.ReaderStatus.Seating.ToString(); break; case EnumType.EnterOutLogType.ShortLeave: ajmReaderStatus.Status = EnumType.ReaderStatus.ShortLeave.ToString(); break; case EnumType.EnterOutLogType.Waiting: ajmReaderStatus.Status = EnumType.ReaderStatus.Waiting.ToString(); break; } ajmReaderStatus.AjmEnterOutLog = ajmEnterOutLog; } if (readerInfo.WaitSeatLog != null) { AJM_WaitSeatLog ajmWaitSeatLog = new AJM_WaitSeatLog(); ajmWaitSeatLog.RoomName = readerInfo.WaitSeatLog.EnterOutLog.ReadingRoomName; ajmWaitSeatLog.RoomNo = readerInfo.WaitSeatLog.ReadingRoomNo; ajmWaitSeatLog.SeatNo = readerInfo.WaitSeatLog.SeatNo; ajmWaitSeatLog.SeatShortNo = readerInfo.WaitSeatLog.EnterOutLog.ShortSeatNo; ajmWaitSeatLog.SeatWaitId = readerInfo.WaitSeatLog.SeatWaitingID; ajmWaitSeatLog.SeatWaitTime = readerInfo.WaitSeatLog.SeatWaitTime.ToString("yyyy-MM-dd HH:mm:ss"); ajmWaitSeatLog.StudentNo_A = readerInfo.WaitSeatLog.CardNo; ajmWaitSeatLog.StudentNo_B = readerInfo.WaitSeatLog.CardNoB; ajmWeiXinUserInfo.AjmReadingRoomState = GetSingleRoomOpenState(ajmWaitSeatLog.RoomNo); ajmReaderStatus.AjmWaitSeatLogs = ajmWaitSeatLog; ajmReaderStatus.Status = EnumType.ReaderStatus.Waiting.ToString(); } if (readerInfo.BespeakLog.Count > 0) { foreach (BespeakLogInfo model in readerInfo.BespeakLog) { if (model.BsepeakTime.Date == DateTime.Now.Date) { ajmReaderStatus.Status = EnumType.ReaderStatus.Booking.ToString(); } AJM_BespeakLog ajmBespeakLog = new AJM_BespeakLog { Id = model.BsepeaklogID, BookTime = model.BsepeakTime.ToString("yyyy-MM-dd HH:mm:ss"), IsValid = true, Remark = model.Remark, RoomName = model.ReadingRoomName, RoomNo = model.ReadingRoomNo, SeatNo = model.SeatNo, SeatShortNo = model.ShortSeatNum, SubmitDateTime = model.SubmitTime.ToString("yyyy-MM-dd HH:mm:ss") }; ajmReaderStatus.AjmBespeakLogs.Add(ajmBespeakLog); } } ajmWeiXinUserInfo.AjmReaderStatus = ajmReaderStatus; result.Result = true; result.Msg = JSONSerializer.Serialize(ajmWeiXinUserInfo); return(JSONSerializer.Serialize(result)); } catch (Exception ex) { WriteLog.Write(string.Format("获取登录读者详细信息遇到异常:{0}", ex.Message)); result.Result = false; result.Msg = "获取登录读者详细信息执行遇到异常!"; return(JSONSerializer.Serialize(result)); } }