/// <summary> /// 购物车生成订单 /// </summary> /// <param name="id"></param> /// <returns></returns> public dynamic AddOrderFromShoppingCar(string StuId, int System_Station_ID) { List <W_CourseModel> Courses = GetShoppingCar(StuId); if (Courses != null && Courses.Count > 0) { bool flag = false; DateTime time = DateTime.Now; W_Order order = new W_Order(); order.AddTime = time; order.PayTime = time; order.OrderNo = time.ToString("yyyyMMddHHmmss") + new Random().Next(1000, 9999).ToString(); order.StuId = StuId; order.System_Station_ID = System_Station_ID; decimal sum = Courses.Sum(x => x.Price); //如果定价全部为0 if (sum == 0) //免费课程直接支付成功 { order.Price = sum; order.PayStatus = 1; order.PayTime = time; order.TicketNumber = time.ToString("yyyyMMddHHmmss") + new Random().Next(1000, 9999).ToString(); order.PayType = 1; } order.Price = Courses.Sum(x => ((x.PreferentialPrice > 0 && x.Price > 0) ? x.PreferentialPrice : x.Price)); order.OrderId = Guid.NewGuid().ToString("N").ToUpper(); int o_id = (int)Orm.Insert(order, true); if (o_id > 0) { foreach (W_CourseModel course in Courses) { W_Order_Detail orderdetail = new W_Order_Detail(); orderdetail.CID = o_id; orderdetail.Course_ID = course.ID; orderdetail.Price = (course.PreferentialPrice > 0 && course.Price > 0) ? course.PreferentialPrice : course.Price; flag = Orm.Insert(orderdetail) > 0; if (!flag) { DeleteOrder(order.ID, System_Station_ID); break; } } if (flag)//清空购物车 { ClearShoppingCar(StuId); } return(order); } else { throw new ApiException("下单失败"); } } else { throw new ApiException("您的购物车空空如也"); } }
/// <summary> /// 修改订单状态 /// </summary> /// <param name="orderId"></param> /// <param name="ticketNumber"></param> /// <param name="payTime"></param> /// <returns></returns> public bool UpdateOrderInfo(string orderId, string ticketNumber, DateTime payTime) { W_Order order = Orm.Single <W_Order>(x => x.OrderId == orderId); order.PayStatus = 1; order.PayTime = payTime; order.TicketNumber = ticketNumber; order.PayType = 1; order.PayPrice = order.Price; return(Orm.Update <W_Order>(order) > 0 ? true : false); }
/// <summary> /// 获取支付订单信息 hx add /// </summary> /// <param name="orderId"></param> /// <returns></returns> public dynamic GetOrderPayById(string orderId) { W_Order order = Orm.Single <W_Order>(x => x.OrderId == orderId); OrderPay order2 = null; if (order != null) { order2 = new OrderPay(); order2.ID = order.ID; order2.Price = order.Price; order2.OrderId = order.OrderId; order2.OrderPayDetailList = GetOrderPayDetailList(order.ID); } return(order2); }
/// <summary> /// 学生开课数据录入 /// </summary> /// <param name="request"></param> /// <returns></returns> public bool AddOrderStudent(OrderModel model, int System_Station_ID, string StuId) { bool flag = false; string stuID = string.IsNullOrEmpty(StuId) ? model.StuId : StuId; Random ran = new Random(); model.AddTime = DateTime.Now; model.PayTime = DateTime.Now; model.OrderNo = DateTime.Now.ToString("yyyyMMddHHmmss") + ran.Next(1000, 9999).ToString(); model.StuId = stuID; model.System_Station_ID = System_Station_ID; model.OrderId = Guid.NewGuid().ToString("N").ToUpper(); if (!string.IsNullOrWhiteSpace(model.Course_IDs)) { W_Order order = new W_Order(); order.StuId = model.StuId; order.OrderNo = model.OrderNo; order.System_Station_ID = model.System_Station_ID; order.AddTime = model.AddTime; order.Price = model.Price; order.PayStatus = model.PayStatus; order.PayType = model.PayType; order.PayTime = model.PayTime; order.PayPrice = model.PayPrice; order.TicketNumber = model.TicketNumber; order.OrderState = model.OrderState; order.OrderId = model.OrderId; try { SqlMapper.BeginTransaction();//开启事务 //添加订单 int id = (int)Orm.Insert(order, true); if (id > 0) { string[] c_id = model.Course_IDs.Split(','); string[] c_price = model.Prices.Split(','); for (int i = 0; i < c_id.Length; i++) { W_Order_Detail orderdetail = new W_Order_Detail(); orderdetail.CID = id; orderdetail.Course_ID = int.Parse(c_id[i]); orderdetail.Price = decimal.Parse(c_price[i]); //添加订单详细 Orm.Insert(orderdetail); } flag = true; } SqlMapper.CommitTransaction(); //提交 } catch (Exception ex) { SqlMapper.RollBackTransaction(); //回滚 throw new ApiException(ex.Message); } finally { //SqlMapper.CloseConnection(); } } return(flag); }