访问京东API,获取结账必要信息。

This commit is contained in:
lyb
2018-08-09 16:37:38 +08:00
parent c430b997f9
commit 0ef674c072
4 changed files with 89 additions and 3 deletions

View File

@@ -10,6 +10,7 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler"
"git.rosy.net.cn/jx-callback/business/util"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/legacy/freshfood"
@@ -70,8 +71,10 @@ func (c *OrderController) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err error) {
result, err := api.JdAPI.QuerySingleOrder(orderID)
bussResult, bussErr := api.JdAPI.QueryOassBussMoney(orderID)
// globals.SugarLogger.Info(result)
if err == nil {
//todo 将API获取的信息填入新字段里
if err == nil && bussErr == nil {
order = &model.GoodsOrder{
VendorOrderID: orderID,
VendorID: model.VendorIDJD,
@@ -91,6 +94,7 @@ func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err
ActualPayPrice: utils.MustInterface2Int64(result["orderBuyerPayableMoney"]),
Skus: []*model.OrderSku{},
}
order.Status = c.GetStatusFromVendorStatus(order.VendorStatus)
businessTage := utils.Interface2String(result["businessTag"])
if strings.Index(businessTage, "dj_aging_immediately") >= 0 {
@@ -137,9 +141,48 @@ func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err
order.Weight += sku.Weight * sku.Count
}
}
setOrederDetailFee(bussResult, result, order)
return order, err
}
func setOrederDetailFee(bussResult []interface{}, result map[string]interface{}, order *model.GoodsOrder) {
var skuTotalPmFee, orderPmFee, skuTotalPmSubsidy, orderPmSubsidy int64
for _, value := range bussResult {
OassBussinessSkusNew := value.(map[string]interface{})
discountlist := OassBussinessSkusNew["discountlist"].([]interface{})
promotionType := utils.MustInterface2Int64(OassBussinessSkusNew["promotionType"])
skuId := utils.MustInterface2Int64(OassBussinessSkusNew["skuId"])
for _, value := range discountlist {
OrderBussiDiscountMoney := value.(map[string]interface{})
if isHave, _ := util.Contain(promotionType, model.JdSkuPromotion); isHave == true {
singleSkuPmFee := utils.MustInterface2Int64(OrderBussiDiscountMoney["saleMoney"])
skuTotalPmFee += singleSkuPmFee
singleSkuPmSubsidy := utils.MustInterface2Int64(OrderBussiDiscountMoney["costMoney"])
skuTotalPmSubsidy += singleSkuPmSubsidy
setSkuDetailFee(singleSkuPmFee, singleSkuPmSubsidy, order, skuId)
} else {
orderPmFee += utils.MustInterface2Int64(OrderBussiDiscountMoney["saleMoney"])
orderPmSubsidy += utils.MustInterface2Int64(OrderBussiDiscountMoney["costMoney"])
}
}
}
order.SkuTotalPmFee = skuTotalPmFee
order.OrderPmFee = orderPmFee
order.SkuTotalPmSubsidy = skuTotalPmSubsidy
order.OrderPmSubsidy = orderPmSubsidy
order.BoxFee = utils.MustInterface2Int64(result["packagingMoney"])
order.PlatformFeeRate = model.JdPlatformFeeRate
}
func setSkuDetailFee(skuPmFee int64, skuPmSubsidy int64, order *model.GoodsOrder, skuId int64) {
for _, value := range order.Skus {
if value.SkuID == int(skuId) {
value.SkuPmSubsidy = skuPmSubsidy
value.SkuPmFee = skuPmFee
}
}
}
//
func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
order, err := c.GetOrder(msg.BillID)