修改售后

This commit is contained in:
邹宗楠
2023-04-11 17:16:12 +08:00
parent d39d080882
commit daea96600a
2 changed files with 49 additions and 5 deletions

View File

@@ -1,7 +1,9 @@
package phpjx
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/model/dao"
"strings"
"time"
"git.rosy.net.cn/baseapi/platformapi/jdapi"
@@ -40,9 +42,36 @@ func OnAfsOrderMsg(msg *CallbackMsg) (err error) {
return err
}
func CheckOrderSkuCanRefund(db *dao.DaoDB, afsOrder *Data4AfsOrder) error {
// 获取此订单商品吃否存在售后单
refundFinancial, err := dao.GetStoreAfsOrderSkuList2(db, []string{afsOrder.VendorOrderID})
if err != nil && !strings.Contains(err.Error(), "no row found") {
return err
}
if len(refundFinancial) == model.NO {
return nil
}
for _, r := range refundFinancial {
for _, s := range afsOrder.Skus {
if r.SkuID == utils.Str2Int(s.VendorSkuID) {
return fmt.Errorf("商品:[%s],已经存在售后单无法重复申请", s.Name)
}
}
}
return nil
}
func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) {
var afsOrder *Data4AfsOrder
var db = dao.GetDB()
if err = utils.UnmarshalUseNumber([]byte(msg.Data), &afsOrder); err == nil {
if err := CheckOrderSkuCanRefund(db, afsOrder); err != nil {
return nil, err
}
outAfsOrder = &model.AfsOrder{
VendorID: model.VendorIDJX,
AfsOrderID: afsOrder.AfsOrderID,
@@ -65,6 +94,7 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) {
skuNumber := 0 // 申请退款商品种类个数
skuCount := 0 // 申请商品退款总条数
refundMoney := 0
// 当前申请退款的商品
for _, x := range afsOrder.Skus {
orderSku := &model.OrderSkuFinancial{
Count: x.Count,
@@ -81,8 +111,18 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) {
skuNumber++
refundMoney += x.Count * int(x.SalePrice)
}
// 已经退款商品
refundFinancial, err := dao.GetStoreAfsOrderSkuList2(db, []string{afsOrder.VendorOrderID})
if err != nil && !dao.IsNoRowsError(err) {
return nil, err
}
for _, f := range refundFinancial {
skuCount += f.Count
skuNumber++
refundMoney += f.Count * int(f.SalePrice)
}
// 获取订单商品列表
// 获取订单商品列表(所有的订单商品)
skuList, err := dao.GetSimpleOrderSkus(dao.GetDB(), afsOrder.VendorOrderID, nil)
if err != nil {
return nil, err