- orderman.SaveOrder中使用CreateMultiEntities替代raw sql
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user