diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 5a3dae209..3df1b5b37 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1076,6 +1076,8 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat sqlParams = append(sqlParams, pageSize, offset) txDB, _ := Begin(db) defer Commit(db, txDB) + globals.SugarLogger.Debugf("===orderEX==sql=%s", sql) + globals.SugarLogger.Debugf("===orderEX==param=%s", utils.Format4Output(sqlParams, false)) if err = GetRowsTx(txDB, &orders, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount2(db, txDB) } diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 8633ce327..867b692ba 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -116,6 +116,13 @@ func GetOrderRiderInfoToPlatform(orderId string) { case model.VendorIDYB: // 银豹发单 case model.VendorIDJDShop: // 京东商城 case model.VendorIDWSC: // 微盟微商城 + case model.VendorIDDD: // 抖店小时达 + paramsMap := utils.Struct2Map(riderInfo, "", true) + if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil { + if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, paramsMap); err != nil { + globals.SugarLogger.Errorf("Error pushing tiktok rider information :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err) + } + } default: globals.SugarLogger.Errorf("Order source error, non system order") return diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index 77a6f85a5..bf524b259 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -58,7 +58,7 @@ func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool { func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) { jxutils.CallMsgHandlerAsync(func() { retVal = c.onAfsOrderMsg(msg) - }, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDEBAI)) + }, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDMTWM)) return retVal } diff --git a/business/partner/purchase/tiktok_store/financial.go b/business/partner/purchase/tiktok_store/financial.go index ef899b350..7454d4f8a 100644 --- a/business/partner/purchase/tiktok_store/financial.go +++ b/business/partner/purchase/tiktok_store/financial.go @@ -166,7 +166,7 @@ func (p *PurchaseHandler) OrderDetail2Financial(result *order_orderDetail_respon VendorStoreID: x.StoreInfo.StoreId, StoreID: 0, JxStoreID: jxStoreID, - VendorSkuID: utils.Interface2String(x.SkuId), + VendorSkuID: utils.Int64ToStr(utils.MustInterface2Int64(x.SkuId)), SkuID: int(utils.Str2Int64WithDefault(x.OutSkuId, 0)), Name: utils.Interface2String(x.ProductName), SalePrice: x.OrderAmount / x.ItemNum, diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index dedfcb906..f5772f4c8 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -40,8 +40,8 @@ var ( var ( VendorStatus2StatusMap = map[string]int{ utils.Int2Str(tiktokShop.CreateOrderStatusWaitPay): model.OrderStatusWait4Pay, // 1待支付 - utils.Int2Str(tiktokShop.CreateOrderStatusStockUp): model.OrderStatusAccepted, // 2备货中 - utils.Int2Str(tiktokShop.CreateOrderStatusDelivery): model.OrderStatusDelivering, // 3发货 + utils.Int2Str(tiktokShop.CreateOrderStatusStockUp): model.OrderStatusAccepted, // 2备货中(部分发货) + utils.Int2Str(tiktokShop.CreateOrderStatusDelivery): model.OrderStatusDelivering, // 3发货(发货完成) utils.Int2Str(tiktokShop.CreateOrderStatusCancel): model.OrderStatusCanceled, // 4取消 utils.Int2Str(tiktokShop.CreateOrderStatusOver): model.OrderStatusFinished, // 5完成 utils.Int2Str(tiktokShop.CreateOrderStatusBeginRefund): model.OrderStatusApplyCancel, // 21发货前退款完成 @@ -75,21 +75,19 @@ func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, orderMap *order_orderDetail_response.ShopOrderDetail, err error) { // 平台获取订单详情 - result, err := getAPI(vendorOrgCode, 0, vendorStoreID).GetTiktokOrderDetail(vendorOrderID) + api := getAPI(vendorOrgCode, 0, vendorStoreID) + + result, err := api.GetTiktokOrderDetail(vendorOrderID) if err != nil { return nil, nil, err } + globals.SugarLogger.Debugf("======orderDetail:%s", utils.Format4Output(result, false)) orderMap = result order = &model.GoodsOrder{ - VendorOrderID: result.OrderId, - VendorID: model.VendorIDDD, - VendorStoreID: utils.Int64ToStr(result.ShopId), - StoreID: 0, - StoreName: result.ShopName, - ConsigneeName: result.MaskPostReceiver, - ConsigneeMobile: result.MaskPostTel, - ConsigneeAddress: result.MaskPostAddr.Detail, - + VendorOrderID: result.OrderId, + VendorID: model.VendorIDDD, + VendorStoreID: "", + StoreID: 0, CoordinateType: model.CoordinateTypeMars, BuyerComment: result.BuyerWords, ExpectedDeliveredTime: getTimeFromTimestamp(utils.Interface2Int64WithDefault(result.TargetArrivalTime, 0)), @@ -99,7 +97,7 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s StatusTime: getTimeFromTimestamp(result.CreateTime), OrderCreatedAt: getTimeFromTimestamp(result.CreateTime), OriginalData: string(utils.MustMarshal(result)), - ActualPayPrice: jxutils.StandardPrice2Int(utils.MustInterface2Float64(result.PayAmount)), + ActualPayPrice: result.PayAmount, BaseFreightMoney: result.PostAmount, InvoiceTitle: "", InvoiceTaxerID: "", @@ -117,19 +115,18 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s } order.DeliveryType = model.OrderDeliveryTypeStoreSelf order.Status = p.getStatusFromVendorStatus(result.OrderStatus) - if utils.IsTimeZero(order.ExpectedDeliveredTime) { - order.BusinessType = model.BusinessTypeImmediate - } else { - order.BusinessType = model.BusinessTypeDingshida - } - order.VendorUserID = result.UserIdInfo.IdCardNo + if result.UserIdInfo != nil { + order.VendorUserID = result.UserIdInfo.IdCardNo + } originalLng := utils.MustInterface2Float64(result.UserCoordinate.UserCoordinateLongitude) originalLat := utils.MustInterface2Float64(result.UserCoordinate.UserCoordinateLatitude) order.ConsigneeLng = jxutils.StandardCoordinate2Int(originalLng) order.ConsigneeLat = jxutils.StandardCoordinate2Int(originalLat) order.DiscountMoney = result.PromotionAmount + vendorStoreIdRelly := "" // 门店id + vendorNameRelly := "" // 门店id // 添加需要赠送的东西(暂时没有赠品套餐直接商品) multiSkuMap := make(map[int]int) if len(result.SkuOrderList) > 0 { @@ -171,8 +168,39 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s } multiSkuMap[sku.SkuID]++ order.Skus = append(order.Skus, sku) + vendorStoreIdRelly = extra.StoreInfo.StoreId + vendorNameRelly = extra.StoreInfo.StoreName } } + + // 预订单还是快速达 + localStore, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreIdRelly, model.VendorIDDD, vendorOrgCode) + if err != nil { + return nil, nil, err + } + // 订单不在门店营业时间来的订单, + openTime := localStore.OpenTime1 // 门店开始营业时间 + closeTime := localStore.CloseTime1 // 门店结束营业时间 + if localStore.CloseTime2 != 0 { + closeTime = localStore.CloseTime2 + } + h, m, _ := utils.Timestamp2Time(result.CreateTime).Clock() + if utils.Str2Int16(fmt.Sprintf("%d%d", h, m)) >= openTime && utils.Str2Int16(fmt.Sprintf("%d%d", h, m)) < closeTime { + order.BusinessType = model.BusinessTypeDingshida + } else { + order.BusinessType = model.BusinessTypeImmediate + + } + + // 用户保密信息脱敏 + name, tel, address, _ := api.OrderUserInfoDecrypt(vendorOrderID, result.EncryptPostReceiver, result.EncryptPostTel, result.PostAddr.EncryptDetail) + order.ConsigneeName = name + order.ConsigneeMobile = tel + order.ConsigneeAddress = fmt.Sprintf("%s%s%s%s%s", result.PostAddr.Province.Name, result.PostAddr.City.Name, result.PostAddr.Town.Name, result.PostAddr.Street.Name, address) + order.JxStoreID = localStore.ID + order.StoreID = localStore.ID + order.VendorStoreID = vendorStoreIdRelly // 真实门店id + order.StoreName = vendorNameRelly // 真实门店名称 order.PmSubsidyMoney = result.PromotionAmount // 美团记录订单优惠总金额 for _, v := range order.Skus { if multiSkuMap[v.SkuID] > 1 && v.SalePrice == v.VendorPrice { @@ -185,7 +213,7 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s // GetOrderRider 商家自配送同步配送信息 func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) (err error) { - return nil + return getAPI(vendorOrgCode, 0, vendorStoreID).OrderStatusAndPsInfo(param) } func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) { @@ -222,7 +250,8 @@ func (c *PurchaseHandler) onOrderMsg(msgId, orderId string, msg interface{}) (re var err error // 处理售后单 if c.isAfsMsg(msgId) { - return c.OnAfsOrderMsg(msgId, orderId, msg) + response = c.OnAfsOrderMsg(msgId, orderId, msg) + return response } // 待支付订单将不做处理/支付订单待处理(抖音风控) @@ -231,14 +260,14 @@ func (c *PurchaseHandler) onOrderMsg(msgId, orderId string, msg interface{}) (re } // 取消订单:可能未支付取消订单,不做处理 - if msgId == tiktokShop.CallbackCancelOrderMsgTagId { - if _, err := partner.CurOrderManager.LoadOrder(orderId, model.VendorIDDD); err != nil && strings.Contains(err.Error(), "找不到相应订单") { - return tiktokShop.Err2CallbackResponse(nil, "") - } else { - globals.SugarLogger.Debugf("Cancel Order Err : %s", err.Error()) - return tiktokShop.Err2CallbackResponse(err, "") - } - } + //if msgId == tiktokShop.CallbackCancelOrderMsgTagId { + // if _, err := partner.CurOrderManager.LoadOrder(orderId, model.VendorIDDD); err != nil && strings.Contains(err.Error(), "找不到相应订单") { + // return tiktokShop.Err2CallbackResponse(nil, "") + // } else { + // globals.SugarLogger.Debugf("Cancel Order Err : %s", err) + // return tiktokShop.Err2CallbackResponse(err, "") + // } + //} // 组装订单状态变化 status, appOrgCode := c.callbackMsg2Status(msgId, orderId, msg) @@ -247,15 +276,17 @@ func (c *PurchaseHandler) onOrderMsg(msgId, orderId string, msg interface{}) (re return tiktokShop.Err2CallbackResponse(nil, "") } - // 已经支付的订单,当做新订单创建在平台内部 + // 已经支付的订单,当做新订单创建在平台内部 ----------------- if msgId == tiktokShop.CallbackPayOrderMsgTagId { order, err := c.GetOrder(utils.Int64ToStr(appOrgCode), orderId, "") // 获取平台订单详情,制作本地订单 if err != nil { return tiktokShop.Err2CallbackResponse(err, "") } + globals.SugarLogger.Debugf("回调创建新订单=order==%s", utils.Format4Output(order, false)) + globals.SugarLogger.Debugf("回调创建新订单=status==%s", utils.Format4Output(status, false)) - status2, _ := c.callbackMsg2Status(msgId, orderId, msg) - if err := partner.CurOrderManager.OnOrderNew(order, status2); err != nil { + //status2, _ := c.callbackMsg2Status(msgId, orderId, msg) + if err := partner.CurOrderManager.OnOrderNew(order, status); err != nil { return tiktokShop.Err2CallbackResponse(err, "") } @@ -332,23 +363,23 @@ func (c *PurchaseHandler) callbackMsg2Status(msgId, orderId string, msg interfac orderStatus.Status = vendorStatusToLocalStatus(orderMsg.OrderStatus) orderStatus.Remark = "101-支付回调" shopId = orderMsg.ShopId - case tiktokShop.CallbackWaitOrderMsgTagId: - return nil, 0 // 支付订单风控消息不处理 - //orderMsg := msg.(*tiktokShop.WaitOrderData) - //orderStatus.VendorOrderID = utils.Int64ToStr(orderMsg.PId) - //orderStatus.VendorStatus = utils.Int64ToStr(orderMsg.OrderStatus) - //orderStatus.StatusTime = utils.Timestamp2Time(orderMsg.PayTime) - //orderStatus.Status = vendorStatusToLocalStatus(orderMsg.OrderStatus) - //orderStatus.Remark = "110-订单支付待处理:风控" + //case tiktokShop.CallbackWaitOrderMsgTagId: + // return nil, 0 // 支付订单风控消息不处理 + //orderMsg := msg.(*tiktokShop.WaitOrderData) + //orderStatus.VendorOrderID = utils.Int64ToStr(orderMsg.PId) + //orderStatus.VendorStatus = utils.Int64ToStr(orderMsg.OrderStatus) + //orderStatus.StatusTime = utils.Timestamp2Time(orderMsg.PayTime) + //orderStatus.Status = vendorStatusToLocalStatus(orderMsg.OrderStatus) + //orderStatus.Remark = "110-订单支付待处理:风控" case tiktokShop.CallbackPartGoodsMsgTagId: orderMsg := tiktokShop.SomeSendOrderData{} if err := utils.Map2StructByJson(msg, &orderMsg, false); err != nil { return nil, 0 } orderStatus.VendorOrderID = utils.Int64ToStr(orderMsg.PId) - orderStatus.VendorStatus = utils.Int64ToStr(orderMsg.OrderStatus) + orderStatus.VendorStatus = utils.Int64ToStr(orderMsg.OrderStatus) // 2 orderStatus.StatusTime = utils.Timestamp2Time(orderMsg.UpdateTime) - orderStatus.Status = vendorStatusToLocalStatus(orderMsg.OrderStatus) + orderStatus.Status = model.OrderStatusAdjust // vendorStatusToLocalStatus(orderMsg.OrderStatus) orderStatus.Remark = "108-卖家部分发货" shopId = orderMsg.ShopId case tiktokShop.CallbackPartAllGoodsMsgTagId: @@ -357,9 +388,9 @@ func (c *PurchaseHandler) callbackMsg2Status(msgId, orderId string, msg interfac return nil, 0 } orderStatus.VendorOrderID = utils.Int64ToStr(orderMsg.PId) - orderStatus.VendorStatus = utils.Int64ToStr(orderMsg.OrderStatus) + orderStatus.VendorStatus = utils.Int64ToStr(orderMsg.OrderStatus) // 3 orderStatus.StatusTime = utils.Timestamp2Time(orderMsg.UpdateTime) - orderStatus.Status = vendorStatusToLocalStatus(orderMsg.OrderStatus) + orderStatus.Status = model.OrderStatusAdjust // vendorStatusToLocalStatus(orderMsg.OrderStatus) orderStatus.Remark = "102-卖家发货完成" shopId = orderMsg.ShopId case tiktokShop.CallbackCancelOrderMsgTagId: @@ -373,7 +404,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msgId, orderId string, msg interfac orderStatus.Status = vendorStatusToLocalStatus(orderMsg.OrderStatus) orderStatus.Remark = "106-取消订单" shopId = orderMsg.ShopId - case tiktokShop.CallbackSuccessOrderMsgTagId: + case tiktokShop.CallbackSuccessOrderMsgTagId: // 交易完成 orderMsg := tiktokShop.SuccessOrderData{} if err := utils.Map2StructByJson(msg, &orderMsg, false); err != nil { return nil, 0 @@ -382,7 +413,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msgId, orderId string, msg interfac orderStatus.VendorStatus = utils.Int64ToStr(orderMsg.OrderStatus) orderStatus.StatusTime = utils.Timestamp2Time(orderMsg.CompleteTime) orderStatus.Status = vendorStatusToLocalStatus(orderMsg.OrderStatus) - orderStatus.Remark = "103-确认收货" + orderStatus.Remark = "103-确认收货/交易完成" shopId = orderMsg.ShopId case tiktokShop.CallbackWayBillChangeOrderMsgTagId: orderMsg := tiktokShop.WayBillChangeData{} @@ -450,7 +481,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msgId, orderId string, msg interfac orderStatus.Status = model.OrderStatusUnknown orderStatus.Remark = "126-预约发货:" shopId = orderMsg.ShopId - case fakeFinishedPickup: // 应为需要同步京东,美团拣货功能制作的假拣货,抖音不存在拣货 + case tiktokShop.CallbackWaitOrderMsgTagId: // 应为需要同步京东,美团拣货功能制作的假拣货,抖音不存在拣货 orderMsg := tiktokShop.FakePickUpGoodsData{} if err := utils.Map2StructByJson(msg, &orderMsg, false); err != nil { return nil, 0 diff --git a/business/partner/purchase/tiktok_store/order_afs_utils.go b/business/partner/purchase/tiktok_store/order_afs_utils.go index b4597d170..d91d2baf5 100644 --- a/business/partner/purchase/tiktok_store/order_afs_utils.go +++ b/business/partner/purchase/tiktok_store/order_afs_utils.go @@ -4,12 +4,10 @@ import ( "fmt" tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/jxutils" "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" "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/api" "strings" ) @@ -41,9 +39,10 @@ func (c *PurchaseHandler) isAfsMsg(msg string) bool { } func (c *PurchaseHandler) OnAfsOrderMsg(msgId, orderId string, msg interface{}) (retVal *tiktokShop.CallbackResponse) { - jxutils.CallMsgHandlerAsync(func() { - retVal = c.onAfsOrderMsg(msgId, msg) - }, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDDD)) + //jxutils.CallMsgHandlerAsync(func() { + retVal = c.onAfsOrderMsg(msgId, msg) + globals.SugarLogger.Debugf("============%s===", utils.Format4Output(retVal, false)) + //}, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDDD)) return retVal } @@ -79,7 +78,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal * VendorID: model.VendorIDDD, AfsOrderID: orderStatus.VendorOrderID, VendorOrderID: orderStatus.RefVendorOrderID, - VendorStoreID: "", + VendorStoreID: tiktokAfsOrderDetail.Data.ProcessInfo.AfterSaleInfo.StoreId, StoreID: 0, AfsCreatedAt: orderStatus.StatusTime, @@ -90,7 +89,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal * ReasonDesc: tiktokAfsOrderDetail.Data.ProcessInfo.AfterSaleInfo.ReasonRemark, ReasonImgList: utils.LimitUTF8StringLen(strings.Join(tiktokAfsOrderDetail.Data.ProcessInfo.AfterSaleInfo.Evidence, ","), 1024), RefundType: model.AfsTypeUnknown, - VendorOrgCode: api.TiktokStore.GetAppId(), + VendorOrgCode: utils.Int2Str(venderOrgCode), } afsOrder.FreightUserMoney = tiktokAfsOrderDetail.Data.ProcessInfo.AfterSaleInfo.RefundPostAmount afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用 @@ -152,6 +151,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } vendorOrgCode = refundOrder.ShopId + orderStatus = orderMsg case tiktokShop.CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息 refundOrder := msg.(*tiktokShop.BuyerRefundModifiedData) orderMsg := &model.OrderStatus{ @@ -175,7 +175,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } vendorOrgCode = refundOrder.ShopId - + orderStatus = orderMsg case tiktokShop.CallbackRefundOrderSuccessMsgTagId: // 退款成功消息 refundOrder := msg.(*tiktokShop.BusinessRefundSuccessData) orderMsg := &model.OrderStatus{ @@ -198,9 +198,9 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } vendorOrgCode = refundOrder.ShopId - + orderStatus = orderMsg case tiktokShop.CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息 - refundOrder := msg.(*tiktokShop.BusinessRefundSuccessData) + refundOrder := msg.(*tiktokShop.BusinessNotRefundRefusedData) orderMsg := &model.OrderStatus{ VendorID: model.VendorIDDD, OrderType: model.OrderTypeAfsOrder, @@ -208,7 +208,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( RefVendorID: model.VendorIDDD, VendorStatus: fmt.Sprintf("%s:%s", "order", "refund_money_fail"), Status: c.GetAfsStatusFromVendorStatus(refundOrder.AftersaleType, tiktokShop.CallbackUpdateRefundOrderMsgTagId), - StatusTime: utils.Timestamp2Time(int64(refundOrder.SuccessTime)), + StatusTime: utils.Timestamp2Time(int64(refundOrder.RefuseTime)), } if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok { orderMsg.Remark = k @@ -221,7 +221,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } vendorOrgCode = refundOrder.ShopId - + orderStatus = orderMsg case tiktokShop.CallbackRefundShopMsgTagId: // 拒绝退货申请消息 refundOrder := msg.(*tiktokShop.BusinessNotReturnApplyRefusedData) orderMsg := &model.OrderStatus{ @@ -244,9 +244,9 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } vendorOrgCode = refundOrder.ShopId - + orderStatus = orderMsg case tiktokShop.CallbackReturnApplyAgreedMsgTagId: // 同意退货申请消息 - refundOrder := msg.(*tiktokShop.BusinessRefundSuccessData) + refundOrder := msg.(*tiktokShop.BusinessReturnApplyAgreedData) orderMsg := &model.OrderStatus{ VendorID: model.VendorIDDD, OrderType: model.OrderTypeAfsOrder, @@ -254,7 +254,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( RefVendorID: model.VendorIDDD, VendorStatus: fmt.Sprintf("%s:%s", "order", "refund_shop_success"), Status: c.GetAfsStatusFromVendorStatus(refundOrder.AftersaleType, tiktokShop.CallbackReturnApplyAgreedMsgTagId), - StatusTime: utils.Timestamp2Time(int64(refundOrder.SuccessTime)), + StatusTime: utils.Timestamp2Time(int64(refundOrder.AgreeTime)), } if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok { orderMsg.Remark = k @@ -267,9 +267,9 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } vendorOrgCode = refundOrder.ShopId - + orderStatus = orderMsg case tiktokShop.CallbackReturnRefundAgreedMsgTagId: // 同意退款消息 - refundOrder := msg.(*tiktokShop.BusinessRefundSuccessData) + refundOrder := msg.(*tiktokShop.BusinessRefundAgreedData) orderMsg := &model.OrderStatus{ VendorID: model.VendorIDDD, OrderType: model.OrderTypeAfsOrder, @@ -277,7 +277,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( RefVendorID: model.VendorIDDD, VendorStatus: fmt.Sprintf("%s:%s", "order", "refund_money_success"), Status: c.GetAfsStatusFromVendorStatus(refundOrder.AftersaleType, tiktokShop.CallbackReturnRefundAgreedMsgTagId), - StatusTime: utils.Timestamp2Time(int64(refundOrder.SuccessTime)), + StatusTime: utils.Timestamp2Time(int64(refundOrder.AgreeTime)), } if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok { orderMsg.Remark = k @@ -290,7 +290,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } vendorOrgCode = refundOrder.ShopId - + orderStatus = orderMsg default: return nil, 0 } diff --git a/business/partner/purchase/tiktok_store/store_sku2.go b/business/partner/purchase/tiktok_store/store_sku2.go index b06f7a6a6..1decdc11d 100644 --- a/business/partner/purchase/tiktok_store/store_sku2.go +++ b/business/partner/purchase/tiktok_store/store_sku2.go @@ -283,6 +283,9 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI PickupMethod: "0", OuterProductId: utils.Int2Str(storeSku.SkuID), // 本地skuId为外部商品id } + globals.SugarLogger.Debugf("====OuterProductId====%d", storeSku.SkuID) + globals.SugarLogger.Debugf("====OuterProductId====%d", storeSku.ID) + globals.SugarLogger.Debugf("====OuterProductId====%s", utils.Format4Output(storeSku, false)) // param.AccountTemplateId = "" // 获取上传图,商品轮播图 img, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5) @@ -291,11 +294,15 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI } param.Pic = img // 商品详情图 - img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg) - if err != nil { - return nil, err + if storeSku.DescImg == "" { + param.Description = img + } else { + img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg) + if err != nil { + return nil, err + } + param.Description = img2 } - param.Description = img2 // weight_unit 目前抖音只支持g和kg两种 switch storeSku.Unit { diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 7d98bcebc..bbf971cf2 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -124,7 +124,7 @@ func GetSpecPrices(specs, storeId string, mainSkuId int64, localSku *dao.StoreSk Code: utils.Int2Str(localSku.SkuID), StepStockNum: 0, SupplierID: "", - OuterSkuID: utils.Int2Str(localSku.NameID), + OuterSkuID: utils.Int2Str(localSku.SkuID), DeliveryInfos: []*tiktokShop.DeliveryInfos{ {InfoType: "weight", InfoUnit: localSku.SpecUnit, InfoValue: fmt.Sprintf("%f", localSku.SpecQuality)}, }, diff --git a/controllers/tiktok_order.go b/controllers/tiktok_order.go index 321c7a0a2..45a926c25 100644 --- a/controllers/tiktok_order.go +++ b/controllers/tiktok_order.go @@ -28,6 +28,7 @@ func (t *TiktokController) CallbackTiktokOrderMsg() { } // 2.参数解析 + globals.SugarLogger.Debug("抖音订单回调数据参数打印===========", string(byteList)) orderStatus, resp := api.TiktokStore.CreateOrderCallback(byteList) globals.SugarLogger.Debug("抖音订单回调数据打印测试===========", orderStatus) if resp.Code != 0 {