From 0d759218c1f3e50b229282baf4d2086e3e0282f1 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 2 Aug 2018 09:24:18 +0800 Subject: [PATCH] - write important error msg to db. --- business/controller/mtps/waybill.go | 10 +++++++++- business/legacymodel/tmplog.go | 8 ++++++++ business/scheduler/defsch/defsch.go | 20 +++++++++++++++++++- globals/db/db.go | 1 + 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 business/legacymodel/tmplog.go diff --git a/business/controller/mtps/waybill.go b/business/controller/mtps/waybill.go index eb2faae7a..33cd8bbb2 100644 --- a/business/controller/mtps/waybill.go +++ b/business/controller/mtps/waybill.go @@ -10,6 +10,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/globals" @@ -212,7 +213,14 @@ func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) { } } else { err = ErrAddFeeExceeded - globals.SugarLogger.Infof("CreateWaybill addFee exceeded too much, it's %d", addFee) + globals.SugarLogger.Infof("CreateWaybill orderID:%s addFee exceeded too much, it's %d", order.VendorOrderID, addFee) + + tmpLog := &legacymodel.TempLog{ + VendorOrderID: order.VendorOrderID, + RefVendorOrderID: order.VendorOrderID, + Msg: fmt.Sprintf("CreateWaybill orderID:%s addFee exceeded too much, it's %d", order.VendorOrderID, addFee), + } + db.Insert(tmpLog) } } return err diff --git a/business/legacymodel/tmplog.go b/business/legacymodel/tmplog.go new file mode 100644 index 000000000..6bd0efff4 --- /dev/null +++ b/business/legacymodel/tmplog.go @@ -0,0 +1,8 @@ +package legacymodel + +type TempLog struct { + ID int64 `orm:"column(id)"` + VendorOrderID string `orm:"column(vendor_order_id);size(48);index"` + RefVendorOrderID string `orm:"column(ref_vendor_order_id);size(48);index"` + Msg string `orm:"type(text)"` +} diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index 234760968..435ba10fe 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -1,6 +1,7 @@ package defsch import ( + "fmt" "time" "math/rand" @@ -365,6 +366,14 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf } } else { globals.SugarLogger.Warnf("createWaybillOn3rdProviders, orderID:%s failed %d times, stop schedule", order.VendorOrderID, savedOrderInfo.retryCount-1) + + tmpLog := &legacymodel.TempLog{ + VendorOrderID: order.VendorOrderID, + RefVendorOrderID: order.VendorOrderID, + Msg: fmt.Sprintf("createWaybillOn3rdProviders, orderID:%s failed %d times, stop schedule", order.VendorOrderID, savedOrderInfo.retryCount-1), + } + db := orm.NewOrm() + db.Insert(tmpLog) } } else { globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, store:%d dont't support 3rd delivery platform", order.VendorOrderID, jxutils.GetJxStoreIDFromOrder(order)) @@ -396,7 +405,16 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(order *model.GoodsOrder, bill }, order.VendorOrderID) }) } else { - globals.SugarLogger.Warnf("swtich2SelfDeliverWithRetry finally failed, cancel bill:%v, err:%v", bill, err) + globals.SugarLogger.Infof("swtich2SelfDeliverWithRetry finally failed, orderID:%s bill:%v, err:%v", order.VendorOrderID, bill, err) + + tmpLog := &legacymodel.TempLog{ + VendorOrderID: bill.VendorWaybillID, + RefVendorOrderID: order.VendorOrderID, + Msg: fmt.Sprintf("swtich2SelfDeliverWithRetry finally failed, orderID:%s bill:%v, err:%v", order.VendorOrderID, bill, err), + } + db := orm.NewOrm() + db.Insert(tmpLog) + if s.CancelWaybill(bill) == nil { // 转自送失败的取消,要将订单中的运单状态更新 if s.isBillCandidate(order, bill) { diff --git a/globals/db/db.go b/globals/db/db.go index d81f38729..4033ddac2 100644 --- a/globals/db/db.go +++ b/globals/db/db.go @@ -26,6 +26,7 @@ func Init() { orm.RegisterModel(new(model.Jxstorefeature)) + orm.RegisterModel(new(legacymodel.TempLog)) orm.RegisterModel(new(legacymodel.Jxorder2)) orm.RegisterModel(new(legacymodel.Jxordersku2)) // orm.RegisterModel(new(legacymodel.Elemeorder2))