修改小程序支付

This commit is contained in:
邹宗楠
2023-04-11 13:53:51 +08:00
parent c5da171206
commit 9bc1ba4cbc
3 changed files with 32 additions and 11 deletions

View File

@@ -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
}

View File

@@ -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

View File

@@ -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