修改退差价结算

This commit is contained in:
邹宗楠
2024-06-06 14:22:06 +08:00
parent f16eda4bde
commit fa2b4bb250
5 changed files with 29 additions and 41 deletions

View File

@@ -200,6 +200,9 @@ func (c *OrderManager) addAfsOrderStatus(db *dao.DaoDB, orderStatus *model.Order
if db == nil {
db = dao.GetDB()
}
if orderStatus.RefVendorOrderID == "3801105140856800486" {
globals.SugarLogger.Debugf("======orderStatus := %s", utils.Format4Output(orderStatus, false))
}
isDuplicated, err = addOrderOrWaybillStatus(orderStatus, db)
//if err == nil && !isDuplicated && (orderStatus.Status != model.OrderStatusUnknown && orderStatus.Status != model.OrderStatusMsg) {
if err == nil && (orderStatus.Status != model.OrderStatusUnknown && orderStatus.Status != model.OrderStatusMsg) {
@@ -208,6 +211,9 @@ func (c *OrderManager) addAfsOrderStatus(db *dao.DaoDB, orderStatus *model.Order
VendorID: orderStatus.VendorID,
}
if err = db.Db.ReadForUpdate(order, "AfsOrderID", "VendorID"); err == nil {
if orderStatus.RefVendorOrderID == "3801105140856800486" {
globals.SugarLogger.Debugf("======order := %s", utils.Format4Output(order, false))
}
if orderStatus.Status > model.OrderStatusUnknown { // todo 要求status不能回绕
order.VendorStatus = orderStatus.VendorStatus
order.Status = orderStatus.Status
@@ -230,9 +236,15 @@ func (c *OrderManager) addAfsOrderStatus(db *dao.DaoDB, orderStatus *model.Order
updateFields = append(updateFields, "AfsFinishedAt")
if handler := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID); handler != nil {
if orderAfsInfo, err := handler.GetOrderAfsInfo(nil, order.VendorOrderID, order.AfsOrderID); err == nil && orderAfsInfo.AfsTotalShopMoney != 0 {
if orderStatus.RefVendorOrderID == "3801105140856800486" {
globals.SugarLogger.Debugf("======orderAfsInfo := %s", utils.Format4Output(orderAfsInfo, false))
}
order.AfsTotalShopMoney = orderAfsInfo.AfsTotalShopMoney
updateFields = append(updateFields, "AfsTotalShopMoney")
if orderStatus.RefVendorOrderID == "3801105140856800486" {
globals.SugarLogger.Debugf("======order2 := %s", utils.Format4Output(order, false))
}
}
updateFields = append(updateFields, "AfsTotalShopMoney")
}
}

View File

@@ -3,7 +3,6 @@ package mtwm
import (
"errors"
"fmt"
"github.com/astaxie/beego/server/web"
"math"
"net/url"
"regexp"
@@ -356,9 +355,6 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
if err == nil {
utils.CallFuncAsync(func() {
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
if order.VendorOrderID == "2301091492659134406" && web.BConfig.RunMode == "jxgy" {
globals.SugarLogger.Debugf("============orderMap %s", utils.Format4Output(orderMap, false))
}
c.OnOrderDetail(orderMap, partner.CreatedPeration)
} else {
c.OnOrderDetail(orderMap, partner.UpdatedPeration)

View File

@@ -46,10 +46,10 @@ func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool {
// refundData := msg.Data.(*mtwmapi.CallbackRefundInfo)
orderID := utils.Str2Int64(GetOrderIDFromMsg(msg))
order, _ := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(orderID), model.VendorIDMTWM)
if orderID == 3801105140856800486 {
return true
}
if order != nil {
//status, err := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), order.VendorStoreID).OrderViewStatus(orderID)
//if err == nil {
//return utils.Int2Str(status) == mtwmapi.OrderStatusFinished
return true //TODO 有的美团订单售前退款,也当做售后处理试试
//}
}
@@ -70,7 +70,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
orderStatus := c.callbackAfsMsg2Status(msg)
needCallNew := orderStatus.Status == model.AfsOrderStatusWait4Approve || orderStatus.Status == model.AfsOrderStatusNew
if !needCallNew {
_, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID)
_, err = partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID)
if err != nil {
if dao.IsNoRowsError(err) {
needCallNew = true
@@ -98,8 +98,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
ReasonDesc: utils.LimitUTF8StringLen(refundData.Reason, 1024),
ReasonImgList: utils.LimitUTF8StringLen(strings.Join(refundData.PictureList, ","), 1024),
RefundType: model.AfsTypePartRefund,
VendorOrgCode: msg.AppID,
VendorOrgCode: msg.AppID,
// FreightUserMoney: afsInfo.OrderFreightMoney,
// AfsFreightMoney: afsInfo.AfsFreight,
// BoxMoney: afsInfo.PackagingMoney,
@@ -181,6 +180,16 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
order.Status = model.OrderStatusCanceled
dao.UpdateEntity(dao.GetDB(), order, "Status")
}
//// 可能存在退差价的情况
//if strings.Contains(orderStatus.Remark, "退差价") {
// afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID)
// afsOrder.AfsTotalShopMoney = utils.Float64TwoInt64(utils.Str2Float64(msg.FormData.Get("key")) * 100)
// dao.UpdateEntity(dao.GetDB(), afsOrder, "AfsTotalShopMoney")
//
// ??
// order.TotalShopMoney = order.TotalShopMoney - afsOrder.AfsTotalShopMoney
//}
}
// 新订单平台自动同意退单,某一些情况下产生的运单没退!这个处理一下!

View File

@@ -265,7 +265,7 @@ func GetCategoryAttrValueList(appOrgCode, keyword string, attrID int) (categoryA
// GetRetailRecommendTag 根据商品UPC或名称或类目ID查询平台推荐类目及类目属性信息
func GetRetailRecommendTag(appOrgCode, appPoiCode, name string, tagID, tagType int) (*mtwmapi.RetailRecommendTagResp, error) {
if resp, err := getAPI(appOrgCode, 0, "").RetailRecommendTag(name, appPoiCode, tagID, tagType); err == nil {
if resp, err := getAPI(appOrgCode, 0, appPoiCode).RetailRecommendTag(name, appPoiCode, tagID, tagType); err == nil {
return resp, nil
} else {
return nil, err

View File

@@ -18,35 +18,6 @@ func (c *MtwmController) onCallbackMsg(msgType string) {
c.Data["json"] = mtwmapi.Err2CallbackResponse(nil, "")
msg, callbackResponse := api.MtwmAPI.GetCallbackMsg(c.Ctx.Request)
if callbackResponse == nil {
// 定时任务在拉去,暂时不推送了
//if web.BConfig.RunMode != "jxgy" { // 订单查询不到所属门店默认为果园订单
// vendorStoreId := msg.FormData.Get("app_poi_code")
// if vendorStoreId == "" {
// vendorStoreId = msg.FormData.Get("wm_poi_id")
// }
// if msgType == mtwmapi.MsgTypeOrderFinishedPickup {
// finishedPickup := FinishedPickup{}
// json.Unmarshal([]byte(msg.FormData.Get("pick_up_data")), &finishedPickup)
// vendorStoreId = finishedPickup.AppPoiCode
// }
// if vendorStoreId != "" {
// storeDetail, err2 := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreId, model.VendorIDMTWM, "")
//
// if storeDetail == nil {
// // 推送到果园
// if vendorStoreId == "9472886" {
// globals.SugarLogger.Debugf("=====store:%s", utils.Format4Output(storeDetail, false))
// globals.SugarLogger.Debugf("=====storeerr2:%s", utils.Format4Output(err2, false))
// globals.SugarLogger.Debugf("=====msg.FormData:%s", utils.Format4Output(msg.FormData, false))
// globals.SugarLogger.Debugf("=====msgType:%s", utils.Format4Output(msgType, false))
// }
// pushMTWMOrder2GY(msg.FormData, msgType)
// c.Data["json"] = mtwmapi.Err2CallbackResponse(nil, "")
// c.ServeJSON()
// return
// }
// }
//}
callbackResponse = mtwm.OnCallbackMsg(msg, msgType)
if callbackResponse == nil {
callbackResponse = mtwmapi.Err2CallbackResponse(nil, "")