Merge remote-tracking branch 'origin/jdshop' into jxact
This commit is contained in:
@@ -235,7 +235,7 @@ func (c *DeliveryHandler) getBillParams(db *dao.DaoDB, order *model.GoodsOrder)
|
||||
// storeTel = ",门店电话:" + storeDeatail.Tel2
|
||||
// }
|
||||
billParams.ReceiverLng, billParams.ReceiverLat, _ = jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
|
||||
billParams.Info = fmt.Sprintf("%s第%d号订单, %s", model.VendorChineseNames[order.VendorID], order.OrderSeq, utils.FilterMb4(order.BuyerComment+"取货失败或配送遇到问题请联系18048531223,禁止未配送直接完成定单!"))
|
||||
billParams.Info = fmt.Sprintf("%s第%d号订单, %s", model.VendorChineseNames[order.VendorID], order.OrderSeq, utils.FilterMb4("客户电话:"+order.ConsigneeMobile+","+order.BuyerComment+"取货失败或配送遇到问题请联系18048531223,禁止未配送直接完成定单!"))
|
||||
billParams.CargoType = dadaapi.CargoTypeFresh
|
||||
billParams.CargoWeight = float64(jxutils.IntWeight2Float(limitOrderWeight(order.Weight)))
|
||||
billParams.CargoNum = order.GoodsCount
|
||||
|
||||
@@ -244,7 +244,7 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
|
||||
// if storeDeatail.Tel2 != "" {
|
||||
// storeTel = ",门店电话:" + storeDeatail.Tel2
|
||||
// }
|
||||
billParams.Note = utils.FilterMb4(order.BuyerComment + ",取货失败或配送遇到问题请联系18048531223,禁止未配送直接完成定单!")
|
||||
billParams.Note = utils.FilterMb4("客户电话:" + order.ConsigneeMobile + "," + order.BuyerComment + ",取货失败或配送遇到问题请联系18048531223,禁止未配送直接完成定单!")
|
||||
billParams.GoodsDetail = string(utils.MustMarshal(goods))
|
||||
billParams.GoodsPickupInfo = fmt.Sprintf("%s第%d号单", model.VendorChineseNames[order.VendorID], order.OrderSeq)
|
||||
billParams.PoiSeq = fmt.Sprintf("#%d", order.OrderSeq)
|
||||
|
||||
@@ -71,6 +71,7 @@ var (
|
||||
CancelWaybillReasonStrSwitch2SelfFailed = "转自送失败"
|
||||
CancelWaybillReasonStrOrderAlreadyFinished = "订单已经结束"
|
||||
CancelWaybillReasonStrActive = "操作由人员主动发起"
|
||||
CancelWaybillReasonNotInStoreOpenTime = "不在门店的营业时间范围内"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/autonavi"
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||
@@ -218,7 +217,7 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
||||
ConsigneeName: utils.Interface2String(userMap["name"]),
|
||||
ConsigneeMobile: jxutils.FormalizeMobile(utils.Interface2String(userMap["phone"])),
|
||||
ConsigneeAddress: utils.Interface2String(userMap["address"]),
|
||||
CoordinateType: model.CoordinateTypeBaiDu,
|
||||
CoordinateType: model.CoordinateTypeMars,
|
||||
BuyerComment: utils.TrimBlankChar(utils.Interface2String(orderMap["remark"])),
|
||||
ExpectedDeliveredTime: getExpectedDeliveredTime(orderMap),
|
||||
PickDeadline: utils.DefaultTimeValue,
|
||||
@@ -269,12 +268,12 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
||||
deliveryGeo := userMap["coord_amap"].(map[string]interface{})
|
||||
originalLng := utils.Interface2Float64WithDefault(deliveryGeo["longitude"], 0.0) // 饿百的订单在过一段时间后,经纬度信息会变成字符串"**"
|
||||
originalLat := utils.Interface2Float64WithDefault(deliveryGeo["latitude"], 0.0)
|
||||
lng, lat, err2 := api.AutonaviAPI.CoordinateConvert(originalLng, originalLat, autonavi.CoordSysBaidu)
|
||||
if err2 == nil {
|
||||
originalLng = lng
|
||||
originalLat = lat
|
||||
order.CoordinateType = model.CoordinateTypeMars
|
||||
}
|
||||
// lng, lat, err2 := api.AutonaviAPI.CoordinateConvert(originalLng, originalLat, autonavi.CoordSysBaidu)
|
||||
// if err2 == nil {
|
||||
// originalLng = lng
|
||||
// originalLat = lat
|
||||
// order.CoordinateType = model.CoordinateTypeMars
|
||||
// }
|
||||
order.ConsigneeLng = jxutils.StandardCoordinate2Int(originalLng)
|
||||
order.ConsigneeLat = jxutils.StandardCoordinate2Int(originalLat)
|
||||
|
||||
|
||||
@@ -402,7 +402,7 @@ func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} {
|
||||
}
|
||||
}
|
||||
boxFee, _ := dao.GetSysConfigAsInt64(dao.GetDB(), model.ConfigSysEbaiBoxFee)
|
||||
params["package_box_price"] = boxFee
|
||||
params["package_box_price"] = jxutils.IntPrice2Standard(boxFee)
|
||||
params["service_phone"] = store.Tel1
|
||||
params["address"] = store.Address
|
||||
// todo 饿百 开店审核通过后不允许修改商户信息
|
||||
|
||||
@@ -41,6 +41,24 @@ func OnCallbackMsg(msg *jdshopapi.CallBackResult) (err error) {
|
||||
}
|
||||
}
|
||||
})
|
||||
case jcqapi.TopicOrderOut:
|
||||
utils.CallFuncAsync(func() {
|
||||
globals.SugarLogger.Debugf("jdsOrderOut", utils.Format4Output(msg, false))
|
||||
orders := getAllRealOrderID(msg.OrderID)
|
||||
if len(orders) > 0 {
|
||||
for _, order := range orders {
|
||||
if order.ActualPayPrice == 0 {
|
||||
if jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderPayment)) == 0 {
|
||||
order.ActualPayPrice = jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderTotalPrice) + utils.Str2Float64(msg.FreightPrice) - utils.Str2Float64(msg.SellerDiscount))
|
||||
} else {
|
||||
order.ActualPayPrice = jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderPayment))
|
||||
}
|
||||
order.TotalShopMoney = utils.Float64TwoInt64(float64(order.ActualPayPrice) * jdshopapi.JdsPayPercentage)
|
||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"ActualPayPrice", "TotalShopMoney"})
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
default:
|
||||
return fmt.Errorf("暂不支持的topic类型!topic: %v", msgType)
|
||||
}
|
||||
@@ -52,10 +70,11 @@ func SaveJdsOrders(msg *jdshopapi.CallBackResult) (err error) {
|
||||
if err != nil || order == nil {
|
||||
return err
|
||||
}
|
||||
order.StoreID = 102919
|
||||
order.JxStoreID = 102919
|
||||
order.StoreName = "商城模板(成都发货)"
|
||||
order.VendorStoreID = model.JdShopMainVendorStoreID
|
||||
// order.StoreID = 102919
|
||||
// order.JxStoreID = 102919
|
||||
// order.StoreName = "商城模板(成都发货)"
|
||||
// order.VendorStoreID = model.JdShopMainVendorStoreID
|
||||
// order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled
|
||||
partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
|
||||
noticeMsg := fmt.Sprintf("京东商城新订单,订单号:[%v] ,将要发到的门店id:[%v] , 门店名:[%v]", order.VendorOrderID, order.StoreID, order.StoreName)
|
||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "DDC5657B43EE11E9A9FF525400E86DC0", "京东商城来新订单了!", noticeMsg)
|
||||
@@ -87,7 +106,6 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
|
||||
ActualPayPrice: jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderPayment)),
|
||||
Status: model.OrderStatusNew,
|
||||
TotalShopMoney: utils.Float64TwoInt64(math.Round(float64(jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderPayment))) * jdshopapi.JdsPayPercentage)),
|
||||
DeliveryFlag: model.OrderDeliveryFlagMaskScheduleDisabled,
|
||||
DeliveryType: model.OrderDeliveryTypeStoreSelf,
|
||||
StatusTime: utils.Str2Time(msg.OrderStartTime),
|
||||
OrderSeq: 0,
|
||||
@@ -99,49 +117,8 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
|
||||
lng, lat, _ := api.AutonaviAPI.GetCoordinateFromAddress(order.ConsigneeAddress, "")
|
||||
order.ConsigneeLng = jxutils.StandardCoordinate2Int(lng)
|
||||
order.ConsigneeLat = jxutils.StandardCoordinate2Int(lat)
|
||||
order.CoordinateType = model.CoordinateTypeMars
|
||||
}
|
||||
storeList, err := common.GetStoreListByLocation(jxcontext.AdminCtx, jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), 5000, false, true)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("jds GetStoreListByLocation error: %v", err.Error())
|
||||
return order, err
|
||||
}
|
||||
order.StoreID = storeList[0].ID
|
||||
order.StoreName = storeList[0].Name
|
||||
globals.SugarLogger.Debugf("jds GetStoreListByLocation, orderID: %v storeID :%v", order.VendorOrderID, order.StoreID)
|
||||
storeMaps, _ := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDJDShop}, []int{order.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "")
|
||||
if len(storeMaps) > 0 {
|
||||
order.VendorStoreID = storeMaps[0].VendorStoreID
|
||||
}
|
||||
// 如果是暂停,表示是预订单
|
||||
if msg.OrderState == jdshopapi.OrderStatusPause || msg.OrderState == jdshopapi.OrderStatusPopPause {
|
||||
order.BusinessType = model.BusinessTypeDingshida
|
||||
// order.ExpectedDeliveredTime = utils.Str2Time(orderDetail.ExpectedDeliveredTime)
|
||||
order.PickDeadline = order.ExpectedDeliveredTime.Add(-time.Hour)
|
||||
} else if msg.OrderState == jdshopapi.OrderStatusWait {
|
||||
order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour)
|
||||
order.BusinessType = model.BusinessTypeImmediate
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("暂不支持的京东商城订单类型!type: %v", msg.OrderState)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if msg.IDSopShipmenttype == jdshopapi.IdSopShipmenttypeTC {
|
||||
if time, err := api.JdShopAPI.GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil {
|
||||
order.BusinessType = model.BusinessTypeDingshida
|
||||
order.ExpectedDeliveredTime = utils.Str2Time(time)
|
||||
}
|
||||
}
|
||||
|
||||
//结算类型
|
||||
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), order.StoreID, model.VendorIDJDShop)
|
||||
if storeDetail != nil {
|
||||
if storeDetail.PayPercentage < 50 {
|
||||
order.EarningType = model.EarningTypePoints
|
||||
} else {
|
||||
order.EarningType = model.EarningTypeQuote
|
||||
}
|
||||
}
|
||||
setJdsOrderSeq(order)
|
||||
for _, v := range msg.ItemInfoList {
|
||||
sku := &model.OrderSku{
|
||||
VendorID: model.VendorIDJDShop,
|
||||
@@ -151,15 +128,109 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
|
||||
SkuName: v.SkuName,
|
||||
VendorPrice: jxutils.StandardPrice2Int(utils.Str2Float64(v.JdPrice)),
|
||||
SalePrice: jxutils.StandardPrice2Int(utils.Str2Float64(v.JdPrice)),
|
||||
SkuID: utils.Str2Int(v.OuterSkuID),
|
||||
// SkuID: utils.Str2Int(v.OuterSkuID),
|
||||
}
|
||||
if v.OuterSkuID != "" {
|
||||
sku.SkuID = utils.Str2Int(v.OuterSkuID)
|
||||
}
|
||||
_, _, _, specUnit, _, specQuality := jxutils.SplitSkuName(v.SkuName)
|
||||
sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit)
|
||||
order.Skus = append(order.Skus, sku)
|
||||
}
|
||||
storeList, err := common.GetStoreListByLocation(jxcontext.AdminCtx, jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), 3000, false, true)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("jds GetStoreListByLocation error: %v", err.Error())
|
||||
return order, err
|
||||
}
|
||||
if len(storeList) > 0 {
|
||||
for _, store := range storeList {
|
||||
order.StoreID = store.ID
|
||||
order.JxStoreID = store.ID
|
||||
order.StoreName = store.Name
|
||||
globals.SugarLogger.Debugf("jds GetStoreListByLocation, orderID: %v storeID :%v", order.VendorOrderID, order.StoreID)
|
||||
//结算类型
|
||||
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), order.StoreID, model.VendorIDJDShop)
|
||||
if storeDetail != nil {
|
||||
if storeDetail.PayPercentage < 50 {
|
||||
order.EarningType = model.EarningTypePoints
|
||||
} else {
|
||||
order.EarningType = model.EarningTypeQuote
|
||||
}
|
||||
}
|
||||
var (
|
||||
shopPriceSum int
|
||||
saleNormalSum int
|
||||
)
|
||||
for _, sku := range order.Skus {
|
||||
storeSkuList, _ := dao.GetStoresSkusInfo(dao.GetDB(), []int{order.StoreID}, []int{sku.SkuID})
|
||||
if len(storeSkuList) > 0 && storeSkuList[0].Status == model.StoreSkuBindStatusNormal {
|
||||
saleNormalSum += 1
|
||||
shopPriceSum += storeSkuList[0].Price * sku.Count
|
||||
}
|
||||
}
|
||||
//可售数小于一半就不行
|
||||
if math.Mod(float64(len(order.Skus)), float64(2)) == 0 {
|
||||
if saleNormalSum < len(order.Skus)/2 {
|
||||
buildOrderTo102919(order)
|
||||
continue
|
||||
} else {
|
||||
if order.EarningType == model.EarningTypeQuote && shopPriceSum+700 > int(order.TotalShopMoney) {
|
||||
buildOrderTo102919(order)
|
||||
continue
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if saleNormalSum <= len(order.Skus)/2 {
|
||||
buildOrderTo102919(order)
|
||||
continue
|
||||
} else {
|
||||
if order.EarningType == model.EarningTypeQuote && shopPriceSum+700 > int(order.TotalShopMoney) {
|
||||
buildOrderTo102919(order)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
break
|
||||
}
|
||||
} else {
|
||||
buildOrderTo102919(order)
|
||||
}
|
||||
storeMaps, _ := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDJDShop}, []int{order.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "")
|
||||
if len(storeMaps) > 0 {
|
||||
order.VendorStoreID = storeMaps[0].VendorStoreID
|
||||
}
|
||||
// 如果是暂停,表示是预订单g
|
||||
if msg.OrderState == jdshopapi.OrderStatusPause || msg.OrderState == jdshopapi.OrderStatusPopPause {
|
||||
order.BusinessType = model.BusinessTypeDingshida
|
||||
if time, err := api.JdShopAPI.GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil {
|
||||
order.ExpectedDeliveredTime = utils.Str2Time(time)
|
||||
}
|
||||
order.PickDeadline = order.ExpectedDeliveredTime.Add(-time.Hour)
|
||||
} else if msg.OrderState == jdshopapi.OrderStatusWait {
|
||||
order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour)
|
||||
order.BusinessType = model.BusinessTypeImmediate
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("暂不支持的京东商城订单类型!type: %v", msg.OrderState)
|
||||
return nil, err
|
||||
}
|
||||
if msg.IDSopShipmenttype == jdshopapi.IdSopShipmenttypeTC {
|
||||
if time, err := api.JdShopAPI.GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil {
|
||||
order.BusinessType = model.BusinessTypeDingshida
|
||||
order.ExpectedDeliveredTime = utils.Str2Time(time)
|
||||
}
|
||||
}
|
||||
setJdsOrderSeq(order)
|
||||
return order, err
|
||||
}
|
||||
|
||||
func buildOrderTo102919(order *model.GoodsOrder) {
|
||||
order.StoreID = 102919
|
||||
order.JxStoreID = 102919
|
||||
order.StoreName = "商城模板(成都发货)"
|
||||
order.VendorStoreID = model.JdShopMainVendorStoreID
|
||||
order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled
|
||||
}
|
||||
|
||||
func setJdsOrderSeq(order *model.GoodsOrder) (err error) {
|
||||
type tCount struct {
|
||||
Count int `json:"count"`
|
||||
@@ -182,6 +253,7 @@ func Decrypt(p string) (result string) {
|
||||
}
|
||||
data, _ := base64.StdEncoding.DecodeString(strings.ReplaceAll(p, " ", "+"))
|
||||
key := GetKey(hex.EncodeToString(data)[4:36])
|
||||
globals.SugarLogger.Debugf("Decrypt keys : %v", key)
|
||||
data2, _ := base64.StdEncoding.DecodeString(key)
|
||||
b := bytes.NewBuffer(data)
|
||||
b.Next(18)
|
||||
@@ -206,3 +278,17 @@ func getRealOrderID(orderID string) (order *model.GoodsOrder) {
|
||||
dao.GetRow(db, &order, sql, sqlParams)
|
||||
return order
|
||||
}
|
||||
|
||||
func getAllRealOrderID(orderID string) (orders []*model.GoodsOrder) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
)
|
||||
sql := `
|
||||
SELECT * FROM goods_order WHERE vendor_order_id2 = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
orderID,
|
||||
}
|
||||
dao.GetRows(db, &orders, sql, sqlParams)
|
||||
return orders
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package jdshop
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
|
||||
"git.rosy.net.cn/baseapi"
|
||||
"git.rosy.net.cn/baseapi/platformapi"
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdshopapi"
|
||||
@@ -47,12 +48,7 @@ func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID string) (order *
|
||||
return p.Map2Order(utils.Struct2FlatMap(resultOrders)), err
|
||||
}
|
||||
func (p *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (status int, err error) {
|
||||
params := make(map[string]interface{})
|
||||
params["orderID"] = vendorOrderID
|
||||
params["token"] = "JxCaIsHiGetJsdOrderTmpToken_20200731"
|
||||
result, err := apiToYd("order/GetJdsOrder", params)
|
||||
jdsOrder := &jdshopapi.GetOrderResult{}
|
||||
json.Unmarshal([]byte(strings.ReplaceAll(result["data"].(string), "\\", "")), &jdsOrder)
|
||||
jdsOrder, err := GetJdsOrder(vendorOrderID)
|
||||
return status2Jxstatus(jdsOrder.OrderState), err
|
||||
}
|
||||
|
||||
@@ -72,6 +68,7 @@ func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo
|
||||
err = ChangeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, "订单在京东商城已被取消!")
|
||||
} else {
|
||||
err = ChangeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "自动拣货完成")
|
||||
err = p.OrderExport(jxcontext.AdminCtx, order.VendorOrderID, order.VendorOrderID, true)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -116,6 +113,32 @@ func (p *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods
|
||||
return err
|
||||
}
|
||||
func (p *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
diffShopPrice int64
|
||||
diffSalePrice int64
|
||||
)
|
||||
if order.Status >= model.OrderStatusDelivering {
|
||||
return fmt.Errorf("配送中以后的订单无法进行售前退款!")
|
||||
}
|
||||
//1、删除原order_sku 中售前调整的商品
|
||||
for _, sku := range removedSkuList {
|
||||
sql := `DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ? AND sku_id = ?`
|
||||
sqlParams := []interface{}{order.VendorOrderID, order.VendorID, sku.SkuID}
|
||||
dao.ExecuteSQL(db, sql, sqlParams)
|
||||
|
||||
diffShopPrice += sku.ShopPrice
|
||||
diffSalePrice += sku.SalePrice
|
||||
}
|
||||
//2、修改goods_order 中的shopprice,若是扣点的订单,还要改new_earning_price和total_shop_money
|
||||
order.AdjustCount += 1
|
||||
order.ShopPrice = order.ShopPrice - diffShopPrice
|
||||
if order.EarningType == model.EarningTypePoints {
|
||||
order.TotalShopMoney = utils.Float64TwoInt64(float64(float64(order.TotalShopMoney)/jdshopapi.JdsPayPercentage-float64(diffSalePrice)) * jdshopapi.JdsPayPercentage)
|
||||
jxutils.RefreshOrderEarningPrice2(order, order.OrderPayPercentage)
|
||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"TotalShopMoney", "NewEarningPrice"})
|
||||
}
|
||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"AdjustCount", "ShopPrice"})
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -208,3 +231,13 @@ func apiToYd(url string, params map[string]interface{}) (retVal map[string]inter
|
||||
})
|
||||
return retVal, err
|
||||
}
|
||||
|
||||
func GetJdsOrder(vendorOrderID string) (jdsOrder *jdshopapi.GetOrderResult, err error) {
|
||||
params := make(map[string]interface{})
|
||||
params["orderID"] = vendorOrderID
|
||||
params["token"] = jdshopapi.JdsYdToken
|
||||
result, err := apiToYd("order/GetJdsOrder", params)
|
||||
jdsOrder2 := &jdshopapi.GetOrderResult{}
|
||||
err = utils.UnmarshalUseNumber([]byte(strings.ReplaceAll(result["data"].(string), "\\", "")), &jdsOrder2)
|
||||
return jdsOrder2, err
|
||||
}
|
||||
|
||||
@@ -1155,6 +1155,8 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) {
|
||||
outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus))
|
||||
//以下为仿照CreateOrder,改了一些参数
|
||||
for k, v := range outOrders {
|
||||
v.OrderType = model.OrderTypeMatter
|
||||
v.FromStoreID = order.FromStoreID
|
||||
outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID, false)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -1661,7 +1663,7 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result
|
||||
}
|
||||
queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID)
|
||||
getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID)
|
||||
if err != nil {
|
||||
if err != nil || queryOrderStatus == nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(queryOrderStatus.OrderStatusList) > 0 {
|
||||
@@ -1921,6 +1923,10 @@ func SendFailedMatterOrder(ctx *jxcontext.Context, vendorOrderID string) (err er
|
||||
// if code == jdeclpapi.SoStatusCode10022 || code == jdeclpapi.SoStatusCode10038 { //表示该订单在京东物流为暂停或已经逆向发货完成
|
||||
if len(order.VendorOrderID) == 14 && order.EclpOutID != "" { //这是不分包的订单
|
||||
_, err = createMatterOrder(buildJxOrderInfo(order, order.Skus), order, int64(01))
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("SendFailedMatterOrder err : [%v]", err)
|
||||
return err
|
||||
}
|
||||
err = CancelMatterOrder(db, order, cancelMatterOrderReason)
|
||||
changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason)
|
||||
for _, v := range order.Skus {
|
||||
@@ -1944,7 +1950,7 @@ func SendFailedMatterOrder(ctx *jxcontext.Context, vendorOrderID string) (err er
|
||||
}
|
||||
}
|
||||
}
|
||||
err = CancelMatterOrder(db, order, cancelMatterOrderReason)
|
||||
// err = CancelMatterOrder(db, order, cancelMatterOrderReason)
|
||||
changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason)
|
||||
} else if len(order.VendorOrderID) == 16 && order.EclpOutID != "" { // 这是分包的子订单
|
||||
return fmt.Errorf("请重发主订单!主订单号:[%v]", order.VendorOrderID[len(order.VendorOrderID)-2:])
|
||||
|
||||
Reference in New Issue
Block a user