From aaadd0ed324dd84e44fb338933240864d16164f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 3 Feb 2021 10:15:53 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store_sku.go | 7 +- business/partner/purchase/mtwm/mtwm.go | 9 +- business/partner/purchase/mtwm/order.go | 91 ++++++++++--------- business/partner/purchase/mtwm/order_afs.go | 8 +- .../partner/purchase/mtwm/order_comment.go | 5 +- business/partner/purchase/mtwm/store.go | 31 ++++--- business/partner/purchase/mtwm/store_sku2.go | 41 +++++---- globals/api/apimanager/apimanager.go | 2 +- 8 files changed, 107 insertions(+), 87 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8950e6d17..695a71910 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -13,6 +13,8 @@ import ( "time" "unicode" + "git.rosy.net.cn/baseapi/platformapi/mtwmapi" + "git.rosy.net.cn/jx-callback/business/auth2" "github.com/astaxie/beego" @@ -3718,7 +3720,8 @@ func UpdateStoreSkusSpecTagBin(ctx *jxcontext.Context, reader io.Reader, vendorI if err != nil || store == nil { continue } - food, err := api.MtwmAPI.RetailGet(store.VendorStoreID, utils.Int2Str(v.SkuID)) + mtapi := apimanager.CurAPIManager.GetAPI(model.VendorIDMTWM, store.VendorOrgCode).(*mtwmapi.API) + food, err := mtapi.RetailGet(store.VendorStoreID, utils.Int2Str(v.SkuID)) if err != nil || food == nil { continue } @@ -3729,7 +3732,7 @@ func UpdateStoreSkusSpecTagBin(ctx *jxcontext.Context, reader io.Reader, vendorI foodData["is_specialty"] = v.IsSpec foodData["price"] = food.Price if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.RetailInitData(ctx.GetTrackInfo(), store.VendorStoreID, utils.Int2Str(v.SkuID), foodData) + err = mtapi.RetailInitData(ctx.GetTrackInfo(), store.VendorStoreID, utils.Int2Str(v.SkuID), foodData) } } } diff --git a/business/partner/purchase/mtwm/mtwm.go b/business/partner/purchase/mtwm/mtwm.go index 09bce7a52..ee860d2ba 100644 --- a/business/partner/purchase/mtwm/mtwm.go +++ b/business/partner/purchase/mtwm/mtwm.go @@ -29,7 +29,7 @@ type PurchaseHandler struct { } func init() { - if api.MtwmAPI != nil { + if api.MtwmAPI != nil || api.Mtwm2API != nil { CurPurchaseHandler = New() partner.RegisterPurchasePlatform(CurPurchaseHandler) } @@ -223,3 +223,10 @@ func (p *PurchaseHandler) getUploadImgPoiCode() (poiCode string) { } return poiCode } + +func getAPI(appOrgCode string) (apiObj *mtwmapi.API) { + if appOrgCode == "" { + globals.SugarLogger.Warnf("getAPI appOrgCode is empty") + } + return partner.CurAPIManager.GetAPI(model.VendorIDMTWM, appOrgCode).(*mtwmapi.API) +} diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 14cdc26b4..fd6aeab7e 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -18,7 +18,6 @@ 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" ) const ( @@ -86,7 +85,7 @@ func (p *PurchaseHandler) getStatusFromVendorStatus(vendorStatus string) int { } 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) + result, err := getAPI(vendorOrgCode).OrderGetOrderDetail(utils.Str2Int64(vendorOrderID), true) if err == nil { result[keyVendorOrgCode] = vendorOrgCode order = p.Map2Order(result) @@ -100,7 +99,7 @@ func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID string) (order * } func (p *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (status int, err error) { - status, err = api.MtwmAPI.OrderViewStatus(utils.Str2Int64(vendorOrderID)) + status, err = getAPI(vendorOrgCode).OrderViewStatus(utils.Str2Int64(vendorOrderID)) if err == nil { status = p.getStatusFromVendorStatus(utils.Int2Str(status)) } @@ -283,11 +282,11 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo return order } -func getRefundSkuDetailList(msg *mtwmapi.CallbackMsg) (skuList []*mtwmapi.RefundSkuDetail, err error) { +func getRefundSkuDetailList(msg *mtwmapi.CallbackMsg, order *model.GoodsOrder) (skuList []*mtwmapi.RefundSkuDetail, err error) { if false { - skuList = api.MtwmAPI.GetRefundSkuDetailFromMsg(msg) + skuList = getAPI(order.VendorOrgCode).GetRefundSkuDetailFromMsg(msg) } else { - refundOrderDetailList, err2 := api.MtwmAPI.GetOrderRefundDetail(utils.Str2Int64(GetOrderIDFromMsg(msg)), mtwmapi.RefundTypePart) + refundOrderDetailList, err2 := getAPI(order.VendorOrgCode).GetOrderRefundDetail(utils.Str2Int64(GetOrderIDFromMsg(msg)), mtwmapi.RefundTypePart) if err = err2; err == nil { for _, v := range refundOrderDetailList { skuList = append(skuList, v.WmAppRetailForOrderPartRefundList...) @@ -337,10 +336,10 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap } } else { if status != nil { - if status.Status == model.OrderStatusAdjust { - var order *model.GoodsOrder - if order, err = c.GetOrder(msg.AppID, GetOrderIDFromMsg(msg)); err == nil { - skuList, err2 := getRefundSkuDetailList(msg) + var order *model.GoodsOrder + if order, err = c.GetOrder(msg.AppID, GetOrderIDFromMsg(msg)); err == nil { + if status.Status == model.OrderStatusAdjust { + skuList, err2 := getRefundSkuDetailList(msg, order) if err = err2; err == nil { var removedSkuList []*model.OrderSku for _, mtwmSku := range skuList { @@ -354,24 +353,24 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap jxutils.RefreshOrderSkuRelated(order) err = partner.CurOrderManager.OnOrderAdjust(order, status) } - } - } else { - if status.Status == model.OrderStatusDelivering { - // 美团订单即使时在配送状态时,如果之前没有调用过拣货完成,也会对门店指标生成影响,这里强制再调用拣货完成,且忽略错误 - utils.CallFuncAsync(func() { - if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.PreparationMealComplete(utils.Str2Int64(status.VendorOrderID)) - } - }) - } - err = partner.CurOrderManager.OnOrderStatusChanged(msg.AppID, status) - if err == nil && msg.Cmd == mtwmapi.MsgTypeOrderFinished { - utils.CallFuncAsync(func() { - orderMap, err := api.MtwmAPI.OrderGetOrderDetail(utils.Str2Int64(GetOrderIDFromMsg(msg)), true) - if err == nil && utils.MustInterface2Int64(orderMap["is_third_shipping"]) == SelfDeliveryCarrierNo { - c.OnOrderDetail(orderMap, partner.UpdatedPeration) - } - }) + } else { + if status.Status == model.OrderStatusDelivering { + // 美团订单即使时在配送状态时,如果之前没有调用过拣货完成,也会对门店指标生成影响,这里强制再调用拣货完成,且忽略错误 + utils.CallFuncAsync(func() { + if globals.EnableMtwmStoreWrite { + err = getAPI(order.VendorOrgCode).PreparationMealComplete(utils.Str2Int64(status.VendorOrderID)) + } + }) + } + err = partner.CurOrderManager.OnOrderStatusChanged(msg.AppID, status) + if err == nil && msg.Cmd == mtwmapi.MsgTypeOrderFinished { + utils.CallFuncAsync(func() { + orderMap, err := getAPI(order.VendorOrgCode).OrderGetOrderDetail(utils.Str2Int64(GetOrderIDFromMsg(msg)), true) + if err == nil && utils.MustInterface2Int64(orderMap["is_third_shipping"]) == SelfDeliveryCarrierNo { + c.OnOrderDetail(orderMap, partner.UpdatedPeration) + } + }) + } } } } @@ -402,10 +401,12 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) (orderSta if msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund { if notifyType == mtwmapi.NotifyTypePartyApply { if globals.EnableMtwmStoreWrite { + if order, _ := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDMTWM); order != nil { + getAPI(order.VendorOrgCode).OrderRefundAgree(utils.Str2Int64(orderID), "自动确认退款") + } // goods, err := dao.GetSimpleOrder(dao.GetDB(), orderID) // if err == nil { // if goods.Status < model.OrderStatusDelivering { - api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(orderID), "自动确认退款") // } else { // api.MtwmAPI.OrderRefundReject(utils.Str2Int64(orderID), "商品配送中,请联系门店。") // todo 京东与饿百都没有售前用户提出订单调整的,自动拒绝调整单 // } @@ -465,7 +466,7 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI if isAcceptIt { if globals.EnableMtwmStoreWrite { // err = api.MtwmAPI.OrderReceived(utils.Str2Int64(order.VendorOrderID)) - err = api.MtwmAPI.OrderConfirm(utils.Str2Int64(order.VendorOrderID)) + err = getAPI(order.VendorOrgCode).OrderConfirm(utils.Str2Int64(order.VendorOrderID)) if err != nil { if utils.IsErrMatch(err, utils.Int2Str(mtwmapi.ErrCodeOpFailed), []string{ "订单已经确认过了", @@ -492,7 +493,7 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo if !isSelfDelivery { if globals.EnableMtwmStoreWrite { // err = api.MtwmAPI.OrderConfirm(utils.Str2Int64(order.VendorOrderID)) - err = api.MtwmAPI.PreparationMealComplete(utils.Str2Int64(order.VendorOrderID)) + err = getAPI(order.VendorOrgCode).PreparationMealComplete(utils.Str2Int64(order.VendorOrderID)) } } if err == nil { @@ -521,7 +522,7 @@ func (c *PurchaseHandler) CanSwitch2SelfDeliver(order *model.GoodsOrder) (isCan func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) { globals.SugarLogger.Debugf("mtwm Swtich2SelfDeliver orderID:%s", order.VendorOrderID) if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.OrderLogisticsChange2Self(utils.Str2Int64(order.VendorOrderID)) + err = getAPI(order.VendorOrgCode).OrderLogisticsChange2Self(utils.Str2Int64(order.VendorOrderID)) } return err } @@ -539,7 +540,7 @@ func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) { globals.SugarLogger.Debugf("mtwm SelfDeliverDelivering orderID:%s", order.VendorOrderID) if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.OrderDelivering(utils.Str2Int64(order.VendorOrderID)) + err = getAPI(order.VendorOrgCode).OrderDelivering(utils.Str2Int64(order.VendorOrderID)) } return err } @@ -547,7 +548,7 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) { globals.SugarLogger.Debugf("mtwm SelfDeliverDelivered orderID:%s", order.VendorOrderID) if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.OrderArrived(utils.Str2Int64(order.VendorOrderID)) + err = getAPI(order.VendorOrgCode).OrderArrived(utils.Str2Int64(order.VendorOrderID)) } return err } @@ -567,9 +568,9 @@ func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *mode func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { if globals.EnableMtwmStoreWrite { if isAgree { - err = api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(order.VendorOrderID), reason) + err = getAPI(order.VendorOrgCode).OrderRefundAgree(utils.Str2Int64(order.VendorOrderID), reason) } else { - err = api.MtwmAPI.OrderRefundReject(utils.Str2Int64(order.VendorOrderID), reason) + err = getAPI(order.VendorOrgCode).OrderRefundReject(utils.Str2Int64(order.VendorOrderID), reason) } } return err @@ -577,7 +578,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.EnableMtwmStoreWrite { - if err = api.MtwmAPI.OrderCancel(utils.Str2Int64(order.VendorOrderID), reason, mtwmapi.CancelReasonOther); err == nil { + if err = getAPI(order.VendorOrgCode).OrderCancel(utils.Str2Int64(order.VendorOrderID), reason, mtwmapi.CancelReasonOther); err == nil { // 调用开放平台接口取消订单,不推送取消订单消息和退款消息。 c.postFakeMsg(order.VendorOrderID, mtwmapi.MsgTypeOrderCanceled, mtwmapi.OrderStatusCanceled) } @@ -601,7 +602,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods }) } if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.OrderApplyPartRefund(utils.Str2Int64(order.VendorOrderID), reason, skuList) + err = getAPI(order.VendorOrgCode).OrderApplyPartRefund(utils.Str2Int64(order.VendorOrderID), reason, skuList) } } return err @@ -633,11 +634,11 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode strin seqEnd := seqStart + batchSize - 1 var tmpOrderIDs []int64 if seqStart == seqEnd { - if vendorOderID, err2 := api.MtwmAPI.GetOrderIdByDaySeqSingle(vendorStoreID, queryDate, seqStart); err2 == nil { + if vendorOderID, err2 := getAPI(vendorOrgCode).GetOrderIdByDaySeqSingle(vendorStoreID, queryDate, seqStart); err2 == nil { tmpOrderIDs = []int64{vendorOderID} } } else { - tmpOrderIDs, err = api.MtwmAPI.GetOrderIdByDaySeq(vendorStoreID, queryDate, seqStart, seqEnd) + tmpOrderIDs, err = getAPI(vendorOrgCode).GetOrderIdByDaySeq(vendorStoreID, queryDate, seqStart, seqEnd) } if len(tmpOrderIDs) > 0 { for _, v := range tmpOrderIDs { @@ -675,7 +676,8 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode strin func (p *PurchaseHandler) GetOrderConsigneeNumber(ctx *jxcontext.Context, storeID int, vendorStoreID string) (numberList []*partner.OrderPhoneNumberInfo, err error) { offset := 0 for { - result, err2 := api.MtwmAPI.OrderBatchPullPhoneNumber(vendorStoreID, offset, mtwmapi.MaxBatchPullPhoneNumberLimit) + store, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "") + result, err2 := getAPI(store.VendorOrgCode).OrderBatchPullPhoneNumber(vendorStoreID, offset, mtwmapi.MaxBatchPullPhoneNumberLimit) if err = err2; err == nil { for _, v := range result { v2 := &partner.OrderPhoneNumberInfo{ @@ -701,7 +703,8 @@ func (p *PurchaseHandler) GetOrderConsigneeNumber(ctx *jxcontext.Context, storeI func (p *PurchaseHandler) GetOrderCourierNumber(ctx *jxcontext.Context, storeID int, vendorStoreID string) (numberList []*partner.OrderPhoneNumberInfo, err error) { offset := 0 for { - result, err2 := api.MtwmAPI.OrderGetRiderInfoPhoneNumber(vendorStoreID, offset, mtwmapi.MaxBatchPullPhoneNumberLimit) + store, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "") + result, err2 := getAPI(store.VendorOrgCode).OrderGetRiderInfoPhoneNumber(vendorStoreID, offset, mtwmapi.MaxBatchPullPhoneNumberLimit) if err = err2; err == nil { for _, v := range result { numberList = append(numberList, &partner.OrderPhoneNumberInfo{ @@ -782,7 +785,7 @@ func (p *PurchaseHandler) onNumberDowngrade(msg *mtwmapi.CallbackMsg) (response } func (c *PurchaseHandler) GetWaybillTip(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorOrderID, vendorWaybillID, vendorWaybillID2 string) (tipFee int64, err error) { - orderInfo, err := api.MtwmAPI.GetDistributeOrderDetail(vendorOrderID, vendorStoreID) + orderInfo, err := getAPI(vendorOrgCode).GetDistributeOrderDetail(vendorOrderID, vendorStoreID) if err == nil { tipFee = jxutils.StandardPrice2Int(orderInfo.TipAmount) } @@ -791,7 +794,7 @@ func (c *PurchaseHandler) GetWaybillTip(ctx *jxcontext.Context, vendorOrgCode, v func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorOrderID, vendorWaybillID, vendorWaybillID2, cityCode string, tipFee int64) (err error) { if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.OrderModityTips(vendorOrderID, vendorStoreID, jxutils.IntPrice2Standard(tipFee)) + err = getAPI(vendorOrgCode).OrderModityTips(vendorOrderID, vendorStoreID, jxutils.IntPrice2Standard(tipFee)) } return err } diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index 0aaaaf1f0..9a61b0faf 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -13,7 +13,6 @@ 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" ) var ( @@ -42,7 +41,8 @@ func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool { if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund { // refundData := msg.Data.(*mtwmapi.CallbackRefundInfo) orderID := utils.Str2Int64(GetOrderIDFromMsg(msg)) - status, err := api.MtwmAPI.OrderViewStatus(orderID) + order, _ := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(orderID), model.VendorIDMTWM) + status, err := getAPI(order.VendorOrgCode).OrderViewStatus(orderID) if err == nil { return utils.Int2Str(status) == mtwmapi.OrderStatusFinished } @@ -188,9 +188,9 @@ func (c *PurchaseHandler) GetAfsStatusFromVendorStatus(resType int, notifyType s func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { if globals.EnableMtwmStoreWrite { if approveType == partner.AfsApproveTypeRefused { - err = api.MtwmAPI.OrderRefundReject(utils.Str2Int64(order.VendorOrderID), reason) + err = getAPI(order.VendorOrgCode).OrderRefundReject(utils.Str2Int64(order.VendorOrderID), reason) } else { - err = api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(order.VendorOrderID), reason) + err = getAPI(order.VendorOrgCode).OrderRefundAgree(utils.Str2Int64(order.VendorOrderID), reason) } } return err diff --git a/business/partner/purchase/mtwm/order_comment.go b/business/partner/purchase/mtwm/order_comment.go index 7620cbad5..68216536b 100644 --- a/business/partner/purchase/mtwm/order_comment.go +++ b/business/partner/purchase/mtwm/order_comment.go @@ -14,7 +14,6 @@ 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" - "git.rosy.net.cn/jx-callback/globals/api" ) const ( @@ -53,7 +52,7 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) storeMap := batchItemList[0].(*model.StoreMap) endDateStr := time.Now().Add(-24 * time.Hour).Format("20060102") startDateStr := time.Now().Add(-RefreshCommentTime).Format("20060102") - commentList, err2 := api.MtwmAPI.CommentQuery(storeMap.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusAll) + commentList, err2 := getAPI(storeMap.VendorOrgCode).CommentQuery(storeMap.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusAll) var orderCommentList []*model.OrderComment if err = err2; err != nil { @@ -106,7 +105,7 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (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) + err = getAPI(vendorOrgCode).CommentAddReply(orderComment.VendorStoreID, utils.Str2Int64(orderComment.UserCommentID), replyComment) } return err } diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index 18869ab37..ac58ed9ee 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -37,7 +37,7 @@ type tEbaiStoreInfo struct { } func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID string) (retVal *dao.StoreDetail, err error) { - result, err := api.MtwmAPI.PoiGet(vendorStoreID) + result, err := getAPI(vendorOrgCode).PoiGet(vendorStoreID) if err == nil { // globals.SugarLogger.Debug(utils.Format4Output(result, false)) retVal = &dao.StoreDetail{ @@ -73,9 +73,9 @@ func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendo retVal.ID = int(utils.Str2Int64WithDefault(poiCode, 0)) retVal.DeliveryRangeType = model.DeliveryRangeTypePolygon var deliveryRangeInfo []map[string]interface{} - deliveryRangeInfo, err = api.MtwmAPI.ShippingFetch(poiCode) + deliveryRangeInfo, err = getAPI(vendorOrgCode).ShippingFetch(poiCode) if err != nil { - deliveryRangeInfo, err = api.MtwmAPI.ShippingList(poiCode) + deliveryRangeInfo, err = getAPI(vendorOrgCode).ShippingList(poiCode) } if err == nil { if len(deliveryRangeInfo) > 0 { @@ -109,13 +109,14 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin if db == nil { db = dao.GetDB() } + mtapi := getAPI(getStoreVendorOrgCode(storeID)) storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDMTWM, "") if err != nil { return err } errList := errlist.New() - remoteStoreInfo, err := api.MtwmAPI.PoiGet(storeDetail.VendorStoreID) + remoteStoreInfo, err := mtapi.PoiGet(storeDetail.VendorStoreID) if err != nil { return err } @@ -152,7 +153,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin } // globals.SugarLogger.Debug(utils.Format4Output(params, false)) if globals.EnableMtwmStoreWrite { - errList.AddErr(api.MtwmAPI.PoiSave(storeDetail.VendorStoreID, params)) + errList.AddErr(mtapi.PoiSave(storeDetail.VendorStoreID, params)) } // PoiSave有时会报错:商家已接入美团配送,不可修改门店配送相关信息,这里放弃信息修改 // if err != nil { @@ -200,7 +201,7 @@ func (p *PurchaseHandler) onStoreStatusChanged(msg *mtwmapi.CallbackMsg) (respon } func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string) (storeStatus int, err error) { - result, err := api.MtwmAPI.PoiGet(vendorStoreID) + result, err := getAPI(vendorOrgCode).PoiGet(vendorStoreID) if err == nil { return bizStatusMtwm2JX(result.OpenLevel, result.IsOnline), nil } @@ -215,18 +216,18 @@ func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCod openLevel, isOnline := bizStatusJX2Mtwm(status) if globals.EnableMtwmStoreWrite { if isOnline != mtwmapi.PoiStatusOnline { - err = api.MtwmAPI.PoiOffline(vendorStoreID) + err = getAPI(vendorOrgCode).PoiOffline(vendorStoreID) } else { - if err = api.MtwmAPI.PoiOnline(vendorStoreID); err == nil { // 这个函数成功返回也并不表示上线成功。。。 - remoteStoreInfo, err2 := api.MtwmAPI.PoiGet(vendorStoreID) + if err = getAPI(vendorOrgCode).PoiOnline(vendorStoreID); err == nil { // 这个函数成功返回也并不表示上线成功。。。 + remoteStoreInfo, err2 := getAPI(vendorOrgCode).PoiGet(vendorStoreID) if err = err2; err != nil { return err } if remoteStoreInfo.IsOnline == mtwmapi.PoiStatusOnline { if openLevel == mtwmapi.PoiOpenLevelHaveRest { - err = api.MtwmAPI.PoiClose(vendorStoreID) + err = getAPI(vendorOrgCode).PoiClose(vendorStoreID) } else { - err = api.MtwmAPI.PoiOpen(vendorStoreID) + err = getAPI(vendorOrgCode).PoiOpen(vendorStoreID) } } else { err = errors.New("门店还未上线,不能修改营业状态") @@ -283,14 +284,14 @@ func constrainOpTimeList(opTimeList, validOpTimeList []int16) (newOpTimeList []i func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, opTimeList []int16) (err error) { shippingTime := openTimeJX2Mtwm(opTimeList) if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.PoiShipTimeUpdate(vendorStoreID, shippingTime) + err = getAPI(vendorOrgCode).PoiShipTimeUpdate(vendorStoreID, shippingTime) if err != nil { shippingTime = "" if validOpTimeList := getOpTimeListFromErr(err); len(validOpTimeList) > 0 { shippingTime = openTimeJX2Mtwm(constrainOpTimeList(opTimeList, validOpTimeList)) } if shippingTime != "" { - err = api.MtwmAPI.PoiShipTimeUpdate(vendorStoreID, shippingTime) + err = getAPI(vendorOrgCode).PoiShipTimeUpdate(vendorStoreID, shippingTime) } } } @@ -298,7 +299,7 @@ func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCod } func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context, vendorOrgCode string) (vendorStoreIDs []string, err error) { - vendorStoreIDs, err = api.MtwmAPI.PoiGetIDs() + vendorStoreIDs, err = getAPI(vendorOrgCode).PoiGetIDs() return vendorStoreIDs, err } @@ -310,7 +311,7 @@ func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCod boxFee, err := dao.GetSysConfigAsInt64(dao.GetDB(), model.ConfigSysMtwmBoxFee) if err == nil { if globals.EnableMtwmStoreWrite && globals.IsProductEnv() { - err = api.MtwmAPI.PackagePriceUpdate(vendorStoreID, 1, int(boxFee)) + err = getAPI(vendorOrgCode).PackagePriceUpdate(vendorStoreID, 1, int(boxFee)) } } return err diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 4860e6a2e..a2a62e07c 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -15,7 +15,6 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/api" ) const ( @@ -55,9 +54,16 @@ func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { return batchSize } +func getStoreVendorOrgCode(storeID int) (vendorOrgCode string) { + if storeMap, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, ""); storeMap != nil { + return storeMap.VendorOrgCode + } + return vendorOrgCode +} + // 门店分类 func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*partner.BareCategoryInfo, err error) { - remoteCats, err := api.MtwmAPI.RetailCatList(vendorStoreID) + remoteCats, err := getAPI(getStoreVendorOrgCode(storeID)).RetailCatList(vendorStoreID) if err == nil { cats = convertVendorCatList(remoteCats) } @@ -154,7 +160,7 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in SecondaryCategoryName: subCatName, Sequence: storeCat.Seq, } - err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, catName, param4Update) + err = getAPI(storeCat.VendorOrgCode).RetailCatUpdate(vendorStoreID, catName, param4Update) if storeCat.CatSyncStatus&model.SyncFlagNewMask == 0 && // 修改分类名,但分类不存在 p.IsErrCategoryNotExist(err) && originName != "" { storeCat.CatSyncStatus |= model.SyncFlagNewMask @@ -175,7 +181,7 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { if false { if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.RetailCatDelete(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID) + err = getAPI(getStoreVendorOrgCode(storeID)).RetailCatDelete(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID) } } else { var catCodes []string @@ -184,9 +190,9 @@ func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID in } if globals.EnableMtwmStoreWrite { if level == 1 { - err = api.MtwmAPI.RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, catCodes, []string{vendorCatID}, nil, nil, nil) + err = getAPI(getStoreVendorOrgCode(storeID)).RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, catCodes, []string{vendorCatID}, nil, nil, nil) } else { - err = api.MtwmAPI.RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, catCodes, []string{vendorCatID}, nil) + err = getAPI(getStoreVendorOrgCode(storeID)).RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, catCodes, []string{vendorCatID}, nil) } } } @@ -317,10 +323,10 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI if globals.EnableMtwmStoreWrite { if len(foodDataList) == 1 { foodDataList[0]["skus"] = string(utils.MustMarshal(foodDataList[0]["skus"])) - err = api.MtwmAPI.RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0]) + err = getAPI(getStoreVendorOrgCode(storeID)).RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0]) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDMTWM], syncType) } else if len(foodDataList) > 0 { - failedFoodList, err2 := api.MtwmAPI.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList) + failedFoodList, err2 := getAPI(getStoreVendorOrgCode(storeID)).RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList) if err = err2; err == nil { if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil { failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], syncType) @@ -354,11 +360,11 @@ func getAppFoodCodeList(l []*mtwmapi.AppFoodResult) (vendorSkuIDs []string) { func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableMtwmStoreWrite { if len(storeSkuList) == 1 { - err = api.MtwmAPI.RetailDelete(ctx.GetTrackInfo(), vendorStoreID, storeSkuList[0].VendorSkuID) + err = getAPI(storeSkuList[0].VendorOrgCode).RetailDelete(ctx.GetTrackInfo(), vendorStoreID, storeSkuList[0].VendorSkuID) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDMTWM], "删除商品") } else { // todo 部分失败 - err = api.MtwmAPI.RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, nil, nil, partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDList()) + err = getAPI(getStoreVendorOrgCode(storeID)).RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, nil, nil, partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDList()) if err != nil { if errExt, ok := err.(*utils.ErrorWithCode); ok { myMap := make(map[string][]*mtwmapi.AppFoodResult) @@ -426,7 +432,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr skuList := storeSku2Mtwm(storeSkuList, updateTypeStatus) mtwmStatus := skuStatusJX2Mtwm(status) if globals.EnableMtwmStoreWrite { - failedFoodList, err2 := api.MtwmAPI.RetailSellStatus(ctx.GetTrackInfo(), vendorStoreID, skuList, mtwmStatus) + failedFoodList, err2 := getAPI(vendorOrgCode).RetailSellStatus(ctx.GetTrackInfo(), vendorStoreID, skuList, mtwmStatus) if err = err2; err == nil { if len(failedFoodList) > 0 { failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品状态") @@ -446,7 +452,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { priceList := storeSku2Mtwm(storeSkuList, updateTypePrice) if globals.EnableMtwmStoreWrite { - failedFoodList, err2 := api.MtwmAPI.RetailSkuPrice(ctx.GetTrackInfo(), vendorStoreID, priceList) + failedFoodList, err2 := getAPI(vendorOrgCode).RetailSkuPrice(ctx.GetTrackInfo(), vendorStoreID, priceList) if err = err2; err == nil { if len(failedFoodList) > 0 { failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品价格") @@ -465,7 +471,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { stockList := storeSku2Mtwm(storeSkuList, updateTypeStock) if globals.EnableMtwmStoreWrite { - failedFoodList, err2 := api.MtwmAPI.RetailSkuStock(ctx.GetTrackInfo(), vendorStoreID, stockList) + failedFoodList, err2 := getAPI(vendorOrgCode).RetailSkuStock(ctx.GetTrackInfo(), vendorStoreID, stockList) if err = err2; err == nil { if len(failedFoodList) > 0 { failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品库存") @@ -495,7 +501,7 @@ func mtwmSkuStatus2Jx(mtwmSkuStatus int) (jxSkuStatus int) { func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { if len(storeSkuList) == 1 { - skuInfo, err := api.MtwmAPI.RetailGet(vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID)) + skuInfo, err := getAPI(storeSkuList[0].VendorOrgCode).RetailGet(vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID)) if err != nil { return nil, err } @@ -507,9 +513,10 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas if storeSkuList != nil { storeSkuMap = putils.StoreSkuList2MapByVendorSkuID(storeSkuList) } + mtapi := getAPI(getStoreVendorOrgCode(storeID)) for { // todo 待优化获取速度 - result, err := api.MtwmAPI.RetailList(vendorStoreID, len(skuNameList), mtwmapi.GeneralMaxLimit) + result, err := mtapi.RetailList(vendorStoreID, len(skuNameList), mtwmapi.GeneralMaxLimit) if err != nil { return nil, err } @@ -667,9 +674,9 @@ func (p *PurchaseHandler) UpdateStoreSkusSpecTag(ctx *jxcontext.Context, vendorO } if globals.EnableMtwmStoreWrite { if len(foodDataList) == 1 { - err = api.MtwmAPI.RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0]) + err = getAPI(vendorOrgCode).RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0]) } else if len(foodDataList) > 0 { - _, err = api.MtwmAPI.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList) + _, err = getAPI(vendorOrgCode).RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList) } } return err diff --git a/globals/api/apimanager/apimanager.go b/globals/api/apimanager/apimanager.go index 13f1f721f..c11a4dd20 100644 --- a/globals/api/apimanager/apimanager.go +++ b/globals/api/apimanager/apimanager.go @@ -67,7 +67,7 @@ func (a *APIManager) GetAppOrgCodeList(vendorID int) (appOrgCodeList []string) { case model.VendorIDJD: appOrgCodeList = jxutils.BatchString2Slice(globals.JdOrgCode, globals.Jd2OrgCode, globals.Jd3OrgCode, globals.JdcsOrgCode) case model.VendorIDMTWM: - appOrgCodeList = []string{api.MtwmAPI.GetAppID()} + appOrgCodeList = []string{api.MtwmAPI.GetAppID(), api.Mtwm2API.GetAppID()} case model.VendorIDEBAI: appOrgCodeList = []string{api.EbaiAPI.GetSource()} case model.VendorIDJDShop: