From caf7bcc946f09380033d28f6a5ea499225bd24ae Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 13 Jun 2019 22:19:16 +0800 Subject: [PATCH] =?UTF-8?q?-=20orderman.SaveOrder=E4=B8=AD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8CreateMultiEntities=E6=9B=BF=E4=BB=A3raw=20sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 22 ++++------------------ business/jxutils/jxutils.go | 8 ++++++++ 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index d17658f39..753e673a3 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -2,7 +2,6 @@ package orderman import ( "fmt" - "math" "time" "git.rosy.net.cn/baseapi" @@ -201,11 +200,12 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao order.Status = orderStatus.Status order.VendorStatus = orderStatus.VendorStatus order.StatusTime = orderStatus.StatusTime + + jxutils.RefreshOrderSkuRelated(order) } } } - order.OrderCreatedAt = order.StatusTime // globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order) created, _, err2 := db.Db.ReadOrCreate(order, "VendorOrderID", "VendorID") if err = err2; err == nil { @@ -217,22 +217,8 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao } if _, _, err = db.Db.ReadOrCreate(originalOrder, "VendorOrderID", "VendorID"); err == nil { if created { - sql := `INSERT INTO order_sku(vendor_order_id, vendor_id, count, vendor_sku_id, sku_id, jx_sku_id, sku_name, - shop_price, vendor_price, sale_price, weight, sku_type, promotion_type, order_created_at) VALUES` - params := []interface{}{} - for _, sku := range order.Skus { - sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)," - // 有时不是通过京西平台建立的SKU,不范围要超过 - skuID := 0 - if sku.SkuID < math.MaxInt32 { - skuID = sku.SkuID - } - params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.VendorSkuID, skuID, sku.JxSkuID, sku.SkuName, - sku.ShopPrice, sku.VendorPrice, sku.SalePrice, sku.Weight, sku.SkuType, sku.PromotionType, order.OrderCreatedAt) - } - sql = sql[:len(sql)-1] + ";" - if _, err = db.Db.Raw(sql, params...).Exec(); err != nil { - baseapi.SugarLogger.Warnf("saveOrder insert order:%v, order_sku error:%v", order, err) + if err = dao.CreateMultiEntities(db, order.Skus); err != nil { + baseapi.SugarLogger.Warnf("saveOrder orderID:%s, save order_sku failed with error:%v", order.VendorOrderID, err) } } else { isDuplicated = true diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index ddc97f612..398787ce5 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -469,7 +469,12 @@ func RefreshOrderSkuRelated(order *model.GoodsOrder) *model.GoodsOrder { order.SalePrice = 0 order.VendorPrice = 0 order.Weight = 0 + order.OrderCreatedAt = order.StatusTime for _, sku := range order.Skus { + if sku.SkuID > math.MaxInt32 { + sku.SkuID = 0 + } + sku.OrderCreatedAt = order.OrderCreatedAt order.SkuCount++ order.GoodsCount += sku.Count order.SalePrice += sku.SalePrice * int64(sku.Count) @@ -483,6 +488,9 @@ func RefreshAfsOrderSkuRelated(afsOrder *model.AfsOrder) *model.AfsOrder { afsOrder.SkuUserMoney = 0 afsOrder.PmSkuSubsidyMoney = 0 for _, orderSku := range afsOrder.Skus { + if orderSku.SkuID > math.MaxInt32 { + orderSku.SkuID = 0 + } afsOrder.SkuUserMoney += orderSku.UserMoney afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney }