修改售后
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user