/// <summary> /// 订单详情--退款 /// </summary> private bool RefundOrderDetail(XJ_ProductItem item) { //判断门票是否可以退票和过了退票有效期 var result = _orderDetailService.XJ_CheckOrderDetailIsCanncel(item.OrderDetailId); if (result == null) { return(false); } try { _orderService.BeginTran(); //添加退款记录 var tbl_RefundDetail = _refundDetailService.Add(result); //更新订单详情的状态:为已退款 _orderDetailService.UpdateOrderDetailForRefund(result); //更新票的日售票数 _ticketService.UpdateTicketBySellCount(result); //退激活票时,同步删除验票表存在的数据 _ticketTestingService.Delete(result.OrderNo); //添加日志 _saleLogService.Add(tbl_RefundDetail); //提交事物 _orderService.CommitTran(); return(true); } catch (Exception ex) { _orderService.RollbackTran(); return(false); } }
public TResult PayOrder(OrderCreateModel order) { var result = new TResult(); if (order.TicketItem.Count <= 0) { return(result.ErrorResult("请选择您要购买的产品")); } var userInfo = _enterpriseUserService.LoginForSession(); var orderInfo = new OrderInfoCreateModel { PayType = order.PayType, UserId = userInfo.UserId, ValidityDate = order.ValidityDate, Mobile = "", Linkman = "", TicketCategory = (int)TicketCategoryStatus.QrCodePrintTicket, TicketSource = (int)TicketSourceStatus.ScenicSpot, TicketItem = order.TicketItem }; List <int> productIds = orderInfo.TicketItem.Select(a => a.TicketId).ToList(); var tbl_Tickets = _ticketService.GetTickets(productIds); var tbl_Order = _orderService.AddOrder(orderInfo); var tbl_OrderDetails = _orderDetailService.AddOrderDetails(orderInfo, tbl_Order); _orderService.UpdateOrder(tbl_Order, tbl_OrderDetails); var tbl_Ticket_Testings = _ticketTestingService.addTicketTestings(tbl_Order, tbl_OrderDetails); _ticketService.UpdateTicketBySellCount(tbl_Tickets, tbl_OrderDetails); try { _orderService.BeginTran(); _orderService.Add(tbl_Order); _orderDetailService.Add(tbl_OrderDetails); _ticketTestingService.Add(tbl_Ticket_Testings); _saleLogService.Add(tbl_Order); _ticketService.Update(tbl_Tickets); //提交事物 _orderService.CommitTran(); } catch { _orderService.RollbackTran(); return(result.ErrorResult()); } //打印机打印 if (order.IsPrint && !string.IsNullOrEmpty(order.PrintKey)) { var isPrint = _printService.Print(tbl_Order.OrderNo, order.PrintKey); if (!isPrint.Success) { return(result.ErrorResult("门票创建成功," + isPrint.Message)); } } return(result.SuccessResult()); }
/// <summary> /// 取消订单详情 /// </summary> /// <param name="orderInfo"></param> public OrderDetailRefundResponse RefundOrderDetail(int orderDetailId) { OrderDetailRefundResponse result = new OrderDetailRefundResponse(); //判断门票是否可以退票和过了退票有效期 var checkResult = _orderDetailService.CheckOrderDetailIsCanncel(orderDetailId); if (!checkResult.Status) { //坚持未通过 result.Message = checkResult.Message; result.Code = checkResult.Code; return(result); } try { _orderService.BeginTran(); //添加退款记录 var tbl_RefundDetail = _refundDetailService.Add(checkResult.Item); //更新订单详情的状态:为已退款 _orderDetailService.UpdateOrderDetailForRefund(checkResult.Item); //更新票的日售票数 _ticketService.UpdateTicketBySellCount(checkResult.Item); //退激活票时,同步删除验票表存在的数据 _ticketTestingService.Delete(orderDetailId); //添加日志 _saleLogService.Add(tbl_RefundDetail); //提交事物 _orderService.CommitTran(); //电子票发送退票短信 //var statusResult = _smsService.Send(checkResult.Item, checkResult.Item.Mobile); //if (statusResult.Status) //{ result.Status = true; result.Message = "订单详情退款成功"; return(result); //} //result.Message = "订单详情退款成功,退款短信发送失败"; //result.Status = true; //return result; } catch (Exception ex) { _orderService.RollbackTran(); result.Message = "订单详情退款成功,退款短信发送失败"; result.Status = true; return(result); } }
/// <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="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())); //try //{ // //电子票发送退票短信 // _smsService.RefundSend(checkResult.List, tbl_Order.Mobile); // result.Head.Code = "000000"; // result.Head.Describe = "成功"; // return PageDataResult.Data(result, business.Saltcode.ToString()); //} //catch (Exception ex) //{ // result.Head.Code = "000003"; // result.Head.Describe = "取消订单成功,发送退票短信失败"; // return PageDataResult.Data(result, business.Saltcode.ToString()); //} }