结账信息收到重复订单推送处理
This commit is contained in:
@@ -51,8 +51,11 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera
|
|||||||
}
|
}
|
||||||
for _, activity := range order.Discounts {
|
for _, activity := range order.Discounts {
|
||||||
if err = dao.CreateEntity(db, activity); err != nil {
|
if err = dao.CreateEntity(db, activity); err != nil {
|
||||||
|
if !dao.IsDuplicateError(err) {
|
||||||
return err
|
globals.SugarLogger.Warnf("On SaveOrderDiscountFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
order.ShopMoneyByCal = order.SalePriceMoney - order.TotalDiscountMoney - order.PointsDeductionMoney + order.PmFreightDiscountMoney - order.DistanceFreightMoney - order.FreightTipsMoney - order.DonationMoney + order.SelfDeliveryDiscountMoney + order.PmSubsidyMoney + order.SkuBoxMoney + order.BoxMoney - order.PmMoney
|
order.ShopMoneyByCal = order.SalePriceMoney - order.TotalDiscountMoney - order.PointsDeductionMoney + order.PmFreightDiscountMoney - order.DistanceFreightMoney - order.FreightTipsMoney - order.DonationMoney + order.SelfDeliveryDiscountMoney + order.PmSubsidyMoney + order.SkuBoxMoney + order.BoxMoney - order.PmMoney
|
||||||
@@ -92,8 +95,11 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera
|
|||||||
sku.JxShopMoney = sku.ShopMoneyByCal + sku.JxSubsidyMoney - sku.JxDeductionsMoney
|
sku.JxShopMoney = sku.ShopMoneyByCal + sku.JxSubsidyMoney - sku.JxDeductionsMoney
|
||||||
order.Skus[0].JxShopMoney += sku.JxShopMoney
|
order.Skus[0].JxShopMoney += sku.JxShopMoney
|
||||||
if err = dao.CreateEntity(db, sku); err != nil {
|
if err = dao.CreateEntity(db, sku); err != nil {
|
||||||
globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID)
|
if !dao.IsDuplicateError(err) {
|
||||||
return err
|
globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(order.Skus) > 0 {
|
if len(order.Skus) > 0 {
|
||||||
@@ -106,8 +112,11 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera
|
|||||||
sku.JxDeductionsMoney = deductionsByJx - sku.JxDeductionsMoney
|
sku.JxDeductionsMoney = deductionsByJx - sku.JxDeductionsMoney
|
||||||
sku.JxShopMoney = order.JxShopMoney - sku.JxShopMoney
|
sku.JxShopMoney = order.JxShopMoney - sku.JxShopMoney
|
||||||
if err = dao.CreateEntity(db, sku); err != nil {
|
if err = dao.CreateEntity(db, sku); err != nil {
|
||||||
globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID)
|
if !dao.IsDuplicateError(err) {
|
||||||
return err
|
globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err: order have no sku", order.VendorOrderID)
|
globals.SugarLogger.Warnf("On SaveOrderSkuFinancialInfo order.VendorOrderID:%s err: order have no sku", order.VendorOrderID)
|
||||||
@@ -115,8 +124,11 @@ func (c *OrderManager) SaveOrderFinancialInfo(order *model.OrderFinancial, opera
|
|||||||
// 加上京西对单条sku的补贴,再存数据库
|
// 加上京西对单条sku的补贴,再存数据库
|
||||||
order.JxSubsidyMoney += order.JxSkuSubsidyMoney
|
order.JxSubsidyMoney += order.JxSkuSubsidyMoney
|
||||||
if err = dao.CreateEntity(db, order); err != nil {
|
if err = dao.CreateEntity(db, order); err != nil {
|
||||||
globals.SugarLogger.Warnf("On SaveOrderFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID)
|
if !dao.IsDuplicateError(err) {
|
||||||
return err
|
globals.SugarLogger.Warnf("On SaveOrderFinancialInfo order.VendorOrderID:%s err: order is err", order.VendorOrderID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
return err
|
return err
|
||||||
@@ -140,8 +152,11 @@ func (c *OrderManager) SaveAfsOrderFinancialInfo(afsOrder *model.AfsOrder) (err
|
|||||||
afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm
|
afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm
|
||||||
// order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算
|
// order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算
|
||||||
if err = dao.CreateEntity(db, afsOrder); err != nil {
|
if err = dao.CreateEntity(db, afsOrder); err != nil {
|
||||||
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrder is err", afsOrder.AfsOrderID)
|
if !dao.IsDuplicateError(err) {
|
||||||
return err
|
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrder is err", afsOrder.AfsOrderID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 京西结算扣除汇总,先不作计算,计算单条sku最终扣款金额(+该条sku承担的平台结算扣除金额)
|
// 京西结算扣除汇总,先不作计算,计算单条sku最终扣款金额(+该条sku承担的平台结算扣除金额)
|
||||||
@@ -150,16 +165,22 @@ func (c *OrderManager) SaveAfsOrderFinancialInfo(afsOrder *model.AfsOrder) (err
|
|||||||
utils.Float64TwoInt64(float64(afsOrder.RefundMoneyByCal-afsOrder.PmSkuSubsidyMoney)*float64(orderSku.UserMoney+orderSku.PmSubsidyMoney-orderSku.PmSkuSubsidyMoney)/float64(afsOrder.SkuUserMoney+afsOrder.PmSubsidyMoney-afsOrder.PmSkuSubsidyMoney))
|
utils.Float64TwoInt64(float64(afsOrder.RefundMoneyByCal-afsOrder.PmSkuSubsidyMoney)*float64(orderSku.UserMoney+orderSku.PmSubsidyMoney-orderSku.PmSkuSubsidyMoney)/float64(afsOrder.SkuUserMoney+afsOrder.PmSubsidyMoney-afsOrder.PmSkuSubsidyMoney))
|
||||||
afsOrder.Skus[0].RefundMoneyByCal += orderSku.RefundMoneyByCal
|
afsOrder.Skus[0].RefundMoneyByCal += orderSku.RefundMoneyByCal
|
||||||
if err = dao.CreateEntity(db, orderSku); err != nil {
|
if err = dao.CreateEntity(db, orderSku); err != nil {
|
||||||
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrderSku is err", afsOrder.AfsOrderID)
|
if !dao.IsDuplicateError(err) {
|
||||||
return err
|
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrderSku is err", afsOrder.AfsOrderID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(afsOrder.Skus) > 0 {
|
if len(afsOrder.Skus) > 0 {
|
||||||
orderSku := afsOrder.Skus[0]
|
orderSku := afsOrder.Skus[0]
|
||||||
orderSku.RefundMoneyByCal = afsOrder.RefundMoneyByCal - orderSku.RefundMoneyByCal
|
orderSku.RefundMoneyByCal = afsOrder.RefundMoneyByCal - orderSku.RefundMoneyByCal
|
||||||
if err = dao.CreateEntity(db, orderSku); err != nil {
|
if err = dao.CreateEntity(db, orderSku); err != nil {
|
||||||
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrderSku is err", afsOrder.AfsOrderID)
|
if !dao.IsDuplicateError(err) {
|
||||||
return err
|
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: SaveAfsOrderSku is err", afsOrder.AfsOrderID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: afsOrder have no sku", afsOrder.AfsOrderID)
|
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo afsOrder.AfsOrderID:%s err: afsOrder have no sku", afsOrder.AfsOrderID)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import (
|
|||||||
// 京东正向/退款订单类型处理--存储
|
// 京东正向/退款订单类型处理--存储
|
||||||
func OnFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
func OnFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
||||||
var err error
|
var err error
|
||||||
|
// if msg.StatusID == jdapi.OrderStatusPayFinishedSettle || msg.StatusID == jdapi.OrderStatusTipChanged || msg.StatusID == jdapi.OrderStatusSwitch2SelfSettle { // 如果是正向单
|
||||||
if msg.StatusID == jdapi.OrderStatusPayFinishedSettle || msg.StatusID == jdapi.OrderStatusTipChanged || msg.StatusID == jdapi.OrderStatusAdjustSettle || msg.StatusID == jdapi.OrderStatusSwitch2SelfSettle { // 如果是正向单
|
if msg.StatusID == jdapi.OrderStatusPayFinishedSettle || msg.StatusID == jdapi.OrderStatusTipChanged || msg.StatusID == jdapi.OrderStatusAdjustSettle || msg.StatusID == jdapi.OrderStatusSwitch2SelfSettle { // 如果是正向单
|
||||||
order, err2 := partner.CurOrderManager.LoadOrder(msg.BillID, model.VendorIDJD)
|
order, err2 := partner.CurOrderManager.LoadOrder(msg.BillID, model.VendorIDJD)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
@@ -219,12 +220,12 @@ func (p *PurchaseHandler) AfsOrderDetail2Financial(orderData map[string]interfac
|
|||||||
return afsOrder
|
return afsOrder
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) OnOrderDetail(orderDetail map[string]interface{}) (err error) {
|
func (p *PurchaseHandler) OnOrderDetail(orderDetail map[string]interface{}, peration string) (err error) {
|
||||||
order, err := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(utils.MustInterface2Int64(orderDetail["orderId"])), model.VendorIDJD)
|
order, err := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(utils.MustInterface2Int64(orderDetail["orderId"])), model.VendorIDJD)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
orderFinancial, err2 := curPurchaseHandler.OrderDetail2Financial(orderDetail, true, order)
|
orderFinancial, err2 := curPurchaseHandler.OrderDetail2Financial(orderDetail, true, order)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
err = partner.CurOrderManager.SaveOrderFinancialInfo(orderFinancial, partner.CreatedPeration)
|
err = partner.CurOrderManager.SaveOrderFinancialInfo(orderFinancial, peration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ func (c *PurchaseHandler) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jda
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
if err = partner.CurOrderManager.OnOrderNew(order, msg.StatusID); err == nil {
|
if err = partner.CurOrderManager.OnOrderNew(order, msg.StatusID); err == nil {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
c.OnOrderDetail(orderMap)
|
c.OnOrderDetail(orderMap, partner.CreatedPeration)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -186,7 +186,7 @@ func (c *PurchaseHandler) onOrderAdjust(msg *jdapi.CallbackOrderMsg) *jdapi.Call
|
|||||||
err = partner.CurOrderManager.OnOrderAdjust(order, msg.StatusID)
|
err = partner.CurOrderManager.OnOrderAdjust(order, msg.StatusID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
c.OnOrderDetail(orderMap)
|
c.OnOrderDetail(orderMap, partner.UpdatedPeration)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user