/// <summary> /// 获取用户的基本信息 /// </summary> /// <param name="studentNo">学号</param> /// <returns></returns> public string GetUserInfo(string studentNo) { AJM_HandleResult result = new AJM_HandleResult(); try { ReaderInfo reader = SeatManageDateService.GetReader(studentNo, false); if (reader == null) { result.Result = false; result.Msg = "对不起,不存在该读者信息!"; return(JSONSerializer.Serialize(result)); } AJM_Reader ajmReader = new AJM_Reader(); ajmReader.CardId = reader.CardID; ajmReader.StudentNo = reader.CardNo; ajmReader.Name = reader.Name; ajmReader.Sex = reader.Sex; ajmReader.Department = reader.Pro; ajmReader.ReaderType = reader.ReaderType; result.Result = true; result.Msg = JSONSerializer.Serialize(ajmReader); 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="roomNo">阅览室编号</param> /// <returns></returns> public string GetRandomSeat(string roomNo) { AJM_HandleResult result = new AJM_HandleResult(); try { AJM_Seat ajmSeat = new AJM_Seat(); ajmSeat.SeatNo = SeatManageDateService.RandomAllotSeat(roomNo); if (string.IsNullOrEmpty(ajmSeat.SeatNo)) { result.Result = false; result.Msg = "阅览室已满,请稍后再试!"; return(JSONSerializer.Serialize(result)); } result.Result = true; result.Msg = JSONSerializer.Serialize(ajmSeat); 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> /// <param name="seatCount">查询座位数量</param> /// <param name="dayCount">统计天数</param> /// <returns></returns> public string GetOftenSeat(string studentNo, int seatCount, int dayCount) { AJM_HandleResult result = new AJM_HandleResult(); try { List <Seat> seats = SeatManageDateService.GetOftenUsedSeatByCardNo(studentNo, dayCount, null); List <AJM_Seat> ajmSeats = new List <AJM_Seat>(); for (int i = 0; i < (seats.Count < seatCount ? seats.Count : seatCount); i++) { AJM_Seat ajmSeat = new AJM_Seat(); ajmSeat.SeatNo = seats[i].SeatNo; ajmSeat.SeatShortNo = seats[i].ShortSeatNo; ajmSeat.RoomName = seats[i].ReadingRoom.Name; ajmSeat.RoomNo = seats[i].ReadingRoomNum; ajmSeats.Add(ajmSeat); } if (ajmSeats.Count < 1) { result.Result = false; result.Msg = "没有查询到常坐座位信息!"; return(JSONSerializer.Serialize(result)); } result.Result = true; result.Msg = JSONSerializer.Serialize(ajmSeats); 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> /// <param name="pageIndex">页编码</param> /// <param name="pageSize">每页数目</param> /// <returns></returns> public string GetEnterOutLog(string studentNo, int pageIndex, int pageSize) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "学号不能为空!"; return(JSONSerializer.Serialize(result)); } if (pageIndex < 0 || pageSize < 0) { result.Result = false; result.Msg = "页数和每页显示数目必须大于等于0"; return(JSONSerializer.Serialize(result)); } List <EnterOutLogInfo> enterOutLogInfos = SeatManageDateService.GetEnterOutLogsByPage(studentNo, pageIndex, pageSize); List <AJM_EnterOutLog> ajmEnterOutLogs = new List <AJM_EnterOutLog>(); for (int i = 0; i < enterOutLogInfos.Count; i++) { AJM_EnterOutLog ajmEnterOutLog = new AJM_EnterOutLog(); ajmEnterOutLog = new AJM_EnterOutLog(); ajmEnterOutLog.EnterOutState = enterOutLogInfos[i].EnterOutState.ToString(); ajmEnterOutLog.EnterOutTime = enterOutLogInfos[i].EnterOutTime.ToString("yyyy-MM-d HH:mm:ss"); ajmEnterOutLog.Id = enterOutLogInfos[i].EnterOutLogID; ajmEnterOutLog.Remark = enterOutLogInfos[i].Remark; ajmEnterOutLog.RoomName = enterOutLogInfos[i].ReadingRoomName; ajmEnterOutLog.RoomNo = enterOutLogInfos[i].ReadingRoomNo; ajmEnterOutLog.SeatNo = enterOutLogInfos[i].SeatNo; ajmEnterOutLog.SeatShortNo = enterOutLogInfos[i].ShortSeatNo; ajmEnterOutLogs.Add(ajmEnterOutLog); } if (ajmEnterOutLogs.Count < 1) { result.Result = false; result.Msg = "暂时没有进出记录!"; return(JSONSerializer.Serialize(result)); } result.Result = true; result.Msg = JSONSerializer.Serialize(ajmEnterOutLogs); 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> /// <param name="pageIndex">页索引</param> /// <param name="pageSize">每页显示条数</param> /// <returns></returns> public string GetBesapsekLog(string studentNo, int pageIndex, int pageSize) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "学号不能为空!"; return(JSONSerializer.Serialize(result)); } if (pageIndex < 0 || pageSize < 0) { result.Result = false; result.Msg = "页数和每页显示数目必须大于等于0"; return(JSONSerializer.Serialize(result)); } List <BespeakLogInfo> logInfos = SeatManageDateService.GetBespeakLogsByPage(studentNo, pageIndex, pageSize); List <AJM_BespeakLog> ajmBespeakLogs = new List <AJM_BespeakLog>(); for (int i = 0; i < logInfos.Count; i++) { AJM_BespeakLog ajmBespeakLog = new AJM_BespeakLog(); ajmBespeakLog.Id = logInfos[i].BsepeaklogID; ajmBespeakLog.BookTime = logInfos[i].BsepeakTime.ToString("yyyy-MM-dd HH:mm:ss"); ajmBespeakLog.IsValid = logInfos[i].BsepeakState == BookingStatus.Waiting; ajmBespeakLog.Remark = logInfos[i].Remark; ajmBespeakLog.RoomName = logInfos[i].ReadingRoomName; ajmBespeakLog.RoomNo = logInfos[i].ReadingRoomNo; ajmBespeakLog.SeatShortNo = logInfos[i].ShortSeatNum; ajmBespeakLog.SeatNo = logInfos[i].SeatNo; ajmBespeakLog.SubmitDateTime = logInfos[i].SubmitTime.ToString("yyyy-MM-dd HH:mm:ss"); ajmBespeakLog.CancelTime = logInfos[i].CancelTime.ToString("yyyy-MM-dd HH:mm:ss"); ajmBespeakLogs.Add(ajmBespeakLog); } result.Result = true; result.Msg = JSONSerializer.Serialize(ajmBespeakLogs); 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> /// <param name="pageIndex">页索引</param> /// <param name="pageSize">每页显示条数</param> /// <returns></returns> public string GetBlacklist(string studentNo, int pageIndex, int pageSize) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "学号不能为空!"; return(JSONSerializer.Serialize(result)); } if (pageIndex < 0 || pageSize < 0) { result.Result = false; result.Msg = "页数和每页显示数目必须大于等于0"; return(JSONSerializer.Serialize(result)); } List <BlackListInfo> blackListInfos = SeatManageDateService.GetBlacklistInfosByPage(studentNo, pageIndex, pageSize); List <AJM_BlacklistLog> ajmBlacklistLogs = new List <AJM_BlacklistLog>(); for (int i = 0; i < blackListInfos.Count; i++) { AJM_BlacklistLog ajmBlacklistLog = new AJM_BlacklistLog(); ajmBlacklistLog.AddTime = blackListInfos[i].AddTime.ToString("yyyy-MM-dd HH:mm:ss"); ajmBlacklistLog.StudentNo = blackListInfos[i].CardNo; ajmBlacklistLog.ID = blackListInfos[i].ID; ajmBlacklistLog.IsValid = blackListInfos[i].BlacklistState == LogStatus.Valid; ajmBlacklistLog.OutBlacklistMode = blackListInfos[i].OutBlacklistMode.ToString(); ajmBlacklistLog.OutTime = blackListInfos[i].OutTime.ToString("yyyy-MM-dd HH:mm:ss"); ajmBlacklistLog.ReMark = blackListInfos[i].ReMark; ajmBlacklistLogs.Add(ajmBlacklistLog); } result.Result = true; result.Msg = JSONSerializer.Serialize(ajmBlacklistLogs); 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> /// <param name="pageIndex">页索引</param> /// <param name="pageSize">每页显示条数</param> /// <returns></returns> public string GetViolationLog(string studentNo, int pageIndex, int pageSize) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "学号不能为空"; JSONSerializer.Serialize(result); } if (pageIndex < 0 || pageSize < 0) { result.Result = false; result.Msg = "页数和每页显示数目必须大于等于0"; return(JSONSerializer.Serialize(result)); } List <ViolationRecordsLogInfo> violationRecordsLogInfos = SeatManageDateService.GetViolationRecordsLogsByPage(studentNo, pageIndex, pageSize); List <AJM_ViolationRecordsLogInfo> ajmViolationRecordsLogInfos = new List <AJM_ViolationRecordsLogInfo>(); for (int i = 0; i < violationRecordsLogInfos.Count; i++) { AJM_ViolationRecordsLogInfo ajmViolationRecordsLogInfo = new AJM_ViolationRecordsLogInfo(); ajmViolationRecordsLogInfo.StudentNo = violationRecordsLogInfos[i].CardNo; ajmViolationRecordsLogInfo.EnterOutTime = violationRecordsLogInfos[i].EnterOutTime; ajmViolationRecordsLogInfo.RoomName = violationRecordsLogInfos[i].ReadingRoomName; ajmViolationRecordsLogInfo.Remark = violationRecordsLogInfos[i].Remark; ajmViolationRecordsLogInfo.SeatNo = violationRecordsLogInfos[i].SeatID; ajmViolationRecordsLogInfos.Add(ajmViolationRecordsLogInfo); } result.Result = true; result.Msg = JSONSerializer.Serialize(ajmViolationRecordsLogInfos); 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="loginId">登录账号</param> /// <param name="password">登录密码</param> /// <returns></returns> public string CheckUser(string loginId, string password) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(loginId.Trim()) || string.IsNullOrEmpty(password.Trim())) { result.Result = false; result.Msg = "用户名或密码不能为空!"; return(JSONSerializer.Serialize(result)); } UserInfo userInfo = SeatManageDateService.GetUserInfo(loginId); if (userInfo == null) { result.Result = false; result.Msg = "用户名或密码错误!"; return(JSONSerializer.Serialize(result)); } string md5Password = MD5Algorithm.GetMD5Str32(password); if (!md5Password.Equals(userInfo.Password)) { result.Result = false; result.Msg = "用户名或密码错误!"; return(JSONSerializer.Serialize(result)); } AJM_Reader ajmReader = new AJM_Reader { StudentNo = userInfo.LoginId, Name = userInfo.UserName }; result.Result = true; result.Msg = JSONSerializer.Serialize(ajmReader); 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 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)); } }
public string GetUserNowStateV2(string studentNo, bool isCheckCode) { 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_UserNowStatus ajmReaderStatus = new AJM_UserNowStatus(); ajmReaderStatus.StudentNum = readerInfo.CardNo; ajmReaderStatus.Name = readerInfo.Name; ajmReaderStatus.Status = ajmReaderStatus.Status = ReaderStatus.Leave.ToString(); if (readerInfo.EnterOutLog != null && readerInfo.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { switch (readerInfo.EnterOutLog.EnterOutState) { case EnterOutLogType.ComeBack: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ReselectSeat: case EnterOutLogType.SelectSeat: case EnterOutLogType.WaitingSuccess: case EnterOutLogType.BookingConfirmation: ajmReaderStatus.Status = ReaderStatus.Seating.ToString(); ajmReaderStatus.CanOperation = "Leave;ShortLeave" + (isCheckCode && readerInfo.AtReadingRoom.Setting.SeatUsedTimeLimit.IsCanContinuedTime && readerInfo.AtReadingRoom.Setting.SeatUsedTimeLimit.Used ? ";ContiuneTime" : ""); break; case EnterOutLogType.ShortLeave: ajmReaderStatus.Status = ReaderStatus.ShortLeave.ToString(); ajmReaderStatus.CanOperation = "Leave;" + (isCheckCode ? ";ComeBack" : ""); break; } ajmReaderStatus.InRoom = readerInfo.AtReadingRoom.Name; ajmReaderStatus.SeatNum = readerInfo.EnterOutLog.ShortSeatNo; ajmReaderStatus.NowStatusRemark = readerInfo.EnterOutLog.Remark; ajmReaderStatus.Time = readerInfo.EnterOutLog.EnterOutTime.ToString(); } if (readerInfo.WaitSeatLog != null) { ajmReaderStatus.Status = ReaderStatus.Waiting.ToString(); ajmReaderStatus.InRoom = readerInfo.AtReadingRoom.Name; ajmReaderStatus.SeatNum = readerInfo.WaitSeatLog.EnterOutLog.ShortSeatNo; ajmReaderStatus.CanOperation = "CancelWait"; ajmReaderStatus.NowStatusRemark = string.Format("您正在等待,{0} {1}号座位。", ajmReaderStatus.InRoom, ajmReaderStatus.SeatNum); ajmReaderStatus.Time = readerInfo.WaitSeatLog.EnterOutLog.ToString(); } if (readerInfo.BespeakLog.Count > 0 && readerInfo.BespeakLog[0].BsepeakTime.Date == DateTime.Now.Date) { ajmReaderStatus.Status = ReaderStatus.Booking.ToString(); ajmReaderStatus.InRoom = readerInfo.BespeakLog[0].ReadingRoomName; ajmReaderStatus.SeatNum = readerInfo.BespeakLog[0].ShortSeatNum; ajmReaderStatus.CanOperation = "CancelBook" + (isCheckCode ? ";CheckBook" : "");; ajmReaderStatus.NowStatusRemark = readerInfo.BespeakLog[0].Remark; ajmReaderStatus.Time = readerInfo.BespeakLog[0].SubmitTime.ToString(); } 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)); } }
/// <summary> /// 获取二维码座位信息 /// </summary> /// <param name="codeStr"></param> /// <returns></returns> public string QRcodeSeatInfo(string codeStr) { try { AJM_HandleResult result = new AJM_HandleResult(); string[] scanResultArray = codeStr.Split('?'); ScanCodeParamModel scancode = null; if (scanResultArray.Length >= 2) { string[] strParam = scanResultArray[1].Split('='); if (strParam.Length >= 2) { scancode = ScanCodeParamModel.Prase(strParam[1]);//兼容url的二维码。 } } else { scancode = ScanCodeParamModel.Prase(codeStr); } if (scancode == null) { result.Result = false; result.Msg = "二维码错误!"; return(JSONSerializer.Serialize(result)); } Seat seatInfo = SeatManageDateService.GetSeatInfoBySeatNum(scancode.SeatNum); if (seatInfo == null) { result.Result = false; result.Msg = "此座位不存在!"; return(JSONSerializer.Serialize(result)); } AJM_SeatStatus jm_Seat = new AJM_SeatStatus(); jm_Seat.SeatNo = seatInfo.SeatNo; jm_Seat.SeatShortNo = seatInfo.ShortSeatNo; jm_Seat.RoomName = seatInfo.ReadingRoom.Name; jm_Seat.RoomNo = seatInfo.ReadingRoom.No; jm_Seat.IsStopUse = seatInfo.IsSuspended; if (seatInfo.ReadingRoom.Setting.SeatBespeak.Used && !seatInfo.IsSuspended) { DateTime ndt = DateTime.Now; if (seatInfo.ReadingRoom.Setting.SeatBespeak.NowDayBespeak && seatInfo.SeatUsedState == EnterOutLogType.Leave) { jm_Seat.BespeakDate.Add(ndt.ToShortDateString(), seatInfo.ReadingRoom.Setting.GetBespeakTimeList(ndt).Select(t => t.ToShortTimeString()).ToList()); } for (int i = 1; i <= seatInfo.ReadingRoom.Setting.SeatBespeak.BespeakBeforeDays; i++) { List <BespeakLogInfo> list = SeatManageDateService.GetBespeakLogInfoBySeatNo(seatInfo.SeatNo, ndt.AddDays(i)); if (list.Count > 0 && !seatInfo.ReadingRoom.Setting.IsCanBespeakSeat(ndt.AddDays(i))) { continue; } jm_Seat.BespeakDate.Add(ndt.AddDays(i).ToShortDateString(), seatInfo.ReadingRoom.Setting.GetBespeakTimeList(ndt.AddDays(i)).Select(t => t.ToShortTimeString()).ToList()); } } result.Result = true; result.Msg = JSONSerializer.Serialize(jm_Seat); return(JSONSerializer.Serialize(result)); } catch (Exception ex) { WriteLog.Write("获取二维码信息遇到异常:" + ex.Message); AJM_HandleResult result = new AJM_HandleResult(); result.Result = false; result.Msg = "执行遇到异常!"; return(JSONSerializer.Serialize(result)); } }
public string QRcodeOperation(string codeStr, string studentNo) { try { AJM_HandleResult result = new AJM_HandleResult(); string[] scanResultArray = codeStr.Split('?'); ClientCheckCodeParamModel scancode = null; if (scanResultArray.Length >= 2) { string[] strParam = scanResultArray[1].Split('='); if (strParam.Length >= 2) { scancode = ClientCheckCodeParamModel.Prase(strParam[1]);//兼容url的二维码。 } } else { scancode = ClientCheckCodeParamModel.Prase(codeStr); } DateTime ndt = DateTime.Now; if (scancode == null) { result.Result = false; result.Msg = "对不起,二维码错误!"; return(JSONSerializer.Serialize(result)); } if (scancode.CodeTime.AddMinutes(1) <= ndt) { result.Result = false; result.Msg = "对不起,二维码超时!"; return(JSONSerializer.Serialize(result)); } if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "读者学号为空。"; return(JSONSerializer.Serialize(result)); } ReaderInfo reader = SeatManageDateService.GetReader(studentNo, true); if (reader == null) { result.Result = false; result.Msg = "获取读者信息失败。"; return(JSONSerializer.Serialize(result)); } if (reader.EnterOutLog == null && reader.BespeakLog.Count < 1) { result.Result = false; result.Msg = "对不起,您还没有座位,请先选择或预约一个座位。"; } if (reader.EnterOutLog != null) { switch (reader.EnterOutLog.EnterOutState) { case EnterOutLogType.BookingConfirmation: //预约入座 case EnterOutLogType.SelectSeat: //选座 case EnterOutLogType.ContinuedTime: //续时 case EnterOutLogType.ComeBack: //暂离回来 case EnterOutLogType.ReselectSeat: //重新选座 case EnterOutLogType.WaitingSuccess: //等待入座 result.Result = false; result.Msg = "您当前已有座位。"; break; case EnterOutLogType.ShortLeave: reader.EnterOutLog.EnterOutState = EnterOutLogType.ComeBack; reader.EnterOutLog.Remark = string.Format("您在选座终端{0}扫描二维码恢复在座,本次暂离时长{1}分钟。", scancode.ClientNo, ((int)(ndt - reader.EnterOutLog.EnterOutTime).TotalMinutes)); reader.EnterOutLog.Flag = Operation.Reader; reader.EnterOutLog.EnterOutTime = ndt; result.Result = true; int newId = -1; if (SeatManageDateService.AddEnterOutLogInfo(reader.EnterOutLog, ref newId) != HandleResult.Successed) { result.Result = false; result.Msg = "对不起,暂离回来失败!"; return(JSONSerializer.Serialize(result)); } result.Result = true; result.Msg = reader.EnterOutLog.Remark; List <WaitSeatLogInfo> waitSeatLogs = SeatManageDateService.GetWaitLogList("", reader.EnterOutLog.EnterOutLogID, null, null, null); if (waitSeatLogs.Count > 0) { WaitSeatLogInfo waitSeatLog = waitSeatLogs[0]; waitSeatLog.NowState = LogStatus.Fail; waitSeatLog.OperateType = Operation.OtherReader; waitSeatLog.WaitingState = EnterOutLogType.WaitingCancel; SeatManageDateService.UpdateWaitLog(waitSeatLog); } break; case EnterOutLogType.Leave: result.Result = false; result.Msg = "对不起,您还没有座位,请先选择或预约一个座位。"; break; default: result.Result = false; result.Msg = "对不起,您还没有座位,请先选择或预约一个座位。"; break; } return(JSONSerializer.Serialize(result)); } ReadingRoomSetting set = reader.AtReadingRoom.Setting; DateTime dtBegin = reader.BespeakLog[0].BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime)); DateTime dtEnd = reader.BespeakLog[0].BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime)); if (!DateTimeOperate.DateAccord(dtBegin, dtEnd, ndt) && (!set.SeatBespeak.NowDayBespeak || reader.BespeakLog[0].SubmitTime != reader.BespeakLog[0].BsepeakTime)) { result.Result = false; result.Msg = "对不起,您预约的座位没有到达签到时间"; return(JSONSerializer.Serialize(result)); } EnterOutLogInfo seatUsedInfo = SeatManageDateService.GetEnterOutLogInfoBySeatNum(reader.BespeakLog[0].SeatNo); if (seatUsedInfo != null && seatUsedInfo.EnterOutState != EnterOutLogType.Leave) { //条件满足,说明座位正在使用。 seatUsedInfo.EnterOutState = EnterOutLogType.Leave; seatUsedInfo.EnterOutType = LogStatus.Valid; seatUsedInfo.Remark = "您正在使用的座位已被原预约的读者"; seatUsedInfo.Flag = Operation.OtherReader; int newId = -1; if (SeatManageDateService.AddEnterOutLogInfo(seatUsedInfo, ref newId) != HandleResult.Successed) { result.Result = false; result.Msg = "对不起,此阅览室尚未开放。"; return(JSONSerializer.Serialize(result)); } List <WaitSeatLogInfo> waitInfoList = SeatManageDateService.GetWaitLogList(null, seatUsedInfo.EnterOutLogID, null, null, null); if (waitInfoList.Count > 0) { WaitSeatLogInfo waitSeatLogModel = waitInfoList[0]; waitSeatLogModel.OperateType = Operation.Reader; waitSeatLogModel.WaitingState = EnterOutLogType.WaitingCancel; waitSeatLogModel.NowState = LogStatus.Valid; SeatManageDateService.UpdateWaitLog(waitSeatLogModel); } } EnterOutLogInfo newEnterOutLog = new EnterOutLogInfo();//构造 newEnterOutLog.CardNo = reader.BespeakLog[0].CardNo; newEnterOutLog.EnterOutLogNo = SeatComm.RndNum(); newEnterOutLog.EnterOutState = EnterOutLogType.BookingConfirmation; newEnterOutLog.EnterOutType = LogStatus.Valid; newEnterOutLog.Flag = Operation.Reader; newEnterOutLog.ReadingRoomNo = reader.BespeakLog[0].ReadingRoomNo; newEnterOutLog.ReadingRoomName = reader.BespeakLog[0].ReadingRoomName; newEnterOutLog.ShortSeatNo = reader.BespeakLog[0].ShortSeatNum; newEnterOutLog.SeatNo = reader.BespeakLog[0].SeatNo; newEnterOutLog.Remark = string.Format("您在选座终端{0}扫描二维码,签到入座预约的{1} {2}号座位", scancode.ClientNo, reader.BespeakLog[0].ReadingRoomName, reader.BespeakLog[0].ShortSeatNum); int logid = -1; if (SeatManageDateService.AddEnterOutLogInfo(newEnterOutLog, ref logid) == HandleResult.Successed) { reader.BespeakLog[0].BsepeakState = BookingStatus.Confinmed; reader.BespeakLog[0].CancelPerson = Operation.Reader; reader.BespeakLog[0].CancelTime = ndt; reader.BespeakLog[0].Remark = newEnterOutLog.Remark; SeatManageDateService.UpdateBespeakLogInfo(reader.BespeakLog[0]); } result.Result = true; result.Msg = newEnterOutLog.Remark; return(JSONSerializer.Serialize(result)); } catch (Exception ex) { WriteLog.Write("读者签到/回来遇到异常:" + ex.Message); AJM_HandleResult result = new AJM_HandleResult(); result.Result = false; result.Msg = "执行遇到异常"; return(JSONSerializer.Serialize(result)); } }
/// <summary> /// 获取座位的可预约信息 /// </summary> /// <param name="seatNo"></param> /// <param name="roomNo"></param> /// <param name="bespeakTime"></param> /// <returns></returns> public string GetSeatBespeakInfo(string seatNo, string roomNo, string bespeakTime) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(roomNo) || string.IsNullOrEmpty(bespeakTime)) { result.Result = false; result.Msg = "阅览室编号或预约时间不能为空!"; return(JSONSerializer.Serialize(result)); } //如果预约日期是当天,获取当天可用座位(排除已被预约座位) DateTime bespeakDate; if (!DateTime.TryParse(bespeakTime, out bespeakDate)) { result.Result = false; result.Msg = "日期格式不正确!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date < DateTime.Now.Date) { result.Result = false; result.Msg = "查询日期不能早于当天日期!"; return(JSONSerializer.Serialize(result)); } List <ReadingRoomInfo> readingRoomInfos = SeatManageDateService.GetReadingRoomInfo(new List <string> { roomNo }); if (readingRoomInfos.Count < 1) { result.Result = false; result.Msg = "阅览室不存在!"; return(JSONSerializer.Serialize(result)); } if (!readingRoomInfos[0].SeatList.Seats.ContainsKey(seatNo)) { result.Result = false; result.Msg = "该座位不存在!"; return(JSONSerializer.Serialize(result)); } if (readingRoomInfos[0].SeatList.Seats[seatNo].IsSuspended) { result.Result = false; result.Msg = "该座位暂停使用!"; return(JSONSerializer.Serialize(result)); } if (!readingRoomInfos[0].Setting.SeatBespeak.Used) { result.Result = false; result.Msg = "当前阅览室不提供预约!"; return(JSONSerializer.Serialize(result)); } if ((bespeakDate.Date - DateTime.Now.Date).Days > readingRoomInfos[0].Setting.SeatBespeak.BespeakBeforeDays) { result.Result = false; result.Msg = "您选择的日期尚未开放预约!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date == DateTime.Now.Date && !readingRoomInfos[0].Setting.SeatBespeak.NowDayBespeak) { result.Result = false; result.Msg = "当前阅览室未开放当天预约!"; return(JSONSerializer.Serialize(result)); } if ((bespeakDate.Date == DateTime.Now.Date) && readingRoomInfos[0].Setting.ReadingRoomOpenState(bespeakDate.Date) != EnumType.ReadingRoomStatus.Close) { result.Result = false; result.Msg = "对不起当前预约时间段阅览室未开放!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date != DateTime.Now.Date && !readingRoomInfos[0].Setting.IsCanBespeakSeat(bespeakDate)) { result.Result = false; result.Msg = "当前时间暂未开放预约!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date == DateTime.Now.Date) { Seat seat = SeatManageDateService.GetSeatInfoBySeatNum(seatNo); if (seat == null) { result.Result = false; result.Msg = "对不起,获取座位信息失败!"; return(JSONSerializer.Serialize(result)); } if (seat.SeatUsedState != EnterOutLogType.Leave) { result.Result = false; result.Msg = "对不起此座位已被其他人使用!"; return(JSONSerializer.Serialize(result)); } } if (SeatManageDateService.GetBespeakLogInfoBySeatNo(seatNo, bespeakDate.Date).Count > 0) { result.Result = false; result.Msg = "对不起此座位已被其他人预约!"; return(JSONSerializer.Serialize(result)); } AJM_SeatBespeakInfo ajmseat = new AJM_SeatBespeakInfo(); ajmseat.SeatNo = seatNo; ajmseat.SeatShortNo = readingRoomInfos[0].SeatList.Seats[seatNo].ShortSeatNo; ajmseat.RoomNo = readingRoomInfos[0].No; ajmseat.RoomName = readingRoomInfos[0].Name; ajmseat.BespeakDate = bespeakDate.ToShortDateString(); ajmseat.IsCanSelectTime = readingRoomInfos[0].Setting.SeatBespeak.SpecifiedBespeak; ajmseat.IsUsedSpan = readingRoomInfos[0].Setting.SeatBespeak.SpecifiedTime; ajmseat.CheckKeepTime = (int)readingRoomInfos[0].Setting.SeatBespeak.SeatKeepTime; ajmseat.CheckBeforeTime = int.Parse(readingRoomInfos[0].Setting.SeatBespeak.ConfirmTime.BeginTime); ajmseat.CheckLastTime = int.Parse(readingRoomInfos[0].Setting.SeatBespeak.ConfirmTime.EndTime); DateTime bookstartTime = readingRoomInfos[0].Setting.DateOpenTime(bespeakDate); if (bookstartTime > DateTime.Now) { ajmseat.IsCanNowBook = false; ajmseat.IsCanSelectTime = true; } if (readingRoomInfos[0].Setting.SeatBespeak.SpecifiedBespeak) { List <DateTime> timeSpans = readingRoomInfos[0].Setting.GetSelectTimeList(bespeakDate); foreach (var time in timeSpans) { ajmseat.TimeList.Add(time.ToShortTimeString()); } } else { ajmseat.TimeList.Add(readingRoomInfos[0].Setting.DateOpenTime(bespeakDate).ToShortTimeString()); } //if (ajmseat.IsCanSelectTime) //{ // List<DateTime> timeSpans = readingRoomInfos[0].Setting.GetSelectTimeList(besppeakDate); // foreach (var time in timeSpans) // { // ajmseat.TimeList.Add(time.ToShortTimeString()); // } //} //else //{ // ajmseat.TimeList.Add(readingRoomInfos[0].Setting.DateOpenTime(besppeakDate).ToShortTimeString()); //} result.Result = true; result.Msg = JSONSerializer.Serialize(ajmseat); 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="seatNo"></param> /// <param name="roomNo"></param> /// <param name="studentNo"></param> /// <param name="isMessager"></param> /// <returns></returns> public string GetMessageSeatStatus(string seatNo, string roomNo) { AJM_HandleResult result = new AJM_HandleResult(); AJM_SeatMessageStatus seatStatus = new AJM_SeatMessageStatus(); try { List <ReadingRoomInfo> readingRoomInfos = SeatManageDateService.GetReadingRoomInfo(new List <string> { roomNo }); if (readingRoomInfos.Count < 1) { result.Result = false; result.Msg = "阅览室不存在!"; return(JSONSerializer.Serialize(result)); } seatStatus.RoomNo = readingRoomInfos[0].No; seatStatus.RoomName = readingRoomInfos[0].Name; if (!readingRoomInfos[0].SeatList.Seats.ContainsKey(seatNo)) { result.Result = false; result.Msg = "该座位不存在!"; return(JSONSerializer.Serialize(result)); } if (readingRoomInfos[0].SeatList.Seats[seatNo].IsSuspended) { seatStatus.Status = "StopUsed"; } else { Seat seat = SeatManageDateService.GetSeatInfoBySeatNum(seatNo); seatStatus.SeatNo = seat.SeatNo; seatStatus.SeatShortNo = seat.ShortSeatNo; seatStatus.Name = seat.UserName; seatStatus.StuedntNo = seat.UserCardNo; seatStatus.OperationTime = seat.BeginUsedTime.ToString("yyyy-MM-dd HH:mm:ss"); switch (seat.SeatUsedState) { case EnterOutLogType.ComeBack: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ReselectSeat: case EnterOutLogType.SelectSeat: case EnterOutLogType.WaitingSuccess: seatStatus.Status = ReaderStatus.Seating.ToString(); seatStatus.CanOperation = "Leave;ShortLeave;Blacklist"; break; case EnterOutLogType.ShortLeave: seatStatus.Status = ReaderStatus.Seating.ToString(); seatStatus.CanOperation = "Leave;Blacklist"; break; case EnterOutLogType.Leave: seatStatus.Status = ReaderStatus.Leave.ToString(); seatStatus.CanOperation = "GiveSeat"; break; case EnterOutLogType.BespeakWaiting: seatStatus.Status = ReaderStatus.Booking.ToString(); seatStatus.CanOperation = "CancelBook"; break; } } result.Result = true; result.Msg = JSONSerializer.Serialize(seatStatus); 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="seatNo"></param> /// <param name="roomNo"></param> /// <param name="studentNo"></param> /// <param name="isMessager"></param> /// <returns></returns> public string GetSeatNowStatus(string seatNo, string roomNo, string studentNo) { AJM_HandleResult result = new AJM_HandleResult(); AJM_SeatNowStatus seatStatus = new AJM_SeatNowStatus(); try { if (string.IsNullOrEmpty(studentNo)) { result.Result = false; result.Msg = "学号不能为空"; return(JSONSerializer.Serialize(result)); } List <ReadingRoomInfo> readingRoomInfos = SeatManageDateService.GetReadingRoomInfo(new List <string> { roomNo }); if (readingRoomInfos.Count < 1) { result.Result = false; result.Msg = "阅览室不存在!"; return(JSONSerializer.Serialize(result)); } seatStatus.RoomNo = readingRoomInfos[0].No; seatStatus.RoomName = readingRoomInfos[0].Name; if (!readingRoomInfos[0].SeatList.Seats.ContainsKey(seatNo)) { result.Result = false; result.Msg = "该座位不存在!"; return(JSONSerializer.Serialize(result)); } seatStatus.SeatNo = readingRoomInfos[0].SeatList.Seats[seatNo].SeatNo; seatStatus.SeatShortNo = readingRoomInfos[0].SeatList.Seats[seatNo].ShortSeatNo; Seat seat = SeatManageDateService.GetSeatInfoBySeatNum(seatNo); ReaderInfo readerInfo = SeatManageDateService.GetReader(studentNo, true); if (readerInfo == null) { result.Result = false; result.Msg = "未查询到该读者的当前状态"; return(JSONSerializer.Serialize(result)); } bool isSelfSeat = readerInfo.EnterOutLog != null && readerInfo.EnterOutLog.EnterOutState != EnterOutLogType.Leave && seat.SeatNo == readerInfo.EnterOutLog.SeatNo; bool isOnSeat = (readerInfo.EnterOutLog != null && readerInfo.EnterOutLog.EnterOutState != EnterOutLogType.Leave); if (readingRoomInfos[0].SeatList.Seats[seatNo].IsSuspended) { seatStatus.Status = "StopUsed"; } else { switch (seat.SeatUsedState) { case EnterOutLogType.ComeBack: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ReselectSeat: case EnterOutLogType.SelectSeat: case EnterOutLogType.WaitingSuccess: case EnterOutLogType.BookingConfirmation: seatStatus.Status = ReaderStatus.Seating.ToString(); seatStatus.CanOperation = isSelfSeat ? "Leave;ShortLeave" : ""; break; case EnterOutLogType.ShortLeave: seatStatus.Status = ReaderStatus.Seating.ToString(); seatStatus.CanOperation = isSelfSeat ? "Leave" : ""; break; case EnterOutLogType.Leave: seatStatus.Status = ReaderStatus.Leave.ToString(); seatStatus.CanOperation = !isSelfSeat && isOnSeat ? "ChangeSeat" : ""; break; } if (readerInfo.WaitSeatLog != null && readerInfo.WaitSeatLog.SeatNo == seat.SeatNo) { seatStatus.Status = ReaderStatus.Waiting.ToString(); seatStatus.CanOperation = "CancelWait"; } if (readerInfo.BespeakLog.Count > 0 && readerInfo.BespeakLog[0].BsepeakTime.Date == DateTime.Now.Date && readerInfo.BespeakLog[0].SeatNo == seat.SeatNo) { seatStatus.Status = ReaderStatus.Booking.ToString(); seatStatus.CanOperation = "CancelBook"; } if (readingRoomInfos[0].Setting.SeatBespeak.Used) { if (readingRoomInfos[0].Setting.SeatBespeak.NowDayBespeak && seat.SeatUsedState == EnterOutLogType.Leave && SeatManageDateService.GetBespeakLogInfoBySeatNo(seatNo, DateTime.Now).Count < 1) { seatStatus.CanBookingDate.Add(DateTime.Now.ToShortDateString()); } for (int i = 1; i <= readingRoomInfos[0].Setting.SeatBespeak.BespeakBeforeDays; i++) { if (SeatManageDateService.GetBespeakLogInfoBySeatNo(seatNo, DateTime.Now.AddDays(i)).Count < 1) { seatStatus.CanBookingDate.Add(DateTime.Now.AddDays(i).ToShortDateString()); } } } } result.Result = true; result.Msg = JSONSerializer.Serialize(seatStatus); return(JSONSerializer.Serialize(result)); } catch (Exception ex) { WriteLog.Write(string.Format("获取读者当前状态发生异常:{0}", ex.Message)); result.Result = false; result.Msg = "获取用户状态执行异常!"; return(JSONSerializer.Serialize(result)); } }