// <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);
     }
 }
Ejemplo n.º 2
0
        /// <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));
            }
        }