예제 #1
0
        /// <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("您的购物车空空如也");
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }