Explorar o código

order purchase limit logic edit

abiao %!s(int64=5) %!d(string=hai) anos
pai
achega
f2dd5c9ac3

+ 25 - 6
go/gopath/src/fohow.com/apps/controllers/order_controller/order_controller.go

@@ -165,14 +165,10 @@ func (self *OrderController) MultipleCreate() {
 		self.ReturnError(403, apps.NoExist, "", nil)
 	}
 	totalPrice := int64(0)
-	//创建订单
-	order := new(order_model.Order).CreateNew(wxUId, uId,
-		totalPrice, int64(0), order_model.ORDER_TYPE_NORMAL, wxUser.Depart, order_model.SOURCE_XCX)
-	if order == nil {
-		self.ReturnError(403, apps.CreateOrderFail, "", nil)
-	}
 	c_arr := strings.Split(ids, ",")
 	c_nums := strings.Split(nums, ",")
+
+	//订单合法性判断
 	for key, s_item := range c_arr {
 		cId, _ := strconv.ParseInt(s_item, 10, 64)
 		cNums := int64(1)
@@ -205,6 +201,29 @@ func (self *OrderController) MultipleCreate() {
 				}
 			}
 		}
+	}
+	//创建订单
+	order := new(order_model.Order).CreateNew(wxUId, uId,
+		totalPrice, int64(0), order_model.ORDER_TYPE_NORMAL, wxUser.Depart, order_model.SOURCE_XCX)
+	if order == nil {
+		self.ReturnError(403, apps.CreateOrderFail, "", nil)
+	}
+
+	for key, s_item := range c_arr {
+		cId, _ := strconv.ParseInt(s_item, 10, 64)
+		cNums := int64(1)
+		cNums, _ = strconv.ParseInt(c_nums[key], 10, 64)
+		cartItem := order_model.GetCartById(cId)
+		if cartItem == nil {
+			self.ReturnError(403, apps.NoExist, "", nil)
+		}
+		if cartItem.WxUserId != wxUId {
+			//self.ReturnError(403, apps.AccountError, "", nil)
+		}
+		product := product_model.GetProductById(cartItem.ProductId, false)
+		if product == nil {
+			self.ReturnError(403, apps.NoExist, "", nil)
+		}
 		//创建订单明细
 		totalPrice += product.Price * cNums
 		CreateOrderDetails(product, order, cNums)