//调用这个函数时,newOrder里填好5个基本信息,UserID,以及Payment即可。0为线下付款,1为支付宝 public static void SubmitOrder(Order newOrder) { newOrder.SetStatusToNotPayed(); string orderID = OrderRepository.AddOrder(newOrder); List<CartRecord> cartrecords = CartService.GetCartRecodByUserID(newOrder.UserID); foreach (CartRecord cr in cartrecords) { Item currentItem = ItemService.GetItemByItemID(cr.ItemID); OrderDetail od = new OrderDetail(); od.OrderID = orderID; od.ItemID = cr.ItemID; od.Title = currentItem.Title; od.Price = currentItem.Price; od.Quantity = cr.Count; od.TotalPrice = od.Price * od.Quantity; od.ImageUrl = currentItem.ImageUrl; OrderRepository.AddOrderDetail(od); } CartService.DeletaCartRecordByUserID(newOrder.UserID); }
public static void AddOrderDetail(OrderDetail newOrderDetail) { string connectionString = WebConfigurationManager.ConnectionStrings["defaultConnectionString"].ToString(); SqlConnection sqlConn = new SqlConnection(connectionString); sqlConn.Open(); string cmdString; SqlCommand sqlCmd = new SqlCommand(); cmdString = "INSERT INTO OrderDetail (OrderID, ItemID, Title, Price, Quantity, TotalPrice, ImageUrl)" + "VALUES (@orderID, @itemID, @title, @price, @quantity, @totalPrice, @imageUrl)"; sqlCmd = new SqlCommand(cmdString, sqlConn); string orderID = System.Guid.NewGuid().ToString(); sqlCmd.Parameters.Add(new SqlParameter("orderID", newOrderDetail.OrderID)); sqlCmd.Parameters.Add(new SqlParameter("itemID", newOrderDetail.ItemID)); sqlCmd.Parameters.Add(new SqlParameter("title", newOrderDetail.Title)); sqlCmd.Parameters.Add(new SqlParameter("price", newOrderDetail.Price)); sqlCmd.Parameters.Add(new SqlParameter("quantity", newOrderDetail.Quantity)); sqlCmd.Parameters.Add(new SqlParameter("totalPrice", newOrderDetail.TotalPrice)); sqlCmd.Parameters.Add(new SqlParameter("imageUrl", newOrderDetail.ImageUrl)); sqlCmd.ExecuteNonQuery(); sqlConn.Close(); }
public static List<OrderDetail> FindOrderDetailsByOrderID(string orderID) { List<OrderDetail> result = new List<OrderDetail>(); string connectionString = WebConfigurationManager.ConnectionStrings["defaultConnectionString"].ToString(); SqlConnection sqlConn = new SqlConnection(connectionString); sqlConn.Open(); string cmdString = "SELECT * FROM [OrderDetail] WHERE OrderID=@orderID"; SqlCommand sqlCmd = new SqlCommand(cmdString, sqlConn); sqlCmd.Parameters.Add(new SqlParameter("orderID", orderID)); SqlDataReader sqlDataReader = sqlCmd.ExecuteReader(); if (sqlDataReader.HasRows) { while (sqlDataReader.Read()) { OrderDetail newOrderDetail = new OrderDetail(); FillOrderDetail(sqlDataReader, newOrderDetail); result.Add(newOrderDetail); } sqlDataReader.Close(); } return result; }
static void FillOrderDetail(SqlDataReader sqlDataReader, OrderDetail newOrderDetail) { newOrderDetail.OrderID = (string)sqlDataReader["OrderID"]; newOrderDetail.OrderDetailID = (int)sqlDataReader["OrderDetailID"]; newOrderDetail.ItemID = (string)sqlDataReader["ItemID"]; newOrderDetail.Title = (string)sqlDataReader["Title"]; newOrderDetail.Price = (Decimal)sqlDataReader["Price"]; newOrderDetail.Quantity = (int)sqlDataReader["Quantity"]; newOrderDetail.TotalPrice = (Decimal)sqlDataReader["TotalPrice"]; newOrderDetail.ImageUrl = (string)sqlDataReader["ImageUrl"]; }