/// <summary> /// 刷卡结果处理 /// </summary> private void PosCardHandle(string cardNo) { try { clientObject.ReaderInfo = EnterOutOperate.GetReaderInfo(cardNo); #region 判断当前读者状态 EnterOutLogType nowReaderStatus = EnterOutLogType.Leave; if (clientObject.ReaderInfo.EnterOutLog != null && clientObject.ReaderInfo.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { nowReaderStatus = clientObject.ReaderInfo.EnterOutLog.EnterOutState; } else if (clientObject.ReaderInfo.BespeakLog.Count > 0) { nowReaderStatus = EnterOutLogType.BespeakWaiting; } else if (clientObject.ReaderInfo.WaitSeatLog != null) { nowReaderStatus = EnterOutLogType.Waiting; } #endregion switch (nowReaderStatus) { case EnterOutLogType.Leave: case EnterOutLogType.BespeakWaiting: case EnterOutLogType.Waiting: HandelMessage(" 没有座位,谢谢配合。", EnumSimpleTipFormIco.Small); break; //posCardHandle.BespeakSeatWait(); //break; case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: LeaveHandle(); //读者进行离开操作 break; case EnterOutLogType.ShortLeave: posCardHandle.CometoBack(); //暂时离开回来 break; default: HandelMessage(" 没有座位,谢谢配合。", EnumSimpleTipFormIco.Small); break; } } catch (Exception ex) { SeatManage.SeatManageComm.WriteLog.Write("操作遇到异常:" + ex.Message); HandelMessage(" 处理遇到异常,可能是因为网络原因导致,详细信息请查看错误日志。", EnumSimpleTipFormIco.Cry); } }
private void LeaveHandle() { EnterOutLogType leaveHandel = EnterOutLogType.None; if (LeaveClientSetting.LeaveState == LeaveState.Choose) { LeaveSeatForm leaveForm = new LeaveSeatForm(); leaveForm.ShowDialog(); leaveHandel = leaveForm.ChooseEnterOutState; } else if (LeaveClientSetting.LeaveState == LeaveState.FreeSeat) { leaveHandel = EnterOutLogType.Leave; } else if (LeaveClientSetting.LeaveState == LeaveState.ShortLeave) { leaveHandel = EnterOutLogType.ShortLeave; } else if (LeaveClientSetting.LeaveState == LeaveState.ContinuedTime) { leaveHandel = EnterOutLogType.ContinuedTime; } switch (leaveHandel) { case EnterOutLogType.Leave: posCardHandle.Leave(); break; case EnterOutLogType.ShortLeave: posCardHandle.ShortLeave(); break; case EnterOutLogType.ContinuedTime: posCardHandle.ContinuedTime(); break; } }
protected void Page_Load(object sender, EventArgs e) { if (this.LoginUserInfo == null || this.UserSchoolInfo == null) { Response.Redirect(LoginUrl()); return; } DataBind(); int refreshNum = SeatManage.SeatManageComm.CookiesManager.RefreshNum; refreshNum += 1; SeatManage.SeatManageComm.CookiesManager.RefreshNum = refreshNum; if (!IsPostBack) { LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); ShowReaderState(); } //暂时注释ShowBookLogs(); spanWarmInfo.InnerText = ""; spanWarmInfo.Visible = false; if (!Page.IsPostBack && refreshNum < 2) { } else { cmd = Request.Form["subCmd"]; bookNo = Request.Form["subBookNo"]; //SeatManage.IPocketBookOnlineBll.IMainFunctionPageBll mainFunctionBll = new SeatManage.PocketBookOnLine.Bll.MainFunctionBll(); ReadingRoomStatus roomState = new ReadingRoomStatus(); if (LoginUserInfo.AjmReadingRoomState != null) { roomState = (ReadingRoomStatus)Enum.Parse(typeof(ReadingRoomStatus), LoginUserInfo.AjmReadingRoomState.OpenCloseState); } switch (cmd) { case "shortLeave": shortLeaveHandle(); //设置读者暂离 this.LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); //重新绑定读者状态 ShowReaderState(); break; case "leave": //释放读者座位 freeSeat(); this.LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo);; ShowReaderState(); break; case "LoginOut": Session.Clear(); Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(-1); SeatManage.SeatManageComm.CookiesManager.RefreshNum = 0; Response.Redirect(LogoutUrl()); break; case "ContinuedWhen": LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo);; EnterOutLogType enterOutLogType = new EnterOutLogType(); enterOutLogType = (EnterOutLogType) Enum.Parse(typeof(EnterOutLogType), LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState); if (LoginUserInfo.AjmReaderStatus.AjmEnterOutLog != null && enterOutLogType != EnterOutLogType.Leave) { switch (enterOutLogType) { case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.Remark = "通过手机预约网站延长座位使用时间"; LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState = EnterOutLogType.ContinuedTime.ToString(); ContinuedWhen(); ShowReaderState(); break; case EnterOutLogType.ShortLeave: spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "续时失败,你处于暂离状态"; break; } } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "续时失败,您还没有选座"; } break; case "ComeBack": enterOutLogType = (EnterOutLogType) Enum.Parse(typeof(EnterOutLogType), LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState); LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); if (LoginUserInfo.AjmReaderStatus.AjmEnterOutLog != null && enterOutLogType == EnterOutLogType.ShortLeave) { LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.Remark = "通过手机预约网站恢复在座"; LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState = EnterOutLogType.ComeBack.ToString(); ComeBack(); ShowReaderState(); } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "暂离回来失败,您还没有暂离"; } break; case "cancel": CancelBookLog(bookNo); confrimSeat(); LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); //重新绑定读者状态 ShowReaderState(); //暂时注释ShowBookLogs(); break; case "CancelWait": if (LoginUserInfo.AjmReaderStatus.AjmWaitSeatLogs != null) { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = weiXinService.CancelWait(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); ShowReaderState(); } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "当前没有等待的座位"; } break; case "CancelBook": if (LoginUserInfo.AjmReaderStatus.AjmBespeakLogs != null && LoginUserInfo.AjmReaderStatus.AjmBespeakLogs.Count > 0) { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = weiXinService.CancelBesapeakById(int.Parse(LoginUserInfo.AjmReaderStatus.AjmBespeakLogs[0].Id), UserSchoolInfo.SchoolNo); LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); //重新绑定读者状态 ShowReaderState(); //暂时注释ShowBookLogs(); } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "当前没有预约的座位"; } break; case "BookConfirm": if (LoginUserInfo.AjmReaderStatus.AjmBespeakLogs != null && LoginUserInfo.AjmReaderStatus.AjmBespeakLogs.Count > 0) { confrimSeat(); LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); //重新绑定读者状态 ShowReaderState(); //暂时注释ShowBookLogs(); } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "当前没有预约的座位"; } break; } subCmd.Value = ""; } }
public void PosCardHandle(string cardNo) { try { ClientObject.EnterOutLogData = new OperateResult.OperateResult(); ClientObject.EnterOutLogData.Student = EnterOutOperate.GetReaderSeatState(cardNo); #region 判断当前读者状态 EnterOutLogType nowReaderStatus = EnterOutLogType.Leave; if (ClientObject.EnterOutLogData.Student.EnterOutLog != null && ClientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { //如果记录不为空,设置为当前记录状态 nowReaderStatus = ClientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState; } else if (ClientObject.EnterOutLogData.Student.BespeakLog.Count > 0) { nowReaderStatus = EnterOutLogType.BespeakWaiting; } else if (ClientObject.EnterOutLogData.Student.WaitSeatLog != null) { nowReaderStatus = EnterOutLogType.Waiting; } #endregion //如果有未读的消息则显示消息窗口 if (ClientObject.EnterOutLogData.Student.NoticeInfo.Count > 0) { ReaderNoteWindowObject.GetInstance().Window.ShowMessage(); } //根据读者状态进入不同操作 switch (nowReaderStatus) { case EnterOutLogType.Leave: ClientObject.EnterOutLogData.EnterOutlog = new SeatManage.ClassModel.EnterOutLogInfo(); ClientObject.EnterOutLogData.EnterOutlog.CardNo = cardNo; posCardHandle.ChooseSeat(); break; case EnterOutLogType.BespeakWaiting: posCardHandle.BespeakCheck(); break; case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: ClientObject.EnterOutLogData.EnterOutlog = ClientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.LeaveOperate(); break; case EnterOutLogType.ShortLeave: ClientObject.EnterOutLogData.EnterOutlog = ClientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.CometoBack(); break; case EnterOutLogType.Waiting: posCardHandle.WaitingSeat(); break; } } catch (Exception ex) { WriteLog.Write(string.Format("执行遇到错误:{0}", ex.Message)); PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.Exception); } finally { ClientObject.EnterOutLogData = null; } }
public string SubmitSeat(string cardNo, string seatNum, string readingRoomNum) { try { if (!IsPushAccount(cardNo)) { string readCardRemark = ConfigurationManager.AppSettings["ReadCardRemark"] ?? "请先刷卡"; return(readCardRemark); } List <string> roomNums = new List <string>(); roomNums.Add(readingRoomNum); List <ReadingRoomInfo> rooms = seatManage.GetReadingRoomInfo(roomNums); if (rooms.Count == 0) { return("没有找到对应的阅览室"); } ReadingRoomSetting roomSet = rooms[0].Setting; ReaderInfo reader = GetReaderInfo(cardNo); EnterOutLogType nowReaderStatus = EnterOutLogType.Leave; if (reader.EnterOutLog != null && reader.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { nowReaderStatus = reader.EnterOutLog.EnterOutState; } else if (reader.BespeakLog.Count > 0) { nowReaderStatus = EnterOutLogType.BespeakWaiting; } else if (reader.WaitSeatLog != null) { nowReaderStatus = EnterOutLogType.Waiting; } switch (nowReaderStatus) { case EnterOutLogType.Leave: if (seatManage.GetReaderChooseSeatTimes(cardNo, roomSet.PosTimes.Minutes) >= roomSet.PosTimes.Times) { return("选座频繁。"); } EnterOutLogInfo enterOutlog = new EnterOutLogInfo(); enterOutlog.CardNo = cardNo; enterOutlog.ReadingRoomNo = readingRoomNum; enterOutlog.Remark = "读者通过手机客户端选择座位"; enterOutlog.SeatNo = seatNum; enterOutlog.Flag = EnumType.Operation.Reader; enterOutlog.EnterOutType = EnumType.LogStatus.Valid; enterOutlog.EnterOutState = EnumType.EnterOutLogType.SelectSeat; enterOutlog.EnterOutLogNo = SeatManage.SeatManageComm.SeatComm.RndNum(); int newLogId = -1; if (seatManage.AddEnterOutLogInfo(enterOutlog, ref newLogId) == HandleResult.Successed) { return("选座成功!"); } else { return("未知原因,选择座位失败"); } break; case EnterOutLogType.BespeakWaiting: return("您已有等待签到的座位"); case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: case EnterOutLogType.ShortLeave: return("您已有座位"); case EnterOutLogType.Waiting: return("您当前在等待其他座位"); } return("读者状态错误"); } catch (Exception ex) { SeatManageComm.WriteLog.Write(string.Format("扫码入座失败:{0}", ex.Message)); return("系统错误,选择座位失败"); } }
//#endregion #region 刷卡处理 public void PosCardHandle(string cardNo) { try { clientObject.EnterOutLogData = new OperateResult.OperateResult(); clientObject.EnterOutLogData.Student = SeatManage.Bll.EnterOutOperate.GetReaderInfo(cardNo); #region 判断当前读者状态 EnterOutLogType nowReaderStatus = EnterOutLogType.Leave; if (clientObject.EnterOutLogData.Student.EnterOutLog != null && clientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { //如果记录不为空,设置为当前记录状态 nowReaderStatus = clientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState; } else if (clientObject.EnterOutLogData.Student.BespeakLog.Count > 0) { nowReaderStatus = EnterOutLogType.BespeakWaiting; } else if (clientObject.EnterOutLogData.Student.WaitSeatLog != null) { nowReaderStatus = EnterOutLogType.Waiting; } #endregion //如果有未读的消息则显示消息窗口 if (clientObject.EnterOutLogData.Student.NoticeInfo.Count > 0) { ReaderNoticeWindow noteWindow = new ReaderNoticeWindow(); noteWindow.ShowDialog(); } //根据读者状态进入不同操作 switch (nowReaderStatus) { case EnterOutLogType.Leave: clientObject.EnterOutLogData.EnterOutlog = new SeatManage.ClassModel.EnterOutLogInfo(); clientObject.EnterOutLogData.EnterOutlog.CardNo = cardNo; posCardHandle.ChooseSeat(); break; case EnterOutLogType.BespeakWaiting: posCardHandle.BespeakSeatWait(); break; case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: clientObject.EnterOutLogData.EnterOutlog = clientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.LeaveOperate(); break; case EnterOutLogType.ShortLeave: clientObject.EnterOutLogData.EnterOutlog = clientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.CometoBack(); break; case EnterOutLogType.Waiting: posCardHandle.WaitingSeat(); break; } } catch (Exception ex) { SeatManage.SeatManageComm.WriteLog.Write(string.Format("执行遇到错误:{0}", ex.Message)); SeatClientV3.FunWindow.MessageWindow popWindow = new FunWindow.MessageWindow(SeatManage.EnumType.MessageType.Exception); popWindow.ShowDialog(); } finally { clientObject.EnterOutLogData = null; } }
/// <summary> /// 更换座位 /// </summary> /// <param name="cardNo">学号</param> /// <param name="seatNum">要更换的座位号</param> /// <param name="readingRoomNum">阅览室编号</param> /// <returns></returns> public string ChangeSeat(string cardNo, string seatNum, string readingRoomNum) { try { List <string> roomNums = new List <string>(); roomNums.Add(readingRoomNum); List <ReadingRoomInfo> rooms = seatManage.GetReadingRoomInfo(roomNums); if (rooms.Count == 0) { return("没有找到对应的阅览室"); } ReadingRoomSetting roomSet = rooms[0].Setting; ReaderInfo reader = GetReaderInfo(cardNo); EnterOutLogType nowReaderStatus = EnterOutLogType.Leave; if (reader.EnterOutLog != null && reader.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { nowReaderStatus = reader.EnterOutLog.EnterOutState; } else if (reader.BespeakLog.Count > 0) { nowReaderStatus = EnterOutLogType.BespeakWaiting; } else if (reader.WaitSeatLog != null) { nowReaderStatus = EnterOutLogType.Waiting; } switch (nowReaderStatus) { case EnterOutLogType.Leave: return("你还没有选座"); case EnterOutLogType.BespeakWaiting: if (reader.BespeakLog[0].SeatNo == seatNum && reader.BespeakLog[0].BsepeakState == BookingStatus.Waiting) { 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.SeatNo = reader.BespeakLog[0].SeatNo; newEnterOutLog.Remark = string.Format("通过扫码入座预约的{0} {1}号座位", reader.BespeakLog[0].ReadingRoomName, reader.BespeakLog[0].ShortSeatNum); int logid = -1; try { HandleResult result = seatManage.AddEnterOutLogInfo(newEnterOutLog, ref logid); //添加入座记录 if (result == HandleResult.Successed) { reader.BespeakLog[0].BsepeakState = BookingStatus.Confinmed; reader.BespeakLog[0].CancelPerson = Operation.Reader; reader.BespeakLog[0].CancelTime = seatManage.GetServerDateTime(); reader.BespeakLog[0].Remark = string.Format("通过扫码入座预约的{0} {1}号座位", reader.BespeakLog[0].ReadingRoomName, reader.BespeakLog[0].ShortSeatNum); seatManage.UpdateBespeakLogInfo(reader.BespeakLog[0]); } else { return("预约入座失败。"); } } catch (Exception ex) { SeatManageComm.WriteLog.Write(string.Format("扫码预约入座确认失败:{0}", ex.Message)); return("未知原因,预约入座确认失败"); } } else { return(string.Format("您已预约{0} {1}号座位,请扫该座位上的条形码", reader.BespeakLog[0].ReadingRoomName, reader.BespeakLog[0].ShortSeatNum)); } break; case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: case EnterOutLogType.ShortLeave: if (seatManage.GetReaderChooseSeatTimes(cardNo, roomSet.PosTimes.Minutes) >= roomSet.PosTimes.Times) { return("选座频繁。"); } EnterOutLogInfo enterOutlog = reader.EnterOutLog; enterOutlog.ReadingRoomNo = readingRoomNum; enterOutlog.Remark = "通过扫码更换到该座位"; enterOutlog.SeatNo = seatNum; enterOutlog.Flag = EnumType.Operation.Reader; enterOutlog.EnterOutType = EnumType.LogStatus.Valid; enterOutlog.EnterOutState = EnumType.EnterOutLogType.ReselectSeat; enterOutlog.EnterOutLogNo = SeatManage.SeatManageComm.SeatComm.RndNum(); int newLogId = -1; if (seatManage.AddEnterOutLogInfo(enterOutlog, ref newLogId) == HandleResult.Successed) { return(""); } else { return("未知原因,更换座位失败"); } case EnterOutLogType.Waiting: return("您当前在等待其他座位"); } return("读者状态错误"); } catch (Exception ex) { SeatManageComm.WriteLog.Write(string.Format("扫码入座失败:{0}", ex.Message)); return("系统错误,更换座位失败"); } }
protected void Page_Load(object sender, EventArgs e) { string strparam = Request.QueryString["param"]; if (string.IsNullOrEmpty(strparam)) { spanWarmInfo.InnerText = "非正常的访问!"; divHanderPanel.Style.Add("display", "none"); return; } Code.ScanCodeParamModel param = new Code.ScanCodeParamModel(strparam); seatNo = param.SeatNum; readingRoomNo = param.ReadingRoomNum; //if (Request.Cookies["userInfo"] != null)//存在记录的cookies信息 //{ // cardNo = this.LoginUserInfo.CardNo; //} if (this.LoginUserInfo != null)//存在记录的cookies信息 { cardNo = this.LoginUserInfo.StudentNo; } else { string url = Request.Url.AbsoluteUri; //string url = "/QRcodeDecode/SeatInfo.aspx?param=" + strparam; Response.Redirect(LoginUrl() + "?url=" + url); } if (!IsPostBack) { //DataBind(cardNo, param.SeatNum, param.ReadingRoomNum); ShowReaderState(); } else { string cmd = Request.Form["subCmd"]; string result; switch (cmd) { case "changeSeat": result = weiXinService.ChangeSeat(LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.SeatNo, LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.RoomNo, LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); if (!string.IsNullOrEmpty(result)) { spanWarmInfo.InnerText = result; } else { spanWarmInfo.InnerText = "更换座位成功"; //DataBind(cardNo, param.SeatNum, param.ReadingRoomNum); ShowReaderState(); //this.divHanderPanel.Style.Add("display", "none"); } break; #region 注释 case "selectSeat": //此方法需要修改 result = ""; //result = ((SeatManage.IPocketBespeak.IMainFunctionPage_Ex)handler).SelectSeat(this.UserSchoolInfo, cardNo, param.SeatNum, param.ReadingRoomNum); if (!string.IsNullOrEmpty(result)) { this.spanWarmInfo.InnerText = result; } else { this.spanWarmInfo.InnerText = "选择座位成功"; //DataBind(cardNo, param.SeatNum, param.ReadingRoomNum); ShowReaderState(); //this.divHanderPanel.Style.Add("display", "none"); } break; //case "waitSeat": // if (!handler2.IsCanWaitSeat(this.UserSchoolInfo, this.LoginUserInfo.StudentNo, readingRoomNo)) // { // spanWarmInfo.Visible = true; // spanWarmInfo.InnerText = "您等待座位的间隔过短,请稍后重试。"; // } // else // { // WaitSeatLogInfo waitInfo = new WaitSeatLogInfo(); // waitInfo.CardNo = this.LoginUserInfo.StudentNo; // waitInfo.SeatNo = seatNo; // waitInfo.NowState = SeatManage.EnumType.LogStatus.Valid; // waitInfo.OperateType = SeatManage.EnumType.Operation.Reader; // waitInfo.WaitingState = SeatManage.EnumType.EnterOutLogType.Waiting; // result = handler2.SubmitWaitInfo(this.UserSchoolInfo, waitInfo); // if (!string.IsNullOrEmpty(result)) // { // this.spanWarmInfo.InnerText = result; // } // else // { // this.spanWarmInfo.InnerText = "等待座位成功"; // } // } // ShowReaderState(); // break; #endregion case "shortLeave": shortLeaveHandle(); //设置读者暂离 //this.LoginUserInfo = handler.GetReaderInfo(this.UserSchoolInfo, this.LoginUserInfo.CardNo);//重新绑定读者状态 ShowReaderState(); break; case "leave": //释放读者座位 freeSeat(); //this.LoginUserInfo = handler.GetReaderInfo(this.UserSchoolInfo, this.LoginUserInfo.CardNo); ShowReaderState(); break; case "LoginOut": Session.Clear(); Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(-1); SeatManage.SeatManageComm.CookiesManager.RefreshNum = 0; Response.Redirect(LogoutUrl()); break; #region 注释 case "ContinuedWhen": LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); EnterOutLogType enterOutLogType = new EnterOutLogType(); enterOutLogType = (EnterOutLogType)Enum.Parse(typeof(EnterOutLogType), LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState); if (LoginUserInfo.AjmReaderStatus.AjmEnterOutLog != null && enterOutLogType != EnterOutLogType.Leave) { switch (enterOutLogType) { case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.Remark = "通过手机预约网站延长座位使用时间"; LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState = EnterOutLogType.ContinuedTime.ToString(); ContinuedWhen(); ShowReaderState(); break; case EnterOutLogType.ShortLeave: spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "续时失败,你处于暂离状态"; break; } } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "续时失败,您还没有选座"; } break; case "ComeBack": LoginUserInfo = weiXinService.GetUserInfo_WeiXin(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); if (this.LoginUserInfo.AjmReaderStatus.AjmEnterOutLog != null && (EnterOutLogType)Enum.Parse(typeof(EnterOutLogType), LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState) == EnterOutLogType.ShortLeave) { this.LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.Remark = "通过手机预约网站恢复在座"; this.LoginUserInfo.AjmReaderStatus.AjmEnterOutLog.EnterOutState = EnterOutLogType.ComeBack.ToString(); ComeBack(); ShowReaderState(); break; } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "暂离回来失败,您还没有暂离"; } break; #endregion case "cancel": CancelBookLog(bookNo); confrimSeat(); //this.LoginUserInfo = handler.GetReaderInfo(this.UserSchoolInfo, this.LoginUserInfo.CardNo);//重新绑定读者状态 ShowReaderState(); break; case "CancelWait": if (LoginUserInfo.AjmReaderStatus.AjmWaitSeatLogs != null) { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = weiXinService.CancelWait(LoginUserInfo.StudentNo, UserSchoolInfo.SchoolNo); ShowReaderState(); } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "当前没有等待的座位"; } break; case "CancelBook": if (LoginUserInfo.AjmReaderStatus.AjmBespeakLogs != null && LoginUserInfo.AjmReaderStatus.AjmBespeakLogs.Count > 0) { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = weiXinService.CancelBesapeakById(int.Parse(LoginUserInfo.AjmReaderStatus.AjmBespeakLogs[0].Id), UserSchoolInfo.SchoolNo); ShowReaderState(); } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "当前没有预约的座位"; } break; case "BookConfirm": if (LoginUserInfo.AjmReaderStatus.AjmBespeakLogs != null && this.LoginUserInfo.AjmReaderStatus.AjmBespeakLogs.Count > 0) { confrimSeat(); //this.LoginUserInfo = handler.GetReaderInfo(this.UserSchoolInfo, this.LoginUserInfo.CardNo);//重新绑定读者状态 ShowReaderState(); } else { spanWarmInfo.Visible = true; spanWarmInfo.InnerText = "当前没有预约的座位"; } break; } subCmd.Value = ""; } }
/// <summary> /// 刷卡结果处理 /// </summary> private void PosCardHandle(string cardNo) { WPF_ReaderInfo.MainWindow read = new WPF_ReaderInfo.MainWindow(); try { clientObject.EnterOutLogData.Student = EnterOutOperate.GetReaderInfo(cardNo); #region 判断当前读者状态 EnterOutLogType nowReaderStatus = EnterOutLogType.Leave; if (clientObject.EnterOutLogData.Student.EnterOutLog != null && clientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { nowReaderStatus = clientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState; } else if (clientObject.EnterOutLogData.Student.BespeakLog.Count > 0) { nowReaderStatus = EnterOutLogType.BespeakWaiting; } else if (clientObject.EnterOutLogData.Student.WaitSeatLog != null) { nowReaderStatus = EnterOutLogType.Waiting; } #endregion posCardHandle.ShowNotice(); read.reader.ReaderInfo = clientObject.EnterOutLogData.Student; if (clientObject.ClientSetting.DeviceSetting.SystemResoultion.WindowSize.Size.X == 1080) { read.Left = 0; read.Top = 720; } else { read.Left = 1024; read.Top = 0; } read.Width = 350; read.Height = 200; read.Show(); switch (nowReaderStatus) { case EnterOutLogType.Leave: clientObject.EnterOutLogData.EnterOutlog = new SeatManage.ClassModel.EnterOutLogInfo(); clientObject.EnterOutLogData.EnterOutlog.CardNo = cardNo; posCardHandle.ChooseSeat(); break; case EnterOutLogType.BespeakWaiting: posCardHandle.BespeakSeatWait(); break; case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: clientObject.EnterOutLogData.EnterOutlog = clientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.LeaveOperate(); break; case EnterOutLogType.ShortLeave: clientObject.EnterOutLogData.EnterOutlog = clientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.CometoBack(); break; case EnterOutLogType.Waiting: posCardHandle.WaitingSeat(); break; } } catch (Exception ex) { WriteLog.Write(string.Format("执行遇到错误:{0}", ex.Message)); SeatManage.SeatClient.Tip.Tip_Framework tip = new SeatManage.SeatClient.Tip.Tip_Framework(SeatManage.EnumType.TipType.Exception, 7);//显示提示窗体 tip.ShowDialog(); } finally { read.Close(); posCardHandle.Resetting();//执行初始化操作 } }