// <summary> /// 扫描座位二维码 /// </summary> /// <param name="codeStr">扫描后的二维码</param> /// <returns></returns> public AJM_SeatStatus QRcodeSeatInfo(string codeStr, string schoolNo) { try { IMobileAppDataObtianProxy appService = new MobileAppDataObtainProxy(schoolNo); string result = appService.QRcodeSeatInfo(codeStr); AJM_HandleResult ajmResult = JSONSerializer.Deserialize <AJM_HandleResult>(result); if (ajmResult == null) { throw new Exception("扫描座位二维码失败!"); } if (!ajmResult.Result) { throw new Exception(ajmResult.Msg); } AJM_SeatStatus ajmSeatStatus = JSONSerializer.Deserialize <AJM_SeatStatus>(ajmResult.Msg); return(ajmSeatStatus); } catch (Exception ex) { WriteLog.Write(string.Format("扫描座位二维码失败:{0}", ex.Message)); return(null); } }
/// <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)); } }