- new table GoodsOrderOriginal

This commit is contained in:
gazebo
2018-11-29 18:53:19 +08:00
parent 6c38663d91
commit 77266b8583
3 changed files with 45 additions and 20 deletions

View File

@@ -145,35 +145,44 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.
order.StatusTime = orderStatus.StatusTime
}
globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order)
// globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order)
db.Begin()
defer func() {
db.Rollback()
}()
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
if err = err2; 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,
originalOrder := &model.GoodsOrderOriginal{
VendorOrderID: order.VendorOrderID,
VendorID: order.VendorID,
OrderCreatedAt: order.OrderCreatedAt,
OriginalData: order.OriginalData,
}
if _, _, err = 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, sale_price, weight, sku_type, promotion_type, order_created_at) VALUES`
params := []interface{}{}
for _, sku := range order.Skus {
sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),"
params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.VendorSkuID, sku.SkuID, sku.JxSkuID, sku.SkuName,
sku.ShopPrice, sku.SalePrice, sku.Weight, sku.SkuType, sku.PromotionType, order.StatusTime)
}
sql = sql[:len(sql)-1] + ";"
if _, err = db.Raw(sql, params...).Exec(); err != nil {
db.Rollback()
baseapi.SugarLogger.Infof("saveOrder insert order:%v, order_sku error:%v", order, err)
params := []interface{}{}
for _, sku := range order.Skus {
sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),"
params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.VendorSkuID, sku.SkuID, sku.JxSkuID, sku.SkuName,
sku.ShopPrice, sku.SalePrice, sku.Weight, sku.SkuType, sku.PromotionType, order.StatusTime)
}
sql = sql[:len(sql)-1] + ";"
if _, err = db.Raw(sql, params...).Exec(); err != nil {
baseapi.SugarLogger.Infof("saveOrder insert order:%v, order_sku error:%v", order, err)
} else {
db.Commit()
}
} else {
isDuplicated = true
order.DuplicatedCount++
db.Update(order, "DuplicatedCount")
db.Commit()
baseapi.SugarLogger.Infof("saveOrder duplicated orderid:%s msg received", order.VendorOrderID)
}
} else {
isDuplicated = true
order.DuplicatedCount++
db.Update(order, "DuplicatedCount")
db.Commit()
baseapi.SugarLogger.Infof("saveOrder duplicated orderid:%s msg received", order.VendorOrderID)
}
} else {
db.Rollback()
globals.SugarLogger.Warnf("saveOrder create order:%v, error:%v", order, err)
}
return isDuplicated, err

View File

@@ -61,6 +61,21 @@ func (o *GoodsOrder) TableUnique() [][]string {
}
}
type GoodsOrderOriginal struct {
ID int64 `orm:"column(id)" json:"-"`
VendorOrderID string `orm:"column(vendor_order_id);size(48)" json:"vendorOrderID"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
OrderCreatedAt time.Time `orm:"type(datetime);index" json:"orderCreatedAt"` // 这里记录的是订单生效时间,即用户支付完成(货到付款即为下单时间)
CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"`
OriginalData string `orm:"type(text)" json:"-"`
}
func (o *GoodsOrderOriginal) TableUnique() [][]string {
return [][]string{
[]string{"VendorOrderID", "VendorID"},
}
}
type OrderSku struct {
ID int64 `orm:"column(id)" json:"-"`
VendorOrderID string `orm:"column(vendor_order_id);size(48)" json:"vendorOrderID"`

View File

@@ -23,6 +23,7 @@ func Init() {
orm.RegisterModel(new(legacymodel.WeiXins), new(legacymodel.JxBackendUser))
orm.RegisterModel(new(model.GoodsOrder))
orm.RegisterModel(new(model.GoodsOrderOriginal))
orm.RegisterModel(new(model.OrderSku))
orm.RegisterModel(new(model.Waybill))
orm.RegisterModel(new(model.OrderStatus))