From 43b62d33cb95fa5b4eeba9d326b998156e0ed5c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 16:30:10 +0800 Subject: [PATCH 1/8] 1 --- .../purchase/tao_vegetable/order_afs.go | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/order_afs.go b/business/partner/purchase/tao_vegetable/order_afs.go index 8da2785eb..56ee4258b 100644 --- a/business/partner/purchase/tao_vegetable/order_afs.go +++ b/business/partner/purchase/tao_vegetable/order_afs.go @@ -36,18 +36,19 @@ func (c *PurchaseHandler) isAfsMsg(orderStatus string, orderId string, orderCall return true } case tao_vegetable.OrderStatusRefundSuccess: - success := orderCallback.(*tao_vegetable.RefundOrderFinish) - param := &request591.AlibabaWdkOrderRefundGetRequest{ - OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)), - ShopId: nil, - StoreId: utils.String2Pointer(success.StoreId), - RefundIds: &[]int64{utils.Str2Int64(success.BizSubRefundId)}, - } - refundAfs, _ := getAPI("", 0, success.StoreId).QueryAfsOrderDetail(param) - globals.SugarLogger.Debugf("==============refundAfs.Orders : %s", utils.Format4Output(refundAfs.Orders != nil, false)) - if refundAfs.Orders != nil { - return true - } + return true + //success := orderCallback.(*tao_vegetable.RefundOrderFinish) + //param := &request591.AlibabaWdkOrderRefundGetRequest{ + // OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)), + // ShopId: nil, + // StoreId: utils.String2Pointer(success.StoreId), + // RefundIds: &[]int64{utils.Str2Int64(success.BizSubRefundId)}, + //} + //refundAfs, _ := getAPI("", 0, success.StoreId).QueryAfsOrderDetail(param) + //globals.SugarLogger.Debugf("==============refundAfs.Orders : %s", utils.Format4Output(refundAfs.Orders != nil, false)) + //if refundAfs.Orders != nil { + // return true + //} case tao_vegetable.OrderStatusOnSaleCancel: order, _ := partner.CurOrderManager.LoadOrder(orderId, model.VendorIDTaoVegetable) if order != nil { From ba5429b0b6a7c4580dc0677a55c890cfc55f76e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 16:52:33 +0800 Subject: [PATCH 2/8] 1 --- .../purchase/tao_vegetable/order_afs.go | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/order_afs.go b/business/partner/purchase/tao_vegetable/order_afs.go index 56ee4258b..c6bb01562 100644 --- a/business/partner/purchase/tao_vegetable/order_afs.go +++ b/business/partner/purchase/tao_vegetable/order_afs.go @@ -384,15 +384,19 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{}) StoreId: utils.String2Pointer(refundData.StoreId), RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)}, } + time.Sleep(time.Second * 1) refundAfs, _ := getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param) - orderId := *refundAfs.Orders - - orderStatus.RefVendorOrderID = utils.Int64ToStr(*orderId[0].OriginParentId) - orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功") - orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess) - orderStatus.StatusTime = time.Now() - orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId) - orderStatus.VendorOrderID = orderStatus.RefVendorOrderID + if refundAfs.Orders == nil { + globals.SugarLogger.Debugf("================售中退款成功回调查询售后单为空:") + } else { + orderId := *refundAfs.Orders + orderStatus.RefVendorOrderID = utils.Int64ToStr(*orderId[0].OriginParentId) + orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功") + orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess) + orderStatus.StatusTime = time.Now() + orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId) + orderStatus.VendorOrderID = orderStatus.RefVendorOrderID + } } } From 59cb8d8ea8f275d6bab2ccadf36b7a6ee8537b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 17:02:57 +0800 Subject: [PATCH 3/8] 1 --- business/partner/purchase/tao_vegetable/order_afs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/tao_vegetable/order_afs.go b/business/partner/purchase/tao_vegetable/order_afs.go index c6bb01562..cb89b4ce6 100644 --- a/business/partner/purchase/tao_vegetable/order_afs.go +++ b/business/partner/purchase/tao_vegetable/order_afs.go @@ -395,7 +395,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{}) orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess) orderStatus.StatusTime = time.Now() orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId) - orderStatus.VendorOrderID = orderStatus.RefVendorOrderID + orderStatus.VendorOrderID = utils.Int64ToStr(*orderId[0].RefundOrderId) } } From e9f253d90f0ced00280a90cb3279bed82b1378b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 17:14:24 +0800 Subject: [PATCH 4/8] 1 --- business/partner/purchase/tao_vegetable/order_afs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/tao_vegetable/order_afs.go b/business/partner/purchase/tao_vegetable/order_afs.go index cb89b4ce6..6a359e211 100644 --- a/business/partner/purchase/tao_vegetable/order_afs.go +++ b/business/partner/purchase/tao_vegetable/order_afs.go @@ -241,7 +241,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal afsOrder = &model.AfsOrder{ VendorID: model.VendorIDTaoVegetable, - AfsOrderID: orderStatus.VendorOrderID, + AfsOrderID: onSaleMsg.PartCancelRequest.IdempotentId, VendorOrderID: orderStatus.RefVendorOrderID, VendorStoreID: onSaleMsg.PartCancelRequest.StoreId, StoreID: 0, From 2c1be52d378be4242195a52c9fd224c0b048692a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 17:27:42 +0800 Subject: [PATCH 5/8] 1 --- .../purchase/tao_vegetable/order_afs.go | 301 +++++++++--------- 1 file changed, 150 insertions(+), 151 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/order_afs.go b/business/partner/purchase/tao_vegetable/order_afs.go index 6a359e211..48e0435b6 100644 --- a/business/partner/purchase/tao_vegetable/order_afs.go +++ b/business/partner/purchase/tao_vegetable/order_afs.go @@ -71,22 +71,25 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal var err error var db = dao.GetDB() orderStatus := c.callbackAfsMsg2Status(status, msg) - needCallNew := orderStatus.Status == model.AfsOrderStatusWait4Approve || orderStatus.Status == model.AfsOrderStatusNew - if !needCallNew { - _, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID) - if err != nil { - if dao.IsNoRowsError(err) { - needCallNew = true - } else { - return tao_vegetable.CallBackResultInfo(err) - } - } - } - if needCallNew && orderStatus.Status == model.AfsOrderStatusOnSaleAfs { - needCallNew = false - } + //needCallNew := orderStatus.Status == model.AfsOrderStatusWait4Approve || orderStatus.Status == model.AfsOrderStatusNew + //if !needCallNew { + // _, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID) + // if err != nil { + // if dao.IsNoRowsError(err) { + // needCallNew = true + // } else { + // return tao_vegetable.CallBackResultInfo(err) + // } + // } + //} + //if needCallNew && orderStatus.Status == model.AfsOrderStatusOnSaleAfs { + // needCallNew = false + //} + + // 用户取消售后 + switch status { + case tao_vegetable.OrderStatusApplyAfs: - if needCallNew { refundData := msg.(*tao_vegetable.UserApplyRefundCallBack) var afsOrder *model.AfsOrder var api = getAPI("", 0, refundData.StoreId) @@ -182,150 +185,146 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal } err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } - } else { - // 用户取消售后 - switch status { - case tao_vegetable.OrderStatusCancelAfs: - // 删除售后单 - afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, orderStatus.VendorOrderID) - if err != nil || afsOrder == nil { - globals.SugarLogger.Debugf("用户取消售后单,获取之前生成的售后单失败") - return tao_vegetable.CallBackResultInfo(err) - } - - cancelMsg := msg.(*tao_vegetable.UserCancelRefundApply) - for _, v := range afsOrder { - // 商家驳回,会发出用户撤销的回调通知,不管他 - if v.AfsOrderID == cancelMsg.RefundId && v.Flag == model.AfsOrderFlagRefuseUserRefund { - return tao_vegetable.CallBackResultInfo(nil) - } - - // 用户撤销未处理的售后订单 - if v.AfsOrderID == cancelMsg.RefundId && v.Flag == 0 { - // 下面处理用户撤销售后 - if err = utils.CallFuncLogError(func() error { - _, err = dao.DeleteEntity(db, v, "VendorOrderID", "VendorID") - return err - }, "SaveAfsOrder delete AfsOrder, afsOrderID:%s", v.AfsOrderID); err != nil { - return tao_vegetable.CallBackResultInfo(err) - } - - // 删除售后商品 - if err = utils.CallFuncLogError(func() error { - _, err = dao.DeleteEntity(db, &model.OrderSkuFinancial{ - VendorOrderID: v.VendorOrderID, - VendorID: v.VendorID, - IsAfsOrder: 1, - }, "VendorOrderID", "VendorID", "IsAfsOrder") - return err - }, "SaveAfsOrder delete OrderSkuFinancial, afsOrderID:%s", v.AfsOrderID); err != nil { - return tao_vegetable.CallBackResultInfo(err) - } - } - } - // 业务上规定的是打包之后不能取消,但是如果配送超过了预计送达时间1-2小时, - // c端的取消按钮会自动打开,让用户操作取消,但是如果你没接这个接口,用户申请取消了, - // 你这边没有响应那么就不会退钱给用户,就会造成客诉。为什么不接售中取消呢 - case tao_vegetable.OrderStatusOnSaleCancel: - onSaleMsg := msg.(*tao_vegetable.OnSaleCancel) - var afsOrder *model.AfsOrder - var api = getAPI("", 0, onSaleMsg.PartCancelRequest.StoreId) - queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{ - StoreId: utils.String2Pointer(onSaleMsg.PartCancelRequest.StoreId), - BizOrderId: utils.Int64ToPointer(onSaleMsg.PartCancelRequest.BizOrderId), - }} - orderDetail, err := api.QueryOrderDetail(queryOrderDetailParam) - if err != nil { - return tao_vegetable.CallBackResultInfo(err) - } - - afsOrder = &model.AfsOrder{ - VendorID: model.VendorIDTaoVegetable, - AfsOrderID: onSaleMsg.PartCancelRequest.IdempotentId, - VendorOrderID: orderStatus.RefVendorOrderID, - VendorStoreID: onSaleMsg.PartCancelRequest.StoreId, - StoreID: 0, - AfsCreatedAt: orderStatus.StatusTime, - VendorAppealType: status, // 原始售后方式 - AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消 - VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel, - ReasonType: 0, - ReasonDesc: "售中取消:订单未打包,或者长时间为送到!响应成功直接退款", - VendorOrgCode: api.GetVendorOrgCode(), - } - afsOrder.FreightUserMoney = 0 // 订单运费 - afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用 - afsOrder.BoxMoney = 0 // 餐盒费 - afsOrder.TongchengFreightMoney = 0 // 同城配送费 - afsOrder.SkuBoxMoney = 0 // 商品包装费 - afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态 - - ifAfsTypeFullRefund := false - var refundFee int64 = 0 - for _, v := range *orderDetail.SubOrderResponseList { - for _, v2 := range onSaleMsg.PartCancelRequest.SubOrders { - if *v.BizSubOrderId == v2.BizSubOrderId { - orderSku := &model.OrderSkuFinancial{ - Count: utils.Float64TwoInt(*v.BuySaleQuantity), - VendorSkuID: *v.SkuCode, - SkuID: utils.Str2Int(*v.SkuCode), - Name: *v.SkuName, - UserMoney: *v.OriginalFee, - PmSkuSubsidyMoney: *v.DiscountPlatformFee, // 平台补贴商品 - VendorOrderID: orderStatus.VendorOrderID, - VendorSubOrderID: *v.OutSubOrderId, - } - afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney - afsOrder.Skus = append(afsOrder.Skus, orderSku) - refundFee += *v.OriginalFee - } - } - } - if len(onSaleMsg.PartCancelRequest.SubOrders) == len(*orderDetail.SubOrderResponseList) { - ifAfsTypeFullRefund = true - } - - afsOrder.SkuUserMoney += refundFee - if ifAfsTypeFullRefund { // 全退 - afsOrder.RefundType = model.AfsTypeFullRefund - afsOrder.SkuUserMoney += *orderDetail.PostFee - afsOrder.Skus[len(afsOrder.Skus)-1].UserMoney += *orderDetail.PostFee - } else { - afsOrder.RefundType = model.AfsTypePartRefund - } - - if afsOrder != nil { - //直接就来一个新的售后单,并且还是售后完成的 - afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt - afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund - globals.SugarLogger.Debugf("==============onsaleRefund afsOrd: = %s", utils.Format4Output(afsOrder, false)) - globals.SugarLogger.Debugf("==============onsaleRefund orderStatus: = %s", utils.Format4Output(orderStatus, false)) - err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) - } + case tao_vegetable.OrderStatusCancelAfs: + // 删除售后单 + afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, orderStatus.VendorOrderID) + if err != nil || afsOrder == nil { + globals.SugarLogger.Debugf("用户取消售后单,获取之前生成的售后单失败") + return tao_vegetable.CallBackResultInfo(err) } - if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil { - skuList, _ := dao.GetSimpleOrderSkus(db, orderStatus.RefVendorOrderID, nil) - totalSkuCount := 0 - for _, v := range skuList { - totalSkuCount += v.Count + cancelMsg := msg.(*tao_vegetable.UserCancelRefundApply) + for _, v := range afsOrder { + // 商家驳回,会发出用户撤销的回调通知,不管他 + if v.AfsOrderID == cancelMsg.RefundId && v.Flag == model.AfsOrderFlagRefuseUserRefund { + return tao_vegetable.CallBackResultInfo(nil) } - financialSku, _ := dao.GetOrderRefundSkuList(db, []string{orderStatus.RefVendorOrderID}) - refundSkuCount := 0 - for _, v := range financialSku { - refundSkuCount += v.Count + // 用户撤销未处理的售后订单 + if v.AfsOrderID == cancelMsg.RefundId && v.Flag == 0 { + // 下面处理用户撤销售后 + if err = utils.CallFuncLogError(func() error { + _, err = dao.DeleteEntity(db, v, "VendorOrderID", "VendorID") + return err + }, "SaveAfsOrder delete AfsOrder, afsOrderID:%s", v.AfsOrderID); err != nil { + return tao_vegetable.CallBackResultInfo(err) + } + + // 删除售后商品 + if err = utils.CallFuncLogError(func() error { + _, err = dao.DeleteEntity(db, &model.OrderSkuFinancial{ + VendorOrderID: v.VendorOrderID, + VendorID: v.VendorID, + IsAfsOrder: 1, + }, "VendorOrderID", "VendorID", "IsAfsOrder") + return err + }, "SaveAfsOrder delete OrderSkuFinancial, afsOrderID:%s", v.AfsOrderID); err != nil { + return tao_vegetable.CallBackResultInfo(err) + } } - if err == nil && status == tao_vegetable.OrderStatusRefundSuccess && totalSkuCount == refundSkuCount { - goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, orderStatus.VendorID) - goodsOrder.Status = model.OrderStatusCanceled - goodsOrder.VendorStatus = orderStatus.VendorStatus - dao.UpdateEntity(db, goodsOrder, "Status", "VendorStatus") - // 取消三方运单 + } + // 业务上规定的是打包之后不能取消,但是如果配送超过了预计送达时间1-2小时, + // c端的取消按钮会自动打开,让用户操作取消,但是如果你没接这个接口,用户申请取消了, + // 你这边没有响应那么就不会退钱给用户,就会造成客诉。为什么不接售中取消呢 + case tao_vegetable.OrderStatusOnSaleCancel: + onSaleMsg := msg.(*tao_vegetable.OnSaleCancel) + var afsOrder *model.AfsOrder + var api = getAPI("", 0, onSaleMsg.PartCancelRequest.StoreId) + queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{ + StoreId: utils.String2Pointer(onSaleMsg.PartCancelRequest.StoreId), + BizOrderId: utils.Int64ToPointer(onSaleMsg.PartCancelRequest.BizOrderId), + }} + orderDetail, err := api.QueryOrderDetail(queryOrderDetailParam) + if err != nil { + return tao_vegetable.CallBackResultInfo(err) + } + + afsOrder = &model.AfsOrder{ + VendorID: model.VendorIDTaoVegetable, + AfsOrderID: onSaleMsg.PartCancelRequest.IdempotentId, + VendorOrderID: orderStatus.RefVendorOrderID, + VendorStoreID: onSaleMsg.PartCancelRequest.StoreId, + StoreID: 0, + AfsCreatedAt: orderStatus.StatusTime, + VendorAppealType: status, // 原始售后方式 + AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消 + VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel, + ReasonType: 0, + ReasonDesc: "售中取消:订单未打包,或者长时间为送到!响应成功直接退款", + VendorOrgCode: api.GetVendorOrgCode(), + } + afsOrder.FreightUserMoney = 0 // 订单运费 + afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用 + afsOrder.BoxMoney = 0 // 餐盒费 + afsOrder.TongchengFreightMoney = 0 // 同城配送费 + afsOrder.SkuBoxMoney = 0 // 商品包装费 + afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态 + + ifAfsTypeFullRefund := false + var refundFee int64 = 0 + for _, v := range *orderDetail.SubOrderResponseList { + for _, v2 := range onSaleMsg.PartCancelRequest.SubOrders { + if *v.BizSubOrderId == v2.BizSubOrderId { + orderSku := &model.OrderSkuFinancial{ + Count: utils.Float64TwoInt(*v.BuySaleQuantity), + VendorSkuID: *v.SkuCode, + SkuID: utils.Str2Int(*v.SkuCode), + Name: *v.SkuName, + UserMoney: *v.OriginalFee, + PmSkuSubsidyMoney: *v.DiscountPlatformFee, // 平台补贴商品 + VendorOrderID: orderStatus.VendorOrderID, + VendorSubOrderID: *v.OutSubOrderId, + } + afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney + afsOrder.Skus = append(afsOrder.Skus, orderSku) + refundFee += *v.OriginalFee + } } } + if len(onSaleMsg.PartCancelRequest.SubOrders) == len(*orderDetail.SubOrderResponseList) { + ifAfsTypeFullRefund = true + } + + afsOrder.SkuUserMoney += refundFee + if ifAfsTypeFullRefund { // 全退 + afsOrder.RefundType = model.AfsTypeFullRefund + afsOrder.SkuUserMoney += *orderDetail.PostFee + afsOrder.Skus[len(afsOrder.Skus)-1].UserMoney += *orderDetail.PostFee + } else { + afsOrder.RefundType = model.AfsTypePartRefund + } + + if afsOrder != nil { + //直接就来一个新的售后单,并且还是售后完成的 + afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt + afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund + globals.SugarLogger.Debugf("==============onsaleRefund afsOrd: = %s", utils.Format4Output(afsOrder, false)) + globals.SugarLogger.Debugf("==============onsaleRefund orderStatus: = %s", utils.Format4Output(orderStatus, false)) + err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) + } } - globals.SugarLogger.Debugf("=============errr : %v", err) + + if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil { + skuList, _ := dao.GetSimpleOrderSkus(db, orderStatus.RefVendorOrderID, nil) + totalSkuCount := 0 + for _, v := range skuList { + totalSkuCount += v.Count + } + + financialSku, _ := dao.GetOrderRefundSkuList(db, []string{orderStatus.RefVendorOrderID}) + refundSkuCount := 0 + for _, v := range financialSku { + refundSkuCount += v.Count + } + if err == nil && status == tao_vegetable.OrderStatusRefundSuccess && totalSkuCount == refundSkuCount { + goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, orderStatus.VendorID) + goodsOrder.Status = model.OrderStatusCanceled + goodsOrder.VendorStatus = orderStatus.VendorStatus + dao.UpdateEntity(db, goodsOrder, "Status", "VendorStatus") + // 取消三方运单 + } + } + return tao_vegetable.CallBackResultInfo(err) } From a55ac57af4f93627168eaa2df65984e660556561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 18:09:39 +0800 Subject: [PATCH 6/8] 1 --- business/jxstore/cms/sync_store_sku.go | 1 - business/partner/purchase/tao_vegetable/store_sku2.go | 2 -- 2 files changed, 3 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index b045953d2..e821bf171 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -771,7 +771,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag _, err := updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) if err != nil { globals.SugarLogger.Debugf("20.sth wrong on updateStoreSku: %v", err) - //return nil, 0, err } } return nil, len(successList), err diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index e31e2ffcb..e5afeedf8 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -209,8 +209,6 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { failedList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true) - globals.SugarLogger.Debugf("CreateStoreSkus=====err := %v", err) - globals.SugarLogger.Debugf("CreateStoreSkus=====err := %v", failedList) return failedList, err } From ec7db3f16f1b36188d6d8a1d3afefb99fca6e2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 18:19:51 +0800 Subject: [PATCH 7/8] 1 --- .../partner/purchase/tao_vegetable/store_sku2.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index e5afeedf8..dda042838 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -244,8 +244,9 @@ func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync OuCode: utils.String2Pointer(vendorStoreID), SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), SkuName: utils.String2Pointer(v.SkuName), - MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.UnitPrice) / float64(100))), - SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.UnitPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice + MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100))), + SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice + SuggestedPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)), MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code } @@ -293,7 +294,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku SkuCode: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), SkuName: utils.String2Pointer(storeSku.SkuName), StorageType: utils.Int64ToPointer(tao_vegetable.CreateSkuStorageType), - SuggestedPrice: utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.UnitPrice) / utils.Int64ToFloat64(100))), + SuggestedPrice: utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100))), Weight: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)), ShelfLife: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), NetContent: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)), @@ -307,7 +308,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku //DeliveryUnit: utils.String2Pointer(storeSku.Unit), DeliveryUnit: utils.String2Pointer("份"), DeliverySpec: utils.String2Pointer(utils.Int2Str(model.YES)), - MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.UnitPrice) / float64(100))), + MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.VendorPrice) / float64(100))), Storage: utils.String2Pointer(tao_vegetable.CreateStorage), PickFloatRate: utils.String2Pointer(utils.Int2Str(model.NO)), // ? 0 ForbidReceiveDays: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // ? 7 @@ -320,8 +321,8 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku PurchaseUnit: utils.String2Pointer("份"), // ? 同上 LabelStyleType: utils.String2Pointer(tao_vegetable.CreateLabelStyleType), // 库存单位 ItemTypeNew: utils.Int64ToPointer(tao_vegetable.CreateItemTypeNewVegetable), - SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.UnitPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice - Period: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // 优先使用period 靠后shelf_life + SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.VendorPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice + Period: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // 优先使用period 靠后shelf_life FragileFlag: utils.Int64ToPointer(model.YES), DeliveryStorage: utils.String2Pointer(tao_vegetable.CreateItemDeliveryStorage), TemporaryFlag: utils.Int64ToPointer(model.NO), From 0f329f8dedd76f86f60429aded0eb5accf78b209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 18:52:36 +0800 Subject: [PATCH 8/8] 1 --- .../purchase/tao_vegetable/store_sku2.go | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index dda042838..0ccdc2c85 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -240,13 +240,14 @@ func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0) totalCount := len(storeSkuList) for index, v := range storeSkuList { + price := utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100))) updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{ OuCode: utils.String2Pointer(vendorStoreID), SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), SkuName: utils.String2Pointer(v.SkuName), - MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100))), - SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice - SuggestedPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice + MemberPrice: price, + SkuPrice: price, // 优先使用skuPrice 靠后SalePrice + SuggestedPrice: price, // 优先使用skuPrice 靠后SalePrice CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)), MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code } @@ -284,6 +285,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku vendorSkuIdMap := make(map[string]string, 0) for index, storeSku := range storeSkuList { + price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100))) sku := domain585.AlibabaWdkSkuAddSkuDo{ Barcodes: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), BrandName: utils.String2Pointer(tao_vegetable.CreateSkuBrandName), @@ -294,7 +296,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku SkuCode: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), SkuName: utils.String2Pointer(storeSku.SkuName), StorageType: utils.Int64ToPointer(tao_vegetable.CreateSkuStorageType), - SuggestedPrice: utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100))), + SuggestedPrice: price, Weight: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)), ShelfLife: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), NetContent: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)), @@ -308,7 +310,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku //DeliveryUnit: utils.String2Pointer(storeSku.Unit), DeliveryUnit: utils.String2Pointer("份"), DeliverySpec: utils.String2Pointer(utils.Int2Str(model.YES)), - MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.VendorPrice) / float64(100))), + MemberPrice: price, Storage: utils.String2Pointer(tao_vegetable.CreateStorage), PickFloatRate: utils.String2Pointer(utils.Int2Str(model.NO)), // ? 0 ForbidReceiveDays: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // ? 7 @@ -321,8 +323,8 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku PurchaseUnit: utils.String2Pointer("份"), // ? 同上 LabelStyleType: utils.String2Pointer(tao_vegetable.CreateLabelStyleType), // 库存单位 ItemTypeNew: utils.Int64ToPointer(tao_vegetable.CreateItemTypeNewVegetable), - SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.VendorPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice - Period: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // 优先使用period 靠后shelf_life + SkuPrice: price, // 优先使用skuPrice 靠后SalePrice + Period: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // 优先使用period 靠后shelf_life FragileFlag: utils.Int64ToPointer(model.YES), DeliveryStorage: utils.String2Pointer(tao_vegetable.CreateItemDeliveryStorage), TemporaryFlag: utils.Int64ToPointer(model.NO), @@ -330,6 +332,10 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku MerchantCatCode: utils.String2Pointer(storeSku.VendorCatID), // 优先使用 靠后 category_code } sku.SkuPicUrls = uploadImg(api, []string{storeSku.ImgOrigin, storeSku.Img, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5, storeSku.DescImg}) + if sku.SkuPicUrls == nil { + continue + } + if storeSku.MinOrderCount <= model.YES { sku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位 } else { @@ -523,12 +529,14 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0) api := getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID) for index, v := range storeSkuList { + price := utils.String2Pointer(fmt.Sprintf("%.2f", float64(v.VendorPrice)/float64(100))) updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{ OuCode: utils.String2Pointer(vendorStoreID), SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), - SkuPrice: utils.String2Pointer(fmt.Sprintf("%.2f", (float64(1000)/float64(v.SpecQuality))*(float64(v.JxUnitPrice)/float64(100)))), + SkuPrice: price, CleanSkuMemberPrice: utils.Int64ToPointer(model.YES), - SuggestedPrice: utils.String2Pointer(fmt.Sprintf("%.2f", (float64(1000)/float64(v.SpecQuality))*(float64(v.JxUnitPrice)/float64(100)))), + SuggestedPrice: price, + MemberPrice: price, } updateSkuList = append(updateSkuList, updateSku)