+ 添加GoodsOrder.TotalShopMoney表示应结金额-第三方平台结算给京西的金额(包括了所有的补贴,扣除)

This commit is contained in:
gazebo
2019-06-18 10:17:24 +08:00
parent 0f4f6b937f
commit c64140fdcf
4 changed files with 61 additions and 18 deletions

View File

@@ -127,7 +127,7 @@ func (p *PurchaseHandler) partRefund2OrderDetailSkuList(orderID string, orderDet
// Weight: int(utils.Interface2Int64WithDefault(product["total_weight"], 0)) / number, // 退单这里的total_weight有BUG这里的total_weight还是没有退单时的值
VendorPrice: utils.MustInterface2Int64(product["product_price"]),
}
sku.SalePrice, sku.StoreSubName = getSkuSalePrice(product)
sku.SalePrice, _, sku.StoreSubName = getSkuSalePrice(product)
if sku.Weight == 0 {
sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit) // 订单信息里没有重量,只有名字里尝试找
}
@@ -161,7 +161,7 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
StatusTime: getTimeFromInterface(orderMap["create_time"]),
OriginalData: string(utils.MustMarshal(result)),
ActualPayPrice: utils.MustInterface2Int64(orderMap["user_fee"]),
Skus: []*model.OrderSku{},
TotalShopMoney: utils.MustInterface2Int64(orderMap["shop_fee"]),
}
if utils.IsTimeZero(order.PickDeadline) && !utils.IsTimeZero(order.StatusTime) {
order.PickDeadline = order.StatusTime.Add(pickupOrderDelay) // 饿百要求在5分钟内拣货不然订单会被取消
@@ -213,7 +213,9 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
Weight: int(utils.Interface2Int64WithDefault(product["total_weight"], 0)) / productAmount,
VendorPrice: utils.MustInterface2Int64(product["product_price"]),
}
sku.SalePrice, sku.StoreSubName = getSkuSalePrice(product)
var baiduRate int64
sku.SalePrice, baiduRate, sku.StoreSubName = getSkuSalePrice(product)
order.TotalShopMoney += baiduRate
if sku.Weight == 0 {
sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit) // 订单信息里没有重量,只有名字里尝试找
}
@@ -226,15 +228,15 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
return order
}
func getSkuSalePrice(product map[string]interface{}) (salePrice int64, vendorActType string) {
func getSkuSalePrice(product map[string]interface{}) (salePrice, baiduRate int64, vendorActType string) {
var product2 *ebaiapi.OrderProductInfo
if err := utils.Map2StructByJson(product, &product2, true); err != nil {
return utils.MustInterface2Int64(product["product_price"]), ""
return utils.MustInterface2Int64(product["product_price"]), 0, ""
}
return getSkuSalePrice2(product2)
}
func getSkuSalePrice2(product *ebaiapi.OrderProductInfo) (salePrice int64, vendorActType string) {
func getSkuSalePrice2(product *ebaiapi.OrderProductInfo) (salePrice, baiduRate int64, vendorActType string) {
salePrice = int64(product.ProductPrice)
if product.ProductSubsidy != nil {
for _, v := range product.ProductSubsidy.DiscountDetail {
@@ -246,9 +248,10 @@ func getSkuSalePrice2(product *ebaiapi.OrderProductInfo) (salePrice int64, vendo
salePrice -= int64(math.Round(float64(v.BaiduRate+v.ShopRate) / float64(skuCount))) // 饿百同一SKU的优惠与非优惠没有拆开平均摊销处理
vendorActType = v.Type
}
baiduRate += int64(v.BaiduRate)
}
}
return salePrice, vendorActType
return salePrice, baiduRate, vendorActType
}
func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {