From 0dd72354857fc426afe85fb19729d15580e1721c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 30 Mar 2021 17:39:07 +0800 Subject: [PATCH] aa --- business/authz/casbinauth/adapter.go | 2 +- business/jxcallback/orderman/financial.go | 32 +-- business/jxcallback/orderman/order.go | 67 ++--- business/jxcallback/orderman/order_afs.go | 26 +- business/jxcallback/orderman/orderman.go | 6 +- business/jxcallback/orderman/orderman_ext.go | 20 +- business/jxcallback/orderman/waybill.go | 20 +- .../jxcallback/scheduler/defsch/defsch.go | 2 +- business/jxstore/act/act.go | 88 +++---- business/jxstore/cms/cms.go | 16 +- business/jxstore/cms/message.go | 8 +- business/jxstore/cms/sku.go | 228 +++++++++--------- business/jxstore/cms/store.go | 124 +++++----- business/jxstore/cms/store_acct.go | 10 +- business/jxstore/cms/store_sku.go | 122 +++++----- business/jxstore/cms/store_sku_check.go | 5 - business/jxstore/cms/storeman.go | 6 +- business/jxstore/cms/sync_store_sku.go | 8 +- business/jxstore/cms/sync_store_sku_fakejd.go | 10 +- business/jxstore/cms/user.go | 8 +- business/jxstore/cms/user2.go | 34 +-- business/jxstore/common/common.go | 8 +- business/jxstore/event/event.go | 18 +- business/jxstore/initdata/initdata.go | 12 +- business/jxstore/permission/permission.go | 38 +-- business/jxstore/report/report.go | 18 +- business/jxstore/tempop/tempop.go | 16 +- business/jxutils/tasks/configrefresh.go | 2 +- business/jxutils/weixinmsg/weixinmsg.go | 20 +- business/model/dao/act.go | 12 +- business/model/dao/dao.go | 20 +- business/model/dao/dao_err.go | 2 +- business/model/dao/dao_order.go | 12 +- business/model/dao/dao_user.go | 8 +- business/model/dao/event.go | 4 +- business/model/dao/food_recipe.go | 4 +- business/model/dao/page_store.go | 8 +- business/model/dao/place.go | 2 +- business/model/dao/report.go | 4 +- business/model/dao/store.go | 18 +- business/model/dao/store_sku.go | 4 +- business/netspider/netspider.go | 8 +- business/partner/delivery/fn/waybill.go | 2 +- business/partner/delivery/mtps/waybill.go | 2 +- business/partner/purchase/jx/localjx/order.go | 34 +-- business/partner/purchase/jx/localjx/user.go | 4 +- business/userstore/food_recipe.go | 24 +- controllers/act.go | 10 +- globals/beegodb/beegodb.go | 5 +- 49 files changed, 579 insertions(+), 582 deletions(-) diff --git a/business/authz/casbinauth/adapter.go b/business/authz/casbinauth/adapter.go index 6a3bdaccf..60207b267 100644 --- a/business/authz/casbinauth/adapter.go +++ b/business/authz/casbinauth/adapter.go @@ -3,7 +3,7 @@ package casbinauth import ( jxmodel "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/globals" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" "github.com/casbin/casbin/model" "github.com/casbin/casbin/persist" ) diff --git a/business/jxcallback/orderman/financial.go b/business/jxcallback/orderman/financial.go index c9b9a3b61..03d839dc0 100644 --- a/business/jxcallback/orderman/financial.go +++ b/business/jxcallback/orderman/financial.go @@ -18,10 +18,10 @@ const ( // 处理正向订单结账信息 func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, operation string) (err error) { db := dao.GetDB() - 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) } @@ -57,7 +57,7 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera globals.SugarLogger.Warnf("On SaveOrderDiscountFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID) return err } - dao.Rollback(db) + dao.Rollback(db, txDB) return nil } } @@ -105,7 +105,7 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err:%v", order.VendorOrderID, err) return err } - dao.Rollback(db) + dao.Rollback(db, txDB) return nil } } @@ -126,7 +126,7 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err:%v", order.VendorOrderID, err) return err } - dao.Rollback(db) + dao.Rollback(db, txDB) return nil } } else { @@ -139,10 +139,10 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera globals.SugarLogger.Warnf("On SaveOrderFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID) return err } - dao.Rollback(db) + dao.Rollback(db, txDB) return nil } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -150,10 +150,10 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera func (c *OrderManager) SaveAfsOrderFinancialInfo(afsOrder *model.AfsOrder) (err error) { globals.SugarLogger.Debug(afsOrder.AfsOrderID) db := dao.GetDB() - 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) } @@ -168,7 +168,7 @@ func (c *OrderManager) SaveAfsOrderFinancialInfo(afsOrder *model.AfsOrder) (err globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrder is err", afsOrder.AfsOrderID) return err } - dao.Rollback(db) + dao.Rollback(db, txDB) return nil } @@ -182,7 +182,7 @@ func (c *OrderManager) SaveAfsOrderFinancialInfo(afsOrder *model.AfsOrder) (err globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrderSku is err", afsOrder.AfsOrderID) return err } - dao.Rollback(db) + dao.Rollback(db, txDB) return nil } } @@ -194,13 +194,13 @@ func (c *OrderManager) SaveAfsOrderFinancialInfo(afsOrder *model.AfsOrder) (err globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrderSku is err", afsOrder.AfsOrderID) return err } - dao.Rollback(db) + dao.Rollback(db, txDB) return nil } } else { globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: afsOrder have no sku", afsOrder.AfsOrderID) } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -212,10 +212,10 @@ func (c *OrderManager) UpdataOrderFinancialInfo(orderFinancial *model.OrderFinan // orderFinancial.JxFreightMoney = wayBill.DesiredFee // } db := dao.GetDB() - 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) } @@ -254,7 +254,7 @@ func (c *OrderManager) UpdataOrderFinancialInfo(orderFinancial *model.OrderFinan globals.SugarLogger.Warnf("On SaveOrderFinancialInfo err: order is err") return err } - dao.Commit(db) + dao.Commit(db, txDB) // orderFinancial 和 OrderSkuFinancial 数据计算完毕,准备进行更新 return err } diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index d360290be..84fa99d74 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -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 } diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index c50484149..d330fe78e 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -10,7 +10,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" ) func (c *OrderManager) LoadAfsOrder(vendorAfsOrderID string, vendorID int) (afsOrder *model.AfsOrder, err error) { @@ -62,10 +62,10 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } } // - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil || err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -73,7 +73,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode globals.SugarLogger.Debugf("onAfsOrderNew afsOrderID:%s, isDuplicated:%t", afsOrder.AfsOrderID, isDuplicated) if err != nil || isDuplicated { if err == nil { - dao.Commit(db) + dao.Commit(db, txDB) } return err } @@ -101,7 +101,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } } - dao.Commit(db) + dao.Commit(db, txDB) scheduler.CurrentScheduler.OnAfsOrderNew(afsOrder, false) return err } @@ -114,10 +114,10 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD if err = c.updateAfsOrderOtherInfo(db, afsOrder); err != nil { return err } - 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) } @@ -172,30 +172,30 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD } else { globals.SugarLogger.Warnf("On SaveAfsOrder afsOrder.AfsOrderID:%s err: afsOrder have no sku", afsOrder.AfsOrderID) } - dao.Commit(db) + dao.Commit(db, txDB) return err } func (c *OrderManager) OnAfsOrderStatusChanged(orderStatus *model.OrderStatus) (err error) { db := dao.GetDB() c.setAfsOrderID(db, orderStatus) - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() isDuplicated, afsOrder, err := c.addAfsOrderStatus(db, orderStatus) if err != nil || isDuplicated { if err == nil { - dao.Commit(db) + dao.Commit(db, txDB) } else { - dao.Rollback(db) + dao.Rollback(db, txDB) } return err } - dao.Commit(db) + dao.Commit(db, txDB) scheduler.CurrentScheduler.OnAfsOrderStatusChanged(afsOrder, orderStatus, false) return err } diff --git a/business/jxcallback/orderman/orderman.go b/business/jxcallback/orderman/orderman.go index b9233ee95..83928bda3 100644 --- a/business/jxcallback/orderman/orderman.go +++ b/business/jxcallback/orderman/orderman.go @@ -70,11 +70,11 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db *dao.DaoDB) (isDuplic } else { globals.SugarLogger.Debugf("addOrderStatus afsOrder:%v", status) } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil || err != nil { globals.SugarLogger.Debug("rollback") - dao.Rollback(db) + dao.Rollback(db, txDB) if r != nil { panic(r) } @@ -98,7 +98,7 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db *dao.DaoDB) (isDuplic // todo 这里居然会有主键重复错误,逻辑上是不应该的 globals.SugarLogger.Warnf("addOrderOrWaybillStatus status:%v, access db error:%v", status, err) } else { - dao.Commit(db) + dao.Commit(db, txDB) } return isDuplicated, err } diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 2ff90a66f..437e7dc39 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -24,7 +24,7 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api/apimanager" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) const ( @@ -570,10 +570,10 @@ func (c *OrderManager) GetWaybills(ctx *jxcontext.Context, fromDateStr, toDateSt sqlParams = append(sqlParams, pageSize, offset) var waybills []*tWaybillExt 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) } }() @@ -583,7 +583,7 @@ func (c *OrderManager) GetWaybills(ctx *jxcontext.Context, fromDateStr, toDateSt Data: waybills, } } - dao.Commit(db) + dao.Commit(db, txDB) return pagedInfo, err } @@ -703,10 +703,10 @@ func (c *OrderManager) GetOrdersFinancial(ctx *jxcontext.Context, fromDateStr, t var orders []*model.OrderFinancialExt 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) } }() @@ -716,7 +716,7 @@ func (c *OrderManager) GetOrdersFinancial(ctx *jxcontext.Context, fromDateStr, t Data: orders, } } - dao.Commit(db) + dao.Commit(db, txDB) return pagedInfo, err } @@ -1020,10 +1020,10 @@ func (c *OrderManager) GetAfsOrders(ctx *jxcontext.Context, keyword, afsOrderID, var orders []*model.AfsOrder db := dao.GetDB() - 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) } @@ -1034,7 +1034,7 @@ func (c *OrderManager) GetAfsOrders(ctx *jxcontext.Context, keyword, afsOrderID, TotalCount: dao.GetLastTotalRowCount(db), Data: orders, } - dao.Commit(db) + dao.Commit(db, txDB) } return pagedInfo, err } diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index 0a2b88841..fe8c9dce9 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -15,7 +15,7 @@ import ( "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) var ( @@ -107,10 +107,10 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { } bill.CourierMobile = jxutils.FormalizeMobile(bill.CourierMobile) 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) } }() @@ -133,21 +133,21 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { billCopy := *bill billCopy.Status = model.WaybillStatusNew if isDuplicated, err = w.onWaybillNew(&billCopy, db); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } - dao.Commit(db) + dao.Commit(db, txDB) // 进运单调度器OnWaybillStatusChanged之前要确保事务是提交了的,否则会导致死锁 scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false) dao.Begin(db) } else { - dao.Rollback(db) + dao.Rollback(db, txDB) return err2 } } // 运单消息错序,之前已经结束了,直接返回 if existingBill.Status >= model.WaybillStatusEndBegin { - dao.Commit(db) + dao.Commit(db, txDB) return nil } } @@ -171,17 +171,17 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { } duplicatedCount, err = w.addWaybillStatus(bill, db, addParams) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } if err == nil { - dao.Commit(db) + dao.Commit(db, txDB) if duplicatedCount == 0 { scheduler.CurrentScheduler.OnWaybillStatusChanged(bill, false) } } else { - dao.Rollback(db) + dao.Rollback(db, txDB) } if bill.VendorOrderID == bill.VendorWaybillID { if status, ok := waybillOrderStatusMap[bill.Status]; ok { diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index ab44a6a1c..c91f455c0 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -35,7 +35,7 @@ import ( "git.rosy.net.cn/jx-callback/business/model/legacymodel" "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" ) const ( diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index fcc73bd64..7b99c6d1b 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -317,10 +317,10 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac } func addActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList []*model.ActStoreSku, actStoreSkuMapList []*model.ActStoreSkuMap) (err error) { - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -332,7 +332,7 @@ func addActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList [ } err = dao.CreateEntity(db, v) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } storeSkuMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] = v.ID @@ -344,11 +344,11 @@ func addActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList [ if len(actStoreSkuMapList) > 0 { err = dao.CreateMultiEntities(db, actStoreSkuMapList) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -395,10 +395,10 @@ func AddActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actSto if err != nil { return err } - 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) } @@ -419,7 +419,7 @@ func AddActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actSto } } } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -565,37 +565,37 @@ func CreateAct(ctx *jxcontext.Context, act *model.Act, vendorIDs []int, vendorOr // TODO // 事务应该从ActStoreSkuParam2Model之后开始 // 创建Act也应该往后放 - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() dao.WrapAddIDCULDEntity(act, ctx.GetUserName()) err = dao.CreateEntity(db, act) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } validVendorIDs, actStoreSkuList, actStoreSkuMapList, conflictActStoreSku, err := ActStoreSkuParam2Model(ctx, db, act, vendorIDs, actStoreSku) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } if len(validVendorIDs) == 0 { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", fmt.Errorf("没有一个合法平台可以创建活动") } var neeSyncActIDs []int if len(conflictActStoreSku) > 0 { if act.OverlapRule == model.OverlapRuleNormal { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", jsonerr.New(conflictActStoreSku, model.ErrCodeJsonActSkuConflict) } if neeSyncActIDs, err = DeleteActStoreSkuList(ctx, db, conflictActStoreSku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } } @@ -615,15 +615,15 @@ func CreateAct(ctx *jxcontext.Context, act *model.Act, vendorIDs []int, vendorOr } err = dao.CreateMultiEntities(db, actMapList) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } if err = addActStoreSkuBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } - dao.Commit(db) + dao.Commit(db, txDB) neeSyncActIDs = append(neeSyncActIDs, act.ID) task := tasksch.NewParallelTask(fmt.Sprintf("处理活动创建%d", act.ID), tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx, @@ -722,10 +722,10 @@ func createActFromVendor(ctx *jxcontext.Context, db *dao.DaoDB, act2 *model.Act2 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) } }() @@ -734,26 +734,26 @@ func createActFromVendor(ctx *jxcontext.Context, db *dao.DaoDB, act2 *model.Act2 dao.WrapAddIDCULDEntity(act, ctx.GetUserName()) err = dao.CreateEntity(db, act) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } actMap.ActID = act.ID err = dao.CreateEntity(db, actMap) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } actStoreSkuList, actStoreSkuMapList, err := vendorActInfo2Model(ctx, db, act2, actStoreSku) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if err = addActStoreSkuBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } - dao.Commit(db) + dao.Commit(db, txDB) return act.ID, nil } @@ -838,10 +838,10 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act return 0, fmt.Errorf("当前活动状态:%s,不能进行此操作,或已过期", model.ActStatusName[act.Status]) } - 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) } @@ -929,7 +929,7 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act // } // } } - dao.Commit(db) + dao.Commit(db, txDB) return originSyncStatus, err } @@ -1069,10 +1069,10 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T needAddActSkuMap[actStoreSku.VendorActID] = append(needAddActSkuMap[actStoreSku.VendorActID], actStoreSku) } - 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) } @@ -1091,7 +1091,7 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T // return nil, err // } // } - dao.Commit(db) + dao.Commit(db, txDB) } return retVal, err }, vendorIDs) @@ -1308,10 +1308,10 @@ func ForceUpdateVendorPrice(ctx *jxcontext.Context, vendorID int, actType int, s } func SyncActStoreSku2StoreSkuAct(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch.ITask, act *model.Act2) (err error) { - 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) } @@ -1392,7 +1392,7 @@ func SyncActStoreSku2StoreSkuAct(ctx *jxcontext.Context, db *dao.DaoDB, parentTa return err } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -1589,10 +1589,10 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) { continue } actualStockOut, err = dao.GetOrderStoreSkusCount(db, actStoreSkuMap.StoreID, actStoreSkuMap.SkuID, time.Now().Add(-time.Minute*10), time.Now()) - 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) } @@ -1621,7 +1621,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) { if stock != -1 { storeSku.Stock = stock if _, err = dao.UpdateEntity(db, storeSku, "Stock"); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } } } @@ -1629,7 +1629,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) { actStoreSkuMap.ActualActPrice = actStoreSkuMap.VendorPrice } // if _, err = dao.UpdateEntity(db, actStoreSkuMap, "ActualActPrice"); err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) // } //C >= 2N 涨价趋势,最高涨价到无折扣 if actualStockOut >= 2*shouldStockOut { @@ -1647,7 +1647,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) { } actStoreSkuMap.TrendPrice = int(actualPrice) if _, err = dao.UpdateEntity(db, actStoreSkuMap, "ActualActPrice", "TrendType", "TrendPrice"); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } } else { //第二档时间内 pricePercentage = 0.1 @@ -1665,7 +1665,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) { } actStoreSkuMap.TrendPrice = int(actualPrice) // if _, err = dao.UpdateEntity(db, actStoreSkuMap, "TrendType", "TrendPrcie"); err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) // } actStoreSkuMap.ActualActPrice = actStoreSkuMap.ActualActPrice - actualPrice if actStoreSkuMap.ActualActPrice <= minJxPrice { @@ -1675,24 +1675,24 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) { if stock != -1 { storeSku.Stock = stock if _, err = dao.UpdateEntity(db, storeSku, "Stock"); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } } //22:00 恢复库存为100,价格恢复原价 if time.Now().Hour() == 22 && time.Now().Minute() < 1 { storeSku.Stock = 100 if _, err = dao.UpdateEntity(db, storeSku, "Stock"); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } actStoreSkuMap.ActualActPrice = actStoreSkuMap.VendorPrice actStoreSkuMap.TrendType = model.TrendTypeNothing actStoreSkuMap.TrendPrice = 0 } if _, err = dao.UpdateEntity(db, actStoreSkuMap, "ActualActPrice", "TrendType", "TrendPrice"); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } } - dao.Commit(db) + dao.Commit(db, txDB) } } } diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 3b5d5d5e0..346ec7d10 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -495,32 +495,32 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (hint s hint = "1" 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) } }() configList, err := dao.QueryConfigs(db, key, configType, "") if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } if _, err = dao.UpdateEntityLogically(db, configList[0], map[string]interface{}{ "Value": value, }, ctx.GetUserName(), nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } switch configType { case model.ConfigTypePricePack: storeMapList, err := dao.GetStoresMapList(db, nil, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, key, "", "") if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } - dao.Commit(db) + dao.Commit(db, txDB) vendorStoreMap := make(map[int][]int) for _, v := range storeMapList { vendorStoreMap[v.VendorID] = append(vendorStoreMap[v.VendorID], v.StoreID) @@ -533,7 +533,7 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (hint s } } case model.ConfigTypeFreightPack: - dao.Commit(db) + dao.Commit(db, txDB) storeMapList, err := dao.GetStoresMapList(db, nil, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, "", "", "") if err != nil { return "", err @@ -559,7 +559,7 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (hint s } } default: - dao.Commit(db) + dao.Commit(db, txDB) } if configType == model.ConfigTypeSys && err == nil { err = onSysConfigChanged(key, value) diff --git a/business/jxstore/cms/message.go b/business/jxstore/cms/message.go index 6d04f3f72..57d0b5f82 100644 --- a/business/jxstore/cms/message.go +++ b/business/jxstore/cms/message.go @@ -65,8 +65,8 @@ func GetStoreMessages(ctx *jxcontext.Context, msgIDs, storeIDs, types []int, fro pageSize = jxutils.FormalizePageSize(pageSize) sqlParams = append(sqlParams, pageSize, offset) db := dao.GetDB() - dao.Begin(db) - defer dao.Commit(db) + txDB , _ := dao.Begin(db) + defer dao.Commit(db, txDB) var msgList []*model.Message // globals.SugarLogger.Debug(sql) if err = dao.GetRows(db, &msgList, sql, sqlParams...); err == nil { @@ -124,8 +124,8 @@ func GetStoreMessageStatuses(ctx *jxcontext.Context, msgIDs, storeIDs, confirmSt sql += " LIMIT ? OFFSET ?" sqlParams = append(sqlParams, jxutils.FormalizePageSize(pageSize), offset) db := dao.GetDB() - dao.Begin(db) - defer dao.Commit(db) + txDB , _ := dao.Begin(db) + defer dao.Commit(db, txDB) var msgStatusList []*MessageStatusExt // globals.SugarLogger.Debug(sql) // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 3dde88d2b..7a54afa7a 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -169,24 +169,24 @@ func AddCategory(ctx *jxcontext.Context, cat *model.SkuCategory, userName string } cat.Seq = maxSeq.MaxSeq + 1 } - 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.CreateEntity(db, cat); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } if cat.IsExdSpec == model.NO { if err = OnCreateThing(ctx, db, nil, int64(cat.ID), model.ThingTypeCategory, model.SyncFlagNewMask, false); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } - dao.Commit(db) + dao.Commit(db, txDB) outCat = cat _, err = CurVendorSync.SyncCategory(ctx, nil, cat.ID, false, userName) @@ -230,24 +230,24 @@ func UpdateCategory(ctx *jxcontext.Context, categoryID int, payload map[string]i } } - 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.UpdateEntityLogically(db, cat, valid, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if cat.IsExdSpec == model.NO { if err = OnUpdateThing(ctx, db, nil, int64(categoryID), model.ThingTypeCategory); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } - dao.Commit(db) + dao.Commit(db, txDB) SetStoreCategorySyncStatus2(db, nil, []int{categoryID}, model.SyncFlagModifiedMask) var skuIDs []int @@ -326,16 +326,16 @@ func ReorderCategories(ctx *jxcontext.Context, parentID int, categoryIDs []int, catsMap[cat.ID] = cat } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() for k, v := range categoryIDs { if catsMap[v] == nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return fmt.Errorf("分类:%d不在%d分类下", v, parentID) } if isExd { @@ -345,17 +345,17 @@ func ReorderCategories(ctx *jxcontext.Context, parentID int, categoryIDs []int, } catsMap[v].LastOperator = ctx.GetUserName() if _, err = dao.UpdateEntity(db, catsMap[v]); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } if catsMap[v].IsExdSpec == model.NO { if err = OnUpdateThing(ctx, db, nil, int64(catsMap[v].ID), model.ThingTypeCategory); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } } - dao.Commit(db) + dao.Commit(db, txDB) SetStoreCategorySyncStatus2(db, nil, categoryIDs, model.SyncFlagModifiedMask) if err == nil { _, err = CurVendorSync.SyncReorderCategories(ctx, db, parentID, false, userName) @@ -390,29 +390,29 @@ func DeleteCategory(ctx *jxcontext.Context, categoryID int, userName string) (nu } else if countInfos[2].Ct != 0 { return 0, errors.New("还有商品类别使用此类别,不能删除") } - 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 = DeleteCategoryMap(ctx, db, categoryID); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if err = OnDeleteThing(ctx, db, nil, int64(categoryID), model.ThingTypeCategory); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if num, err = dao.DeleteEntityLogically(db, cat, map[string]interface{}{ // model.FieldJdSyncStatus: model.SyncFlagDeletedMask, model.FieldStatus: 0, }, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } - dao.Commit(db) + dao.Commit(db, txDB) _, err = CurVendorSync.SyncCategory(ctx, db, cat.ID, false, userName) } return num, err @@ -636,23 +636,23 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric offset = jxutils.FormalizePageOffset(offset) sqlParams = append(sqlParams, pageSize, offset) skuNamesInfo = &SkuNamesInfo{} - dao.Begin(db) // todo 这里用事务的原因是,SQL_CALC_FOUND_ROWS会出错 + txDB , _ := dao.Begin(db) // todo 这里用事务的原因是,SQL_CALC_FOUND_ROWS会出错 defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil { skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db) - dao.Commit(db) + dao.Commit(db, txDB) // var skuIDs []int for _, skuName := range skuNamesInfo.SkuNames { skuName.FullName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, "", "", 0, "", 0, skuName.ExPrefix, skuName.ExPrefixBegin, skuName.ExPrefixEnd) // if skuName.SkusStr != "" { // if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) // return nil, err // } // for _, v := range skuName.Skus { @@ -661,7 +661,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric // } // if skuName.PlacesStr != "" { // if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) // return nil, err // } // } @@ -732,7 +732,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric } } } else { - dao.Rollback(db) + dao.Rollback(db, txDB) } return skuNamesInfo, err } @@ -857,20 +857,20 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s } } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() dao.WrapAddIDCULDEntity(&skuNameExt.SkuName, userName) if err = dao.CreateEntity(db, &skuNameExt.SkuName); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } if err = OnCreateThing(ctx, db, nil, int64(skuNameExt.SkuName.ID), model.ThingTypeSkuName, model.SyncFlagNewMask, false); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } for _, v := range skuNameExt.Skus { @@ -884,12 +884,12 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s } sku.LadderBoxNum = 1 if err = dao.CreateEntity(db, sku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } if sku.EclpID == "" { if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0, false); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } @@ -900,11 +900,11 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s placeBind.NameID = skuNameExt.ID placeBind.PlaceCode = placeCode if err = dao.CreateEntity(db, placeBind); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } - dao.Commit(db) + dao.Commit(db, txDB) tmpInfo, err := GetSkuNames(ctx, "", false, false, utils.Params2Map("nameID", skuNameExt.SkuName.ID), 0, 1) if err != nil { @@ -978,28 +978,28 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf if payload["eclpID"] != nil { eclpID = payload["eclpID"].(string) } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() // valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask | skuName.JdSyncStatus if num, err = dao.UpdateEntityLogically(db, skuName, valid, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if !isExd && eclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } if utils.Interface2Int64WithDefault(payload["isGlobal"], 0) == 0 && payload["places"] != nil { if places, ok := payload["places"].([]interface{}); ok { if _, err = dao.DeleteSkuNamePlace(db, nameID, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } for _, placeCode := range places { @@ -1010,7 +1010,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf placeBind.NameID = nameID err = dao.CreateEntity(db, placeBind) } else { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, errors.New("地点代码非法") } } @@ -1024,12 +1024,12 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf sku.LastOperator = userName sku.UpdatedAt = time.Now() if _, err = dao.UpdateEntity(db, sku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if sku.ExdSkuID == "" && sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } @@ -1037,22 +1037,22 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID}) if err = err2; err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if len(skuIDs) > 0 { if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if valid["jdsStockSwitch"] != nil { if _, err = SetStoreSkuSyncStatus2(db, []int{model.JdShopMainStoreID}, []int{model.VendorIDJDShop}, skuIDs, model.SyncFlagSaleMask); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } } - dao.Commit(db) + dao.Commit(db, txDB) errList := errlist.New() errList.AddErr(err) @@ -1144,20 +1144,20 @@ func SetStoreSkuSyncStatus2(db *dao.DaoDB, storeIDs []int, vendorIDs, skuIDs []i func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int64, err error) { 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) } }() if _, err := dao.DeleteSkuNamePlace(db, nameID, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if _, err = DeleteStoreSku(ctx, db, nameID, 0); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } @@ -1166,21 +1166,21 @@ func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int for _, v := range skuList { sku := &v.Sku if err = OnDeleteThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if _, err = dao.DeleteEntityLogically(db, sku, map[string]interface{}{ // model.FieldJdSyncStatus: model.SyncFlagDeletedMask, model.FieldStatus: model.SkuStatusDeleted, }, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } } if err = OnDeleteThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } @@ -1190,10 +1190,10 @@ func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int // model.FieldJdSyncStatus: model.SyncFlagDeletedMask, model.FieldStatus: model.SkuStatusDeleted, }, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } - dao.Commit(db) + dao.Commit(db, txDB) if len(skuList) > 0 { _, err = CurVendorSync.SyncSku(ctx, db, skuName.ID, -1, false, false, userName) @@ -1223,22 +1223,22 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string) sku.LadderBoxPrice = 10 } sku.LadderBoxNum = 1 - 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.CreateEntity(db, sku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0, false); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } - dao.Commit(db) + dao.Commit(db, txDB) result, err2 := GetSkuNames(ctx, "", false, false, utils.Params2Map("skuID", sku.ID), 0, 0) if err = err2; err == nil { @@ -1292,10 +1292,10 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} valid := dao.StrictMakeMapByStructObject(payload, sku, userName) if len(valid) > 0 { // globals.SugarLogger.Debug(utils.Format4Output(valid, false)) - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -1305,7 +1305,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} } // valid[model.FieldJdSyncStatus] = maskValue | sku.JdSyncStatus if num, err = dao.UpdateEntityLogically(db, sku, valid, userName, nil); err != nil || num == 0 { - dao.Rollback(db) + dao.Rollback(db, txDB) if err == nil { err = ErrEntityNotExist } @@ -1318,7 +1318,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} t1.spec_unit = t2.spec_unit WHERE t1.deleted_at = ? AND t2.id = ? AND t1.unit <> ? `, utils.DefaultTimeValue, skuID, model.SpecialUnit); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) if err == nil { err = ErrEntityNotExist } @@ -1326,11 +1326,11 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} } if sku.ExdSkuID == "" && sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } - dao.Commit(db) + dao.Commit(db, txDB) if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagModifiedMask); err == nil { if maskValue&model.SyncFlagSpecMask != 0 { @@ -1372,17 +1372,17 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err storeSku.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(storeSku.Price)) storeSku.LastOperator = ctx.GetUserName() storeSku.UpdatedAt = time.Now() - 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) } } }() dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice", "LastOperator") - dao.Commit(db) + dao.Commit(db, txDB) return retVal, err }, list) tasksch.HandleTask(task, nil, true).Run() @@ -1392,20 +1392,20 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err func DeleteSku(ctx *jxcontext.Context, skuID int, userName string) (num int64, err error) { 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) } }() if _, err = DeleteStoreSku(ctx, db, 0, skuID); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if err = OnDeleteThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } sku := &model.Sku{} @@ -1414,10 +1414,10 @@ func DeleteSku(ctx *jxcontext.Context, skuID int, userName string) (num int64, e model.FieldStatus: model.SkuStatusDeleted, // model.FieldJdSyncStatus: model.SyncFlagDeletedMask, }, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } - dao.Commit(db) + dao.Commit(db, txDB) if num == 1 { _, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, false, userName) } @@ -1474,22 +1474,22 @@ func AddSkuNamePlace(ctx *jxcontext.Context, nameID, placeCode int, userName str } dao.WrapAddIDCULEntity(placeBind, userName) - 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.CreateEntity(db, placeBind); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } - dao.Commit(db) + dao.Commit(db, txDB) _, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName) return placeBind, err @@ -1501,25 +1501,25 @@ func DeleteSkuNamePlace(ctx *jxcontext.Context, nameID, placeCode int, userName placeBind.NameID = nameID placeBind.PlaceCode = placeCode - 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.DeleteEntity(db, placeBind, model.FieldNameID, model.FieldPlaceCode); err != nil || num == 0 { - dao.Rollback(db) + dao.Rollback(db, txDB) if err == nil { err = ErrEntityNotExist } return 0, err } if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } - dao.Commit(db) + dao.Commit(db, txDB) _, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName) return num, err @@ -1550,10 +1550,10 @@ func SortCategorySkus(ctx *jxcontext.Context, catID int, skuIDList []int) (err e } } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -1572,13 +1572,13 @@ func SortCategorySkus(ctx *jxcontext.Context, catID int, skuIDList []int) (err e //_, err = CurVendorSync.SyncSkus(ctx, db, nameIDList, []int{}, false, false, userName) if err == nil && len(nameIDList) > 0 { - dao.Commit(db) + dao.Commit(db, txDB) skuIDs, err2 := dao.GetSkuIDByNames(db, nameIDList) if err = err2; err == nil && len(skuIDs) > 0 { _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask) } } else { - dao.Rollback(db) + dao.Rollback(db, txDB) } } return err @@ -1718,15 +1718,15 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, imgWaterMark skuName.ID = nameID skuName.LastOperator = ctx.GetLoginID() skuName.UpdatedAt = time.Now() - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() _, err = dao.UpdateEntity(db, skuName, "ImgWatermark", "ExVendorID", "ExPrefix", "ExPrefixBegin", "ExPrefixEnd", "LastOperator", "UpdatedAt") - dao.Commit(db) + dao.Commit(db, txDB) } } } @@ -2689,25 +2689,25 @@ func AddVendorCategoryMap(ctx *jxcontext.Context, vendorCategoryMap *model.Vendo vendorOrgCodes, _ := dao.GetVendorOrgCode(db, vendorCategoryMap.VendorID, vendorCategoryMap.VendorOrgCode, model.VendorOrgTypePlatform) vendorCategoryMap.VendorCategoryName = strings.Trim(vendorCategoryMap.VendorCategoryName, " ") dao.WrapAddIDCULDEntity(vendorCategoryMap, ctx.GetUserName()) - 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.CreateEntity(db, vendorCategoryMap); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } //如果传了京西绑定,要去thingmap里改同步标志 if vendorCategoryMap.CategoryID != 0 { if err = OnCreateThing(ctx, db, vendorOrgCodes, int64(vendorCategoryMap.CategoryID), model.ThingTypeCategory, model.SyncFlagNewMask, true); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } - dao.Commit(db) + dao.Commit(db, txDB) result = vendorCategoryMap if vendorCategoryMap.CategoryID != 0 { SyncCategories(ctx, nil, []int{vendorCategoryMap.VendorID}, []string{vendorCategoryMap.VendorOrgCode}, []int{vendorCategoryMap.CategoryID}, true) @@ -2800,22 +2800,22 @@ func UpdateVendorCategoryMap(ctx *jxcontext.Context, ID int, vendorCategoryMap * } } vendorOrgCodes, err := dao.GetVendorOrgCode(db, vendorCategoryMap2.VendorID, vendorCategoryMap2.VendorOrgCode, model.VendorOrgTypePlatform) - 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.UpdateEntityLogically(db, vendorCategoryMap2, valid, ctx.GetUserName(), nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if err = OnUpdateThing(ctx, db, vendorOrgCodes, int64(vendorCategoryID), model.ThingTypeCategory); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } - dao.Commit(db) + dao.Commit(db, txDB) SyncCategories(ctx, nil, []int{vendorCategoryMap.VendorID}, []string{vendorCategoryMap.VendorOrgCode}, []int{vendorCategoryID}, true) return num, err } @@ -2834,26 +2834,26 @@ func ReorderVendorCategories(ctx *jxcontext.Context, parentID, vendorID int, ven for _, cat := range vendorCatsMap { catsMap[cat.CategoryID] = cat } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() for k, v := range categoryIDs { if catsMap[v] == nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return fmt.Errorf("分类:%d不在%d分类下", v, parentID) } catsMap[v].VendorCategorySeq = k catsMap[v].LastOperator = ctx.GetUserName() if _, err = dao.UpdateEntity(db, catsMap[v]); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } - dao.Commit(db) + dao.Commit(db, txDB) err = SyncReorderCategories2(ctx, parentID, vendorID, vendorOrgCode) return err } @@ -2871,10 +2871,10 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven if vendorCatMap, _ := dao.GetVendorCategoryMap(db, -1, 0, vendorID, vendorOrgCode, 0); len(vendorCatMap) > 0 { return fmt.Errorf("该账号下已有分类,请在这里修改!") } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -2885,7 +2885,7 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven vendorID, vendorOrgCode, } if _, err = dao.ExecuteSQL(db, sql, sqlParams); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } sql2 := ` @@ -2903,10 +2903,10 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven storeID, } if _, err = dao.ExecuteSQL(db, sql2, sqlParams2); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } - dao.Commit(db) + dao.Commit(db, txDB) catList, _ := dao.GetSkuCategoryWithVendor(db, []int{vendorID}, []string{vendorOrgCode}, -1, nil, false) for _, v := range storeCats { if len(catList) > 0 { diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 2b2e6b077..c519209d0 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -962,9 +962,9 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa mapBefore := refutil.FindMapAndStructMixed(valid, beforStore) err = AddEventDetail(db, ctx, model.OperateUpdate, storeID, model.ThingTypeStore, storeID, BuildDiffData(mapBefore), BuildDiffData(valid)) } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { - dao.Rollback(db) + dao.Rollback(db, txDB) }() if num, err = dao.UpdateEntityLogically(db, store, valid, userName, nil); err == nil && num == 1 { if isUpdateStoreNeedSync(valid) { @@ -979,7 +979,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa model.FieldStoreID: store.ID, }, model.FieldSyncStatus, syncStatus) if err = err2; err == nil { - dao.Commit(db) + dao.Commit(db, txDB) globals.SugarLogger.Debugf("UpdateStore track:%s, before call SyncStore", ctx.GetTrackInfo()) _, err = CurVendorSync.SyncStore(ctx, db, -1, store.ID, false, userName) if valid["tel1"] != nil || valid["tel2"] != nil { @@ -990,7 +990,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa } } } else { - dao.Commit(db) + dao.Commit(db, txDB) } notifyStoreOperatorChanged(store.ID, "京东运营", store.OperatorPhone, valid["operatorPhone"]) notifyStoreOperatorChanged(store.ID, "美团运营", store.OperatorPhone2, valid["operatorPhone2"]) @@ -1262,18 +1262,18 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend if db == nil { 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) } }() if err = dao.CreateEntity(db, storeMap); err == nil { - dao.Commit(db) + dao.Commit(db, txDB) outStoreMap = storeMap } else { - dao.Rollback(db) + dao.Rollback(db, txDB) } } } @@ -1408,10 +1408,10 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor if err == nil { // globals.SugarLogger.Debug(utils.Format4Output(valid, false)) 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) } }() @@ -1427,7 +1427,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor }) } if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } if num > 0 { @@ -1441,7 +1441,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, storeSkuBind, nil, userName, map[string]interface{}{ model.FieldStoreID: storeID, }, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.SyncFlagPriceMask); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } @@ -1451,7 +1451,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor } } } - dao.Commit(db) + dao.Commit(db, txDB) if isStoreMapNeedSync(vendorID, valid) { _, err = CurVendorSync.SyncStore(ctx, db, vendorID, storeID, false, userName) } @@ -1485,8 +1485,8 @@ func DeleteStore(ctx *jxcontext.Context, storeID int) (num int64, err error) { return 0, fmt.Errorf("删除京西门店前必须将所有门店解绑且门店处于关店状态") } - dao.Begin(db) - defer dao.Rollback(db) + txDB , _ := dao.Begin(db) + defer dao.Rollback(db, txDB) now := time.Now() for _, tableName := range []string{"store_sku_bind", "store_sku_category_map", "store_op_request"} { @@ -1509,7 +1509,7 @@ func DeleteStore(ctx *jxcontext.Context, storeID int) (num int64, err error) { err = AddEventDetail(db, ctx, model.OperateDelete, storeID, model.ThingTypeStore, storeID, "", "") } DeleteStoreCategroies(ctx, db, storeID) - dao.Commit(db) + dao.Commit(db, txDB) return num, err // return 0, errors.New("暂不支持删除京西门店") } @@ -1599,9 +1599,9 @@ func TmpGetJxBadCommentsByStoreId(ctx *jxcontext.Context, keyword string, storeI sql += " LIMIT ? OFFSET ?" sqlParams = append(sqlParams, pageSize, offset) var commentList []*JxBadCommentsExt - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { - dao.Rollback(db) + dao.Rollback(db, txDB) }() // globals.SugarLogger.Debug(sql) // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) @@ -1610,7 +1610,7 @@ func TmpGetJxBadCommentsByStoreId(ctx *jxcontext.Context, keyword string, storeI "total": dao.GetLastTotalRowCount(db), "list": commentList, } - dao.Commit(db) + dao.Commit(db, txDB) } return retVal, err } @@ -2110,10 +2110,10 @@ func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.V for _, v := range curSnapshotList { snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)] = v } - 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) } @@ -2130,7 +2130,7 @@ func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.V } } } - dao.Commit(db) + dao.Commit(db, txDB) utils.CallFuncAsync(func() { for _, v := range storeMapList { @@ -2147,10 +2147,10 @@ func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.V } func SaveStoresVendorSnapshot(db *dao.DaoDB, snapshotAt time.Time, curSnapshotList []*model.VendorStoreSnapshot) (err error) { - 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) } @@ -2167,7 +2167,7 @@ func SaveStoresVendorSnapshot(db *dao.DaoDB, snapshotAt time.Time, curSnapshotLi return err } } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -2881,10 +2881,10 @@ func CreateStorePriceScore(ctx *jxcontext.Context) (err error) { snapshotAt = utils.Time2Date(time.Now().AddDate(0, 0, -1)) storePriceScoreSnapshot, err := dao.GetStorePriceScoreSnapshot(db, snapshotAt) if len(storePriceScoreSnapshot) > 0 { - 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) } @@ -2901,7 +2901,7 @@ func CreateStorePriceScore(ctx *jxcontext.Context) (err error) { return err } } - dao.Commit(db) + dao.Commit(db, txDB) globals.SugarLogger.Debugf("CreateStorePriceScore") } return err @@ -2911,10 +2911,10 @@ func RefreshJdLevel(ctx *jxcontext.Context) (err error) { db := dao.GetDB() storeMapList, err := dao.GetStoresMapList(db, []int{model.VendorIDJD}, nil, nil, model.StoreStatusOpened, -1, "", "", "") if len(storeMapList) > 0 { - 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) } @@ -2946,7 +2946,7 @@ func RefreshJdLevel(ctx *jxcontext.Context) (err error) { }, storeMapList) tasksch.HandleTask(task, nil, true).Run() _, err = task.GetResult(0) - dao.Commit(db) + dao.Commit(db, txDB) } return err } @@ -3201,18 +3201,18 @@ func AddStoreCategoryMap(ctx *jxcontext.Context, storeCategoryMap *model.StoreCa } storeCategoryMap.StoreCategoryName = strings.Trim(storeCategoryMap.StoreCategoryName, " ") dao.WrapAddIDCULDEntity(storeCategoryMap, ctx.GetUserName()) - 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.CreateEntity(db, storeCategoryMap); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } - dao.Commit(db) + dao.Commit(db, txDB) result = storeCategoryMap if storeCategoryMap.CategoryID != 0 { SetStoreCategorySyncStatus2(db, []int{storeCategoryMap.StoreID}, []int{storeCategoryMap.CategoryID}, model.SyncFlagModifiedMask) @@ -3311,18 +3311,18 @@ func UpdateStoreCategoryMap(ctx *jxcontext.Context, ID int, storeCategoryMap *mo } else { SetStoreCategorySyncStatus2(db, []int{storeCategoryMap2.StoreID}, []int{storeCategoryMap.CategoryID, storeCategoryMap2.CategoryID}, model.SyncFlagModifiedMask) } - 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.UpdateEntityLogically(db, storeCategoryMap2, valid, ctx.GetUserName(), nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } - dao.Commit(db) + dao.Commit(db, txDB) return num, err } @@ -3340,26 +3340,26 @@ func ReorderStoreCategories(ctx *jxcontext.Context, parentID, storeID int, categ for _, cat := range storeCatsMap { catsMap[cat.CategoryID] = cat } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() for k, v := range categoryIDs { if catsMap[v] == nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return fmt.Errorf("分类:%d不在%d分类下", v, parentID) } catsMap[v].StoreCategorySeq = k catsMap[v].LastOperator = ctx.GetUserName() if _, err = dao.UpdateEntity(db, catsMap[v]); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } - dao.Commit(db) + dao.Commit(db, txDB) SetStoreCategorySyncStatus2(db, nil, categoryIDs, model.SyncFlagModifiedMask) if err == nil { CurVendorSync.SyncStoresCategory(ctx, db, nil, nil, false, true, true) @@ -3396,10 +3396,10 @@ func CopyStoreCategories(ctx *jxcontext.Context, fromStoreID int, toStoreIDs, ca storeID := batchItemList[0].(int) //证明是要全复制 if len(categoryIDs) == 0 { - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -3423,7 +3423,7 @@ func CopyStoreCategories(ctx *jxcontext.Context, fromStoreID int, toStoreIDs, ca if _, err = dao.ExecuteSQL(db, sql2, sqlParams2); err != nil { return retVal, err } - dao.Commit(db) + dao.Commit(db, txDB) } else { for _, v := range categoryIDs { list, err := dao.GetStoreCategoryMap(db, -1, 0, storeID, v) @@ -3433,10 +3433,10 @@ func CopyStoreCategories(ctx *jxcontext.Context, fromStoreID int, toStoreIDs, ca if len(list) > 0 { return retVal, fmt.Errorf("该门店已有重复绑定的京西分类!storeID: %v,categroyID: %v", storeID, v) } else { - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -3453,7 +3453,7 @@ func CopyStoreCategories(ctx *jxcontext.Context, fromStoreID int, toStoreIDs, ca if _, err = dao.ExecuteSQL(db, sql2, sqlParams2); err != nil { return retVal, err } - dao.Commit(db) + dao.Commit(db, txDB) } } } @@ -3550,10 +3550,10 @@ func UpdateStorePricePack(ctx *jxcontext.Context, storeID, vendorID int, pricePa return fmt.Errorf("目前只允许扣点的门店修改调价包!") } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -3564,13 +3564,13 @@ func UpdateStorePricePack(ctx *jxcontext.Context, storeID, vendorID int, pricePa // _, err = UpdateConfig(ctx, pricePack, model.ConfigTypePricePack, string(realValue)) configList, err := dao.QueryConfigs(db, pricePack, model.ConfigTypePricePack, "") if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } if _, err = dao.UpdateEntityLogically(db, configList[0], map[string]interface{}{ "Value": string(realValue), }, ctx.GetUserName(), nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } else { @@ -3581,12 +3581,12 @@ func UpdateStorePricePack(ctx *jxcontext.Context, storeID, vendorID int, pricePa //4、同步相关 pricePack = pricePack + "_" + utils.Int2Str(storeID) + "_" + storeDetail.Name if err = AddConfig(ctx, pricePack, model.ConfigTypePricePack, value); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } storeMapList, err := dao.GetStoresMapList(db, []int{vendorID}, []int{storeID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "", "") if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } if len(storeMapList) > 0 { @@ -3594,10 +3594,10 @@ func UpdateStorePricePack(ctx *jxcontext.Context, storeID, vendorID int, pricePa dao.UpdateEntity(db, storeMapList[0], "PricePercentagePack") } } - dao.Commit(db) + dao.Commit(db, txDB) storeMapList, err := dao.GetStoresMapList(db, nil, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, pricePack, "", "") if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } vendorStoreMap := make(map[int][]int) @@ -3936,17 +3936,17 @@ func UpdateBrand(ctx *jxcontext.Context, payload map[string]interface{}, isDel b } else { valid := dao.StrictMakeMapByStructObject(payload, brand, 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 _, err = dao.UpdateEntityLogically(db, brand, valid, ctx.GetUserName(), nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return } - dao.Commit(db) + dao.Commit(db, txDB) }() } } diff --git a/business/jxstore/cms/store_acct.go b/business/jxstore/cms/store_acct.go index 9a5ed69ac..68f47b811 100644 --- a/business/jxstore/cms/store_acct.go +++ b/business/jxstore/cms/store_acct.go @@ -101,10 +101,10 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI storeAcct := &model.StoreAcct{ StoreID: storeID, } - 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) } @@ -114,7 +114,7 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI //新增门店账单 dao.WrapAddIDCULEntity(storeAcct, ctx.GetUserName()) if err = dao.CreateEntity(db, storeAcct); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } else { @@ -125,12 +125,12 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI storeAcct.AccountBalance -= price } if _, err = dao.UpdateEntity(db, storeAcct, "AccountBalance"); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } globals.SugarLogger.Debugf("UpdateStoreAcctBalance2 storeID: [%v] , balance :[%v] ,", storeID, storeAcct.AccountBalance) } - dao.Commit(db) + dao.Commit(db, txDB) return err } diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index c5e07e4c2..d2d4aa8b3 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -50,7 +50,7 @@ import ( "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals" "github.com/360EntSecGroup-Skylar/excelize" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) const ( @@ -369,8 +369,8 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b pageSize = jxutils.FormalizePageSize(pageSize) offset = jxutils.FormalizePageOffset(offset) sqlParams = append(sqlParams, pageSize, offset) - dao.Begin(db) - defer dao.Commit(db) + txDB , _ := dao.Begin(db) + defer dao.Commit(db, txDB) if err = dao.GetRows(db, &SkuNames, sql, sqlParams...); err == nil { skuNamesInfo = &dao.StoreSkuNamesInfo{ TotalCount: dao.GetLastTotalRowCount(db), @@ -715,10 +715,10 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str } sqlParamsPage := []interface{}{sqlPageSize, sqlOffset} - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -742,7 +742,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str var storeNameList []*tStoreNameBind beginTime := time.Now() if err = dao.GetRows(db, &storeNameList, sql2, sqlParams2...); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } globals.SugarLogger.Debugf("GetStoresSkusNew get result1:%v", time.Now().Sub(beginTime)) @@ -785,13 +785,13 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str var tmpList []*tGetStoresSkusInfo beginTime := time.Now() if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } if isBySku { skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db) } - dao.Commit(db) + dao.Commit(db, txDB) globals.SugarLogger.Debugf("GetStoresSkusNew get result2:%v", time.Now().Sub(beginTime)) storeNameMap := make(map[int64]*dao.StoreSkuNameExt) for _, v := range tmpList { @@ -1138,17 +1138,17 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk var num int64 skuIDMap := make(map[int]int) 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) // } // }() for _, storeID := range storeIDs { skuIDs, err2 := updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosMap[storeID], false, false) if err = err2; err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) return "", err } for _, v := range skuIDs { @@ -1156,7 +1156,7 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk } num += int64(len(skuIDs)) } - // dao.Commit(db) + // dao.Commit(db, txDB) isAsync = asyncStoreSkuOpFilter(ctx, isAsync) if num > 0 { skuIDs := jxutils.IntMap2List(skuIDMap) @@ -1258,10 +1258,10 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs needSyncIDMap := make(map[int]int) isSyncSkus := false var appCodeList []string - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -1349,7 +1349,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs unitPrice := 0 if skuBindInfo.UnitPrice != 0 { if skuBindInfo.UnitPrice > MaxSkuUnitPrice { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, fmt.Errorf("商品:%s价格:%s太夸张", allBinds[0].Name, jxutils.IntPrice2StandardCurrencyString(int64(skuBindInfo.UnitPrice))) } unitPrice = skuBindInfo.UnitPrice @@ -1410,7 +1410,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs dao.WrapAddIDCULDEntity(skuBind, userName) if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil { if err = dao.CreateEntity(db, skuBind); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } num = 1 @@ -1422,7 +1422,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs skuBind.MtwmID = deletedSku.MtwmID skuBind.EbaiID = deletedSku.EbaiID if num, err = dao.UpdateEntity(db, skuBind); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } @@ -1479,7 +1479,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs model.FieldYbSyncStatus: model.SyncFlagDeletedMask, model.FieldJdsSyncStatus: model.SyncFlagDeletedMask, }, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } //删除待审核商品信息 @@ -1487,7 +1487,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs if len(storeAudits) > 0 { storeAudits[0].DeletedAt = time.Now() if _, err = dao.UpdateEntity(db, storeAudits[0], "DeletedAt"); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } @@ -1611,7 +1611,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs skuBind.AutoSaleAt = utils.DefaultTimeValue } if num, err = dao.UpdateEntity(db, skuBind /*, utils.Map2KeySlice(updateFieldMap)...*/); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } @@ -1623,12 +1623,12 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs } } } else { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } } - dao.Commit(db) + dao.Commit(db, txDB) skuIDs := jxutils.IntMap2List(needSyncIDMap) if isSyncSkus { _, err = SyncSkus(ctx, nil, []int{model.VendorIDJD}, appCodeList, nil, skuIDs, true) @@ -1731,16 +1731,16 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind skuBindSkuInfosMap[v.SkuID] = v } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() storeSkuList, err := dao.GetStoresSkusInfo(db, []int{storeID}, jxutils.IntMap2List(skuIDMap)) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } autoSaleTime = formatAutoSaleTime(autoSaleTime) @@ -1782,7 +1782,7 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind } } if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } if num == 1 { @@ -1791,7 +1791,7 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind } } } - dao.Commit(db) + dao.Commit(db, txDB) needSyncSkus = jxutils.IntMap2List(needSyncIDMap) return needSyncSkus, err } @@ -1937,10 +1937,10 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co } break } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db,txDB) panic(r) } }() @@ -1987,7 +1987,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co num2, err2 := dao.ExecuteSQL(db, sqlDelete, sqlDeleteParams) if err = err2; err != nil { errList.AddErr(err) - dao.Rollback(db) + dao.Rollback(db, txDB) break } num += num2 @@ -2059,7 +2059,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co globals.SugarLogger.Debugf("CopyStoreSkus fromStoreID:%d, toStoreID:%d, trackInfo:%s num2:%d", fromStoreID, toStoreID, ctx.GetTrackInfo(), num2) if err = err2; err != nil { errList.AddErr(err) - dao.Rollback(db) + dao.Rollback(db, txDB) break } num += num2 @@ -2109,7 +2109,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co num2, err = dao.ExecuteSQL(db, sql, sqlParams) if err != nil { errList.AddErr(err) - dao.Rollback(db) + dao.Rollback(db, txDB) break } num += num2 @@ -2132,11 +2132,11 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co _, err = dao.ExecuteSQL(db, sql2, sqlParams2) if err != nil { errList.AddErr(err) - dao.Rollback(db) + dao.Rollback(db, txDB) break } globals.SugarLogger.Debugf("CopyStoreSkus fromStoreID:%d, toStoreID:%d, trackInfo:%s num3:%d", fromStoreID, toStoreID, ctx.GetTrackInfo(), num2) - dao.Commit(db) + dao.Commit(db, txDB) //同一商品若源门店的规格少于要复制到的门店,则在复制的门店里的其他规格的unitprice不会变, //导致复制的门店的商品unitprice不尽相同,这里先处理一下 @@ -2205,8 +2205,8 @@ func filterStorePriceChange(ctx *jxcontext.Context, storeIDs []int, skuBindInfos globals.SugarLogger.Debug("filterStorePriceChange") if globals.EnablePendingChange { db := dao.GetDB() - dao.Begin(db) - defer dao.Rollback(db) + txDB , _ := dao.Begin(db) + defer dao.Rollback(db, txDB) for _, storeID := range storeIDs { for _, skuBindInfo := range skuBindInfos { shouldPending, err2 := shouldPendingStorePriceChange(ctx, storeID, skuBindInfo) @@ -2310,7 +2310,7 @@ func filterStorePriceChange(ctx *jxcontext.Context, storeIDs []int, skuBindInfos } } } - dao.Commit(db) + dao.Commit(db, txDB) } return storeIDs, skuBindInfos, nil } @@ -2448,8 +2448,8 @@ func GetStoreOpRequests(ctx *jxcontext.Context, fromTime, toTime time.Time, keyw // globals.SugarLogger.Debug(sql) // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) var requestList []*StoreOpRequestInfo - dao.Begin(db) - defer dao.Commit(db) + txDB , _ := dao.Begin(db) + defer dao.Commit(db, txDB) if err = dao.GetRows(db, &requestList, sql, sqlParams...); err == nil { return &model.PagedInfo{ TotalCount: dao.GetLastTotalRowCount(db), @@ -2507,8 +2507,8 @@ func changeStoreOpStatus(ctx *jxcontext.Context, reqIDs []int, status int8, reje return err } db := dao.GetDB() - dao.Begin(db) - defer dao.Rollback(db) + txDB , _ := dao.Begin(db) + defer dao.Rollback(db, txDB) for _, reqID := range reqIDs { op := &model.StoreOpRequest{} op.Remark = rejectReason @@ -2524,7 +2524,7 @@ func changeStoreOpStatus(ctx *jxcontext.Context, reqIDs []int, status int8, reje return err } } - dao.Commit(db) + dao.Commit(db, txDB) } } return err @@ -2648,10 +2648,10 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i } case 2: if len(storeSkuList) > 0 { - 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) } @@ -2664,7 +2664,7 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i `+dao.GenQuestionMarks(len(storeIDs))+")", storeIDs); err == nil { if err = dao.CreateMultiEntities(db, storeSkuList); err == nil { hint = utils.Int2Str(len(storeSkuList)) - dao.Commit(db) + dao.Commit(db, txDB) } } } @@ -3262,10 +3262,10 @@ func WriteToExcelJx(task *tasksch.SeqTask, dataSuccess []DataSuccess, dataFailed func CreateOrUpdateStoreSkuNamePriceByExcel(db *dao.DaoDB, ctx *jxcontext.Context, storeSkuNamePriceList []*model.StoreSkuNamePrice, storeSkuNamePriceListOrg []*model.StoreSkuNamePrice) (err error) { storeSkuNamePriceMap := StoreSkuNamePriceList2Map(ctx, storeSkuNamePriceListOrg) - 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) } @@ -3281,7 +3281,7 @@ func CreateOrUpdateStoreSkuNamePriceByExcel(db *dao.DaoDB, ctx *jxcontext.Contex dao.CreateEntity(db, v) } } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -4821,15 +4821,15 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool) skuNameExt.DeletedAt = utils.DefaultTimeValue skuNameExt.CreatedAt = time.Now() skuNameExt.LastOperator = ctx.GetUserName() - 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.CreateEntity(db, &skuNameExt.SkuName); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return retVal, err } // skuNameExt.Skus[0].ID = v.ID @@ -4842,10 +4842,10 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool) skuNameExt.Skus[0].CreatedAt = time.Now() skuNameExt.Skus[0].LastOperator = ctx.GetUserName() if err = dao.CreateEntity(db, skuNameExt.Skus[0].Sku); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return retVal, err } - dao.Commit(db) + dao.Commit(db, txDB) focusC4Matters(ctx, db, v) } } @@ -4867,10 +4867,10 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool) if len(skuNames) > 0 { skuName = skuNames[0] } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -4882,7 +4882,7 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool) ` sqlParams := []interface{}{v.SpecQuality, v.SpecUnit, v.EclpID, ctx.GetUserName(), v.EclpID, utils.DefaultTimeValue} if _, err = dao.ExecuteSQL(db, sql, sqlParams); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return retVal, err } } @@ -4898,11 +4898,11 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool) sqlParams := []interface{}{skuName.Name, skuName.Img, skuName.Img2, skuName.DescImg, skuName.Unit, skuName.Price, ctx.GetUserName(), v.EclpID, utils.DefaultTimeValue} if _, err = dao.ExecuteSQL(db, sql, sqlParams); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return retVal, err } } - dao.Commit(db) + dao.Commit(db, txDB) focusC4Matters(ctx, db, v) } } @@ -5433,10 +5433,10 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act return 0, fmt.Errorf("当前活动状态:%s,不能进行此操作,或已过期", model.ActStatusName[act.Status]) } - 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) } @@ -5522,7 +5522,7 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act return 0, err } } - dao.Commit(db) + dao.Commit(db, txDB) return originSyncStatus, err } diff --git a/business/jxstore/cms/store_sku_check.go b/business/jxstore/cms/store_sku_check.go index ee6463c53..d10af11cd 100644 --- a/business/jxstore/cms/store_sku_check.go +++ b/business/jxstore/cms/store_sku_check.go @@ -1336,12 +1336,7 @@ func WriteToExcel(task *tasksch.SeqTask, data map[int][]DiffData, depotData map[ } func SetJxPrice(jxSkuInfoDataMulti *dao.StoreSkuNamesInfo, storeId int, vendorid int) (err error) { - db := dao.GetDB() storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeId, vendorid, "") - if err != nil { - dao.Rollback(db) - return err - } /*重新计算京西价格*/ for _, values := range jxSkuInfoDataMulti.SkuNames { for _, value := range values.Skus { diff --git a/business/jxstore/cms/storeman.go b/business/jxstore/cms/storeman.go index 63340723e..f25309f7a 100644 --- a/business/jxstore/cms/storeman.go +++ b/business/jxstore/cms/storeman.go @@ -65,10 +65,10 @@ func (s *StoreManager) OnStoreStatusChanged(vendorStoreID string, vendorID int, } } if err == nil && (storeKV != nil || storeMapKV != nil) { - 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) } @@ -106,7 +106,7 @@ func (s *StoreManager) OnStoreStatusChanged(vendorStoreID string, vendorID int, return err } } - dao.Commit(db) + dao.Commit(db, txDB) } } return err diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index e159d7ddc..ae3b20269 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -39,9 +39,10 @@ var ( func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int) (err error) { globals.SugarLogger.Debugf("CreateStoreCategoryByStoreSku vendorID:%d, storeID:%d", vendorID, storeID) db := dao.GetDB() + txDB, _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -51,16 +52,15 @@ func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int return err } if len(localCats) > 0 { - dao.Begin(db) for _, v := range localCats { if v.MapID == 0 { if err = dao.AddStoreCategoryMap(db, storeID, v.ID, vendorID, "", model.SyncFlagNewMask, ctx.GetUserName()); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } } - dao.Commit(db) + dao.Commit(db, txDB) } } return err diff --git a/business/jxstore/cms/sync_store_sku_fakejd.go b/business/jxstore/cms/sync_store_sku_fakejd.go index 9f0d8a863..a8f6e6c4d 100644 --- a/business/jxstore/cms/sync_store_sku_fakejd.go +++ b/business/jxstore/cms/sync_store_sku_fakejd.go @@ -299,24 +299,24 @@ func UploadFakeJdThingMap(ctx *jxcontext.Context, reader io.Reader, isSyncNow, i } 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) } }() _, err = dao.ExecuteSQL(db, "DELETE t1 FROM fake_jd_thing_map t1") if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } err = dao.CreateMultiEntities(db, thingMapList) if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } - dao.Commit(db) + dao.Commit(db, txDB) if isSyncNow { if storeMap, skuMap, err2 := getFakeThingMap(ctx, db); err2 == nil { diff --git a/business/jxstore/cms/user.go b/business/jxstore/cms/user.go index 070ee358f..e899f8e6f 100644 --- a/business/jxstore/cms/user.go +++ b/business/jxstore/cms/user.go @@ -79,10 +79,10 @@ package cms // if err = err2; err == nil || err == orm.ErrNoRows { // user.JxStoreID = storeID // if 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) // } // }() @@ -90,9 +90,9 @@ package cms // err = dao.SetWeiXinsEmpty2Null(db, user) // } // if err != nil { -// dao.Rollback(db) +// dao.Rollback(db, txDB) // } else { -// dao.Commit(db) +// dao.Commit(db, txDB) // } // } else { // // globals.SugarLogger.Debug(utils.Format4Output(user, false)) diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index 750124564..7002eb700 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -626,25 +626,25 @@ func AddUserDeliveryAddress(ctx *jxcontext.Context, address *model.UserDeliveryA address.AutoAddress, address.DistrictCode, address.CityCode, err = getAddressInfoFromCoord(db, lng, lat) if err == nil { globals.SugarLogger.Debugf("AddUserDeliveryAddress2 address:%s", utils.Format4Output(address, true)) - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() dao.WrapAddIDCULDEntity(address, ctx.GetUserName()) if address.IsDefault == 1 { if err = dao.ClearUserDeliveryAddressDefault(db, address.UserID, 0); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return nil, err } } if err = dao.CreateEntity(db, address); err == nil { - dao.Commit(db) + dao.Commit(db, txDB) outAddress = address } else { - dao.Rollback(db) + dao.Rollback(db, txDB) } } globals.SugarLogger.Debugf("AddUserDeliveryAddress3 address:%s", utils.Format4Output(address, true)) @@ -699,23 +699,23 @@ func UpdateUserDeliveryAddress(ctx *jxcontext.Context, userID string, addressID 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) } }() if utils.ForceInterface2Int64(valid["isDefault"]) == 1 { if err = dao.ClearUserDeliveryAddressDefault(db, userID, 0); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } } if _, err = dao.UpdateEntityLogically(db, address, valid, ctx.GetUserName(), nil); err == nil { - dao.Commit(db) + dao.Commit(db, txDB) } else { - dao.Rollback(db) + dao.Rollback(db, txDB) } } } @@ -754,10 +754,10 @@ func SaveUserCart(ctx *jxcontext.Context, userID string, storeID int, cartItems dao.WrapAddIDCULEntity(v, userID) } db := dao.GetDB() - 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) } @@ -775,7 +775,7 @@ func SaveUserCart(ctx *jxcontext.Context, userID string, storeID int, cartItems err = dao.CreateMultiEntities(db, cartItems) } if err == nil { - dao.Commit(db) + dao.Commit(db, txDB) } return err } @@ -1006,10 +1006,10 @@ func UpdateUserWxNoAndPercent(user *model.User, isReceiver bool) (num int64, err if len(auth) == 0 { return 0, fmt.Errorf("未找到此用户的微信验证方式!用户ID:[%v]\n", user.UserID) } - 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) } @@ -1019,12 +1019,12 @@ func UpdateUserWxNoAndPercent(user *model.User, isReceiver bool) (num int64, err num2, err := dao.UpdateEntity(db, user2, "DividePercentage") num += num2 if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } if isReceiver { } - dao.Commit(db) + dao.Commit(db, txDB) return num, err } diff --git a/business/jxstore/common/common.go b/business/jxstore/common/common.go index 59b068541..15d24b520 100644 --- a/business/jxstore/common/common.go +++ b/business/jxstore/common/common.go @@ -256,18 +256,18 @@ func UpdateVendorOrgCode(ctx *jxcontext.Context, ID int, payload map[string]inte valid["comment"] = valid["name"] delete(valid, "name") } - 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.UpdateEntityLogically(db, vendorOrgCode, valid, ctx.GetUserName(), nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } - dao.Commit(db) + dao.Commit(db, txDB) } return err } diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index fa2557df5..a2966a3cd 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -67,45 +67,45 @@ func AddOperateEvent(ctx *jxcontext.Context, accessUUID, jsonData string, errCod ErrMsg: errMsg, UseTime: useTime, } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() err = dao.CreateEntity(db, event) - dao.Commit(db) + dao.Commit(db, txDB) return err } func AddOperateEventDetail(db *dao.DaoDB, operateEventDetail *model.OperateEventDetail) (err error) { - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() operateEventDetail.BeforeData = utils.LimitUTF8StringLen(operateEventDetail.BeforeData, 3200) operateEventDetail.AfterData = utils.LimitUTF8StringLen(operateEventDetail.AfterData, 3200) err = dao.CreateEntity(db, operateEventDetail) - dao.Commit(db) + dao.Commit(db, txDB) return err } func DeleteOperateEventAndDetail(ctx *jxcontext.Context, deleteTime time.Time) (err error) { 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) } }() dao.DeleteOperateEventDetail(db, deleteTime) dao.DeleteOperateEvent(db, deleteTime) - dao.Commit(db) + dao.Commit(db, txDB) return err } diff --git a/business/jxstore/initdata/initdata.go b/business/jxstore/initdata/initdata.go index 5a30b28f7..e67fffa13 100644 --- a/business/jxstore/initdata/initdata.go +++ b/business/jxstore/initdata/initdata.go @@ -50,10 +50,10 @@ func InitPlace(ctx *jxcontext.Context) (err error) { } placeList = placeList[0].Districts db := dao.GetDB() - 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) } @@ -129,7 +129,7 @@ func InitPlace(ctx *jxcontext.Context) (err error) { return err } } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -146,10 +146,10 @@ func InitVendorCategory(ctx *jxcontext.Context, vendorID int, isAsync bool) (hin } case 1: db := dao.GetDB() - 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) } @@ -169,7 +169,7 @@ func InitVendorCategory(ctx *jxcontext.Context, vendorID int, isAsync bool) (hin if err = dao.CreateMultiEntities(db, cats); err != nil { return nil, err } - dao.Commit(db) + dao.Commit(db, txDB) } return nil, err }, 2) diff --git a/business/jxstore/permission/permission.go b/business/jxstore/permission/permission.go index 6756a44b1..c4b73cd97 100644 --- a/business/jxstore/permission/permission.go +++ b/business/jxstore/permission/permission.go @@ -43,16 +43,16 @@ func AddMenu(ctx *jxcontext.Context, menu *model.Menu) (err error) { if len(menus) > 0 { return fmt.Errorf("添加失败!已存在相同名称的 menu name : %v", menu.Name) } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() dao.WrapAddIDCULDEntity(menu, ctx.GetUserName()) err = dao.CreateEntity(db, menu) - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -66,10 +66,10 @@ func UpdateMenu(ctx *jxcontext.Context, menuID int, payload map[string]interface if err != nil { return 0, err } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -77,7 +77,7 @@ func UpdateMenu(ctx *jxcontext.Context, menuID int, payload map[string]interface valid := dao.StrictMakeMapByStructObject(payload, menu, ctx.GetUserName()) if len(valid) > 0 { if num, err = dao.UpdateEntityLogically(db, menu, valid, ctx.GetUserName(), nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return 0, err } } @@ -85,7 +85,7 @@ func UpdateMenu(ctx *jxcontext.Context, menuID int, payload map[string]interface menu.DeletedAt = time.Now() num, err = dao.UpdateEntity(db, menu, "DeletedAt") } - dao.Commit(db) + dao.Commit(db, txDB) return num, err } @@ -120,16 +120,16 @@ func AddRole(ctx *jxcontext.Context, name string) (err error) { role := &model.Role{ Name: name, } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() dao.WrapAddIDCULDEntity(role, ctx.GetUserName()) err = dao.CreateEntity(db, role) - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -154,10 +154,10 @@ func UpdateRole(ctx *jxcontext.Context, roleID int, name string, isDelete bool, if err != nil { return 0, err } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -173,7 +173,7 @@ func UpdateRole(ctx *jxcontext.Context, roleID int, name string, isDelete bool, role.DeletedAt = time.Now() num, err = dao.UpdateEntity(db, role, "DeletedAt") } - dao.Commit(db) + dao.Commit(db, txDB) return num, err } @@ -216,10 +216,10 @@ func UpdateUserRole(ctx *jxcontext.Context, userIDs []string, roleIDs []int) (er } } } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -253,7 +253,7 @@ func UpdateUserRole(ctx *jxcontext.Context, userIDs []string, roleIDs []int) (er dao.UpdateEntity(db, user, "Type") } } - dao.Commit(db) + dao.Commit(db, txDB) return err } @@ -296,10 +296,10 @@ func UpdateRoleMenu(ctx *jxcontext.Context, roleIDs, menuIDs []int) (err error) } } } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -327,7 +327,7 @@ func UpdateRoleMenu(ctx *jxcontext.Context, roleIDs, menuIDs []int) (err error) } } } - dao.Commit(db) + dao.Commit(db, txDB) return err } diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 5d69aaff1..199d47bc0 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -84,10 +84,10 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn case 0: priceReferSnapshot, err := dao.GetStatisticsReportForStoreSkusPrice(db, cityCodes, skuIDs) if len(priceReferSnapshot) > 0 { - 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) } @@ -98,7 +98,7 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn v.SnapshotAt = snapshotAt } dao.CreateMultiEntities(db, priceReferSnapshot) - dao.Commit(db) + dao.Commit(db, txDB) } case 1: priceReferSnapshotList, err = dao.GetPriceReferSnapshotNoPage(db, nil, nil, nil, snapshotAt) @@ -214,10 +214,10 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } resultMap[k1] = skuNameMap } - 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) } @@ -244,12 +244,12 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } } } - dao.Commit(db) + dao.Commit(db, txDB) case 2: - 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) } @@ -265,7 +265,7 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn dao.UpdateEntity(db, v, "MidPrice", "MaxPrice", "MinPrice", "AvgPrice") } } - dao.Commit(db) + dao.Commit(db, txDB) //TODO 京东查询接口报错,暂时屏蔽了 // case 3: // priceReferSnapshotList, err = dao.GetPriceReferSnapshotNoPage(db, []int{0}, nil, nil, snapshotAt) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index f76e907c4..9c38df73e 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -91,7 +91,7 @@ func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenErr // } // globals.SugarLogger.Debugf("Convert2JDSPU, skuName:%s, skuCount:%d", skuName.Name, len(skuList)) - // dao.Begin(db) + // txDB , _ := dao.Begin(db) // skuNameNew2 := *skuName // skuNameNew := &skuNameNew2 // dao.WrapAddIDCULEntity(skuNameNew, ctx.GetUserName()) @@ -101,7 +101,7 @@ func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenErr // skuNameNew.JdSyncStatus = model.SyncFlagNewMask // // skuNameNew.Status = model.SkuStatusDontSale // if err = dao.CreateEntity(db, skuNameNew); err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) // return "", err // } // if len(skuList) > 0 { @@ -118,7 +118,7 @@ func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenErr // } // globals.SugarLogger.Debugf("Convert2JDSPU, sku:%s", utils.Format4Output(skuNew, false)) // if err = dao.CreateEntity(db, skuNew); err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) // return "", err // } // } @@ -127,12 +127,12 @@ func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenErr // placeBind.NameID = skuNameNew.ID // globals.SugarLogger.Debugf("Convert2JDSPU, placeBind:%s", utils.Format4Output(placeBind, false)) // if err = dao.CreateEntity(db, placeBind); err != nil { - // dao.Rollback(db) + // dao.Rollback(db, txDB) // return "", err // } // } // } - // dao.Commit(db) + // dao.Commit(db, txDB) // } // sql = ` // SELECT DISTINCT t1.* @@ -175,8 +175,8 @@ func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, step int, isAsyn // var sql string // var sqlParams []interface{} - // dao.Begin(db) - // defer dao.Rollback(db) + // txDB , _ := dao.Begin(db) + // defer dao.Rollback(db, txDB) // if step == 1 { // sql = ` @@ -259,7 +259,7 @@ func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, step int, isAsyn // return "", err // } // globals.SugarLogger.Debug(num) - // dao.Commit(db) + // dao.Commit(db, txDB) // var skuIDs []int // if step == 1 { diff --git a/business/jxutils/tasks/configrefresh.go b/business/jxutils/tasks/configrefresh.go index a891f5289..df2cdcb11 100644 --- a/business/jxutils/tasks/configrefresh.go +++ b/business/jxutils/tasks/configrefresh.go @@ -20,7 +20,7 @@ import ( "git.rosy.net.cn/jx-callback/globals" beego "github.com/astaxie/beego/adapter" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) const ( diff --git a/business/jxutils/weixinmsg/weixinmsg.go b/business/jxutils/weixinmsg/weixinmsg.go index 9959e0491..94210798e 100644 --- a/business/jxutils/weixinmsg/weixinmsg.go +++ b/business/jxutils/weixinmsg/weixinmsg.go @@ -819,10 +819,10 @@ func SendStoreMessage(ctx *jxcontext.Context, title, content string, storeIDs [] storeIDs = storeIDs2 } } - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -835,7 +835,7 @@ func SendStoreMessage(ctx *jxcontext.Context, title, content string, storeIDs [] } dao.WrapAddIDCULDEntity(msg, ctx.GetUserName()) if err = dao.CreateEntity(db, msg); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } msgStatusList := make([]*model.MessageStatus, len(storeIDs)) @@ -847,12 +847,12 @@ func SendStoreMessage(ctx *jxcontext.Context, title, content string, storeIDs [] } dao.WrapAddIDCULDEntity(msgStatus, ctx.GetUserName()) if err = dao.CreateEntity(db, msgStatus); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } msgStatusList[k] = msgStatus } - dao.Commit(db) + dao.Commit(db, txDB) rootTask := tasksch.NewParallelTask("SendStoreMessage", nil, ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { db := dao.GetDB() @@ -920,10 +920,10 @@ func NotifyAdjustOrder(order *model.GoodsOrder) (err error) { func SendUserMessage(ctx *jxcontext.Context, title, content string, userIDs []string, isAsync, isContinueWhenError bool) (hint string, err error) { 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) } }() @@ -934,7 +934,7 @@ func SendUserMessage(ctx *jxcontext.Context, title, content string, userIDs []st } dao.WrapAddIDCULDEntity(msg, ctx.GetUserName()) if err = dao.CreateEntity(db, msg); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } msgStatusList := make([]*model.MessageStatus, len(userIDs)) @@ -946,12 +946,12 @@ func SendUserMessage(ctx *jxcontext.Context, title, content string, userIDs []st } dao.WrapAddIDCULDEntity(msgStatus, ctx.GetUserName()) if err = dao.CreateEntity(db, msgStatus); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return "", err } msgStatusList[k] = msgStatus } - dao.Commit(db) + dao.Commit(db, txDB) rootTask := tasksch.NewParallelTask("SendUserMessage", nil, ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { db := dao.GetDB() diff --git a/business/model/dao/act.go b/business/model/dao/act.go index a40220d8d..8ccf6a448 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -151,8 +151,8 @@ func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs // globals.SugarLogger.Debug(sql) // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) // globals.SugarLogger.Debug(utils.Format4Output(actStoreSkuList, false)) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &actStoreSkuList, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } @@ -292,20 +292,20 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keywo sqlParams = append(sqlParams, pageSize, offset) var idList []int - Begin(db) + txDB, _ := Begin(db) defer func() { if r := recover(); r != nil { - Rollback(db) + Rollback(db, txDB) panic(r) } }() // globals.SugarLogger.Debug(sql) if err = GetRows(db, &idList, sql, sqlParams...); err != nil || len(idList) == 0 { - Rollback(db) + Rollback(db, txDB) return pagedInfo, err } pagedInfo.TotalCount = GetLastTotalRowCount(db) - Commit(db) + Commit(db, txDB) sql = ` SELECT diff --git a/business/model/dao/dao.go b/business/model/dao/dao.go index 4e3f729ce..a5497898b 100644 --- a/business/model/dao/dao.go +++ b/business/model/dao/dao.go @@ -8,7 +8,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/globals" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) const ( @@ -65,15 +65,15 @@ func GetDB() *DaoDB { return &DaoDB{Db: orm.NewOrm()} } -func Begin(db *DaoDB) (err error) { +func Begin(db *DaoDB) (txDB orm.TxOrmer, err error) { if db.transactionLevel == 0 { - err = db.Db.Begin() + txDB, err = db.Db.Begin() if err == nil { db.startWatchTransaction() } } db.transactionLevel++ - return err + return txDB, err } func (db *DaoDB) startWatchTransaction() { @@ -93,11 +93,11 @@ func (db *DaoDB) stopWatchTransaction() { } } -func Commit(db *DaoDB) (err error) { +func Commit(db *DaoDB, txDB orm.TxOrmer) (err error) { if db.transactionLevel == 1 { db.stopWatchTransaction() - - err = db.Db.Commit() + err = txDB.Commit() + // err = db.Db.Commit() db.transactionLevel = 0 } else if db.transactionLevel > 1 { db.transactionLevel-- @@ -105,11 +105,11 @@ func Commit(db *DaoDB) (err error) { return err } -func Rollback(db *DaoDB) (err error) { +func Rollback(db *DaoDB, txDB orm.TxOrmer) (err error) { if db.transactionLevel > 0 { db.stopWatchTransaction() - - err = db.Db.Rollback() + err = txDB.Rollback() + // err = db.Db.Rollback() } db.transactionLevel = 0 return err diff --git a/business/model/dao/dao_err.go b/business/model/dao/dao_err.go index 1bb5dbccf..763524793 100644 --- a/business/model/dao/dao_err.go +++ b/business/model/dao/dao_err.go @@ -1,7 +1,7 @@ package dao import ( - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" "github.com/go-sql-driver/mysql" ) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 8fa159131..4c0cac9a9 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -969,8 +969,8 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat LIMIT ? OFFSET ?` sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &orders, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } @@ -1154,8 +1154,8 @@ func GetOrdersSupplement(db *DaoDB, storIDs, vendorIDs, statuss []int, vendorOrd sql += " ORDER BY supplement_time DESC" sql += " LIMIT ? OFFSET ?" sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &orderSupplementFee, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } @@ -1347,8 +1347,8 @@ func GetAfsOrdersByPage(db *DaoDB, vendorOrderID, afsOrderID, userID string, fro LIMIT ? OFFSET ? ` sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &afsOrderList, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } diff --git a/business/model/dao/dao_user.go b/business/model/dao/dao_user.go index c394b9acd..54902a77c 100644 --- a/business/model/dao/dao_user.go +++ b/business/model/dao/dao_user.go @@ -94,8 +94,8 @@ func GetUsers(db *DaoDB, userType int, keyword string, userIDs, userID2s, mobile } sql += " LIMIT ? OFFSET ?" sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &userList, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } @@ -211,8 +211,8 @@ func QueryUserDeliveryAddress(db *DaoDB, addressID int64, userIDs []string, offs LIMIT ? OFFSET ?` sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &addressList, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } diff --git a/business/model/dao/event.go b/business/model/dao/event.go index ad4cce5d6..13a3cd4bc 100644 --- a/business/model/dao/event.go +++ b/business/model/dao/event.go @@ -108,8 +108,8 @@ func GetOperateEvents(db *DaoDB, name string, apiFunctions []string, operateType LIMIT ? OFFSET ? ` sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &operateEventExt, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } diff --git a/business/model/dao/food_recipe.go b/business/model/dao/food_recipe.go index 638403b5a..79ff2188f 100644 --- a/business/model/dao/food_recipe.go +++ b/business/model/dao/food_recipe.go @@ -80,8 +80,8 @@ func QueryFoodRecipes(db *DaoDB, keyword string, recipeID int, authorID, userID LIMIT ? OFFSET ?` sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &recipeList, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } diff --git a/business/model/dao/page_store.go b/business/model/dao/page_store.go index fe413e2f6..725a61da1 100644 --- a/business/model/dao/page_store.go +++ b/business/model/dao/page_store.go @@ -81,10 +81,10 @@ func QueryPageStores(db *DaoDB, pageSize, offset int, keyword string, vendorStor offset = jxutils.FormalizePageOffset(offset) sqlParams = append(sqlParams, pageSize, offset) var shopList []*PageShopWithPlaceName - Begin(db) + txDB, _ := Begin(db) defer func() { if r := recover(); r != nil { - Rollback(db) + Rollback(db, txDB) panic(r) } }() @@ -93,9 +93,9 @@ func QueryPageStores(db *DaoDB, pageSize, offset int, keyword string, vendorStor TotalCount: GetLastTotalRowCount(db), Data: shopList, } - Commit(db) + Commit(db, txDB) } else { - Rollback(db) + Rollback(db, txDB) } return pagedInfo, err } diff --git a/business/model/dao/place.go b/business/model/dao/place.go index cf7a0045d..c98dbf68e 100644 --- a/business/model/dao/place.go +++ b/business/model/dao/place.go @@ -2,7 +2,7 @@ package dao import ( "git.rosy.net.cn/jx-callback/business/model" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) const ( diff --git a/business/model/dao/report.go b/business/model/dao/report.go index 01e2086ac..59fb7620a 100644 --- a/business/model/dao/report.go +++ b/business/model/dao/report.go @@ -317,8 +317,8 @@ func GetPriceReferSnapshot(db *DaoDB, cityCodes, skuIDs []int, skuNameID int, sn } sql += " LIMIT ? OFFSET ?" sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &priceReferSnapshot, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } diff --git a/business/model/dao/store.go b/business/model/dao/store.go index d6c9b8514..d68817ce6 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -405,10 +405,10 @@ func FormalizeStoreStatus(db *DaoDB, storeID, storeStatus int) (err error) { if err = GetRows(db, &statusList, sql, sqlParams...); err == nil { if len(statusList) == 1 { if statusList[0] != model.StoreStatusOpened { - Begin(db) + txDB, _ := Begin(db) defer func() { if r := recover(); r != nil || err != nil { - Rollback(db) + Rollback(db, txDB) if r != nil { panic(r) } @@ -431,7 +431,7 @@ func FormalizeStoreStatus(db *DaoDB, storeID, storeStatus int) (err error) { }); err != nil { return err } - Commit(db) + Commit(db, txDB) } } } @@ -712,8 +712,8 @@ func GetStorePriceScore(db *DaoDB, storeIDs, vendorIDs []int, fromScore, toScore } sql += " LIMIT ? OFFSET ?" sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &StorePriceScore, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } @@ -979,8 +979,8 @@ func GetStoreAuditPage(db *DaoDB, statuss []int, keyword string, applyTimeStart, sql += " ORDER BY a.updated_at LIMIT ? OFFSET ?" pageSize = jxutils.FormalizePageSize(pageSize) sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &requestList, sql, sqlParams...); err == nil { return &model.PagedInfo{ TotalCount: GetLastTotalRowCount(db), @@ -1241,8 +1241,8 @@ func GetStoreManageState(db *DaoDB, storeIDs, brandIDs []int, vendorID, sortType sql += " LIMIT ? OFFSET ?" pageSize = jxutils.FormalizePageSize(pageSize) sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &requestList, sql, sqlParams...); err == nil { return &model.PagedInfo{ TotalCount: GetLastTotalRowCount(db), diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 5770dc230..66fc01492 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1707,8 +1707,8 @@ func GetStoreSkuAudit(db *DaoDB, storeIDs, nameIDs, skuIDs, statuss, types []int sql += " ORDER BY a.updated_at LIMIT ? OFFSET ?" pageSize = jxutils.FormalizePageSize(pageSize) sqlParams = append(sqlParams, pageSize, offset) - Begin(db) - defer Commit(db) + txDB, _ := Begin(db) + defer Commit(db, txDB) if err = GetRows(db, &requestList, sql, sqlParams...); err == nil { return &model.PagedInfo{ TotalCount: GetLastTotalRowCount(db), diff --git a/business/netspider/netspider.go b/business/netspider/netspider.go index 2e345795e..1490b9478 100644 --- a/business/netspider/netspider.go +++ b/business/netspider/netspider.go @@ -194,10 +194,10 @@ func GetAndStoreCitiesShops(ctx *jxcontext.Context, vendorIDs []int, cityCodeLis globals.SugarLogger.Debugf("process city:%d", cityCode) shopList, err := GetCityShops(ctx, task, vendorIDs, cityCode, radius, gridWith) if 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) } }() @@ -216,10 +216,10 @@ func GetAndStoreCitiesShops(ctx *jxcontext.Context, vendorIDs []int, cityCodeLis } } if err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } else { hint = utils.Int2Str(len(shopList)) - dao.Commit(db) + dao.Commit(db, txDB) } } globals.SugarLogger.Debugf("process city:%d, len(shopList):%d, err:%v", cityCode, len(shopList), err) diff --git a/business/partner/delivery/fn/waybill.go b/business/partner/delivery/fn/waybill.go index 510da2998..1af0fc91b 100644 --- a/business/partner/delivery/fn/waybill.go +++ b/business/partner/delivery/fn/waybill.go @@ -7,7 +7,7 @@ import ( "git.rosy.net.cn/baseapi/utils" beego "github.com/astaxie/beego/adapter" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/partner/delivery" diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 4830effd1..d6cf5924e 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -21,7 +21,7 @@ import ( "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" beego "github.com/astaxie/beego/adapter" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) const ( diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index d7e555d7f..9ffb5fa8f 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1728,10 +1728,10 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { } if len(queryOrderStatus.OrderStatusList) > 0 { if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -1742,7 +1742,7 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { waybills[0].Status = model.WaybillStatusDelivered dao.UpdateEntity(db, waybills[0], "Status") } - dao.Commit(db) + dao.Commit(db, txDB) changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "") getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(vv.VendorOrderID) updateJdWayBillInfo(db, vv, getTrackMessagePlusByOrderResult) @@ -1755,10 +1755,10 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { } } if len(goodsList2) > 0 { - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -1773,7 +1773,7 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { v.Status = model.OrderStatusCanceled } dao.UpdateEntity(db, v, "Status") - dao.Commit(db) + dao.Commit(db, txDB) changeOrderStatus(v.VendorOrderID, v.Status, "") } } else { @@ -1844,10 +1844,10 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result func updateMatterOrderStatus(db *dao.DaoDB, order *model.GoodsOrder, queryOrderStatus *jdeclpapi.QueryOrderStatusResult) { code := queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode if code == jdeclpapi.SoStatusCode10034 || code == jdeclpapi.SoStatusCode10038 { - dao.Begin(db) + txDB , _ := dao.Begin(db) defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) panic(r) } }() @@ -1858,7 +1858,7 @@ func updateMatterOrderStatus(db *dao.DaoDB, order *model.GoodsOrder, queryOrderS waybills[0].Status = model.WaybillStatusDelivered dao.UpdateEntity(db, waybills[0], "Status") } - dao.Commit(db) + dao.Commit(db, txDB) changeOrderStatus(order.VendorOrderID, model.OrderStatusFinished, "") } } @@ -2330,10 +2330,10 @@ func UpdateCoupons(ctx *jxcontext.Context, payload map[string]interface{}, store } else { valid := dao.StrictMakeMapByStructObject(payload, coupons, 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) } }() @@ -2343,7 +2343,7 @@ func UpdateCoupons(ctx *jxcontext.Context, payload map[string]interface{}, store } } if _, err = dao.UpdateEntityByKV(db, coupons, valid, nil); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return err } if valid["isAll"] != nil { @@ -2364,7 +2364,7 @@ func UpdateCoupons(ctx *jxcontext.Context, payload map[string]interface{}, store } } } - dao.Commit(db) + dao.Commit(db, txDB) } } return err @@ -2481,16 +2481,16 @@ func CreateStoreAcctOrder(ctx *jxcontext.Context, orderType, storeID, price int, GoodsVendorOrderID: goodsVendorOrderID, } dao.WrapAddIDCULEntity(order, ctx.GetUserName()) - 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.CreateEntity(db, order); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } - dao.Commit(db) + dao.Commit(db, txDB) return order.VendorOrderID, err } diff --git a/business/partner/purchase/jx/localjx/user.go b/business/partner/purchase/jx/localjx/user.go index feb9d59f5..b487ca06b 100644 --- a/business/partner/purchase/jx/localjx/user.go +++ b/business/partner/purchase/jx/localjx/user.go @@ -59,8 +59,8 @@ func GetJxShopUsers(ctx *jxcontext.Context, keyword, fromTime, toTime string, ve sql += "LIMIT ? OFFSET ?" pageSize = jxutils.FormalizePageSize(pageSize) sqlParams = append(sqlParams, pageSize, offset) - dao.Begin(db) - defer dao.Commit(db) + txDB , _ := dao.Begin(db) + defer dao.Commit(db, txDB) if err = dao.GetRows(db, &requestList, sql, sqlParams...); err == nil { pagedInfo = &model.PagedInfo{ TotalCount: dao.GetLastTotalRowCount(db), diff --git a/business/userstore/food_recipe.go b/business/userstore/food_recipe.go index 5359a94eb..764ec6196 100644 --- a/business/userstore/food_recipe.go +++ b/business/userstore/food_recipe.go @@ -97,10 +97,10 @@ func CreateFoodRecipe(ctx *jxcontext.Context, foodRecipe *model.FoodRecipe, item } db := dao.GetDB() - 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) } @@ -119,7 +119,7 @@ func CreateFoodRecipe(ctx *jxcontext.Context, foodRecipe *model.FoodRecipe, item if err = updateFoodRecipeItemAndStep(ctx, db, foodRecipe.ID, itemList, stepList); err != nil { return err } - dao.Commit(db) + dao.Commit(db, txDB) tryRegisterDataRes4Recipe(ctx, foodRecipe.Name, foodRecipe.Img, stepList) return err @@ -135,10 +135,10 @@ func UpdateFoodRecipe(ctx *jxcontext.Context, recipeID int, mapData map[string]i } valid := dao.StrictMakeMapByStructObject(mapData, localRecipe, ctx.GetUserName()) - 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) } @@ -176,7 +176,7 @@ func UpdateFoodRecipe(ctx *jxcontext.Context, recipeID int, mapData map[string]i if err = updateFoodRecipeItemAndStep(ctx, db, recipeID, itemList, stepList); err != nil { return err } - dao.Commit(db) + dao.Commit(db, txDB) tryRegisterDataRes4Recipe(ctx, localRecipe.Name, utils.Interface2String(valid["img"]), stepList) return err @@ -284,10 +284,10 @@ func VoteFoodRecipe(ctx *jxcontext.Context, recipeID, voteType int) (err error) } recipe := &recipeList[0].FoodRecipe - 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) } @@ -338,16 +338,16 @@ func VoteFoodRecipe(ctx *jxcontext.Context, recipeID, voteType int) (err error) return err } - dao.Commit(db) + dao.Commit(db, txDB) return err } func DeleteRecipes(ctx *jxcontext.Context, recipeIDs []int) (num int64, err error) { db := dao.GetDB() - 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) } @@ -362,6 +362,6 @@ func DeleteRecipes(ctx *jxcontext.Context, recipeIDs []int) (num int64, err erro } num += num2 } - dao.Commit(db) + dao.Commit(db, txDB) return 0, err } diff --git a/controllers/act.go b/controllers/act.go index 8fc460ae7..d1f0fe28b 100644 --- a/controllers/act.go +++ b/controllers/act.go @@ -240,26 +240,26 @@ func (c *ActController) UpdateActStoreSkuBind() { err = fmt.Errorf("actStoreSkuAddList与actStoreSkuDeleteList不能都为空") } else { db := dao.GetDB() - dao.Begin(db) + txDB , _ := dao.Begin(db) func() { defer func() { if r := recover(); r != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) } }() if len(actStoreSkuAddList) > 0 { if err = act.AddActStoreSkuBind(params.Ctx, db, params.ActID, actStoreSkuAddList); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return } } if len(actStoreSkuDeleteList) > 0 { if _, err = act.DeleteActStoreSkuBind(params.Ctx, db, params.ActID, actStoreSkuDeleteList); err != nil { - dao.Rollback(db) + dao.Rollback(db, txDB) return } } - dao.Commit(db) + dao.Commit(db, txDB) }() if err == nil { retVal, err = act.SyncAct(params.Ctx, nil, params.ActID, nil, params.IsAsync) diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 1be21ea6b..bae95c6ff 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -5,12 +5,13 @@ import ( "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals" beego "github.com/astaxie/beego/adapter" - "github.com/astaxie/beego/adapter/orm" + "github.com/astaxie/beego/client/orm" ) func Init() { // set default database - orm.RegisterDataBase("default", "mysql", beego.AppConfig.String("dbConnectStr"), 30) + // orm.RegisterDataBase(aliasName, driverName, dataSource, params) + orm.RegisterDataBase("default", "mysql", beego.AppConfig.String("dbConnectStr"), nil) orm.RegisterModel(new(legacymodel.Config)) orm.RegisterModel(new(legacymodel.BlackClient)) orm.RegisterModel(new(legacymodel.JxBadComments))