/// <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); }