修改小程序支付
This commit is contained in:
@@ -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) {
|
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()
|
db := dao.GetDB()
|
||||||
c.setAfsOrderID(db, orderStatus)
|
c.setAfsOrderID(db, orderStatus)
|
||||||
if afsOrder.AfsOrderID == "" {
|
if afsOrder.AfsOrderID == "" {
|
||||||
@@ -71,9 +69,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db)
|
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 || (isDuplicated && orderStatus.VendorID != model.VendorIDJX) {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
dao.Commit(db, txDB)
|
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)
|
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 err != nil {
|
||||||
if !dao.IsNoRowsError(err) {
|
if !dao.IsNoRowsError(err) {
|
||||||
return err
|
return err
|
||||||
@@ -103,7 +96,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode
|
|||||||
if afsOrder.RefundType == model.AfsTypeFullRefund {
|
if afsOrder.RefundType == model.AfsTypeFullRefund {
|
||||||
isAdjust = true
|
isAdjust = true
|
||||||
}
|
}
|
||||||
globals.SugarLogger.Debugf("=afsOrder==========2 :=%v", utils.Format4Output(afsOrder, false))
|
|
||||||
if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil {
|
if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil {
|
||||||
return err
|
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
|
deductionsByPm := afsOrder.PmSubsidyMoney + afsOrder.AfsFreightMoney + afsOrder.BoxMoney + afsOrder.TongchengFreightMoney
|
||||||
afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm - afsOrder.PmRefundMoney
|
afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm - afsOrder.PmRefundMoney
|
||||||
// order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算
|
// order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算
|
||||||
globals.SugarLogger.Debugf("=====SaveAfsOrder===== := %s", utils.Format4Output(afsOrder, false))
|
|
||||||
if err = dao.CreateEntity(db, afsOrder); err != nil {
|
if err = dao.CreateEntity(db, afsOrder); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
storeDetail, err := partner.CurOrderManager.LoadStoreDetail(afsOrder.StoreID, afsOrder.VendorID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package phpjx
|
package phpjx
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||||
@@ -58,10 +59,12 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) {
|
|||||||
VendorAppealType: afsOrder.VendorAppealType,
|
VendorAppealType: afsOrder.VendorAppealType,
|
||||||
AppealType: int8(utils.Str2Int64WithDefault(afsOrder.VendorAppealType, 0)),
|
AppealType: int8(utils.Str2Int64WithDefault(afsOrder.VendorAppealType, 0)),
|
||||||
Flag: model.OrderFlagMaskTempJX,
|
Flag: model.OrderFlagMaskTempJX,
|
||||||
RefundType: model.AfsTypeFullRefund,
|
|
||||||
}
|
}
|
||||||
outAfsOrder.Status = int(utils.Str2Int64WithDefault(afsOrder.VendorStatus, 0))
|
outAfsOrder.Status = int(utils.Str2Int64WithDefault(afsOrder.VendorStatus, 0))
|
||||||
|
|
||||||
|
skuNumber := 0 // 申请退款商品种类个数
|
||||||
|
skuCount := 0 // 申请商品退款总条数
|
||||||
|
refundMoney := 0
|
||||||
for _, x := range afsOrder.Skus {
|
for _, x := range afsOrder.Skus {
|
||||||
orderSku := &model.OrderSkuFinancial{
|
orderSku := &model.OrderSkuFinancial{
|
||||||
Count: x.Count,
|
Count: x.Count,
|
||||||
@@ -73,6 +76,33 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) {
|
|||||||
orderSku.StoreSubName = utils.Int2Str(x.PromotionType)
|
orderSku.StoreSubName = utils.Int2Str(x.PromotionType)
|
||||||
}
|
}
|
||||||
outAfsOrder.Skus = append(outAfsOrder.Skus, orderSku)
|
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
|
return outAfsOrder, err
|
||||||
|
|||||||
Reference in New Issue
Block a user