getOrderAfsInfo 获取订单售后金额,已经修改完成订单的结算金额,可能会错

This commit is contained in:
邹宗楠
2024-06-07 10:30:15 +08:00
parent a1983813fc
commit 6669d00761
2 changed files with 28 additions and 11 deletions

View File

@@ -248,12 +248,11 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
//美团订单如果有售后的话,订单完成后才能查到售后结算
if order.VendorID == model.VendorIDMTWM {
if afsOrders, _ := dao.GetAfsOrders(db, order.VendorID, order.VendorOrderID, ""); len(afsOrders) > 0 {
for _, v := range afsOrders {
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
if orderAfsInfo, err := handler.GetOrderAfsInfo(nil, v.VendorOrderID, v.AfsOrderID); err == nil && orderAfsInfo.AfsTotalShopMoney != 0 {
v.AfsTotalShopMoney = orderAfsInfo.AfsTotalShopMoney
}
dao.UpdateEntity(db, v, "AfsTotalShopMoney")
if handler := partner.GetPurchaseOrderHandlerFromVendorID(afsOrders[0].VendorID); handler != nil {
if orderAfsInfo, err := handler.GetOrderAfsInfo(nil, afsOrders[0].VendorOrderID, afsOrders[0].AfsOrderID); err == nil && orderAfsInfo.AfsTotalShopMoney != 0 && orderAfsInfo.AfsTotalShopMoney != orderAfsInfo.AfsTotalShopMoney {
afsOrders[0].AfsTotalShopMoney = orderAfsInfo.AfsTotalShopMoney
dao.UpdateEntity(db, afsOrders[0], "AfsTotalShopMoney")
order.TotalShopMoney = order.TotalShopMoney + orderAfsInfo.AfsTotalShopMoney
}
}
}
@@ -261,7 +260,7 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
}
// 刷新订单结束时间
order.OrderFinishedAt = time.Now()
dao.UpdateEntity(db, order, "OrderFinishedAt")
dao.UpdateEntity(db, order, "OrderFinishedAt", "TotalShopMoney")
} else if orderStatus.Status == model.OrderStatusCanceled {
order2, _ := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID) // 订单被取消,则取消三方运单
if orderStatus.OrderType == model.OrderTypeOrder {

View File

@@ -3,7 +3,6 @@ package mtwm
import (
"errors"
"fmt"
"git.rosy.net.cn/jx-callback/globals/api"
"net/url"
"strconv"
"strings"
@@ -306,18 +305,37 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
return c.AdjustOrder(ctx, order, refundSkuList, reason)
}
//func (c *PurchaseHandler) GetOrderAfsInfo(ctx *jxcontext.Context, vendorOrderID, afsOrderID string) (orderAfsInfo *partner.OrderAfsInfo, err error) {
// orderAfsInfo = &partner.OrderAfsInfo{}
// var afsTotalShopMoney int64
// if list, err := api.MtwmAPI.GetOrderRefundDetail(utils.Str2Int64(vendorOrderID), 0); err == nil {
// for _, v := range list {
// if v.RefundPartialEstimateCharge.SettleAmount != "" {
// afsTotalShopMoney += jxutils.StandardPrice2Int(utils.Str2Float64(v.RefundPartialEstimateCharge.SettleAmount))
// }
// }
// }
// if order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDMTWM); err == nil {
// orderAfsInfo.AfsTotalShopMoney = order.TotalShopMoney + afsTotalShopMoney
// }
// return orderAfsInfo, err
//}
func (c *PurchaseHandler) GetOrderAfsInfo(ctx *jxcontext.Context, vendorOrderID, afsOrderID string) (orderAfsInfo *partner.OrderAfsInfo, err error) {
orderAfsInfo = &partner.OrderAfsInfo{}
var afsTotalShopMoney int64
if list, err := api.MtwmAPI.GetOrderRefundDetail(utils.Str2Int64(vendorOrderID), 0); err == nil {
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDMTWM)
if list, err := getAPI(order.VendorOrgCode, jxutils.GetShowStoreIDFromOrder(order), order.VendorStoreID).GetOrderRefundDetail(utils.Str2Int64(vendorOrderID), 0); err == nil {
for _, v := range list {
if v.RefundPartialEstimateCharge.SettleAmount != "" {
afsTotalShopMoney += jxutils.StandardPrice2Int(utils.Str2Float64(v.RefundPartialEstimateCharge.SettleAmount))
}
}
}
if order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDMTWM); err == nil {
orderAfsInfo.AfsTotalShopMoney = order.TotalShopMoney + afsTotalShopMoney
if err == nil {
//orderAfsInfo.AfsTotalShopMoney = order.TotalShopMoney + afsTotalShopMoney
orderAfsInfo.AfsTotalShopMoney = afsTotalShopMoney
}
return orderAfsInfo, err
}