修改售后
This commit is contained in:
@@ -330,8 +330,9 @@ func (c *OrderManager) updateAfsOrderOtherInfo(db *dao.DaoDB, afsOrder *model.Af
|
||||
afsOrder.JxStoreID = storeDetail.Store.ID
|
||||
}
|
||||
}
|
||||
order, err2 := c.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID)
|
||||
if afsOrder.StoreID == 0 && afsOrder.JxStoreID == 0 {
|
||||
if order, err2 := c.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID); err2 == nil {
|
||||
if err2 == nil {
|
||||
afsOrder.JxStoreID = order.JxStoreID
|
||||
if afsOrder.StoreID == 0 {
|
||||
afsOrder.StoreID = order.StoreID
|
||||
@@ -349,6 +350,9 @@ 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
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
@@ -371,9 +375,9 @@ func (c *OrderManager) setAfsOrderID(db *dao.DaoDB, orderStatus *model.OrderStat
|
||||
list := strings.Split(afsOrderList[0].AfsOrderID, "-")
|
||||
if len(list) > 1 {
|
||||
index = int(utils.Str2Int64WithDefault(list[1], 0))
|
||||
if afsOrderList[0].Status >= model.AfsOrderStatusFinished {
|
||||
index++
|
||||
}
|
||||
//if afsOrderList[0].Status >= model.AfsOrderStatusFinished {
|
||||
index++
|
||||
//}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -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