运费逻辑
This commit is contained in:
@@ -23,7 +23,11 @@ from app.models.scrape import (
|
||||
SearchResultData, TradeMonitorRequest,
|
||||
)
|
||||
from app.utils.http_utils import generate_signed_headers
|
||||
from app.utils.parse_util import get_handle_fee, get_shipping_fee
|
||||
from app.utils.parse_util import (
|
||||
get_franchise_shipping_fee,
|
||||
get_handle_fee,
|
||||
get_shipping_fee,
|
||||
)
|
||||
|
||||
router = APIRouter(prefix="/api", tags=["scrape"])
|
||||
|
||||
@@ -139,8 +143,28 @@ async def categories(
|
||||
dependencies=[Depends(require_bearer_token)],
|
||||
)
|
||||
async def order_get_shipping_fee(payload: OrderShippingFeeRequest) -> ApiResponse[OrderShippingFeeData]:
|
||||
goods_amount = sum(item.goods_number * item.goods_price for item in payload.item_list)
|
||||
shipping_fee = get_shipping_fee(goods_amount)
|
||||
"""计算订单运费与手续费。
|
||||
|
||||
规则:
|
||||
- 官方店铺(supplier 为空)运费: 按官方部分商品总额套阶梯价(440/385/0)
|
||||
* 订单中无任何官方商品时,官方运费 0
|
||||
- 加盟店运费(supplier 非空,同名视为同一家): 每家统一 800 日元
|
||||
- 通贩手续费: 按全部商品(含官方+加盟店)总额套阶梯价(240/0)
|
||||
"""
|
||||
official_amount = 0
|
||||
franchise_stores: set[str] = set()
|
||||
goods_amount = 0
|
||||
for item in payload.item_list:
|
||||
subtotal = item.goods_number * item.goods_price
|
||||
goods_amount += subtotal
|
||||
if item.supplier == "":
|
||||
official_amount += subtotal
|
||||
else:
|
||||
franchise_stores.add(item.supplier)
|
||||
|
||||
official_shipping_fee = get_shipping_fee(official_amount) if official_amount > 0 else 0
|
||||
franchise_shipping_fee = get_franchise_shipping_fee(len(franchise_stores))
|
||||
shipping_fee = official_shipping_fee + franchise_shipping_fee
|
||||
handle_amount = get_handle_fee(goods_amount)
|
||||
order_amount = goods_amount + shipping_fee + handle_amount
|
||||
|
||||
|
||||
Reference in New Issue
Block a user