/// <summary> /// 下单验证接口--单个产品 /// </summary> /// <param name="request"></param> /// <param name="business"></param> /// <returns></returns> private PageResult VerifySingleOrder(OrderSingleCreateRequest request, Tbl_OTABusiness business) { var orderInfo = request.Body.OrderInfo; OrderSingleCreateResponse result = new OrderSingleCreateResponse { Head = HeadResult.V1, Body = new OrderSingleCreateInfo { Inventory = 0 } }; var validResult = _orderService.ValidDataForVerifyOrderRequest(request); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Ticket = _ticketService.GetTicket(orderInfo.Ticket.ProductId, business.ScenicId, orderInfo.VisitDate.ToDataTime()); var validDataResult = _ticketService.ValidDataForOrderSingleCreateRequest(request, business, tbl_Ticket, result); if (!validDataResult.Status) { result.Head.Code = validDataResult.Code; result.Head.Describe = validDataResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Head.Code = "000000"; result.Head.Describe = "成功"; result.Body.OrderStatus = "OREDER_SUCCESS"; return(PageDataResult.Data(result, business.Saltcode.ToString())); }
private static XJ_Order PopulateOTAOrder(OtaOrderModel row, Tbl_OTABusiness business, Tbl_Ticket ticket) { var orderInfo = new XJ_Order { OrderOtaId = row.OrderNo, OTABusinessId = business.Id, OrderPrice = row.ProductPrice, OrderQuantity = row.ProductCount, TicketList = new List <XJ_ProductItem>(), VisitDate = row.StartDate.ToDataTimeFormat(), ContactPerson = new XJ_ContactPerson { BuyName = row.LinkName, Name = row.LinkName, Mobile = row.LinkPhone, CardType = "ID_CARD", CardNo = row.IdCard } }; orderInfo.TicketList.Add(new XJ_ProductItem { ProductId = ticket.TicketId, ProductName = ticket.TicketName, SellPrice = ticket.SalePrice, Quantity = row.ProductCount, OrderNo = row.OrderNo, OrderDetailId = row.OrderId, CodeStr = row.Code, StartDate = row.StartDate.ToDataTimeFormat(), EndDate = row.EndDate.ToDataTimeFormat(), State = StateAction.GetState(row.OrderState) }); return(orderInfo); }
/// <summary> /// 取消订单 /// </summary> /// <param name="orderInfo"></param> private PageResult CancelOrder(OrderCancelRequest request, Tbl_OTABusiness business) { string orderId = request.Body.OrderInfo.OrderId; OrderCancelResponse result = new OrderCancelResponse { Head = HeadResult.V1 }; var validResult = _orderService.ValidDataForOrderCancelRequest(request, business.Id); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Order = _orderService.Get(orderId); var checkResult = _orderDetailService.CheckOrderDetailIsCanncel(orderId); if (!checkResult.Status) { result.Head.Code = checkResult.Code; result.Head.Describe = checkResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } try { _orderService.BeginTran(); foreach (var row in checkResult.List) { //添加退款记录 var tbl_RefundDetail = _refundDetailService.Add(row); //更新订单详情的状态:为已退款 _orderDetailService.UpdateOrderDetailForRefund(row); //更新票的日售票数 _ticketService.UpdateTicketBySellCount(row); //添加日志 _saleLogService.Add(tbl_RefundDetail); } //退激活票时,同步删除验票表存在的数据 _ticketTestingService.Delete(tbl_Order.OrderNo); //提交事物 _orderService.CommitTran(); } catch { _orderService.RollbackTran(); result.Head.Code = "114012"; result.Head.Describe = "订单取消失败,系统出错"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Body = new FengjingSDK461.Model.Response.OrderCancelInfo { Message = "成功" }; result.Head.Code = "000000"; result.Head.Describe = "成功"; return(PageDataResult.Data(result, business.Saltcode.ToString())); }
private PageResult UpdateOrder(OrderUpdateRequest request, Tbl_OTABusiness business) { string orderId = request.Body.OrderInfo.OrderId; OrderUpdateResponse result = new OrderUpdateResponse { Head = HeadResult.V1, }; var validResult = _orderService.ValidDataForOrderUpdateRequest(request); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Order = _orderService.Get(orderId); if (tbl_Order == null) { result.Head.Code = "116011"; result.Head.Describe = "修改订单异常,订单不存在"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } if (!tbl_Order.CanModify) { result.Head.Code = "116012"; result.Head.Describe = "修改订单异常,订单不能修改"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } if (tbl_Order.CanModify && tbl_Order.CanModifyTime < request.Body.OrderInfo.VisitDate.ToDataTime()) { result.Head.Code = "116013"; result.Head.Describe = "修改订单异常,填写的游玩时间超过产品最后修改时间"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } try { _orderService.BeginTran(); _orderService.UpdateOrder(tbl_Order, request); _orderDetailService.UpdateOrderDetail(request); _orderService.CommitTran(); result.Body = new OrderUpdateResponseBody() { OrderId = tbl_Order.OrderNo }; } catch (Exception ex) { _orderService.RollbackTran(); result.Head.Code = "116014"; result.Head.Describe = "修改订单异常,订单修改失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Head.Code = "000000"; result.Head.Describe = "成功"; return(PageDataResult.Data(result, business.Saltcode.ToString())); }
/// <summary> /// 验证单个订单数据 /// </summary> /// <param name="request"></param> /// <returns></returns> public DataValidResult ValidDataForOrderSingleCreateRequest( OrderSingleCreateRequest request, Tbl_OTABusiness business, Tbl_Ticket tbl_Ticket, OrderSingleCreateResponse response) { var result = new DataValidResult { Status = false }; var ticket = request.Body.OrderInfo.Ticket; if (tbl_Ticket == null) { result.Code = "113019"; result.Message = "创建订单失败,选择的游玩日期超出选购产品的有效期或者选购的产品无效"; return(result); } var existence = _otaTicketRelationService.CheckIsTicketId(business.Id, tbl_Ticket.TicketId); if (!existence) { result.Code = "113019"; result.Message = "创建订单失败,选择的游玩日期超出选购产品的有效期或者选购的产品无效"; return(result); } if (tbl_Ticket.SalePrice != ticket.SellPrice) { result.Code = "113020"; result.Message = "创建订单失败,价格不一致"; return(result); } //日销售限额为空或者0 为不限制 if (tbl_Ticket.StockCount.HasValue && tbl_Ticket.StockCount.Value > 0) { if (!tbl_Ticket.LastUpdateTime.HasValue || tbl_Ticket.LastUpdateTime.Value.Date != DateTime.Now.Date) { tbl_Ticket.SellCount = 0; } var sellCount = tbl_Ticket.SellCount.HasValue ? tbl_Ticket.SellCount.Value : 0;//库存 response.Body.Inventory = tbl_Ticket.StockCount.Value - sellCount; if (sellCount + ticket.Quantity > tbl_Ticket.StockCount.Value) { //开启了库存限制,购买数量超过了库存 result.Code = "113026"; result.Message = "创建订单失败,库存不足"; return(result); } } else { response.Body.Inventory = 50000; } result.Status = true; return(result); }
private PageResult SendMessage(MessageSendRequest request, Tbl_OTABusiness business) { MessageSendOrderInfo orderInfo = request.Body.OrderInfo; MessageSendResponse result = new MessageSendResponse { Head = HeadResult.V1 }; var validResult = _orderService.ValidDataForMessageSendRequest(request); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Order = _orderService.Get(orderInfo.OrderId); if (tbl_Order == null) { result.Head.Code = "117004"; result.Head.Describe = "(重)发送入园凭证短信异常,订单不存在"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_OrderDetails = _orderDetailService.GetList(tbl_Order.OrderNo); if (tbl_OrderDetails.FirstOrDefault(a => a.EticektSendQuantity >= 5) != null) { result.Head.Code = "117006"; result.Head.Describe = "(重)发送入园凭证短信异常,发送次数不能超过5次"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } try { var sendResult = _smsService.Send(tbl_OrderDetails, tbl_Order.Mobile); if (sendResult.Status) { result.Body = new MessageSendResponseBody { Message = "OK" }; result.Head.Code = "000000"; result.Head.Describe = "成功"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Head.Code = "117005"; result.Head.Describe = "(重)发送入园凭证短信异常,发送失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } catch (Exception ex) { result.Head.Code = "117005"; result.Head.Describe = "(重)发送入园凭证短信异常,发送失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } }
/// <summary> /// 下单验证接口 /// </summary> /// <param name="request"></param> /// <param name="business"></param> /// <returns></returns> private PageResult VerifyOrder(OrderCreateRequest request, Tbl_OTABusiness business) { var orderInfo = request.Body.OrderInfo; OrderCreateResponse result = new OrderCreateResponse { Head = HeadResult.V1, Body = new OrderCreateInfo { Item = new List <OrderCreateItem>() } }; var validResult = _orderService.ValidDataForOrderVerifyRequest(request); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } List <int> productIds = orderInfo.TicketList.Select(a => a.ProductId).ToList(); var ticketIds = _otaTicketRelationService.GetTicketIds(business.Id, productIds); var tbl_Tickets = _ticketService.CheckIsTicketIds(ticketIds, business.ScenicId, orderInfo.VisitDate.ToDataTime()); var validDataResult = _orderService.ValidDataForOrderCreateRequest(request, tbl_Tickets); if (!validDataResult.Status) { result.Head.Code = validDataResult.Code; result.Head.Describe = validDataResult.Message; result.Body.Item.Add(new OrderCreateItem { ProductId = request.Body.OrderInfo.TicketList[0].ProductId.ToString(), useDate = request.Body.OrderInfo.VisitDate, quantity = 0 }); return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Head.Code = "000000"; result.Head.Describe = "成功"; result.Body.OrderStatus = "OREDER_SUCCESS"; foreach (var row in tbl_Tickets) { result.Body.Item.Add(new OrderCreateItem { ProductId = row.TicketId.ToString(), useDate = request.Body.OrderInfo.VisitDate, quantity = 500000 }); } return(PageDataResult.Data(result, business.Saltcode.ToString())); }
/// <summary> /// 添加订单出行通知 /// </summary> /// <param name="tbl_Order"></param> /// <param name="tbl_OrderDetail"></param> /// <param name="business"></param> public void Add(Tbl_Order tbl_Order, Tbl_OTABusiness business) { var tbl_OrderTravelNotice = new Tbl_OrderTravelNotice { SequenceId = DateTime.Now.ToString("yyyyMMdd") + Guid.NewGuid().ToString("N"), ScenicId = tbl_Order.ScenicId, IdentityKey = business.IdentityKey, OrderNo = tbl_Order.OrderNo, OtaOrderId = tbl_Order.OTAOrderNo, RunCount = 0, CreateTime = DateTime.Now }; _orderTravelNoticeRepository.Add(tbl_OrderTravelNotice); }
/// <summary> /// 添加订单消费通知 /// </summary> /// <param name="tbl_Order"></param> /// <param name="tbl_OrderDetail"></param> /// <param name="business"></param> public void Add(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail, Tbl_OTABusiness business) { var tbl_NoticeOrderConsumed = new Tbl_NoticeOrderConsumed { ScenicId = tbl_Order.ScenicId, IdentityKey = business.IdentityKey, OrderNo = tbl_Order.OrderNo, OtaOrderId = tbl_Order.OTAOrderNo, OrderDetailNumber = tbl_OrderDetail.Number, Count = tbl_OrderDetail.Quantity, IsTaken = false, RunCount = 0, CreateTime = DateTime.Now }; _noticeOrderConsumedRepository.Add(tbl_NoticeOrderConsumed); }
/// <summary> /// 添加订单消费通知 /// </summary> /// <param name="tbl_Order"></param> /// <param name="tbl_OrderDetail"></param> /// <param name="business"></param> public void Add(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail, Tbl_OTABusiness business) { var tbl_NoticeOrderConsumed = new Tbl_NoticeOrderConsumed { SequenceId = DateTime.Now.ToString("yyyyMMdd") + Guid.NewGuid().ToString("N"), ScenicId = tbl_Order.ScenicId, IdentityKey = business.IdentityKey, OrderNo = tbl_Order.OrderNo, OtaOrderId = tbl_Order.OTAOrderNo, OrderDetailNumber = tbl_OrderDetail.Number, OtaOrderDetailId = tbl_OrderDetail.OtaOrderDetailId, Count = tbl_OrderDetail.Quantity, IsTaken = false, RunCount = 0, CreateTime = DateTime.Now }; _noticeOrderConsumedRepository.Add(tbl_NoticeOrderConsumed); }
private static XJ_Order PopulateOrder(OrderModel row, Tbl_OTABusiness business, List <Tbl_Ticket> tickets) { var orderInfo = new XJ_Order { OrderOtaId = row.OrderNo, OTABusinessId = business.Id, OrderPrice = row.Money.ToDouble(), OrderQuantity = row.OrderItems.Sum(a => a.Number), TicketList = new List <XJ_ProductItem>(), VisitDate = row.PlayDate.ToDataTimeFormat(), ContactPerson = new XJ_ContactPerson { BuyName = row.LinkName, Name = row.LinkName, Mobile = row.LinkPhone, CardType = "ID_CARD", CardNo = row.LinkIdCard } }; foreach (var item in row.OrderItems) { var ticket = tickets.FirstOrDefault(a => a.Code == item.ProductCode); orderInfo.TicketList.Add(new XJ_ProductItem { ProductId = ticket.TicketId, ProductName = ticket.TicketName, SellPrice = ticket.SalePrice, Quantity = item.Number, OrderNo = item.OrderNo, OrderDetailId = item.ItemId, CodeStr = item.Code, StartDate = item.StartDate.ToDataTimeFormat(), EndDate = item.EndDate.ToDataTimeFormat(), State = StateAction.GetState(item.State) }); } return(orderInfo); }
/// <summary> /// 创建单个产品订单 /// </summary> /// <param name="orderInfo"></param> /// <returns></returns> public Tbl_Order AddOrder(OrderSingleInfo request, Tbl_OTABusiness business) { //创建订单号 string orderNo = OrderHelper.GenerateOrderNo(); var order = Get(orderNo); if (order != null) { orderNo = OrderHelper.GenerateOrderNo(); } int idType = GetIdCardType(request.ContactPerson.CardType); //订单 Tbl_Order tbl_Order = new Tbl_Order { OrderNo = orderNo, OTABusinessId = business.Id, OTAOrderNo = request.OrderOtaId, TicketSource = (int)TicketSourceStatus.Ota, PayType = (int)PayStatus.NoPayStatus, PayAccount = "", PayTradeNo = "", SellerId = 0, Price = 0, Linkman = request.ContactPerson.Name, Mobile = request.ContactPerson.Mobile, OrderStatus = (int)OrderDataStatus.NoPay, CreateTime = DateTime.Now, ValidityDateStart = request.VisitDate.ToDataTime(), ValidityDateEnd = request.VisitDate.ToDataTime(), UsedQuantity = 0, Remark = "", IDType = idType, IDCard = request.ContactPerson.CardNo, CreateUserId = 0 }; return(tbl_Order); }
/// <summary> /// 创建订单并支付 /// </summary> /// <param name="orderInfo"></param> private PageResult PayOrder(OrderCreateRequest request, Tbl_OTABusiness business) { OrderInfo orderInfo = request.Body.OrderInfo; OrderCreateResponse result = new OrderCreateResponse { Head = HeadResult.V1 }; var validResult = _orderService.ValidDataForOrderCreateRequest(request, result); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } List <int> productIds = orderInfo.TicketList.Select(a => a.ProductId).ToList(); var ticketIds = _otaTicketRelationService.GetTicketIds(business.Id, productIds); var tbl_Tickets = _ticketService.CheckIsTicketIds(ticketIds, business.ScenicId, orderInfo.VisitDate.ToDataTime()); var validDataResult = _orderService.ValidDataForOrderCreateRequest(request, tbl_Tickets); if (!validDataResult.Status) { result.Head.Code = validDataResult.Code; result.Head.Describe = validDataResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Order = _orderService.AddOrder(orderInfo, business); var tbl_OrderDetails = _orderDetailService.AddOrderDetail(orderInfo, tbl_Order); _orderService.UpdateOrder(tbl_Order, tbl_OrderDetails); var tbl_Ticket_Testing = _ticketTestingService.addTicketTestings(tbl_Order, tbl_OrderDetails); _ticketService.UpdateTicketBySellCount(tbl_Tickets, tbl_OrderDetails); var tbl_SaleLog = _saleLogService.addSaleLog(tbl_Order); try { _orderService.BeginTran(); _orderService.Add(tbl_Order); _orderDetailService.Add(tbl_OrderDetails); _ticketTestingService.Add(tbl_Ticket_Testing); _ticketService.Update(tbl_Tickets); _noticeOrderConsumedService.Add(tbl_Order, tbl_OrderDetails, business); _orderTravelNoticeService.Add(tbl_Order, business); _saleLogService.Add(tbl_Order); _orderService.CommitTran(); } catch (Exception ex) { _orderService.RollbackTran(); result.Head.Code = "113021"; result.Head.Describe = "订单创建异常,订单创建失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Body = new OrderCreateInfo { OtaOrderId = tbl_Order.OTAOrderNo, OrderId = tbl_Order.OrderNo, OrderStatus = "OREDER_SUCCESS", Item = new List <OrderCreateItem>() }; tbl_OrderDetails = _orderDetailService.GetList(tbl_Order.OrderNo); foreach (var row in tbl_OrderDetails) { result.Body.Item.Add(new OrderCreateItem { OtaOrderDetailId = row.OtaOrderDetailId, ProductId = row.TicketId.ToString(), useDate = row.ValidityDateStart.ToString("yyyy-MM-dd"), CertificateNo = row.CertificateNO, quantity = 500000 }); } result.Head.Code = "000000"; result.Head.Describe = "成功"; return(PageDataResult.Data(result, business.Saltcode.ToString())); }
/// <summary> /// 创建单个产品订单并支付 /// </summary> /// <param name="request"></param> /// <param name="business"></param> /// <returns></returns> private PageResult PaySingleOrder(OrderSingleCreateRequest request, Tbl_OTABusiness business) { var orderInfo = request.Body.OrderInfo; OrderSingleCreateResponse result = new OrderSingleCreateResponse { Head = HeadResult.V1, Body = new OrderSingleCreateInfo { Inventory = 0 } }; var validResult = _orderService.ValidDataForOrderSingleCreateRequest(request, result); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Ticket = _ticketService.GetTicket(orderInfo.Ticket.ProductId, business.ScenicId, orderInfo.VisitDate.ToDataTime()); var validDataResult = _ticketService.ValidDataForOrderSingleCreateRequest(request, business, tbl_Ticket, result); if (!validDataResult.Status) { result.Head.Code = validDataResult.Code; result.Head.Describe = validDataResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Order = _orderService.AddOrder(orderInfo, business); var tbl_OrderDetail = _orderDetailService.AddOrderDetail(orderInfo, tbl_Order, tbl_Ticket); _orderService.UpdateOrder(tbl_Order, tbl_OrderDetail); var tbl_Ticket_Testing = _ticketTestingService.AddTicketTesting(tbl_Order, tbl_OrderDetail); try { _orderService.BeginTran(); _orderService.Add(tbl_Order); _orderDetailService.Add(tbl_OrderDetail); _ticketTestingService.Add(tbl_Ticket_Testing); _ticketService.UpdateTicketBySellCount(tbl_Ticket, tbl_OrderDetail); _noticeOrderConsumedService.Add(tbl_Order, tbl_OrderDetail, business); _saleLogService.Add(tbl_Order); _orderService.CommitTran(); } catch (Exception ex) { _orderService.RollbackTran(); result.Head.Code = "113021"; result.Head.Describe = "订单创建异常,订单创建失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Head.Code = "000000"; result.Head.Describe = "成功"; result.Body.OrderId = tbl_Order.OrderNo; result.Body.OtaOrderId = tbl_Order.OTAOrderNo; result.Body.CertificateNo = tbl_OrderDetail.CertificateNO; result.Body.Code = tbl_OrderDetail.QRcode; result.Body.OrderStatus = "OREDER_SUCCESS"; return(PageDataResult.Data(result, business.Saltcode.ToString())); }
private PageResult QueryOrder(OrderQueryRequest request, Tbl_OTABusiness business) { string orderId = request.Body.OrderId; OrderQueryResponse result = new OrderQueryResponse { Head = HeadResult.V1, Body = new OrderQueryBody() }; var validResult = _orderService.ValidDataForOrderQueryRequest(request); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Order = _orderService.Get(orderId, request.Body.OtaOrderId); if (tbl_Order == null) { result.Head.Code = "115002"; result.Head.Describe = "查询订单异常,订单不存在"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Body.OrderInfo = new OrderQueryInfo { OrderId = tbl_Order.OrderNo, OrderQuantity = tbl_Order.BookCount, OrderPrice = tbl_Order.TotalAmount, VisitDate = tbl_Order.ValidityDateEnd.ToString("yyyy-MM-dd"), ContactPerson = new OrderQueryContactPerson { Name = tbl_Order.Linkman, Mobile = tbl_Order.Mobile, CardNo = tbl_Order.IDCard, CardType = ((CredentialsStatus)tbl_Order.IDType).GetDescriptionByName() }, EticketInfo = new List <OrderQueryTicketInfo>() }; var orderDetails = _orderDetailService.GetList(tbl_Order.OrderNo); var tickets = _ticketService.GetTickets(orderDetails.Select(a => a.TicketId).ToList()); foreach (var row in orderDetails) { var ticket = tickets.FirstOrDefault(a => a.TicketId == row.TicketId); var orderQueryTicketInfo = new OrderQueryTicketInfo { OtaOrderDetailId = row.OtaOrderDetailId, EticektNo = row.CertificateNO, SellPrice = row.Price, MarketPrice = ticket == null ? 0 : ticket.MarkPrice.Value, EticektSend = 1, ProductId = row.TicketId, ProductName = row.TicketName, EticketQuantity = row.Quantity, UseQuantity = row.UsedQuantity == null ? 0 : row.UsedQuantity.Value, CreateTime = row.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), CancelTime = row.CancelTime.HasValue ? row.CancelTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", DelayCheckTime = row.DelayCheckTime.HasValue ? row.DelayCheckTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", UseEndDate = row.ValidityDateStart.ToString("yyyy-MM-dd"), UseStartDate = row.ValidityDateEnd.ToString("yyyy-MM-dd"), }; _orderDetailService.GetOrderDetailsDataStatus(row, orderQueryTicketInfo); result.Body.OrderInfo.EticketInfo.Add(orderQueryTicketInfo); } result.Head.Code = "000000"; result.Head.Describe = "成功"; return(PageDataResult.Data(result, business.Saltcode.ToString())); }
/// <summary> /// 添加订单消费通知 /// </summary> /// <param name="tbl_Order"></param> /// <param name="tbl_OrderDetail"></param> /// <param name="business"></param> public void Add(Tbl_Order tbl_Order, List <Tbl_OrderDetail> tbl_OrderDetails, Tbl_OTABusiness business) { var list = new List <Tbl_NoticeOrderConsumed>(); foreach (var row in tbl_OrderDetails) { list.Add(new Tbl_NoticeOrderConsumed { SequenceId = DateTime.Now.ToString("yyyyMMdd") + Guid.NewGuid().ToString("N"), ScenicId = tbl_Order.ScenicId, IdentityKey = business.IdentityKey, OrderNo = tbl_Order.OrderNo, OtaOrderId = tbl_Order.OTAOrderNo, OtaOrderDetailId = row.OtaOrderDetailId, OrderDetailNumber = row.Number, Count = row.Quantity, IsTaken = false, RunCount = 0, CreateTime = DateTime.Now }); } _noticeOrderConsumedRepository.Add(list); }
/// <summary> /// 创建订单并支付 /// </summary> /// <param name="orderInfo"></param> private PageResult PayOrder(OrderCreateRequest request, Tbl_OTABusiness business) { OrderInfo orderInfo = request.Body.OrderInfo; OrderCreateResponse result = new OrderCreateResponse { Head = HeadResult.V1 }; var validResult = _orderService.ValidDataForOrderCreateRequest(request); if (!validResult.Status) { result.Head.Code = validResult.Code; result.Head.Describe = validResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } List <int> productIds = orderInfo.TicketList.Select(a => a.ProductId).ToList(); var ticketIds = _otaTicketRelationService.GetTicketIds(business.Id, productIds); var tbl_Tickets = _ticketService.CheckIsTicketIds(ticketIds, business.ScenicId, orderInfo.VisitDate.ToDataTime()); var validDataResult = _orderService.ValidDataForOrderCreateRequest(request, tbl_Tickets); if (!validDataResult.Status) { result.Head.Code = validDataResult.Code; result.Head.Describe = validDataResult.Message; return(PageDataResult.Data(result, business.Saltcode.ToString())); } var tbl_Order = _orderService.AddOrder(orderInfo, business); var tbl_OrderDetails = _orderDetailService.AddOrderDetail(orderInfo, tbl_Order); _orderService.UpdateOrder(tbl_Order, tbl_OrderDetails); var tbl_Ticket_Testing = _ticketTestingService.addTicketTestings(tbl_Order, tbl_OrderDetails); _ticketService.UpdateTicketBySellCount(tbl_Tickets, tbl_OrderDetails); var tbl_SaleLog = _saleLogService.addSaleLog(tbl_Order); try { using (SqlConnection connection = new SqlConnection(DbConfig.TicketConnectionString)) { connection.Open(); var trans = connection.BeginTransaction(); SqlBulkInsert.Inert(tbl_Order, connection, trans); SqlBulkInsert.Inert(tbl_OrderDetails, connection, trans); SqlBulkInsert.Inert(tbl_Ticket_Testing, connection, trans); _ticketService.UpdateTicket(tbl_Tickets, connection, trans); SqlBulkInsert.Inert(tbl_SaleLog, connection, trans); trans.Commit(); } } catch (Exception ex) { result.Head.Code = "113021"; result.Head.Describe = "订单创建异常,订单创建失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Body = new OrderCreateInfo { OrderId = tbl_Order.OrderNo, OrderStatus = "OREDER_SUCCESS" }; try { var sendResult = _smsService.Send(tbl_OrderDetails, tbl_Order.Mobile); if (sendResult.Status) { result.Head.Code = "000000"; result.Head.Describe = "成功"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } result.Head.Code = "000001"; result.Head.Describe = "订单创建成功,发送入园凭证短信失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } catch (Exception ex) { result.Head.Code = "000001"; result.Head.Describe = "订单创建成功,发送入园凭证短信失败"; return(PageDataResult.Data(result, business.Saltcode.ToString())); } }