1
This commit is contained in:
@@ -16,6 +16,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -70,21 +71,7 @@ func (c *PurchaseHandler) OnAfsOrderMsg(orderId, status string, msg interface{})
|
|||||||
func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal *tao_vegetable.CallBackResult) {
|
func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal *tao_vegetable.CallBackResult) {
|
||||||
var err error
|
var err error
|
||||||
var db = dao.GetDB()
|
var db = dao.GetDB()
|
||||||
orderStatus := c.callbackAfsMsg2Status(status, msg)
|
orderStatus, scarceGoods := 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
|
|
||||||
//}
|
|
||||||
|
|
||||||
// 用户取消售后
|
// 用户取消售后
|
||||||
switch status {
|
switch status {
|
||||||
@@ -302,6 +289,65 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
globals.SugarLogger.Debugf("==============onsaleRefund orderStatus: = %s", utils.Format4Output(orderStatus, false))
|
globals.SugarLogger.Debugf("==============onsaleRefund orderStatus: = %s", utils.Format4Output(orderStatus, false))
|
||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||||
}
|
}
|
||||||
|
case tao_vegetable.OrderStatusRefundSuccess:
|
||||||
|
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
||||||
|
if scarceGoods != nil {
|
||||||
|
var afsOrder *model.AfsOrder
|
||||||
|
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
||||||
|
var api = getAPI("", 0, refundSuccess.StoreId)
|
||||||
|
|
||||||
|
afsOrder = &model.AfsOrder{
|
||||||
|
VendorID: model.VendorIDTaoVegetable,
|
||||||
|
AfsOrderID: refundSuccess.OutMainRefundId,
|
||||||
|
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||||
|
VendorStoreID: refundSuccess.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 // 退货状态
|
||||||
|
|
||||||
|
for _, v := range *scarceGoods {
|
||||||
|
var refundFee int64 = 0
|
||||||
|
skuSt := *v.Attributes
|
||||||
|
a2 := strings.Index(skuSt, "skuName")
|
||||||
|
a3 := strings.Index(skuSt, "wdkrfqr")
|
||||||
|
skuName := skuSt[a2+12 : a3-5]
|
||||||
|
orderSku := &model.OrderSkuFinancial{
|
||||||
|
Count: utils.Float64TwoInt(utils.Str2Float64(*v.RefundQuantity)),
|
||||||
|
VendorSkuID: *v.SkuCode,
|
||||||
|
SkuID: utils.Str2Int(*v.SkuCode),
|
||||||
|
Name: skuName,
|
||||||
|
UserMoney: *v.RefundAmount,
|
||||||
|
PmSkuSubsidyMoney: 0, // 平台补贴商品
|
||||||
|
VendorOrderID: orderStatus.VendorOrderID,
|
||||||
|
VendorSubOrderID: *v.OutOrderId,
|
||||||
|
}
|
||||||
|
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||||
|
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||||
|
refundFee += *v.RefundAmount
|
||||||
|
|
||||||
|
afsOrder.SkuUserMoney += refundFee
|
||||||
|
afsOrder.RefundType = model.AfsTypePartRefund
|
||||||
|
|
||||||
|
if afsOrder != nil {
|
||||||
|
//直接就来一个新的售后单,并且还是售后完成的
|
||||||
|
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||||
|
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
|
||||||
|
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil {
|
if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil {
|
||||||
@@ -328,7 +374,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
return tao_vegetable.CallBackResultInfo(err)
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{}) (orderStatus *model.OrderStatus) {
|
func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{}) (orderStatus *model.OrderStatus, taoRefundList *[]domain591.AlibabaWdkOrderRefundGetOrderSyncRefundDto) {
|
||||||
orderStatus = &model.OrderStatus{
|
orderStatus = &model.OrderStatus{
|
||||||
VendorID: model.VendorIDTaoVegetable,
|
VendorID: model.VendorIDTaoVegetable,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
@@ -388,13 +434,13 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{})
|
|||||||
if refundAfs.Orders == nil {
|
if refundAfs.Orders == nil {
|
||||||
globals.SugarLogger.Debugf("================售中退款成功回调查询售后单为空:")
|
globals.SugarLogger.Debugf("================售中退款成功回调查询售后单为空:")
|
||||||
} else {
|
} else {
|
||||||
orderId := *refundAfs.Orders
|
taoRefundList := *refundAfs.Orders
|
||||||
orderStatus.RefVendorOrderID = utils.Int64ToStr(*orderId[0].OriginParentId)
|
orderStatus.RefVendorOrderID = utils.Int64ToStr(*taoRefundList[0].OriginParentId)
|
||||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功")
|
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功")
|
||||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess)
|
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess)
|
||||||
orderStatus.StatusTime = time.Now()
|
orderStatus.StatusTime = time.Now()
|
||||||
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
||||||
orderStatus.VendorOrderID = utils.Int64ToStr(*orderId[0].RefundOrderId)
|
orderStatus.VendorOrderID = utils.Int64ToStr(*taoRefundList[0].RefundOrderId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,7 +449,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{})
|
|||||||
if orderStatus.VendorOrderID == "" {
|
if orderStatus.VendorOrderID == "" {
|
||||||
orderStatus.VendorOrderID = orderStatus.RefVendorOrderID
|
orderStatus.VendorOrderID = orderStatus.RefVendorOrderID
|
||||||
}
|
}
|
||||||
return orderStatus
|
return orderStatus, taoRefundList
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) GetAfsStatusFromVendorStatus(notifyType string) int {
|
func (c *PurchaseHandler) GetAfsStatusFromVendorStatus(notifyType string) int {
|
||||||
|
|||||||
Reference in New Issue
Block a user