From 3538b5a80990a0b6eaae13c626fe9b714e5bd7e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 25 Nov 2022 10:16:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=8E=E5=9B=A2=E9=85=8D=E9=80=81=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=8A=96=E5=BA=97=E9=85=8D=E9=80=81=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/delivery/mtps/waybill.go | 38 +++++ .../partner/purchase/tiktok_store/callback.go | 15 +- controllers/tiktok_order.go | 157 ------------------ controllers/tiktok_store.go | 6 + 4 files changed, 56 insertions(+), 160 deletions(-) diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 1c8de2544..cbc732ad9 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -126,6 +126,44 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m // 加入调度器 err := mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus) defer delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新 + if order.OrderVendorID == model.VendorIDDD { + result := &mtpsapi.RiderInfo{ + OrderId: order.VendorOrderID, + ThirdCarrierOrderId: order.VendorOrderID, + CourierName: order.CourierName, + CourierPhone: order.CourierMobile, + LogisticsProviderCode: "10032", + LogisticsStatus: order.Status, + OpCode: "", + } + switch msg.Status { + case mtpsapi.OrderStatusWaitingForSchedule: // 待接单,召唤骑手 + result.LogisticsStatus = model.WaybillStatusNew + result.LogisticsContext = model.RiderWaitRider + case mtpsapi.OrderStatusAccepted: // 已接单 + result.LogisticsStatus = model.WaybillStatusCourierAssigned // 分配骑手 + result.LogisticsContext = model.RiderWaitGetGoods + case mtpsapi.OrderStatusDeliverred: // 完成 + result.LogisticsStatus = model.WaybillStatusDelivered + result.LogisticsContext = model.RiderGetOrderDelivered + case mtpsapi.OrderStatusCanceled: // 取消 + result.LogisticsStatus = model.WaybillStatusCanceled + result.LogisticsContext = model.RiderGetOrderCanceled + case mtpsapi.OrderStatusPickedUp: // 骑手到店 + result.LogisticsStatus = model.WaybillStatusCourierArrived + result.LogisticsContext = model.RiderToStore + default: + result.LogisticsStatus = 0 + result.LogisticsContext = model.RiderGetOrderDeliverOther + } + delivery.PullTiktokRiderInfo(result) + if result.LogisticsStatus == model.WaybillStatusCourierArrived { + result.LogisticsStatus = model.WaybillStatusDelivering + result.LogisticsContext = model.RiderGetOrderDelivering + delivery.PullTiktokRiderInfo(result) + } + } + return err } diff --git a/business/partner/purchase/tiktok_store/callback.go b/business/partner/purchase/tiktok_store/callback.go index e2fce2970..b2c91a280 100644 --- a/business/partner/purchase/tiktok_store/callback.go +++ b/business/partner/purchase/tiktok_store/callback.go @@ -27,7 +27,7 @@ func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackRes // 当前订单所属门店不属于菜市时,将消息推送到果园 gyMsg := map[string]interface{}{"tag": msgId, "msg_id": utils.Int64ToStr(time.Now().Unix()) + msgId, "data": msg} // 通知到果园 - gyResult, err := HttpToGuoYuan(gyMsg) + gyResult, err := HttpToGuoYuan(gyMsg, "order") if err != nil { return tiktokShop.Err2CallbackResponse(err, "") } @@ -46,14 +46,23 @@ func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackRes return response } -func HttpToGuoYuan(param map[string]interface{}) (*http.Response, error) { +func HttpToGuoYuan(param map[string]interface{}, requestType string) (*http.Response, error) { paramData, err := json.Marshal(param) if err != nil { return nil, err } body := strings.NewReader(string(paramData)) - httpReq, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/tiktok/callbackTiktokOrderMsg", body) + + url := "" + switch requestType { + case "order": // 订单相关 + url = "http://callback-jxgy.jxc4.com/tiktok/callbackTiktokOrderMsg" + case "token": // 授权相关 + case "wayBill": // 授权相关 + + } + httpReq, err := http.NewRequest(http.MethodPost, url, body) if err != nil { return nil, err } diff --git a/controllers/tiktok_order.go b/controllers/tiktok_order.go index 924aa835d..2a1eecdcb 100644 --- a/controllers/tiktok_order.go +++ b/controllers/tiktok_order.go @@ -1,11 +1,7 @@ package controllers import ( - "encoding/json" "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" - "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/model" - "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/server/web" @@ -54,156 +50,3 @@ func (t *TiktokController) CallbackTiktokOrderMsg() { t.ServeJSON() } - -func TiktokMsgChange(orderStatus []byte) (map[string][]interface{}, *tiktok_api.CallbackResponse) { - var resp []*tiktok_api.OrderCallback - if err := json.Unmarshal(orderStatus, &resp); err != nil { - return nil, &tiktok_api.CallbackResponse{Code: tiktok_api.CallbackFailCode, Msg: tiktok_api.CallbackFail} - } - - callbackResult := make(map[string][]interface{}, 0) - for _, data := range resp { - switch data.Tag { - case tiktok_api.CallbackCreatedOrderMsgTagId: // 创建订单 - create := tiktok_api.CreateOrderData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackCreatedOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackCreatedOrderMsgTagId], create) - vendorStoreId := utils.Int64ToStr(create.ShopId) - storeDetail, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreId, model.VendorIDDD, "") - if storeDetail != nil && storeDetail.Store.ID != 0 && storeDetail.Store.BrandID == model.BrandIdChengShan { // 成山农场订单 - - } else if storeDetail != nil && storeDetail.Store.ID != 0 { // 当前菜市系统订单 - continue - } else { // 果园订单 - - } - case tiktok_api.CallbackPayOrderMsgTagId: // 支付订单 - create := tiktok_api.PayOrderData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackPayOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackPayOrderMsgTagId], create) - case tiktok_api.CallbackWaitOrderMsgTagId: // 支付订单待处理(风控审核) - create := tiktok_api.WaitOrderData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackWaitOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackWaitOrderMsgTagId], create) - case tiktok_api.CallbackPartGoodsMsgTagId: // 卖家部分发货 - create := tiktok_api.SomeSendOrderData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackPartGoodsMsgTagId] = append(callbackResult[tiktok_api.CallbackPartGoodsMsgTagId], create) - case tiktok_api.CallbackPartAllGoodsMsgTagId: // 卖家发货 - create := tiktok_api.BusinessDeliveryData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackPartAllGoodsMsgTagId] = append(callbackResult[tiktok_api.CallbackPartAllGoodsMsgTagId], create) - case tiktok_api.CallbackCancelOrderMsgTagId: // 取消订单 - create := tiktok_api.CreateOrderData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackCancelOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackCancelOrderMsgTagId], create) - case tiktok_api.CallbackSuccessOrderMsgTagId: // 卖家确认收货时,会自动完成 - create := tiktok_api.SuccessOrderData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackSuccessOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackSuccessOrderMsgTagId], create) - case tiktok_api.CallbackWayBillChangeOrderMsgTagId: // 发货物流消息便跟 - create := tiktok_api.WayBillChangeData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackWayBillChangeOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackWayBillChangeOrderMsgTagId], create) - case tiktok_api.CallbackReceivingChangeOrderMsgTagId: // 收货地址消息变更(商家审核通过触发) - create := tiktok_api.ReceivingAddressChangeData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackReceivingChangeOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackReceivingChangeOrderMsgTagId], create) - case tiktok_api.CallbackChangeMoneyMsgTagId: // 卖家修改订单/运单金额回调 - create := tiktok_api.UpdateAmountChangeData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackChangeMoneyMsgTagId] = append(callbackResult[tiktok_api.CallbackChangeMoneyMsgTagId], create) - case tiktok_api.CallbackBusinessRemarkMsgTagId: // 买家收货消息变更(手机,地址,姓名),用户C端修改触发(需要上面审核接口) - create := tiktok_api.BuyerUpdateWayBillData{} - if err := json.Unmarshal([]byte(data.Data), create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackBusinessRemarkMsgTagId] = append(callbackResult[tiktok_api.CallbackBusinessRemarkMsgTagId], create) - case tiktok_api.CallbackApplyUpdateAddressMsgTagId: // 商家修改交易备注回调 - create := tiktok_api.BusinessUpdateRemakeData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackApplyUpdateAddressMsgTagId] = append(callbackResult[tiktok_api.CallbackApplyUpdateAddressMsgTagId], create) - case tiktok_api.CallbackSendOrderTimeChangeMsgTagId: // 订单发货时消息变更回调 - create := tiktok_api.AppointmentChangeData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackSendOrderTimeChangeMsgTagId] = append(callbackResult[tiktok_api.CallbackSendOrderTimeChangeMsgTagId], create) - /*********下面属于订单退货消息************/ - case tiktok_api.CallbackRefundOrderMsgTagId: // 买家发起售后申请消息 - create := tiktok_api.BuyerRefundCreatedData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackRefundOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundOrderMsgTagId], create) - case tiktok_api.CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息 - create := tiktok_api.BuyerRefundModifiedData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackUpdateRefundOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackUpdateRefundOrderMsgTagId], create) - case tiktok_api.CallbackRefundOrderSuccessMsgTagId: // 退款成功消息 - create := tiktok_api.BusinessRefundSuccessData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackRefundOrderSuccessMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundOrderSuccessMsgTagId], create) - case tiktok_api.CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息 - create := tiktok_api.BusinessNotRefundRefusedData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackRefundOrderRefuseMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundOrderRefuseMsgTagId], create) - case tiktok_api.CallbackRefundShopMsgTagId: // 拒绝退货申请消息 - create := tiktok_api.BusinessNotReturnApplyRefusedData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackRefundShopMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundShopMsgTagId], create) - case tiktok_api.CallbackReturnApplyAgreedMsgTagId: // 卖家同意时,推送此消息 - create := tiktok_api.BusinessReturnApplyAgreedData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackReturnApplyAgreedMsgTagId] = append(callbackResult[tiktok_api.CallbackReturnApplyAgreedMsgTagId], create) - case tiktok_api.CallbackReturnRefundAgreedMsgTagId: // 同意退款消息 - create := tiktok_api.BusinessRefundAgreedData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackReturnRefundAgreedMsgTagId] = append(callbackResult[tiktok_api.CallbackReturnRefundAgreedMsgTagId], create) - case tiktok_api.CallbackRefundClosedMsgTagId: - create := tiktok_api.UserCancelRefundOrderData{} - if err := json.Unmarshal([]byte(data.Data), &create); err != nil { - return nil, tiktok_api.CallbackResponseErr(false) - } - callbackResult[tiktok_api.CallbackRefundClosedMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundClosedMsgTagId], create) - default: - return nil, tiktok_api.CallbackResponseErr(false) - } - } - - return callbackResult, &tiktok_api.CallbackResponse{Code: tiktok_api.CallbackSuccessCode, Msg: tiktok_api.CallbackSuccess} -} diff --git a/controllers/tiktok_store.go b/controllers/tiktok_store.go index bdfa95fd0..df46382c2 100644 --- a/controllers/tiktok_store.go +++ b/controllers/tiktok_store.go @@ -149,6 +149,12 @@ func (c *TiktokShopController) TokenMsg() { c.ServeJSON() return } + + // 授权码发生变化,通知到果园 + { + + } + c.Data["json"] = tiktok_api.CallbackResponse{Code: tiktok_api.CallbackSuccessCode, Msg: tiktok_api.CallbackSuccess} c.ServeJSON() }