This commit is contained in:
苏尹岚
2021-03-30 17:39:07 +08:00
parent b9f7d7f53a
commit 0dd7235485
49 changed files with 579 additions and 582 deletions

View File

@@ -27,7 +27,7 @@ import (
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/adapter/orm"
"github.com/astaxie/beego/client/orm"
)
var (
@@ -52,11 +52,11 @@ func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, orderStatus *model.Or
}
db := dao.GetDB()
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
globals.SugarLogger.Debugf("OnOrderNew exit orderID:%s", order.VendorOrderID)
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -74,12 +74,12 @@ func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, orderStatus *model.Or
}
}
if err == nil {
dao.Commit(db)
dao.Commit(db, txDB)
if !isDuplicated {
err = scheduler.CurrentScheduler.OnOrderNew(order, false, false)
}
} else {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
return err
}
@@ -92,10 +92,10 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model
}
db := dao.GetDB()
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -145,14 +145,14 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model
isDuplicated, err = c.SaveOrder(order, true, db)
}
if err == nil {
dao.Commit(db)
dao.Commit(db, txDB)
if !isDuplicated {
// 因为订单调度器需要的是真实状态所以用order的状态
_ = scheduler.CurrentScheduler.OnOrderNew(order, false, false)
_ = scheduler.CurrentScheduler.OnOrderStatusChanged(order, orderStatus, false)
}
} else {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
return err
}
@@ -170,16 +170,16 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
}
db := dao.GetDB()
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
isDuplicated, order, err := c.addOrderStatus(orderStatus, db)
if err == nil {
dao.Commit(db)
dao.Commit(db, txDB)
if orderStatus.Status == model.OrderStatusWaybillTipChanged {
if order, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == nil {
if handler := partner.GetWaybillTipUpdater(orderStatus.RefVendorID); handler != nil {
@@ -236,7 +236,7 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
}
}
} else {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
return err
}
@@ -294,10 +294,10 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao
setFakeOrderFlag(db, order)
// cms.HandleOrder4Consignee(order)
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -352,7 +352,7 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao
err = ModifyOrderSkusStock(db, order, false)
}
if err == nil {
dao.Commit(db)
dao.Commit(db, txDB)
}
return isDuplicated, err
}
@@ -938,10 +938,10 @@ func (c *OrderManager) RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context,
order := batchItemList[0].(*model.GoodsOrder)
db := dao.GetDB()
updateSingleOrderEarningPrice(order, db)
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -999,7 +999,7 @@ func (c *OrderManager) RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context,
if err != nil {
return nil, err
}
dao.Commit(db)
dao.Commit(db, txDB)
retVal = []string{utils.Int64ToStr(num)}
return retVal, err
}, orderList)
@@ -1072,9 +1072,10 @@ func AddUpdateOrdersSupplement(ctx *jxcontext.Context, ordersSupplement *model.O
)
now := time.Now()
ordersSupplement.SupplementTime = &now
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -1101,7 +1102,7 @@ func AddUpdateOrdersSupplement(ctx *jxcontext.Context, ordersSupplement *model.O
dao.WrapAddIDCULDEntity(ordersSupplement, ctx.GetUserName())
err = dao.CreateEntity(db, ordersSupplement)
}
dao.Commit(db)
dao.Commit(db, txDB)
return num, err
}
@@ -1123,25 +1124,25 @@ func RefreshOrdersPriceInfo(ctx *jxcontext.Context, fromTime, toTime time.Time,
if err == nil {
db := dao.GetDB()
if err = FixedOrderManager.updateOrderOtherInfo(newOrder, db); err == nil {
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if _, err = dao.UpdateEntity(db, newOrder); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
for _, sku := range newOrder.Skus {
if _, err = dao.UpdateEntity(db, sku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
}
}
return retVal, err
@@ -1923,18 +1924,18 @@ func UpdateOrderInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID int,
}
valid := dao.StrictMakeMapByStructObject(payload, order, ctx.GetUserName())
if len(valid) > 0 {
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if num, err = dao.UpdateEntityByKV(db, order, valid, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
dao.Commit(db)
dao.Commit(db, txDB)
}
return num, err
}
@@ -1961,10 +1962,10 @@ func RefreshOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID,
dao.UpdateEntity(db, v, "ShopPrice", "EarningPrice")
return err
}
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -1989,6 +1990,6 @@ func RefreshOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID,
order.ShopPrice = shopPrice
order.EarningPrice = earningPrice
num, err = dao.UpdateEntity(db, order, "ShopPrice", "EarningPrice")
dao.Commit(db)
dao.Commit(db, txDB)
return num, err
}