This commit is contained in:
邹宗楠
2023-04-12 09:43:33 +08:00
parent 718f9b29dc
commit ff26bcdb00
3 changed files with 31 additions and 9 deletions

View File

@@ -351,7 +351,7 @@ func (c *OrderManager) updateAfsOrderOtherInfo(db *dao.DaoDB, afsOrder *model.Af
if err = c.updateAfsOrderSkuOtherInfo(db, afsOrder); err == nil {
jxutils.RefreshAfsOrderSkuRelated(afsOrder)
if afsOrder.RefundType == model.AfsTypeFullRefund && afsOrder.VendorID == model.VendorIDJX && order.DeliveryType != model.OrderDeliveryTypeSelfTake {
afsOrder.SkuUserMoney += order.ActualPayPrice
afsOrder.SkuUserMoney = order.ActualPayPrice
}
}
}

View File

@@ -1,6 +1,7 @@
package phpjx
import (
"errors"
"fmt"
"git.rosy.net.cn/jx-callback/business/model/dao"
"strings"
@@ -8,7 +9,6 @@ import (
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
)
@@ -36,9 +36,9 @@ type Data4AfsOrder struct {
}
func OnAfsOrderMsg(msg *CallbackMsg) (err error) {
jxutils.CallMsgHandlerAsync(func() {
err = onAfsOrderMsg(msg)
}, jxutils.ComposeUniversalOrderID(msg.ThingID, model.VendorIDJX))
//jxutils.CallMsgHandlerAsync(func() {
err = onAfsOrderMsg(msg)
//}, jxutils.ComposeUniversalOrderID(msg.ThingID, model.VendorIDJX))
return err
}
@@ -61,6 +61,22 @@ func CheckOrderSkuCanRefund(db *dao.DaoDB, afsOrder *Data4AfsOrder) error {
}
}
// 获取用户下单商品列表
skuList, err := dao.GetSimpleOrderSkus(dao.GetDB(), afsOrder.VendorOrderID, nil)
if err != nil {
return err
}
var really = make(map[int]bool, 0)
for _, s := range skuList {
really[s.SkuID] = true
}
for _, v := range afsOrder.Skus {
if _, ok := really[utils.Str2Int(v.VendorSkuID)]; !ok {
return fmt.Errorf("商品:[%s],不是购买商品", v.Name)
}
}
return nil
}
@@ -127,6 +143,12 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) {
if err != nil {
return nil, err
}
// 最后一个商品
if len(skuList) == len(refundFinancial)+len(afsOrder.Skus) {
return nil, errors.New("如需整单退款,请使用整单退,无法分批次整单退款")
}
orderSkuNumber := 0
orderSkuCount := 0
for _, v := range skuList {

View File

@@ -186,20 +186,20 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
RefVendorOrderID: utils.Int64ToStr(refundOrder.PId),
RefVendorID: model.VendorIDDD,
VendorStatus: fmt.Sprintf("%s:%s", "order", "refund_success"),
Status: c.GetAfsStatusFromVendorStatus(refundOrder.AftersaleType, tiktokShop.CallbackUpdateRefundOrderMsgTagId),
Status: c.GetAfsStatusFromVendorStatus(int(refundOrder.AftersaleType), tiktokShop.CallbackUpdateRefundOrderMsgTagId),
StatusTime: utils.Timestamp2Time(int64(refundOrder.SuccessTime)),
}
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
if k, ok := ReasonCodeMap[int(refundOrder.ReasonCode)]; ok {
orderMsg.Remark = k
} else {
orderMsg.Remark = "退款成功回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
orderMsg.Remark = "退款成功回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int64ToStr(refundOrder.ReasonCode)
}
if refundOrder.AftersaleId > 0 {
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
} else {
orderMsg.VendorOrderID = orderMsg.RefVendorOrderID
}
vendorOrgCode = refundOrder.ShopId
vendorOrgCode = int(refundOrder.ShopId)
orderStatus = orderMsg
case tiktokShop.CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息
refundOrder := msg.(tiktokShop.BusinessNotRefundRefusedData)