/// <summary>
        /// 验证二维码是否存在
        /// </summary>
        /// <param name="qRcode">二维码</param>
        /// <param name="msg">返回的消息</param>
        /// <param name="model">票的信息</param>
        /// <returns>存在true,不存在false</returns>
        public bool CheckTicketQrCode(string qRcode, out string msg, out TicketTestingModel model)
        {
            model = new TicketTestingModel();
            var orderDetail = _orderDetailService.GetByQRcode(qRcode);

            if (orderDetail != null)
            {
                if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Canncel || orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Refund)
                {
                    msg = MessageKey.TicketRefund;
                    return(false);
                }
                model.ValidityDateStart = orderDetail.ValidityDateStart;
                model.ValidityDateEnd   = orderDetail.ValidityDateEnd;
                model.DelayCheckTime    = orderDetail.DelayCheckTime;
                model.Price             = orderDetail.Price;
                model.TicketId          = orderDetail.TicketId;
            }
            var entity  = _ticketTestingRepository.FirstOrDefault(a => a.QRcode == qRcode);
            var isValid = CheckTicket(entity, out msg);

            if (isValid)
            {
                model.TicketTestingId = entity.TicketTestingId;
                model.Quantity        = entity.Quantity.Value;
                model.UsedQuantity    = entity.UsedQuantity;
                UpdateForCheckDate(entity);
            }
            return(isValid);
        }
        /// <summary>
        /// 验证二维码是否存在
        /// </summary>
        /// <param name="qRcode">二维码</param>
        /// <param name="deviceName">设备名,唯一标识符</param>
        /// <param name="msg">返回的消息</param>
        /// <param name="model">票的信息</param>
        /// <returns>存在true,不存在false</returns>
        public bool CheckTicketQrCode(string qRcode, string deviceName, out string msg, out TicketTestingModel model)
        {
            model = new TicketTestingModel();
            var orderDetail = _orderDetailService.GetByQRcode(qRcode);

            if (orderDetail == null)
            {
                msg = MessageKey.InvalidTicket;
                return(false);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Canncel || orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Refund)
            {
                msg = MessageKey.TicketRefund;
                return(false);
            }
            if (orderDetail.OrderStatus == (int)OrderDetailsDataStatus.Consume)
            {
                msg = MessageKey.TicketEmploy;
                return(false);
            }
            var isCheckTicket = _ticketService.CheckTicketIsDoorGate(orderDetail, deviceName);

            if (!isCheckTicket)
            {
                msg = MessageKey.TicketNoValidate;
                return(false);
            }

            model.ValidityDateStart = orderDetail.ValidityDateStart;
            model.ValidityDateEnd   = orderDetail.ValidityDateEnd;
            model.DelayCheckTime    = orderDetail.DelayCheckTime;
            model.Price             = orderDetail.Price;
            model.TicketId          = orderDetail.TicketId;

            var entity  = Get(orderDetail.OrderNo, qRcode);
            var isValid = CheckTicket(entity, out msg);

            if (isValid)
            {
                model.TicketTestingId = entity.TicketTestingId;
                model.Quantity        = entity.Quantity.Value;
                model.UsedQuantity    = entity.UsedQuantity;
                UpdateForCheckDate(entity);
            }
            return(isValid);
        }