- orderman.SaveOrder中使用CreateMultiEntities替代raw sql
This commit is contained in:
@@ -2,7 +2,6 @@ package orderman
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi"
|
"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.Status = orderStatus.Status
|
||||||
order.VendorStatus = orderStatus.VendorStatus
|
order.VendorStatus = orderStatus.VendorStatus
|
||||||
order.StatusTime = orderStatus.StatusTime
|
order.StatusTime = orderStatus.StatusTime
|
||||||
|
|
||||||
|
jxutils.RefreshOrderSkuRelated(order)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
order.OrderCreatedAt = order.StatusTime
|
|
||||||
// globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order)
|
// globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order)
|
||||||
created, _, err2 := db.Db.ReadOrCreate(order, "VendorOrderID", "VendorID")
|
created, _, err2 := db.Db.ReadOrCreate(order, "VendorOrderID", "VendorID")
|
||||||
if err = err2; err == nil {
|
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 _, _, err = db.Db.ReadOrCreate(originalOrder, "VendorOrderID", "VendorID"); err == nil {
|
||||||
if created {
|
if created {
|
||||||
sql := `INSERT INTO order_sku(vendor_order_id, vendor_id, count, vendor_sku_id, sku_id, jx_sku_id, sku_name,
|
if err = dao.CreateMultiEntities(db, order.Skus); err != nil {
|
||||||
shop_price, vendor_price, sale_price, weight, sku_type, promotion_type, order_created_at) VALUES`
|
baseapi.SugarLogger.Warnf("saveOrder orderID:%s, save order_sku failed with error:%v", order.VendorOrderID, err)
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
isDuplicated = true
|
isDuplicated = true
|
||||||
|
|||||||
@@ -469,7 +469,12 @@ func RefreshOrderSkuRelated(order *model.GoodsOrder) *model.GoodsOrder {
|
|||||||
order.SalePrice = 0
|
order.SalePrice = 0
|
||||||
order.VendorPrice = 0
|
order.VendorPrice = 0
|
||||||
order.Weight = 0
|
order.Weight = 0
|
||||||
|
order.OrderCreatedAt = order.StatusTime
|
||||||
for _, sku := range order.Skus {
|
for _, sku := range order.Skus {
|
||||||
|
if sku.SkuID > math.MaxInt32 {
|
||||||
|
sku.SkuID = 0
|
||||||
|
}
|
||||||
|
sku.OrderCreatedAt = order.OrderCreatedAt
|
||||||
order.SkuCount++
|
order.SkuCount++
|
||||||
order.GoodsCount += sku.Count
|
order.GoodsCount += sku.Count
|
||||||
order.SalePrice += sku.SalePrice * int64(sku.Count)
|
order.SalePrice += sku.SalePrice * int64(sku.Count)
|
||||||
@@ -483,6 +488,9 @@ func RefreshAfsOrderSkuRelated(afsOrder *model.AfsOrder) *model.AfsOrder {
|
|||||||
afsOrder.SkuUserMoney = 0
|
afsOrder.SkuUserMoney = 0
|
||||||
afsOrder.PmSkuSubsidyMoney = 0
|
afsOrder.PmSkuSubsidyMoney = 0
|
||||||
for _, orderSku := range afsOrder.Skus {
|
for _, orderSku := range afsOrder.Skus {
|
||||||
|
if orderSku.SkuID > math.MaxInt32 {
|
||||||
|
orderSku.SkuID = 0
|
||||||
|
}
|
||||||
afsOrder.SkuUserMoney += orderSku.UserMoney
|
afsOrder.SkuUserMoney += orderSku.UserMoney
|
||||||
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user