From ecedbe9be40e5a1eb94e827d0421892a890da2a2 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 9 Dec 2019 15:16:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=AC=E4=B8=9Capi=E5=8C=BA=E5=88=86vendorOr?= =?UTF-8?q?gCode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 4 +- business/jxcallback/orderman/order_afs.go | 1 + business/jxcallback/orderman/order_comment.go | 8 +- business/jxcallback/orderman/orderman_ext.go | 29 +++--- .../scheduler/basesch/basesch_ext.go | 22 +++-- .../jxcallback/scheduler/defsch/defsch.go | 2 +- business/jxstore/tempop/tempop.go | 2 +- business/model/order.go | 1 + business/model/order_financial.go | 3 +- business/partner/partner_order.go | 4 +- business/partner/partner_store_sku.go | 2 +- business/partner/purchase/ebai/order.go | 8 +- business/partner/purchase/ebai/order_afs.go | 1 + .../partner/purchase/ebai/order_comment.go | 2 +- business/partner/purchase/ebai/order_test.go | 2 +- business/partner/purchase/elm/order.go | 4 +- .../partner/purchase/elm/order_comment.go | 2 +- business/partner/purchase/elm/order_test.go | 2 +- business/partner/purchase/jd/callback.go | 6 +- business/partner/purchase/jd/financial.go | 20 ++-- business/partner/purchase/jd/order.go | 92 ++++++++++--------- business/partner/purchase/jd/order_afs.go | 15 +-- business/partner/purchase/jd/order_comment.go | 8 +- business/partner/purchase/jd/order_test.go | 4 +- business/partner/purchase/jd/store.go | 2 +- business/partner/purchase/jd/waybill.go | 6 +- business/partner/purchase/jx/order.go | 4 +- business/partner/purchase/jx/order_comment.go | 2 +- business/partner/purchase/mtwm/order.go | 17 ++-- business/partner/purchase/mtwm/order_afs.go | 1 + .../partner/purchase/mtwm/order_comment.go | 2 +- business/partner/purchase/mtwm/order_test.go | 4 +- business/partner/purchase/weimob/wsc/order.go | 2 +- .../purchase/weimob/wsc/order_comment.go | 2 +- conf/app.conf | 70 ++------------ globals/api/apimanager/apimanager.go | 4 +- globals/globals.go | 3 + 37 files changed, 172 insertions(+), 191 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index aeb29c68d..7f9e41b46 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -165,9 +165,9 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model func (c *OrderManager) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) { // 有些平台(比如美团外卖),在新订单事件没有成功返回,但在重发订单消息前,订单状态转换,则不会再重发新订单事件,特殊处理一下 if orderStatus.Status == model.OrderStatusAccepted { - if _, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == ErrCanNotFindOrder { + if order, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == ErrCanNotFindOrder { if handler := partner.GetPurchaseOrderHandlerFromVendorID(orderStatus.VendorID); handler != nil { - if order, err2 := handler.GetOrder(orderStatus.VendorOrderID); err2 == nil { + if order, err2 := handler.GetOrder(order.VendorOrgCode, orderStatus.VendorOrderID); err2 == nil { c.OnOrderNew(order, orderStatus) } } diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index f550d9555..f65bd0dba 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -385,6 +385,7 @@ func (c *OrderManager) CreateAfsOrderFromOrder(vendorOrderID string, vendorID in JxStoreID: order.JxStoreID, VendorStoreID: order.VendorStoreID, StoreID: order.StoreID, + VendorOrgCode: order.VendorOrgCode, } } else { globals.SugarLogger.Warnf("CreateAfsOrderFromOrder, orderID:%s is not found from partner.CurOrderManager.LoadOrder", vendorOrderID) diff --git a/business/jxcallback/orderman/order_comment.go b/business/jxcallback/orderman/order_comment.go index 484d5ea7d..5bdd9ed26 100644 --- a/business/jxcallback/orderman/order_comment.go +++ b/business/jxcallback/orderman/order_comment.go @@ -84,7 +84,9 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) ( err = nil isNewComment = true if orderComment.IsReplied == 0 && time.Now().Sub(orderComment.CommentCreatedAt) < time.Duration(orderComment.ModifyDuration)*time.Hour { - c.replyOrderComment(orderComment) + if storeDetail, err2 := dao.GetStoreDetail(db, orderComment.StoreID, orderComment.VendorID); err2 == nil { + c.replyOrderComment(storeDetail.VendorOrgCode, orderComment) + } } } if isNewComment /*&& orderComment.Score <= JX_BAD_COMMENTS_MAX_LEVEL*/ || !isNewComment && orderComment.Score > JX_BAD_COMMENTS_MAX_LEVEL { // 如果是直接非差评,或补评仍然是差评,忽略 @@ -164,7 +166,7 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) ( return err } -func (c *OrderManager) replyOrderComment(orderComment *model.OrderComment) (err error) { +func (c *OrderManager) replyOrderComment(vendorOrgCode string, orderComment *model.OrderComment) (err error) { score := int(orderComment.Score) if score <= 2 { score = 1 @@ -177,7 +179,7 @@ func (c *OrderManager) replyOrderComment(orderComment *model.OrderComment) (err globals.SugarLogger.Debugf("replyOrderComment orderID:%s, delaySeconds:%d, content:%s", orderComment.VendorOrderID, delaySeconds, content) utils.AfterFuncWithRecover(time.Duration(delaySeconds)*time.Second, func() { if handler := partner.GetPurchaseOrderHandlerFromVendorID(orderComment.VendorID); handler != nil { - if err = handler.ReplyOrderComment(jxcontext.AdminCtx, orderComment, content); err != nil { + if err = handler.ReplyOrderComment(jxcontext.AdminCtx, vendorOrgCode, orderComment, content); err != nil { globals.SugarLogger.Debugf("replyOrderComment orderID:%s, error:%v", orderComment.VendorOrderID, err) } } else { diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index e3ceefd1c..39c6b15d3 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -16,6 +16,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" + "git.rosy.net.cn/jx-callback/globals/api/apimanager" "github.com/astaxie/beego/orm" ) @@ -141,7 +142,7 @@ func (c *OrderManager) GetOrderInfo(ctx *jxcontext.Context, vendorOrderID string if err == nil && num > 0 { order = orders[0] if isRefresh && vendorID == model.VendorIDJD { - tmpOrder, err2 := partner.GetPurchaseOrderHandlerFromVendorID(vendorID).GetOrder(vendorOrderID) + tmpOrder, err2 := partner.GetPurchaseOrderHandlerFromVendorID(vendorID).GetOrder(order.VendorOrgCode, vendorOrderID) if err = err2; err == nil { order.CurrentConsigneeMobile = tmpOrder.ConsigneeMobile } else { @@ -913,21 +914,26 @@ func (c *OrderManager) AmendMissingOrders(ctx *jxcontext.Context, vendorIDs []in } type tDateVendorPair struct { - QueryDate time.Time - VendorID int + QueryDate time.Time + VendorID int + VendorOrgCode string } var dateVendorList []*tDateVendorPair for _, vendorID := range vendorIDs { - for tmpDate := fromDate; tmpDate.Sub(toDate) <= 0; tmpDate = tmpDate.Add(24 * time.Hour) { - dateVendorList = append(dateVendorList, &tDateVendorPair{ - QueryDate: tmpDate, - VendorID: vendorID, - }) + for _, vendorOrgCode := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) { + for tmpDate := fromDate; tmpDate.Sub(toDate) <= 0; tmpDate = tmpDate.Add(24 * time.Hour) { + dateVendorList = append(dateVendorList, &tDateVendorPair{ + QueryDate: tmpDate, + VendorID: vendorID, + VendorOrgCode: vendorOrgCode, + }) + } } } type tOrderVendorPair struct { VendorOrderID string VendorID int + VendorOrgCode string } if len(dateVendorList) > 0 { var missingOrderList []*tOrderVendorPair @@ -950,13 +956,14 @@ func (c *OrderManager) AmendMissingOrders(ctx *jxcontext.Context, vendorIDs []in func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { vendorDate := batchItemList[0].(*tDateVendorPair) if handler, _ := partner.GetPurchaseOrderHandlerFromVendorID(vendorDate.VendorID).(partner.IPurchasePlatformStoreSkuHandler); handler != nil { - orderIDs, err2 := handler.ListOrders(ctx, task, vendorDate.QueryDate, vendorStoreIDMap[vendorDate.VendorID]) + orderIDs, err2 := handler.ListOrders(ctx, vendorDate.VendorOrgCode, task, vendorDate.QueryDate, vendorStoreIDMap[vendorDate.VendorID]) if err = err2; err == nil && len(orderIDs) > 0 { var orderList []*tOrderVendorPair for _, v := range orderIDs { orderList = append(orderList, &tOrderVendorPair{ VendorOrderID: v, VendorID: vendorDate.VendorID, + VendorOrgCode: vendorDate.VendorOrgCode, }) } retVal = orderList @@ -989,7 +996,7 @@ func (c *OrderManager) AmendMissingOrders(ctx *jxcontext.Context, vendorIDs []in func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { pair := batchItemList[0].(*tOrderVendorPair) if handler := partner.GetPurchaseOrderHandlerFromVendorID(pair.VendorID); handler != nil { - order, err2 := handler.GetOrder(pair.VendorOrderID) + order, err2 := handler.GetOrder(pair.VendorOrgCode, pair.VendorOrderID) if err = err2; err == nil { isDuplicated, err2 := c.SaveOrder(order, false, dao.GetDB()) if err2 == nil && !isDuplicated { @@ -1042,7 +1049,7 @@ func (c *OrderManager) RefreshOrderFinancial(ctx *jxcontext.Context, fromTime, t order := batchItemList[0].(*model.GoodsOrder) handler := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID) if handler != nil { - remoteOrder, err2 := handler.GetOrder(order.VendorOrderID) + remoteOrder, err2 := handler.GetOrder(order.VendorOrgCode, order.VendorOrderID) if err = err2; err == nil { order.TotalShopMoney = remoteOrder.TotalShopMoney order.PmSubsidyMoney = remoteOrder.PmSubsidyMoney diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index feb7db2b2..9478debbf 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -229,18 +229,26 @@ func (c *BaseScheduler) RefundOrder(ctx *jxcontext.Context, order *model.GoodsOr } func (c *BaseScheduler) ConfirmSelfTake(ctx *jxcontext.Context, vendorOrderID string, vendorID int, selfTakeCode string) (err error) { - if vendorID == model.VendorIDJD { + order, err2 := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID) + if err = err2; err == nil { + err = c.confirmSelfTake(ctx, order, selfTakeCode) + } + return err +} + +func (c *BaseScheduler) confirmSelfTake(ctx *jxcontext.Context, order *model.GoodsOrder, selfTakeCode string) (err error) { + if order.VendorID == model.VendorIDJD { if selfTakeCode == autoSelfTakeCode { - if selfTakeCode, err = jd.CurPurchaseHandler.GetSelfTakeCode(ctx, vendorOrderID); err != nil { - return fmt.Errorf("获取订单:%s自提货码失败,原始错误:%s", vendorOrderID, err.Error()) + if selfTakeCode, err = jd.CurPurchaseHandler.GetSelfTakeCode(ctx, order); err != nil { + return fmt.Errorf("获取订单:%s自提货码失败,原始错误:%s", order.VendorOrderID, err.Error()) } if selfTakeCode == "" { - return fmt.Errorf("订单:%s看起来不是一个自提订单,如果确认是自提订单,请联系开发", vendorOrderID) + return fmt.Errorf("订单:%s看起来不是一个自提订单,如果确认是自提订单,请联系开发", order.VendorOrderID) } } - err = jd.CurPurchaseHandler.ConfirmSelfTake(ctx, vendorOrderID, selfTakeCode) + err = jd.CurPurchaseHandler.ConfirmSelfTake(ctx, order, selfTakeCode) } else { - err = fmt.Errorf("自提核销不支持%s平台订单", model.VendorChineseNames[vendorID]) + err = fmt.Errorf("自提核销不支持%s平台订单", model.VendorChineseNames[order.VendorID]) } return err } @@ -258,7 +266,7 @@ func (c *BaseScheduler) ConfirmSelfTakeOrders(ctx *jxcontext.Context, vendorIDs time.Sleep(2 * time.Second) } if err == nil { - if err = c.ConfirmSelfTake(ctx, order.VendorOrderID, order.VendorID, autoSelfTakeCode); err == nil { + if err = c.confirmSelfTake(ctx, order, autoSelfTakeCode); err == nil { retVal = []int{1} } } diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 45487d5c2..1d757083c 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -225,7 +225,7 @@ func init() { partner.CurOrderManager.OnOrderMsg(order, "自动接单失败", err.Error()) // 为了解决京东新消息与接单消息乱序的问题 if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 { - if order2, err2 := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrderID); err2 == nil { + if order2, err2 := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID); err2 == nil { if order2.Status > order.Status { order.Status = order2.Status jxutils.CallMsgHandlerAsync(func() { diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index 43af63543..79577a2d2 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -1005,7 +1005,7 @@ func CreateConsumerFromOrders(ctx *jxcontext.Context, vendorIDs []int, fromDate, } } if order2 == nil && order.VendorID == model.VendorIDMTWM && time.Now().Sub(curDate) < 60*24*time.Hour { - order2, err = handler.GetOrder(order.VendorOrderID) + order2, err = handler.GetOrder(order.VendorOrgCode, order.VendorOrderID) } if order2 != nil { if order2.VendorUserID != "" && order.VendorUserID != order2.VendorUserID { diff --git a/business/model/order.go b/business/model/order.go index c0802eeb8..bec241f44 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -100,6 +100,7 @@ type GoodsOrder struct { InvoiceTitle string `orm:"size(64)" json:"invoiceTitle"` // 发票抬头 InvoiceTaxerID string `orm:"size(32);column(invoice_taxer_id)" json:"invoiceTaxerID"` // 发票纳税人识别码 InvoiceEmail string `orm:"size(64)" json:"invoiceEmail"` // 发票邮箱 + VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 // 以下只是用于传递数据 OriginalData string `orm:"-" json:"-"` diff --git a/business/model/order_financial.go b/business/model/order_financial.go index 8e064d56f..2fd772fa1 100644 --- a/business/model/order_financial.go +++ b/business/model/order_financial.go @@ -105,7 +105,8 @@ type AfsOrder struct { RefundMoney int64 `json:"refundMoney"` // 平台扣款总额 1 RefundMoneyByCal int64 `json:"refundMoneyByCal"` // 平台扣款总额-通过公式计算平台扣除京西的金额M // JxSkuMoney int64 `json:"jxSkuMoney"` // 京西补贴金额,现阶段是平台扣京西多少钱,京西扣商家多少钱,暂不考虑撤回京西补贴 - Skus []*OrderSkuFinancial `orm:"-" json:"skus"` + Skus []*OrderSkuFinancial `orm:"-" json:"skus"` + VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 } func (o *AfsOrder) TableUnique() [][]string { diff --git a/business/partner/partner_order.go b/business/partner/partner_order.go index 442a87ce3..42065ab7d 100644 --- a/business/partner/partner_order.go +++ b/business/partner/partner_order.go @@ -12,7 +12,7 @@ type OrderPhoneNumberInfo struct { type IPurchasePlatformOrderHandler interface { Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) - GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error) + GetOrder(vendorOrgCode, vendorOrderID string) (order *model.GoodsOrder, err error) GetStatusActionTimeout(order *model.GoodsOrder, statusType, status int) (params *StatusActionParams) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) @@ -38,7 +38,7 @@ type IPurchasePlatformOrderHandler interface { GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) - ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) + ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) diff --git a/business/partner/partner_store_sku.go b/business/partner/partner_store_sku.go index 605d7b458..c6f39564d 100644 --- a/business/partner/partner_store_sku.go +++ b/business/partner/partner_store_sku.go @@ -125,7 +125,7 @@ type BareCategoryInfo struct { type IPurchasePlatformStoreSkuHandler interface { GetStoreSkusBatchSize(funcID int) int - ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) + ListOrders(ctx *jxcontext.Context, vendorOrgCode string, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) // 此接口要求实现为不限制批处理大小的 GetStoreSkusBareInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, inStoreSkuList []*StoreSkuInfo) (outStoreSkuList []*StoreSkuInfo, err error) diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 76d530a34..1f0df7eeb 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -78,7 +78,7 @@ func (p *PurchaseHandler) getStatusFromVendorStatus(vendorStatus string) int { return model.OrderStatusUnknown } -func (p *PurchaseHandler) GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error) { +func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID string) (order *model.GoodsOrder, err error) { order, _, err = p.getOrder(vendorOrderID) return order, err } @@ -208,6 +208,8 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo InvoiceTitle: utils.Interface2String(orderMap["invoice_title"]), InvoiceTaxerID: utils.Interface2String(orderMap["taxer_id"]), InvoiceEmail: jxutils.GetOneEmailFromStr(utils.Interface2String(orderMap["remark"])), + + VendorOrgCode: utils.Interface2String(result["source"]), } if utils.IsTimeZero(order.PickDeadline) && !utils.IsTimeZero(order.StatusTime) { order.PickDeadline = order.StatusTime.Add(pickupOrderDelay) // 饿百要求在5分钟内拣货,不然订单会被取消 @@ -425,7 +427,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiapi. if status.Status == model.OrderStatusFinished { if order, err2 := partner.CurOrderManager.LoadOrder(status.VendorOrderID, status.VendorID); err2 == nil { if order.TotalShopMoney == 0 { - if order2, err2 := c.GetOrder(status.VendorOrderID); err2 == nil { + if order2, err2 := c.GetOrder(msg.Source, status.VendorOrderID); err2 == nil { order.TotalShopMoney = order2.TotalShopMoney order.PmSubsidyMoney = order2.PmSubsidyMoney partner.CurOrderManager.UpdateOrderFields(order, []string{"TotalShopMoney", "PmSubsidyMoney"}) @@ -612,7 +614,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods return err } -func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { +func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode string, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { if utils.IsTimeZero(queryDate) { return nil, fmt.Errorf("queryDate必须指定") } diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index eb499879e..fac74a1ea 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -73,6 +73,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia ReasonImgList: utils.LimitUTF8StringLen(strings.Join(partRefundData.Photos, ","), 1024), RefundType: model.AfsTypePartRefund, + VendorOrgCode: msg.Source, // FreightUserMoney: afsInfo.OrderFreightMoney, // AfsFreightMoney: afsInfo.AfsFreight, // BoxMoney: afsInfo.PackagingMoney, diff --git a/business/partner/purchase/ebai/order_comment.go b/business/partner/purchase/ebai/order_comment.go index 8a49a1e5c..eef56da63 100644 --- a/business/partner/purchase/ebai/order_comment.go +++ b/business/partner/purchase/ebai/order_comment.go @@ -92,7 +92,7 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) return err } -func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) { +func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string,orderComment *model.OrderComment, replyComment string) (err error) { if orderComment.VendorStoreID != "" && orderComment.UserCommentID != "" { if globals.EnableEbaiStoreWrite { err = api.EbaiAPI.OrderRatesReply("", utils.Str2Int64(orderComment.VendorStoreID), orderComment.UserCommentID, replyComment) diff --git a/business/partner/purchase/ebai/order_test.go b/business/partner/purchase/ebai/order_test.go index 2349cfadc..239b3d356 100644 --- a/business/partner/purchase/ebai/order_test.go +++ b/business/partner/purchase/ebai/order_test.go @@ -18,7 +18,7 @@ func TestGetOrder4PartRefund(t *testing.T) { } func TestListOrders(t *testing.T) { - order, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, utils.GetCurDate(), "") + order, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, "", nil, utils.GetCurDate(), "") if err != nil { t.Fatal(err.Error()) } else { diff --git a/business/partner/purchase/elm/order.go b/business/partner/purchase/elm/order.go index 935956d9f..9bbdfbc5f 100644 --- a/business/partner/purchase/elm/order.go +++ b/business/partner/purchase/elm/order.go @@ -123,7 +123,7 @@ func (c *PurchaseHandler) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancel return elmapi.Err2CallbackResponse(partner.CurOrderManager.OnOrderStatusChanged(status), status.VendorStatus) } -func (c *PurchaseHandler) GetOrder(orderID string) (order *model.GoodsOrder, err error) { +func (c *PurchaseHandler) GetOrder(vendorOrgCode, orderID string) (order *model.GoodsOrder, err error) { result, err := api.ElmAPI.GetOrder(orderID) if err == nil { order = c.Map2Order(result) @@ -200,7 +200,7 @@ func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo // func (c *PurchaseHandler) onOrderNew(msg map[string]interface{}) (response *elmapi.CallbackResponse) { // todo 这里应该可以直接用msg里的内容,而不用再次去查 - order, err := c.GetOrder(msg["orderId"].(string)) + order, err := c.GetOrder("", msg["orderId"].(string)) if err == nil { order.VendorStatus = c.stateAndType2Str(order.VendorStatus, elmapi.MsgTypeOrderValid) err = partner.CurOrderManager.OnOrderNew(order, nil) diff --git a/business/partner/purchase/elm/order_comment.go b/business/partner/purchase/elm/order_comment.go index adff37f0e..18cba44d6 100644 --- a/business/partner/purchase/elm/order_comment.go +++ b/business/partner/purchase/elm/order_comment.go @@ -5,6 +5,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model" ) -func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) { +func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { return err } diff --git a/business/partner/purchase/elm/order_test.go b/business/partner/purchase/elm/order_test.go index 7c0e294a9..1a3f7b704 100644 --- a/business/partner/purchase/elm/order_test.go +++ b/business/partner/purchase/elm/order_test.go @@ -13,7 +13,7 @@ func init() { func TestGetOrder(t *testing.T) { orderID := "3025427524410871880" - order, err := new(PurchaseHandler).GetOrder(orderID) + order, err := new(PurchaseHandler).GetOrder("", orderID) if err != nil { t.Fatal(err.Error()) } diff --git a/business/partner/purchase/jd/callback.go b/business/partner/purchase/jd/callback.go index 0b29cd921..a94fff6f0 100644 --- a/business/partner/purchase/jd/callback.go +++ b/business/partner/purchase/jd/callback.go @@ -6,21 +6,21 @@ import ( func OnOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { if CurPurchaseHandler != nil { - retVal = CurPurchaseHandler.OnOrderMsg(msg) + retVal = CurPurchaseHandler.OnOrderMsg(GetAPIByAppKey(msg.AppKey), msg) } return retVal } func OnWaybillMsg(msg *jdapi.CallbackDeliveryStatusMsg) (retVal *jdapi.CallbackResponse) { if CurPurchaseHandler != nil { - retVal = CurPurchaseHandler.OnWaybillMsg(msg) + retVal = CurPurchaseHandler.OnWaybillMsg(GetAPIByAppKey(msg.AppKey), msg) } return retVal } func OnStoreMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { if CurPurchaseHandler != nil { - retVal = CurPurchaseHandler.OnStoreMsg(msg) + retVal = CurPurchaseHandler.OnStoreMsg(GetAPIByAppKey(msg.AppKey), msg) } return retVal } diff --git a/business/partner/purchase/jd/financial.go b/business/partner/purchase/jd/financial.go index 7cc5cef40..45037f159 100644 --- a/business/partner/purchase/jd/financial.go +++ b/business/partner/purchase/jd/financial.go @@ -18,13 +18,14 @@ func (p *PurchaseHandler) OnFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *j // 京东正向/退款订单类型处理--存储 func (p *PurchaseHandler) onFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { var err error + a := GetAPIByAppKey(msg.AppKey) // if msg.StatusID == jdapi.OrderStatusPayFinishedSettle || msg.StatusID == jdapi.OrderStatusTipChanged || msg.StatusID == jdapi.OrderStatusSwitch2SelfSettle { // 如果是正向单 if msg.StatusID == jdapi.OrderStatusPayFinishedSettle || msg.StatusID == jdapi.OrderStatusTipChanged || msg.StatusID == jdapi.OrderStatusAdjustSettle || msg.StatusID == jdapi.OrderStatusSwitch2SelfSettle { // 如果是正向单 order, err2 := partner.CurOrderManager.LoadOrder(msg.BillID, model.VendorIDJD) if err = err2; err == nil { - orderData, err2 := getAPI("").QuerySingleOrder(msg.BillID) + orderData, err2 := a.QuerySingleOrder(msg.BillID) if err = err2; err == nil { - orderFinancial, err2 := CurPurchaseHandler.OrderDetail2Financial(orderData, false, order) + orderFinancial, err2 := CurPurchaseHandler.OrderDetail2Financial(a, orderData, false, order) if err = err2; err == nil { if msg.StatusID == jdapi.OrderStatusPayFinishedSettle { err = partner.CurOrderManager.SaveOrderFinancialInfo(orderFinancial, partner.CreatedPeration) @@ -37,7 +38,7 @@ func (p *PurchaseHandler) onFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *j err = nil } } else if msg.StatusID == jdapi.AfsServiceStateRefundSuccess || msg.StatusID == jdapi.AfsServiceStateReturnGoodsSuccess { // 如果是退款单 - orderData, err2 := getAPI("").GetAfsService(msg.BillID) + orderData, err2 := a.GetAfsService(msg.BillID) if err = err2; err == nil { err = partner.CurOrderManager.SaveAfsOrderFinancialInfo(CurPurchaseHandler.AfsOrderDetail2Financial(orderData)) } @@ -46,7 +47,7 @@ func (p *PurchaseHandler) onFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *j } // 处理京东正向订单信息 -func (p *PurchaseHandler) OrderDetail2Financial(orderData map[string]interface{}, isFromOrderDetail bool, order *model.GoodsOrder) (orderFinancial *model.OrderFinancial, err error) { +func (p *PurchaseHandler) OrderDetail2Financial(a *jdapi.API, orderData map[string]interface{}, isFromOrderDetail bool, order *model.GoodsOrder) (orderFinancial *model.OrderFinancial, err error) { orderFinancial = &model.OrderFinancial{ VendorID: model.VendorIDJD, VendorOrderID: utils.Int64ToStr(utils.MustInterface2Int64(orderData["orderId"])), @@ -151,7 +152,7 @@ func (p *PurchaseHandler) OrderDetail2Financial(orderData map[string]interface{} } // globals.SugarLogger.Debug(utils.Format4Output(orderFinancial.Discounts, false)) } - order1, err2 := getAPI("").OrderShoudSettlementService(orderFinancial.VendorOrderID) + order1, err2 := a.OrderShoudSettlementService(orderFinancial.VendorOrderID) if err = err2; err == nil { orderFinancial.ShopMoney = utils.Interface2Int64WithDefault(order1["settlementAmount"], 0) orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["goodsCommission"], 0) @@ -160,10 +161,6 @@ func (p *PurchaseHandler) OrderDetail2Financial(orderData map[string]interface{} orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["guaranteedCommission"], 0) orderFinancial.PmSkuSubsidyMoney = utils.Interface2Int64WithDefault(order1["platSkuGoodsDiscountMoney"], 0) orderFinancial.PmSubsidyMoney = utils.Interface2Int64WithDefault(order1["platOrderGoodsDiscountMoney"], 0) + orderFinancial.PmSkuSubsidyMoney - } else { - if !isFromOrderDetail { - // globals.SugarLogger.Warnf("jd OrderDetail2Financial, orderID:%s is not found from getAPI("").OrderShoudSettlementService, err:%v", orderFinancial.VendorOrderID, err) - } } return orderFinancial, err } @@ -182,6 +179,7 @@ func (p *PurchaseHandler) AfsOrderDetail2Financial(orderData map[string]interfac BoxMoney: utils.MustInterface2Int64(orderData["packagingMoney"]), TongchengFreightMoney: utils.MustInterface2Int64(orderData["tongchengFreightMoney"]), SkuBoxMoney: utils.MustInterface2Int64(orderData["mealBoxMoney"]), + VendorOrgCode: utils.Interface2String(orderData["venderId"]), } order, err := partner.CurOrderManager.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID) if err == nil { @@ -230,10 +228,10 @@ func (p *PurchaseHandler) AfsOrderDetail2Financial(orderData map[string]interfac return afsOrder } -func (p *PurchaseHandler) OnOrderDetail(orderDetail map[string]interface{}, peration string) (err error) { +func (p *PurchaseHandler) OnOrderDetail(a *jdapi.API, orderDetail map[string]interface{}, peration string) (err error) { order, err := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(utils.MustInterface2Int64(orderDetail["orderId"])), model.VendorIDJD) if err == nil { - orderFinancial, err2 := CurPurchaseHandler.OrderDetail2Financial(orderDetail, true, order) + orderFinancial, err2 := CurPurchaseHandler.OrderDetail2Financial(a, orderDetail, true, order) if err = err2; err == nil { err = partner.CurOrderManager.SaveOrderFinancialInfo(orderFinancial, peration) } diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 8d14af64b..75a7cfb6a 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -44,19 +44,19 @@ var ( selfTakeCodeReg = regexp.MustCompile(`等待用户凭提货码(\d+)于`) ) -func (c *PurchaseHandler) OnOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { +func (c *PurchaseHandler) OnOrderMsg(a *jdapi.API, msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { jxutils.CallMsgHandler(func() { - retVal = c.onOrderMsg(msg) + retVal = c.onOrderMsg(a, msg) }, jxutils.ComposeUniversalOrderID(msg.BillID, model.VendorIDJD)) return retVal } -func (c *PurchaseHandler) updateOrderFinancialInfo(orderID string) (err error) { +func (c *PurchaseHandler) updateOrderFinancialInfo(a *jdapi.API, orderID string) (err error) { order := &model.GoodsOrder{ VendorOrderID: orderID, VendorID: model.VendorIDJD, } - orderSettlement, err := getAPI("").OrderShoudSettlementService2(orderID) + orderSettlement, err := a.OrderShoudSettlementService2(orderID) if err == nil { if orderSettlement != nil { updateOrderBySettleMent(order, orderSettlement) @@ -66,7 +66,7 @@ func (c *PurchaseHandler) updateOrderFinancialInfo(orderID string) (err error) { return err } -func (c *PurchaseHandler) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { +func (c *PurchaseHandler) onOrderMsg(a *jdapi.API, msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { status := c.callbackMsg2Status(msg) if jdapi.StatusIDNewOrder == msg.StatusID { status.Status = model.OrderStatusNew // 因为京东将事件32000与状态32000混用,事件32000可能是新订单,也可能是已接单,统一当成新订单处理 @@ -76,19 +76,19 @@ func (c *PurchaseHandler) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi } if msg.MsgURL == jdapi.CallbackMsgOrderAccounting { retVal = c.OnFinancialMsg(msg) - retVal = jdapi.Err2CallbackResponse(c.updateOrderFinancialInfo(msg.BillID), status.VendorStatus) + retVal = jdapi.Err2CallbackResponse(c.updateOrderFinancialInfo(a, msg.BillID), status.VendorStatus) } else if msg.MsgURL == jdapi.CallbackMsgAfterSaleBillStatus { - retVal = c.OnAfsOrderMsg(msg) + retVal = c.OnAfsOrderMsg(a, msg) } else { // 新订单事件,与订单状态有点冲突 if jdapi.StatusIDNewOrder == msg.StatusID { - retVal = c.onOrderNew(msg, status) + retVal = c.onOrderNew(a, msg, status) } else if jdapi.OrderStatusAdjust == msg.StatusID { - retVal = c.onOrderAdjust(msg, status) + retVal = c.onOrderAdjust(a, msg, status) } else { if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment { utils.CallFuncAsync(func() { - c.onOrderComment2(msg) + c.onOrderComment2(a, msg) }) } err := partner.CurOrderManager.OnOrderStatusChanged(status) @@ -109,7 +109,7 @@ func updateOrderBySettleMent(order *model.GoodsOrder, orderSettlement *jdapi.Ord } } -func (c *PurchaseHandler) getOrder(orderID string) (order *model.GoodsOrder, orderMap map[string]interface{}, err error) { +func (c *PurchaseHandler) getOrder(a *jdapi.API, orderID string) (order *model.GoodsOrder, orderMap map[string]interface{}, err error) { globals.SugarLogger.Debugf("jd getOrder orderID:%s", orderID) var ( realMobile string @@ -120,16 +120,16 @@ func (c *PurchaseHandler) getOrder(orderID string) (order *model.GoodsOrder, ord taskIndex := batchItemList[0].(int) switch taskIndex { case 0: - orderMap, err = getAPI("").QuerySingleOrder(orderID) + orderMap, err = a.QuerySingleOrder(orderID) if err == nil { order = c.Map2Order(orderMap) - realMobile, _ = getAPI("").GetRealMobile4Order(orderID, order.VendorStoreID) + realMobile, _ = a.GetRealMobile4Order(orderID, order.VendorStoreID) if realMobile != "" { order.ConsigneeMobile2 = jxutils.FormalizeMobile(realMobile) } } case 1: - orderSettlement, _ = getAPI("").OrderShoudSettlementService2(orderID) + orderSettlement, _ = a.OrderShoudSettlementService2(orderID) } return nil, err }, []int{0, 1}) @@ -141,8 +141,8 @@ func (c *PurchaseHandler) getOrder(orderID string) (order *model.GoodsOrder, ord return order, orderMap, err } -func (c *PurchaseHandler) GetOrder(orderID string) (order *model.GoodsOrder, err error) { - order, _, err = c.getOrder(orderID) +func (c *PurchaseHandler) GetOrder(vendorOrgCode, orderID string) (order *model.GoodsOrder, err error) { + order, _, err = c.getOrder(getAPI(vendorOrgCode), orderID) return order, err } @@ -178,6 +178,7 @@ func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo ActualPayPrice: utils.MustInterface2Int64(result["orderBuyerPayableMoney"]), DistanceFreightMoney: utils.Interface2Int64WithDefault(result["merchantPaymentDistanceFreightMoney"], 0), DeliveryType: deliveryTypeMap[int(utils.Str2Int64WithDefault(utils.Interface2String(result["deliveryCarrierNo"]), 0))], + VendorOrgCode: utils.Interface2String(result["orgCode"]), } if orderInvoice, ok := result["orderInvoice"].(map[string]interface{}); ok && orderInvoice != nil { order.InvoiceTitle = utils.Interface2String(orderInvoice["invoiceTitle"]) @@ -240,27 +241,27 @@ func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo } // -func (c *PurchaseHandler) onOrderNew(msg *jdapi.CallbackOrderMsg, orderStatus *model.OrderStatus) (response *jdapi.CallbackResponse) { +func (c *PurchaseHandler) onOrderNew(a *jdapi.API, msg *jdapi.CallbackOrderMsg, orderStatus *model.OrderStatus) (response *jdapi.CallbackResponse) { globals.SugarLogger.Debugf("onOrderNew orderID:%s", msg.BillID) - order, orderMap, err := c.getOrder(msg.BillID) + order, orderMap, err := c.getOrder(a, msg.BillID) if err == nil { globals.SugarLogger.Debugf("onOrderNew2 orderID:%s", msg.BillID) if err = partner.CurOrderManager.OnOrderNew(order, orderStatus); err == nil { utils.CallFuncAsync(func() { - c.OnOrderDetail(orderMap, partner.CreatedPeration) + c.OnOrderDetail(a, orderMap, partner.CreatedPeration) }) } } return jdapi.Err2CallbackResponse(err, "jd onOrderNew") } -func (c *PurchaseHandler) onOrderAdjust(msg *jdapi.CallbackOrderMsg, orderStatus *model.OrderStatus) *jdapi.CallbackResponse { - order, orderMap, err := c.getOrder(msg.BillID) +func (c *PurchaseHandler) onOrderAdjust(a *jdapi.API, msg *jdapi.CallbackOrderMsg, orderStatus *model.OrderStatus) *jdapi.CallbackResponse { + order, orderMap, err := c.getOrder(a, msg.BillID) if err == nil { err = partner.CurOrderManager.OnOrderAdjust(order, orderStatus) if err == nil { utils.CallFuncAsync(func() { - c.OnOrderDetail(orderMap, partner.UpdatedPeration) + c.OnOrderDetail(a, orderMap, partner.UpdatedPeration) }) } } @@ -305,7 +306,7 @@ func (c *PurchaseHandler) getStatusFromVendorStatus(vendorStatus string) int { func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) { globals.SugarLogger.Debugf("jd AcceptOrRefuseOrder orderID:%s, isAcceptIt:%t", order.VendorOrderID, isAcceptIt) if globals.EnableJdStoreWrite { - err = getAPI("").OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName) + err = getAPI(order.VendorOrgCode).OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName) if isAcceptIt && err == nil { c.postFakeMsg(order.VendorOrderID, jdapi.StatusIDWaitOutStore) } @@ -323,7 +324,7 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { globals.SugarLogger.Debugf("jd PickupGoods orderID:%s, isSelfDelivery:%t", order.VendorOrderID, isSelfDelivery) if !isSelfDelivery && globals.EnableJdStoreWrite { - _, err = getAPI("").OrderJDZBDelivery(order.VendorOrderID, userName) + _, err = getAPI(order.VendorOrgCode).OrderJDZBDelivery(order.VendorOrderID, userName) } else { c.postFakeMsg(order.VendorOrderID, jdapi.OrderStatusFinishedPickup) } @@ -332,21 +333,21 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo func (p *PurchaseHandler) AcceptOrRefuseFailedGetOrder(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool) (err error) { if globals.EnableJdStoreWrite { - err = getAPI("").ReceiveFailedAudit(order.VendorOrderID, isAcceptIt, ctx.GetUserName(), "") + err = getAPI(order.VendorOrgCode).ReceiveFailedAudit(order.VendorOrderID, isAcceptIt, ctx.GetUserName(), "") } return err } func (p *PurchaseHandler) CallCourier(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { // 拣货失败后再次招唤平台配送 if globals.EnableJdStoreWrite { - err = getAPI("").UrgeDispatching(order.VendorOrderID, ctx.GetUserName()) + err = getAPI(order.VendorOrgCode).UrgeDispatching(order.VendorOrderID, ctx.GetUserName()) } return err } func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { // 投递失败后确认收到退货 if globals.EnableJdStoreWrite { - err = getAPI("").ConfirmReceiveGoods(order.VendorOrderID) + err = getAPI(order.VendorOrgCode).ConfirmReceiveGoods(order.VendorOrderID) } return err } @@ -354,11 +355,11 @@ func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *mod func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) { globals.SugarLogger.Debugf("jd Swtich2SelfDeliver orderID:%s", order.VendorOrderID) if globals.EnableJdStoreWrite { - _, err = getAPI("").ModifySellerDelivery(order.VendorOrderID, userName) + _, err = getAPI(order.VendorOrgCode).ModifySellerDelivery(order.VendorOrderID, userName) if err != nil { if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 { globals.SugarLogger.Infof("Swtich2SelfDeliver failed with error:%v try get current status", err) - if order2, err2 := c.GetOrder(order.VendorOrderID); err2 == nil { + if order2, err2 := c.GetOrder(order.VendorOrgCode, order.VendorOrderID); err2 == nil { var mapData map[string]interface{} if err2 = utils.UnmarshalUseNumber([]byte(order2.OriginalData), &mapData); err2 == nil { if utils.Interface2String(mapData["deliveryCarrierNo"]) == "2938" { // 当前已经是自送状态了 @@ -375,7 +376,7 @@ func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) { globals.SugarLogger.Debugf("jd Swtich2SelfDelivered orderID:%s", order.VendorOrderID) if globals.EnableJdStoreWrite { - _, err = getAPI("").DeliveryEndOrder(order.VendorOrderID, userName) + _, err = getAPI(order.VendorOrgCode).DeliveryEndOrder(order.VendorOrderID, userName) } return err } @@ -383,7 +384,7 @@ func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) { globals.SugarLogger.Debugf("jd SelfDeliverDelivering orderID:%s", order.VendorOrderID) if globals.EnableJdStoreWrite { - _, err = getAPI("").OrderSerllerDelivery(order.VendorOrderID, userName) + _, err = getAPI(order.VendorOrgCode).OrderSerllerDelivery(order.VendorOrderID, userName) } return err } @@ -398,13 +399,13 @@ func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName } func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) { - mobile, err = getAPI("").GetRealMobile4Order(order.VendorOrderID, order.VendorStoreID) + mobile, err = getAPI(order.VendorOrgCode).GetRealMobile4Order(order.VendorOrderID, order.VendorStoreID) return mobile, err } func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { if globals.EnableJdStoreWrite { - err = getAPI("").OrderCancelOperate(order.VendorOrderID, isAgree, ctx.GetUserName(), reason) + err = getAPI(order.VendorOrgCode).OrderCancelOperate(order.VendorOrderID, isAgree, ctx.GetUserName(), reason) } return err } @@ -412,7 +413,7 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { if globals.EnableJdStoreWrite { err1 := c.Swtich2SelfDeliver(order, ctx.GetUserName()) - if err = getAPI("").CancelAndRefund(order.VendorOrderID, ctx.GetUserName(), reason); err != nil { + if err = getAPI(order.VendorOrgCode).CancelAndRefund(order.VendorOrderID, ctx.GetUserName(), reason); err != nil { if err1 != nil { err = fmt.Errorf("取消订单失败,京东取消订单是要先转为自送再处理,转自送失败:%v", err1) } @@ -431,12 +432,12 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods }) } if globals.EnableJdStoreWrite { - err = getAPI("").AdjustOrder(order.VendorOrderID, ctx.GetUserName(), reason, oaosAdjustDTOList) + err = getAPI(order.VendorOrgCode).AdjustOrder(order.VendorOrderID, ctx.GetUserName(), reason, oaosAdjustDTOList) } return err } -func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { +func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode string, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { if utils.IsTimeZero(queryDate) { return nil, fmt.Errorf("queryDate必须指定") } @@ -450,7 +451,7 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch. if vendorStoreID != "" { queryParam.DeliveryStationNo = vendorStoreID } - orderList, _, err := getAPI("").OrderQuery2(queryParam) + orderList, _, err := getAPI(vendorOrgCode).OrderQuery2(queryParam) if err == nil { vendorOrderIDs = make([]string, len(orderList)) for k, v := range orderList { @@ -461,12 +462,13 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch. } func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee int64) (err error) { - orderInfo, err := getAPI("").QuerySingleOrder2(order.VendorOrderID) + a := getAPI(order.VendorOrgCode) + orderInfo, err := a.QuerySingleOrder2(order.VendorOrderID) if err == nil { tip2Add := int(tipFee) - orderInfo.Tips if tip2Add != 0 { if globals.EnableJdStoreWrite { - err = getAPI("").OrderAddTips(order.VendorOrderID, tip2Add, ctx.GetUserName()) + err = a.OrderAddTips(order.VendorOrderID, tip2Add, ctx.GetUserName()) } } } @@ -474,7 +476,7 @@ func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, order *model. } func (c *PurchaseHandler) GetWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder) (tipFee int64, err error) { - orderInfo, err := getAPI("").QuerySingleOrder2(order.VendorOrderID) + orderInfo, err := getAPI(order.VendorOrgCode).QuerySingleOrder2(order.VendorOrderID) if err == nil { tipFee = int64(orderInfo.Tips) } @@ -483,13 +485,13 @@ func (c *PurchaseHandler) GetWaybillTip(ctx *jxcontext.Context, order *model.Goo func (c *PurchaseHandler) AddWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee2Add int64) (err error) { if globals.EnableJdStoreWrite { - err = getAPI("").OrderAddTips(order.VendorOrderID, int(tipFee2Add), ctx.GetUserName()) + err = getAPI(order.VendorOrgCode).OrderAddTips(order.VendorOrderID, int(tipFee2Add), ctx.GetUserName()) } return err } -func (c *PurchaseHandler) GetSelfTakeCode(ctx *jxcontext.Context, vendorOrderID string) (selfTakeCode string, err error) { - orderTrackList, err := getAPI("").GetByOrderNoForOaos(vendorOrderID) +func (c *PurchaseHandler) GetSelfTakeCode(ctx *jxcontext.Context, order *model.GoodsOrder) (selfTakeCode string, err error) { + orderTrackList, err := getAPI(order.VendorOrgCode).GetByOrderNoForOaos(order.VendorOrderID) if err == nil { for _, v := range orderTrackList { if v.TagCode == 180 { @@ -504,9 +506,9 @@ func (c *PurchaseHandler) GetSelfTakeCode(ctx *jxcontext.Context, vendorOrderID return selfTakeCode, err } -func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, vendorOrderID, selfTakeCode string) (err error) { +func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.GoodsOrder, selfTakeCode string) (err error) { if globals.EnableJdStoreWrite { - err = getAPI("").CheckSelfPickCode(selfTakeCode, vendorOrderID, ctx.GetUserName()) + err = getAPI(order.VendorOrgCode).CheckSelfPickCode(selfTakeCode, order.VendorOrderID, ctx.GetUserName()) } return err } diff --git a/business/partner/purchase/jd/order_afs.go b/business/partner/purchase/jd/order_afs.go index e3ecc3803..b89bc58e4 100644 --- a/business/partner/purchase/jd/order_afs.go +++ b/business/partner/purchase/jd/order_afs.go @@ -58,15 +58,15 @@ var ( } ) -func (c *PurchaseHandler) OnAfsOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { +func (c *PurchaseHandler) OnAfsOrderMsg(a *jdapi.API, msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { jxutils.CallMsgHandlerAsync(func() { - retVal = c.onAfsOrderMsg(msg) + retVal = c.onAfsOrderMsg(a, msg) }, jxutils.ComposeUniversalOrderID(msg.BillID, model.VendorIDJD)) return retVal } -func (c *PurchaseHandler) onAfsOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { - afsInfo, err := getAPI("").GetAfsService2(msg.BillID) +func (c *PurchaseHandler) onAfsOrderMsg(a *jdapi.API, msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { + afsInfo, err := a.GetAfsService2(msg.BillID) if err == nil { status := c.callbackAfsMsg2Status(msg, afsInfo) if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 { @@ -141,6 +141,7 @@ func (c *PurchaseHandler) buildAfsOrder(afsInfo *jdapi.AfsServiceResponse) (afsO ReasonImgList: utils.LimitUTF8StringLen(jdapi.ProcessQuestionPic(afsInfo.QuestionPic), 1024), VendorAppealType: afsInfo.ApplyDeal, AppealType: c.convertAfsAppealType(afsInfo.ApplyDeal), + VendorOrgCode: afsInfo.VenderID, } afsOrder.Status = c.GetAfsStatusFromVendorStatus(afsOrder.VendorStatus) @@ -181,7 +182,7 @@ func (c *PurchaseHandler) buildAfsOrder(afsInfo *jdapi.AfsServiceResponse) (afsO // 审核售后单申请 func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { if globals.EnableJdStoreWrite { - err = getAPI("").AfsOpenApprove(order.AfsOrderID, afsApproveTypeMap[approveType], reason, ctx.GetUserName()) + err = getAPI(order.VendorOrgCode).AfsOpenApprove(order.AfsOrderID, afsApproveTypeMap[approveType], reason, ctx.GetUserName()) } return err } @@ -189,7 +190,7 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod // 确认收到退货 func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error) { if globals.EnableJdStoreWrite { - err = getAPI("").ConfirmReceipt(order.AfsOrderID, ctx.GetUserName()) + err = getAPI(order.VendorOrgCode).ConfirmReceipt(order.AfsOrderID, ctx.GetUserName()) } return err } @@ -217,7 +218,7 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods // 发起部分退款 func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) { if globals.EnableJdStoreWrite { - _, err = getAPI("").AfsSubmit(order.VendorOrderID, ctx.GetUserName(), utils.Int2Str(jdapi.AfsReasonWrongPurchase), reason, "", order.ConsigneeName, order.ConsigneeMobile, order.ConsigneeAddress, orderSkus2AfsSkus(refundSkuList)) + _, err = getAPI(order.VendorOrgCode).AfsSubmit(order.VendorOrderID, ctx.GetUserName(), utils.Int2Str(jdapi.AfsReasonWrongPurchase), reason, "", order.ConsigneeName, order.ConsigneeMobile, order.ConsigneeAddress, orderSkus2AfsSkus(refundSkuList)) } return err } diff --git a/business/partner/purchase/jd/order_comment.go b/business/partner/purchase/jd/order_comment.go index a6ee7962e..ab77a1e2f 100644 --- a/business/partner/purchase/jd/order_comment.go +++ b/business/partner/purchase/jd/order_comment.go @@ -13,9 +13,9 @@ const ( JDDJ_BAD_COMMENTS_MAX_MODIFY_TIME = 72 // 小时 ) -func (c *PurchaseHandler) onOrderComment2(msg *jdapi.CallbackOrderMsg) (err error) { +func (c *PurchaseHandler) onOrderComment2(a *jdapi.API, msg *jdapi.CallbackOrderMsg) (err error) { intOrderID := utils.Str2Int64(msg.BillID) - result, err := getAPI("").GetCommentByOrderId2(intOrderID) + result, err := a.GetCommentByOrderId2(intOrderID) if err == nil { globals.SugarLogger.Debugf("onOrderComment comment:%s", utils.Format4Output(result, true)) orderCommend := &model.OrderComment{ @@ -43,9 +43,9 @@ func (c *PurchaseHandler) onOrderComment2(msg *jdapi.CallbackOrderMsg) (err erro return err } -func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) { +func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { if globals.EnableJdStoreWrite { - err = getAPI("").OrgReplyComment(utils.Str2Int64(orderComment.VendorOrderID), orderComment.VendorStoreID, replyComment, ctx.GetUserName()) + err = getAPI(vendorOrgCode).OrgReplyComment(utils.Str2Int64(orderComment.VendorOrderID), orderComment.VendorStoreID, replyComment, ctx.GetUserName()) } return err } diff --git a/business/partner/purchase/jd/order_test.go b/business/partner/purchase/jd/order_test.go index c82bc71ed..b0e2ac099 100644 --- a/business/partner/purchase/jd/order_test.go +++ b/business/partner/purchase/jd/order_test.go @@ -26,14 +26,14 @@ func TestSwitch2SelfDeliver(t *testing.T) { } func TestGetOrder(t *testing.T) { - _, err := CurPurchaseHandler.GetOrder("815536199000222") + _, err := CurPurchaseHandler.GetOrder("", "815536199000222") if err != nil { t.Fatal(err.Error()) } } func TestListOrders(t *testing.T) { - result, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, time.Now(), "") + result, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, "", nil, time.Now(), "") if err != nil { t.Fatal(err.Error()) } diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index 651fbc30b..1aae1bd90 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -279,7 +279,7 @@ func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorOrgCode s } // 当前京东的storeCrud消息不会在门店状态改变时发送,所以意义不大,先放在这里 -func (c *PurchaseHandler) OnStoreMsg(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) { +func (c *PurchaseHandler) OnStoreMsg(a *jdapi.API, msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) { var err error // if msg.StatusID == jdapi.StatusIDUpdateStore { // var storeStatus int diff --git a/business/partner/purchase/jd/waybill.go b/business/partner/purchase/jd/waybill.go index 36805ff44..0d3157333 100644 --- a/business/partner/purchase/jd/waybill.go +++ b/business/partner/purchase/jd/waybill.go @@ -8,14 +8,14 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" ) -func (c *PurchaseHandler) OnWaybillMsg(msg *jdapi.CallbackDeliveryStatusMsg) (retVal *jdapi.CallbackResponse) { +func (c *PurchaseHandler) OnWaybillMsg(a *jdapi.API, msg *jdapi.CallbackDeliveryStatusMsg) (retVal *jdapi.CallbackResponse) { jxutils.CallMsgHandler(func() { - retVal = c.onWaybillMsg(msg) + retVal = c.onWaybillMsg(a, msg) }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDJD)) return retVal } -func (c *PurchaseHandler) onWaybillMsg(msg *jdapi.CallbackDeliveryStatusMsg) (retVal *jdapi.CallbackResponse) { +func (c *PurchaseHandler) onWaybillMsg(a *jdapi.API, msg *jdapi.CallbackDeliveryStatusMsg) (retVal *jdapi.CallbackResponse) { order := c.callbackMsg2Waybill(msg) switch msg.DeliveryStatus { case jdapi.DeliveryStatusWait4Grap: diff --git a/business/partner/purchase/jx/order.go b/business/partner/purchase/jx/order.go index 1a31217f3..5bd3086bc 100644 --- a/business/partner/purchase/jx/order.go +++ b/business/partner/purchase/jx/order.go @@ -15,7 +15,7 @@ func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo return order } -func (c *PurchaseHandler) GetOrder(orderID string) (order *model.GoodsOrder, err error) { +func (c *PurchaseHandler) GetOrder(vendorOrgCode, orderID string) (order *model.GoodsOrder, err error) { return order, err } @@ -102,7 +102,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods return err } -func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { +func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode string, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { return vendorOrderIDs, err } diff --git a/business/partner/purchase/jx/order_comment.go b/business/partner/purchase/jx/order_comment.go index e417ab618..20553a214 100644 --- a/business/partner/purchase/jx/order_comment.go +++ b/business/partner/purchase/jx/order_comment.go @@ -5,6 +5,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model" ) -func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) { +func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { return err } diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 09ace7634..5bd4fa3a9 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -30,6 +30,8 @@ const ( fakeRefuseUserApplyCancel = "fake_refuse_user_apply_cancel" fakeUserUndoApplyCancel = "fake_user_undo_apply_cancel" fakeOrderAdjustFinished = "fake_order_adjust_finished" + + keyVendorOrgCode = "vendorOrgCode" ) const ( @@ -83,16 +85,17 @@ func (p *PurchaseHandler) getStatusFromVendorStatus(vendorStatus string) int { return model.OrderStatusUnknown } -func (p *PurchaseHandler) getOrder(vendorOrderID string) (order *model.GoodsOrder, orderMap map[string]interface{}, err error) { +func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID string) (order *model.GoodsOrder, orderMap map[string]interface{}, err error) { result, err := api.MtwmAPI.OrderGetOrderDetail(utils.Str2Int64(vendorOrderID), true) if err == nil { + result[keyVendorOrgCode] = vendorOrgCode order = p.Map2Order(result) } return order, result, err } -func (p *PurchaseHandler) GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error) { - order, _, err = p.getOrder(vendorOrderID) +func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID string) (order *model.GoodsOrder, err error) { + order, _, err = p.getOrder(vendorOrgCode, vendorOrderID) return order, err } @@ -128,6 +131,8 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo InvoiceTitle: utils.Interface2String(result["invoice_title"]), InvoiceTaxerID: utils.Interface2String(result["taxpayer_id"]), InvoiceEmail: jxutils.GetOneEmailFromStr(utils.Interface2String(result["caution"])), + + VendorOrgCode: utils.Interface2String(result[keyVendorOrgCode]), } pickType := int(utils.Interface2Int64WithDefault(result["pick_type"], 0)) if pickType == mtwmapi.OrderPickTypeSelf { @@ -289,7 +294,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap return nil } if msg.Cmd == mtwmapi.MsgTypeNewOrder { - order, orderMap, err2 := c.getOrder(GetOrderIDFromMsg(msg)) + order, orderMap, err2 := c.getOrder(msg.AppID, GetOrderIDFromMsg(msg)) if err = err2; err == nil { err = partner.CurOrderManager.OnOrderNew(order, c.callbackMsg2Status(msg)) if err == nil { @@ -306,7 +311,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap if status != nil { if status.Status == model.OrderStatusAdjust { var order *model.GoodsOrder - if order, err = c.GetOrder(GetOrderIDFromMsg(msg)); err == nil { + if order, err = c.GetOrder(msg.AppID, GetOrderIDFromMsg(msg)); err == nil { skuList, err2 := getRefundSkuDetailList(msg) if err = err2; err == nil { var removedSkuList []*model.OrderSku @@ -568,7 +573,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods return err } -func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { +func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode string, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) { if utils.IsTimeZero(queryDate) { return nil, fmt.Errorf("queryDate必须指定") } diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index be41a9301..0aaaaf1f0 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -93,6 +93,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma ReasonImgList: utils.LimitUTF8StringLen(strings.Join(refundData.PictureList, ","), 1024), RefundType: model.AfsTypePartRefund, + VendorOrgCode: msg.AppID, // FreightUserMoney: afsInfo.OrderFreightMoney, // AfsFreightMoney: afsInfo.AfsFreight, // BoxMoney: afsInfo.PackagingMoney, diff --git a/business/partner/purchase/mtwm/order_comment.go b/business/partner/purchase/mtwm/order_comment.go index f68ab3e2d..4d3056ea5 100644 --- a/business/partner/purchase/mtwm/order_comment.go +++ b/business/partner/purchase/mtwm/order_comment.go @@ -103,7 +103,7 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) return err } -func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) { +func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { globals.SugarLogger.Debugf("mtwm ReplyOrderComment, orderComment:%s, replyComment:%s", utils.Format4Output(orderComment, true), replyComment) if globals.EnableMtwmStoreWrite { err = api.MtwmAPI.CommentAddReply(orderComment.VendorStoreID, utils.Str2Int64(orderComment.UserCommentID), replyComment) diff --git a/business/partner/purchase/mtwm/order_test.go b/business/partner/purchase/mtwm/order_test.go index 8e313ed81..b5a3cac58 100644 --- a/business/partner/purchase/mtwm/order_test.go +++ b/business/partner/purchase/mtwm/order_test.go @@ -11,7 +11,7 @@ import ( ) func TestGetOrder(t *testing.T) { - result, err := CurPurchaseHandler.GetOrder("33437032333978492") + result, err := CurPurchaseHandler.GetOrder("", "33437032333978492") if err != nil { t.Fatal(err) } @@ -19,7 +19,7 @@ func TestGetOrder(t *testing.T) { } func TestListOrders(t *testing.T) { - result, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, time.Now(), "4626746") + result, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, "", nil, time.Now(), "4626746") if err != nil { t.Fatal(err) } diff --git a/business/partner/purchase/weimob/wsc/order.go b/business/partner/purchase/weimob/wsc/order.go index 57416ab9e..110674c79 100644 --- a/business/partner/purchase/weimob/wsc/order.go +++ b/business/partner/purchase/weimob/wsc/order.go @@ -98,7 +98,7 @@ func (p *PurchaseHandler) getStatusFromVendorStatus(vendorStatus string) int { return model.OrderStatusUnknown } -func (p *PurchaseHandler) GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error) { +func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID string) (order *model.GoodsOrder, err error) { globals.SugarLogger.Debugf("wsc GetOrder orderID:%s", vendorOrderID) result, err := api.WeimobAPI.QueryOrderDetail(utils.Str2Int64(vendorOrderID), false) if err != nil { diff --git a/business/partner/purchase/weimob/wsc/order_comment.go b/business/partner/purchase/weimob/wsc/order_comment.go index 334562e53..6dce36b84 100644 --- a/business/partner/purchase/weimob/wsc/order_comment.go +++ b/business/partner/purchase/weimob/wsc/order_comment.go @@ -5,6 +5,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model" ) -func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) { +func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { return err } diff --git a/conf/app.conf b/conf/app.conf index 864677882..752b09a24 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -98,6 +98,7 @@ getWeixinTokenKey = "c928ed0d-87a3-441a-8517-f92f0167296f" storeName = "京西菜市" [dev] +jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d" jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4" @@ -129,6 +130,7 @@ getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" [prod] EnableDocs = false +jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d" jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4" @@ -178,6 +180,7 @@ EnableDocs = false dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxgy?charset=utf8mb4&loc=Local&parseTime=true" +jdOrgCode = "339032" jdToken = "84541069-fbe2-424b-b625-9b2ba1d4c9e6" jdAppKey = "5d5577a2506f41b8b4ec520ba83490f5" jdSecret = "0b01b9eeb15b41dab1c3d05d95c17a26" @@ -229,68 +232,9 @@ getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" storeName = "京西果园" -[jd] -httpport = 8089 -EnableDocs = false - -dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jd?charset=utf8mb4&loc=Local&parseTime=true" - -jdToken = "84541069-fbe2-424b-b625-9b2ba1d4c9e6" -jdAppKey = "5d5577a2506f41b8b4ec520ba83490f5" -jdSecret = "0b01b9eeb15b41dab1c3d05d95c17a26" -jdStorePageCookie = "YDYCWYUGKSROMV3MKJQIFINJ5CLPYH6IRVFUMFJD3JI6VQKHX3YPHTWDIDBNMCBUKSY3P7SKAHHKR7PHQDSFRXZEWXA4XOUTALIQDGDYIEUCMDPWSYGDVT42DJ27CD27QKCR3UN7KF7EPIHGPR7GCRTBD6NFNB5MFIV6EPYE6RGXH6K2VN6O67WVPV5PLGYFIAKGHFCQNCPB4GL5IIBN4ARWFQ23OEMGXQRC77UCFGE7JOWTZG2KLEWZL5JBAVSZUYFDYFEFHXZNSJPWMFCADAJTUQ" - -disableEbai = true -# ebaiSource = "35957" -# ebaiSecret = "10013fbb7c2ddad7" -# ebaiStorePageCookieWMUSS = "YBAABKPRplPSpTCX4YSUAvSg8dSjYpIwF3FzBsGEw7agNbNT90GnwfbAYdBU5cjRX%7EjwAAMxhrUGEheAUicBtSXDIeGB0hclFgZ2tcBlhhIlwwfRBHaV8pClctLEhIfSR6HDwXPC5nHBVTeBsrWjwHCjoXUCN1eS1NBKLzB9E9WREwhfALlGMDAJsPmAwAAO" -# ebaiStorePageCookieWMSTOKEN = "gAAA4OkFSZBsOayRIAnRqd24YRRVvWgRFE2w2CGtjKlAIsYg1sNHEIQlwsBKLzB5sulw9nVQAA0tyyFu-F2xVbAQAAi6OrHIFNnBwgJlQdmb8AAHssrx9_zgABBgAABQ" - -disableMtwm = true -# mtwmAppID = "4123" -# mtwmSecret = "df2c88338b85f830cebce2a9eab56628" -# mtwmCallbackURL = "http://callback-jxgy.jxc4.com" - -enableStoreWrite = true -enableJdStoreWrite = true -# enableEbaiStoreWrite = true -# enableMtwmStoreWrite = true - -disableMtps = true -# mtpsAppKey = "3c0a05d464c247c19d7ec13accc78605" -# mtpsSecret = "b1M}9?:sTbsB[OF2gNORnN(|(iy9rB8(`7]|[wGLnbmt`evfM>E:A90DjHAW:UPE" - -dadaIsProd = true -dadaCallbackURL = "http://callback-jd.jxc4.com/dadadelivery/msg" -dadaSourceID = "6660" - -weixinAppID = "wx2bb99eb5d2c9b82c" -weixinSecret = "6bbbed1443cc062c20a015a64c07a531" - -weixinMiniAppID = "wx2d6949f724b2541d" -weixinMiniSecret = "11f3c380551c4683c149990b004d6df9" - -wxpayNotifyURL = "http://callback-jd.jxc4.com/wxpay/msg/" - -backstageHost = "http://www-jd.jxc4.com" -wxBackstageHost = "http://wx-jd.jxc4.com" - -# dingdingAgentID = 258707199 -# dingdingAppKey = "dingtozhutfr98qgwc7d" -# dingdingSecret = "7EJ0HDbkxQri-O2RSaYUu7_ZwvvMKtRVHT8cpyfvIvK6A9n9HRwPNCNRJFuEDeT_" - -# dingdingQRCodeAppKey = "dingoaw990o1jm9jswvwib" -# dingdingQRCodeSecret = "N9dyC9qB84sauQPs4_JYrILMsG5Krqm9-PSSVJ8t9hb87rrHiFUirISxGF5G57RV" - -dingdingCallbackURL = "http://callback-jd.jxc4.com/dingding/msg" - -getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" -getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" - -storeName = "京西京东" - [test] -jdToken = "df97f334-f7d8-4b36-9664-5784d8ae0baf" +jdOrgCode = "82029" +jdToken = "594ab45a-9a73-4a43-82b0-a64cbd55d883" jdAppKey = "06692746f7224695ad4788ce340bc854" jdSecret = "d6b42a35a7414a5490d811654d745c84" @@ -318,7 +262,8 @@ dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&l httpport = 8088 # xiaan -jdToken = "df97f334-f7d8-4b36-9664-5784d8ae0baf" +jdOrgCode = "82029" +jdToken = "594ab45a-9a73-4a43-82b0-a64cbd55d883" jdAppKey = "06692746f7224695ad4788ce340bc854" jdSecret = "d6b42a35a7414a5490d811654d745c84" jdStorePageCookie = "5EOCZRXVCRXBTYD5EPV6FOXRCQWFFQO75FRMJ3BAKZ5JXY6XTJECMWXK5OZIPLZTUWZKZKXHXA6I7G3WMIKSWOHZIHRLNE5FZY3NBD6G5IMBOYHMJSJR3RF4TMZB2JEW2DF755YPFUSA6BMWI3KNLT3I4EAP2Z4JA6ZWAA34MNQX5P6LOI4EGG76QJU3G3VW7QFE6BAVAONMKBEHKNXNZGX3RQF7PHXDXSPJSY5XQEGM7IV2L7LKIG3M2D6QVSPEGQW4NV7SZ4TX32D2XQA7PIX46M" @@ -355,6 +300,7 @@ enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false +jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d" jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4" diff --git a/globals/api/apimanager/apimanager.go b/globals/api/apimanager/apimanager.go index 52bd3c317..6f65e4adb 100644 --- a/globals/api/apimanager/apimanager.go +++ b/globals/api/apimanager/apimanager.go @@ -42,9 +42,11 @@ func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) func (a *APIManager) GetAppOrgCodeList(vendorID int) (appOrgCodeList []string) { switch vendorID { case model.VendorIDJD: - appOrgCodeList = []string{"320406"} + appOrgCodeList = []string{globals.JdOrgCode} case model.VendorIDMTWM: + appOrgCodeList = []string{api.MtwmAPI.GetAppID()} case model.VendorIDEBAI: + appOrgCodeList = []string{api.EbaiAPI.GetSource()} } return appOrgCodeList } diff --git a/globals/globals.go b/globals/globals.go index c2a846da6..5c51c004a 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -49,6 +49,8 @@ var ( DisableWXAuth1 bool WxpayNotifyURL string + + JdOrgCode string ) func init() { @@ -96,6 +98,7 @@ func Init() { DisableWXAuth1 = true WxpayNotifyURL = beego.AppConfig.DefaultString("wxpayNotifyURL", "") + JdOrgCode = beego.AppConfig.DefaultString("jdOrgCode", "") } func IsCallbackAlwaysReturnSuccess() bool {