Ver código fonte

order detail list

abiao 1 ano atrás
pai
commit
d1091bd6b2

+ 2 - 0
go/gopath/src/fohow.com/apps/controllers/order_controller/order_controller.go

@@ -843,6 +843,8 @@ func (self *OrderController) Operate() {
 				self.ReturnError(403, apps.OrderRefundError, "", nil)
 			}
 		}
+		//已支付订单退商品库存
+		helpers.UpdatePdSaleNums(o, 1)
 	} else if operate == order_model.OPERATE_CONFIRM && o.Status == order_model.STATUS_DISPATCH {
 		o.Status = order_model.STATUS_COMPLETE
 		o.ReceiveTime = time.Now()

+ 2 - 20
go/gopath/src/fohow.com/apps/controllers/pay_controller/after_pay_controller.go

@@ -189,8 +189,8 @@ func (self *PayController) wxPayExchangeAsync() {
 	//已支付订单移除队列
 	cancelKey := lib_redis.GetOrderCancelList()
 	lib_redis.ThrowOutRedisList(cancelKey, order.OrderId)
-	//更新商品售量
-	UpdatePdSaleNums(order)
+	//0 减少商品售量
+	helpers.UpdatePdSaleNums(order, 0)
 	//赠品写入订单
 	helpers.PresentTransferToOrder(order.OrderId, order.WxUserId)
 
@@ -200,24 +200,6 @@ func (self *PayController) wxPayExchangeAsync() {
 	return
 }
 
-// 更新已售数量
-func UpdatePdSaleNums(order *order_model.Order) {
-	if order == nil {
-		return
-	}
-
-	orderDtList := order_model.GetAllDetailsOrderId(order.OrderId, false)
-
-	if len(orderDtList) == 0 {
-		return
-	}
-	SaleNumsMap := make(map[int64]int64)
-	for _, item := range orderDtList {
-		SaleNumsMap[item.ProductId] = item.Count
-	}
-	order_model.UpdateSaleNums(SaleNumsMap)
-}
-
 // 微信余额充值
 func (self *PayController) wxPayCashczAsync() {
 

+ 3 - 4
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_exchange_controller.go

@@ -313,7 +313,7 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
 			cancelKey := lib_redis.GetOrderCancelList()
 			lib_redis.ThrowOutRedisList(cancelKey, order.OrderId)
 			//更新已售数量
-			order_model.UpdateSaleNums(SaleNumsMap)
+			helpers.UpdatePdSaleNums(order, 0)
 			//赠品写入订单
 			helpers.PresentTransferToOrder(order.OrderId, wxUId)
 			//go CreateOrderNotify(order, product)
@@ -559,9 +559,8 @@ func (self *PayController) payCentExchange(oId, returnUrl, source, remark string
 	//已支付订单移除未支付队列
 	cancelKey := lib_redis.GetOrderCancelList()
 	lib_redis.ThrowOutRedisList(cancelKey, order.OrderId)
-	//更新已售数量
-	order_model.UpdateSaleNums(SaleNumsMap)
-
+	//0 减少 -- 更新已售数量
+	helpers.UpdatePdSaleNums(order, 0)
 	payUrl, payData = fmt.Sprintf("%s?order_id=%s", returnUrl, order.OrderId), nil
 	result := PayUrl{NeedWx: false, PayUrl: payUrl, PayData: payData, OrderId: order.OrderId}
 	//self.Data["json"] = self.FormatResult([]interface{}{result})

+ 16 - 0
go/gopath/src/fohow.com/apps/helpers/promotion_helper.go

@@ -806,3 +806,19 @@ func CreateShopApplyOrder(shopAppplyId int64) {
 	beego.BeeLogger.Warn("----------------end generate shopapply order ---%d ", shopApply.Id)
 	return
 }
+
+// 更新已售数量
+func UpdatePdSaleNums(order *order_model.Order, dirction int) {
+	if order == nil {
+		return
+	}
+	orderDtList := order_model.GetAllDetailsOrderId(order.OrderId, false)
+	if len(orderDtList) == 0 {
+		return
+	}
+	SaleNumsMap := make(map[int64]int64)
+	for _, item := range orderDtList {
+		SaleNumsMap[item.ProductId] = item.Count
+	}
+	order_model.UpdateSaleNums(SaleNumsMap, dirction)
+}

+ 14 - 10
go/gopath/src/fohow.com/apps/models/order_model/order.go

@@ -733,32 +733,36 @@ func GetPaiedOrderByWxUIdAndPayWayLimitOne(wxUserId int64, payWay string, useCac
 }
 
 // 更新商品已售数量
-func UpdateSaleNums(saleProducts map[int64]int64) bool {
-
+func UpdateSaleNums(saleProducts map[int64]int64, direction int) bool {
 	for pId, nums := range saleProducts {
-
-		//beego.BeeLogger.Error("pId,Nums %d--%d", pId, nums)
-
 		product := product_model.GetProductById(pId, true)
 		if product == nil {
 			continue
 		}
-		product.SaleNums += nums
-		product.Save()
-		//套装商品拆分更新销量
+		// 套装商品拆分更新销量
 		if product.Package {
 			package_list := product_model.GetPackageList(product.Id, true)
 			for _, item := range package_list {
 				item_pd := product_model.GetProductById(item.ItemId, true)
 				count := item.Nums * nums
-				item_pd.SaleNums += count
+				if direction == 0 {
+					item_pd.SaleNums += count
+				} else if direction == 1 {
+					item_pd.SaleNums -= count
+				}
 				item_pd.Save()
 			}
+		} else {
+			if direction == 0 {
+				product.SaleNums += nums
+			} else if direction == 1 {
+				product.SaleNums -= nums
+			}
+			product.Save()
 		}
 	}
 	return true
 }
-
 func GetDistrictOrders(tcBl, page, perPage int64, tcArea string) (orders []*Order) {
 
 	beginSql := "select order_id,contact,paied_at, "