- orderman.SaveOrder中使用CreateMultiEntities替代raw sql

This commit is contained in:
gazebo
2019-06-13 22:19:16 +08:00
parent 3927af734e
commit caf7bcc946
2 changed files with 12 additions and 18 deletions

View File

@@ -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

View File

@@ -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
}