diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index ceaea5b64..510c0b675 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -38,8 +38,6 @@ func (c *OrderManager) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus, isAdjust bool) (err error) { - globals.SugarLogger.Debugf("=afsOrder1========== :=%v", utils.Format4Output(afsOrder, false)) - db := dao.GetDB() c.setAfsOrderID(db, orderStatus) if afsOrder.AfsOrderID == "" { @@ -71,9 +69,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode }() isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) - globals.SugarLogger.Debugf("=isDuplicated========== :=%s", utils.Format4Output(isDuplicated, false)) - globals.SugarLogger.Debugf("=err========== :=%v", utils.Format4Output(err, false)) - globals.SugarLogger.Debugf("=orderStatus========== :=%v", utils.Format4Output(orderStatus, false)) if err != nil || (isDuplicated && orderStatus.VendorID != model.VendorIDJX) { if err == nil { dao.Commit(db, txDB) @@ -82,8 +77,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } existAfsOrder, err := c.loadAfsOrder(db, afsOrder.AfsOrderID, afsOrder.VendorID) - globals.SugarLogger.Debugf("=existAfsOrder========== :=%v", utils.Format4Output(existAfsOrder, false)) - globals.SugarLogger.Debugf("=err========== :=%v", utils.Format4Output(err, false)) if err != nil { if !dao.IsNoRowsError(err) { return err @@ -103,7 +96,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode if afsOrder.RefundType == model.AfsTypeFullRefund { isAdjust = true } - globals.SugarLogger.Debugf("=afsOrder==========2 :=%v", utils.Format4Output(afsOrder, false)) if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil { return err } @@ -154,7 +146,6 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD deductionsByPm := afsOrder.PmSubsidyMoney + afsOrder.AfsFreightMoney + afsOrder.BoxMoney + afsOrder.TongchengFreightMoney afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm - afsOrder.PmRefundMoney // order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算 - globals.SugarLogger.Debugf("=====SaveAfsOrder===== := %s", utils.Format4Output(afsOrder, false)) if err = dao.CreateEntity(db, afsOrder); err != nil { return err } diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index bcc619432..5559583d1 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -280,7 +280,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s } } - if approveType != partner.AfsApproveTypeRefused { + if approveType != partner.AfsApproveTypeRefused && err == nil { storeDetail, err := partner.CurOrderManager.LoadStoreDetail(afsOrder.StoreID, afsOrder.VendorID) if err != nil { return err diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 3d6daf521..a8bdd3e42 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -1,6 +1,7 @@ package phpjx import ( + "git.rosy.net.cn/jx-callback/business/model/dao" "time" "git.rosy.net.cn/baseapi/platformapi/jdapi" @@ -58,10 +59,12 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { VendorAppealType: afsOrder.VendorAppealType, AppealType: int8(utils.Str2Int64WithDefault(afsOrder.VendorAppealType, 0)), Flag: model.OrderFlagMaskTempJX, - RefundType: model.AfsTypeFullRefund, } outAfsOrder.Status = int(utils.Str2Int64WithDefault(afsOrder.VendorStatus, 0)) + skuNumber := 0 // 申请退款商品种类个数 + skuCount := 0 // 申请商品退款总条数 + refundMoney := 0 for _, x := range afsOrder.Skus { orderSku := &model.OrderSkuFinancial{ Count: x.Count, @@ -73,6 +76,33 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { orderSku.StoreSubName = utils.Int2Str(x.PromotionType) } outAfsOrder.Skus = append(outAfsOrder.Skus, orderSku) + skuCount += orderSku.Count + skuNumber++ + refundMoney += x.Count * int(x.SalePrice) + } + + // 获取订单商品列表 + skuList, err := dao.GetSimpleOrderSkus(dao.GetDB(), afsOrder.VendorOrderID, nil) + if err != nil { + return nil, err + } + orderSkuNumber := 0 + orderSkuCount := 0 + for _, v := range skuList { + orderSkuNumber++ + orderSkuCount += v.Count + } + if skuNumber == orderSkuNumber && skuCount == orderSkuCount { + // 全额退款,退还支付款项(商品+运费) + order, err := dao.GetSimpleOrder(dao.GetDB(), afsOrder.VendorOrderID) + if err != nil { + return nil, err + } + outAfsOrder.RefundType = model.AfsTypeFullRefund + outAfsOrder.SkuUserMoney = order.ActualPayPrice + } else { // 部分退款,只退还商品部分 + outAfsOrder.RefundType = model.AfsTypePartRefund + outAfsOrder.SkuUserMoney = int64(refundMoney) } } return outAfsOrder, err