1
This commit is contained in:
@@ -131,12 +131,12 @@ func (p *PurchaseHandler) GetOrder4PartRefund(vendorOrderID string) (order *mode
|
||||
if err1 == nil {
|
||||
order = p.Map2Order(result1)
|
||||
if err2 == nil {
|
||||
order.Skus = p.partRefund2OrderDetailSkuList(utils.Interface2String(result2["order_id"]), result2["order_detail"])
|
||||
order.Skus = p.partRefund2OrderDetailSkuList(utils.Interface2String(result2["order_id"]), result2["reverse_order_list"])
|
||||
giftSkus, discountMoney := getZengSkus(vendorOrderID, result1)
|
||||
order.DiscountMoney = discountMoney
|
||||
order.Skus = append(order.Skus, giftSkus...)
|
||||
order.ActualPayPrice = utils.MustInterface2Int64(result2["user_fee"])
|
||||
order.TotalShopMoney = utils.MustInterface2Int64(result2["shop_fee"])
|
||||
order.ActualPayPrice = utils.MustInterface2Int64(result2["remain_user_total_amount"])
|
||||
order.TotalShopMoney = utils.MustInterface2Int64(result2["merchant_income"])
|
||||
jxutils.RefreshOrderSkuRelated(order)
|
||||
} else if err2Ext, ok := err2.(*utils.ErrorWithCode); !ok || err2Ext.IntCode() != ebaiapi.ErrOrderIsNotPartRefund {
|
||||
err = err2
|
||||
@@ -170,27 +170,31 @@ func getZengSkus(orderID string, orderMan map[string]interface{}) (skus []*model
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) partRefund2OrderDetailSkuList(orderID string, orderDetail2 interface{}) (skuList []*model.OrderSku) {
|
||||
orderDetail := orderDetail2.([]interface{})
|
||||
for _, product2 := range orderDetail {
|
||||
refundDetail := orderDetail2.([]interface{})
|
||||
refundSkuList := refundDetail[len(refundDetail)-1].(map[string]interface{})["sub_reverse_order_list"].([]interface{})
|
||||
for _, product2 := range refundSkuList {
|
||||
product := product2.(map[string]interface{})
|
||||
skuName := product["name"].(string)
|
||||
_, _, _, specUnit, _, specQuality := jxutils.SplitSkuName(skuName)
|
||||
number := int(utils.MustInterface2Int64(product["number"]))
|
||||
sku := &model.OrderSku{
|
||||
VendorOrderID: orderID,
|
||||
VendorID: model.VendorIDEBAI,
|
||||
Count: number,
|
||||
SkuID: int(utils.Str2Int64WithDefault(utils.Interface2String(product[ebaiapi.KeyCustomSkuID]), 0)),
|
||||
VendorSkuID: utils.Interface2String(product[ebaiapi.KeySkuID]),
|
||||
SkuName: skuName,
|
||||
// Weight: int(utils.Interface2Int64WithDefault(product["total_weight"], 0)) / number, // 退单这里的total_weight有BUG,这里的total_weight还是没有退单时的值
|
||||
VendorPrice: utils.MustInterface2Int64(product["product_price"]),
|
||||
if product["virtual_type"] == ebaiapi.OrderVirtualType {
|
||||
skuName := product["sku_name"].(string)
|
||||
_, _, _, specUnit, _, specQuality := jxutils.SplitSkuName(skuName)
|
||||
number := int(utils.MustInterface2Int64(product["apply_quantity"]))
|
||||
sku := &model.OrderSku{
|
||||
VendorOrderID: orderID,
|
||||
VendorID: model.VendorIDEBAI,
|
||||
Count: number,
|
||||
SkuID: int(utils.Str2Int64WithDefault(utils.Interface2String(product[ebaiapi.KeyCustomSkuID]), 0)),
|
||||
VendorSkuID: utils.Interface2String(product["platform_sku_id"]),
|
||||
SkuName: skuName,
|
||||
Weight: int(utils.Interface2Int64WithDefault(product["refund_weight"], 0)) / number, // 退单这里的total_weight有BUG,这里的total_weight还是没有退单时的值
|
||||
VendorPrice: utils.MustInterface2Int64(product["refund_user_amount"]),
|
||||
}
|
||||
//sku.SalePrice, _, sku.StoreSubName = getSkuSalePrice(product)
|
||||
sku.SalePrice = utils.Interface2Int64WithDefault(product["discount_detail"].(map[string]interface{})["total_price"], 0)
|
||||
if sku.Weight == 0 {
|
||||
sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit) // 订单信息里没有重量,只有名字里尝试找
|
||||
}
|
||||
skuList = append(skuList, sku)
|
||||
}
|
||||
sku.SalePrice, _, sku.StoreSubName = getSkuSalePrice(product)
|
||||
if sku.Weight == 0 {
|
||||
sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit) // 订单信息里没有重量,只有名字里尝试找
|
||||
}
|
||||
skuList = append(skuList, sku)
|
||||
}
|
||||
return skuList
|
||||
}
|
||||
@@ -440,7 +444,30 @@ func (p *PurchaseHandler) trySyncCancelStatus(vendorOrderID string) (err error)
|
||||
func (p *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
// todo 饿百转商家自送后,没有确认送达的概念,空操作
|
||||
if globals.EnableEbaiStoreWrite && order.WaybillVendorID > 100 {
|
||||
err = api.EbaiAPI.OrderComplete(order.VendorOrderID, userName)
|
||||
param2 := &ebaiapi.PushRiderInfo{
|
||||
DistributorId: 201,
|
||||
OrderId: order.VendorOrderID,
|
||||
State: 21,
|
||||
SelfStatus: ebaiapi.OrderDeliveryStatusSendOver,
|
||||
SelfStatusDesc: "自配送送达",
|
||||
DistributorInfoDTO: ebaiapi.DistributorInfoDTO{
|
||||
DistributorTypeId: "99999",
|
||||
DistributorName: "商家自行配送",
|
||||
},
|
||||
}
|
||||
bills, _ := dao.GetWaybills(dao.GetDB(), order.VendorOrderID, nil)
|
||||
for _, v := range bills {
|
||||
if v.Status == model.WaybillStatusDelivered || v.Status == model.WaybillStatusFailed {
|
||||
param2.Knight = ebaiapi.Knight{
|
||||
Id: utils.Str2Int64(order.VendorOrderID),
|
||||
Name: v.CourierName,
|
||||
Phone: v.CourierMobile,
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
err = api.EbaiAPI.OrderselfDeliveryStateSync2(param2)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -448,7 +475,18 @@ func (p *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName
|
||||
// 完全自送的门店表示开始配送
|
||||
func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
err = api.EbaiAPI.OrderselfDeliveryStateSync(order.VendorOrderID, userName)
|
||||
param2 := &ebaiapi.PushRiderInfo{
|
||||
DistributorId: 201,
|
||||
OrderId: order.VendorOrderID,
|
||||
State: 21,
|
||||
SelfStatus: 1,
|
||||
SelfStatusDesc: "生成自配送运单",
|
||||
DistributorInfoDTO: ebaiapi.DistributorInfoDTO{
|
||||
DistributorTypeId: "99999",
|
||||
DistributorName: "商家自行配送",
|
||||
},
|
||||
}
|
||||
err = api.EbaiAPI.OrderselfDeliveryStateSync2(param2)
|
||||
}
|
||||
if err == nil {
|
||||
// 饿百不会发送配送中,模拟发送
|
||||
@@ -460,7 +498,30 @@ func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
|
||||
// 完全自送的门店表示配送完成
|
||||
func (p *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
err = api.EbaiAPI.OrderComplete(order.VendorOrderID, userName)
|
||||
param2 := &ebaiapi.PushRiderInfo{
|
||||
DistributorId: 201,
|
||||
OrderId: order.VendorOrderID,
|
||||
State: 21,
|
||||
SelfStatus: ebaiapi.OrderDeliveryStatusSendOver,
|
||||
SelfStatusDesc: "自配送送达",
|
||||
DistributorInfoDTO: ebaiapi.DistributorInfoDTO{
|
||||
DistributorTypeId: "99999",
|
||||
DistributorName: "商家自行配送",
|
||||
},
|
||||
}
|
||||
bills, _ := dao.GetWaybills(dao.GetDB(), order.VendorOrderID, nil)
|
||||
for _, v := range bills {
|
||||
if v.Status == model.WaybillStatusDelivered || v.Status == model.WaybillStatusFailed {
|
||||
param2.Knight = ebaiapi.Knight{
|
||||
Id: utils.Str2Int64(order.VendorOrderID),
|
||||
Name: v.CourierName,
|
||||
Phone: v.CourierMobile,
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
err = api.EbaiAPI.OrderselfDeliveryStateSync2(param2)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user