From 61c0d0e9e0d64817569578054c672630c452c0ca Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 27 May 2019 17:44:29 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E7=BE=8E=E5=9B=A2=E5=A4=96=E5=8D=96?= =?UTF-8?q?=E7=94=9F=E6=88=90=E4=B8=8D=E5=90=8C=E7=9A=84=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=EF=BC=8C=E6=94=AF=E6=8C=81=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A4=9A=E4=B8=AA=E5=94=AE=E5=90=8E=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order_afs.go | 33 ++++++++++++++++++++- business/model/dao/dao_order.go | 22 ++++++++++++++ business/partner/purchase/mtwm/order_afs.go | 2 +- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 52f5fac72..ecc0cdcae 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -2,6 +2,7 @@ package orderman import ( "fmt" + "strings" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler" @@ -36,13 +37,17 @@ func (c *OrderManager) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus, isAdjust bool) (err error) { + db := dao.GetDB() + c.setAfsOrderID(db, orderStatus) + if afsOrder.AfsOrderID == "" { + afsOrder.AfsOrderID = orderStatus.VendorOrderID + } if afsOrder.VendorStatus == "" { afsOrder.VendorStatus = orderStatus.VendorStatus } if afsOrder.Status == model.OrderStatusUnknown { afsOrder.Status = orderStatus.Status } - db := dao.GetDB() dao.Begin(db) defer func() { if r := recover(); r != nil || err != nil { @@ -150,6 +155,7 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD func (c *OrderManager) OnAfsOrderStatusChanged(orderStatus *model.OrderStatus) (err error) { db := dao.GetDB() + c.setAfsOrderID(db, orderStatus) dao.Begin(db) defer func() { if r := recover(); r != nil || err != nil { @@ -299,3 +305,28 @@ func (c *OrderManager) UpdateAfsOrderFields(afsOrder *model.AfsOrder, fieldList }, "UpdateAfsOrderFields orderID:%s failed with error:%v", afsOrder.VendorOrderID, err) return err } + +func (c *OrderManager) setAfsOrderID(db *dao.DaoDB, orderStatus *model.OrderStatus) { + if orderStatus.VendorOrderID == "" { + index := 1 + if afsOrderList, err2 := dao.GetAfsOrders(db, orderStatus.RefVendorID, orderStatus.RefVendorOrderID, ""); err2 == nil { + if len(afsOrderList) > 0 { + list := strings.Split(afsOrderList[0].AfsOrderID, "-") + if len(list) > 1 { + index = int(utils.Str2Int64WithDefault(list[1], 0)) + if afsOrderList[1].Status >= model.AfsOrderStatusFinished { + index++ + } + } + } + } + orderStatus.VendorOrderID = composeAfsOrderID(orderStatus.RefVendorOrderID, index) + } +} + +func composeAfsOrderID(vendorOrderID string, index int) (afsOrderID string) { + return strings.Join([]string{ + vendorOrderID, + utils.Int2Str(index), + }, "-") +} diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 9a3474d04..9d3855fc9 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -60,3 +60,25 @@ func SetAfsOrderFlag(db *DaoDB, userName string, afsOrderID string, vendorID int `, flag, afsOrderID, vendorID) return err } + +func GetAfsOrders(db *DaoDB, vendorID int, vendorOrderID, afsOrderID string) (afsOrderList []*model.AfsOrder, err error) { + sql := ` + SELECT * + FROM afs_order t1 + WHERE t1.vendor_id = ? + ` + sqlParams := []interface{}{ + vendorID, + } + if vendorOrderID != "" { + sql += " AND t1.vendor_order_id = ?" + sqlParams = append(sqlParams, vendorOrderID) + } + if afsOrderID != "" { + sql += " AND t1.afs_order_id = ?" + sqlParams = append(sqlParams, afsOrderID) + } + sql += " ORDER BY t1.afs_order_id DESC" + err = GetRows(db, &afsOrderList, sql, sqlParams...) + return afsOrderList, err +} diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index 915a01622..501a0a195 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -120,7 +120,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma func (c *PurchaseHandler) callbackAfsMsg2Status(msg *mtwmapi.CallbackMsg) (orderStatus *model.OrderStatus) { refundData := msg.Data.(*mtwmapi.CallbackRefundInfo) orderStatus = &model.OrderStatus{ - VendorOrderID: utils.Int64ToStr(refundData.OrderID), + // VendorOrderID: utils.Int64ToStr(refundData.OrderID), VendorID: model.VendorIDMTWM, OrderType: model.OrderTypeAfsOrder, RefVendorOrderID: utils.Int64ToStr(refundData.OrderID),