#!/usr/bin/env python3
"""
测试多订单号搜索功能
"""
import requests
import json

API_BASE = "http://localhost:8000/api/v1"

def test_multi_order_search():
    """测试多订单号搜索"""
    print("=" * 60)
    print("测试多订单号搜索功能")
    print("=" * 60)
    
    # 测试订单号列表
    test_order_numbers = [
        "4715551407019774944",
        "4715623872738602807", 
        "4715504031674602807",
        "4715616240116457000"
    ]
    
    print(f"\n要搜索的订单号列表：")
    for num in test_order_numbers:
        print(f"  - {num}")
    
    # 1. 测试单个订单号搜索（向后兼容）
    print("\n1. 测试单个订单号搜索...")
    single_response = requests.get(
        f"{API_BASE}/procurement/orders",
        params={
            "order_number": test_order_numbers[0],
            "page_size": 10
        }
    )
    
    if single_response.status_code == 200:
        result = single_response.json()
        print(f"   找到 {result['total']} 个订单")
        if result['orders']:
            order = result['orders'][0]
            print(f"   订单号: {order['原始订单编号']}")
            print(f"   商品: {order['线上宝贝名称'][:30]}...")
    else:
        print(f"   搜索失败: {single_response.status_code}")
    
    # 2. 测试多个订单号搜索
    print("\n2. 测试多个订单号搜索...")
    multi_order_str = ",".join(test_order_numbers)
    multi_response = requests.get(
        f"{API_BASE}/procurement/orders",
        params={
            "order_numbers": multi_order_str,
            "page_size": 10
        }
    )
    
    if multi_response.status_code == 200:
        result = multi_response.json()
        print(f"   找到 {result['total']} 个订单")
        
        # 显示找到的订单
        found_orders = []
        for order in result['orders']:
            order_num = order['原始订单编号']
            found_orders.append(order_num)
            print(f"   ✓ {order_num}: {order['线上宝贝名称'][:30]}...")
        
        # 检查哪些订单没找到
        not_found = [num for num in test_order_numbers if num not in found_orders]
        if not_found:
            print(f"\n   未找到的订单号:")
            for num in not_found:
                print(f"   ✗ {num}")
    else:
        print(f"   搜索失败: {multi_response.status_code}")
        print(f"   错误信息: {multi_response.text}")
    
    # 3. 测试空格分隔的订单号
    print("\n3. 测试前端格式（通过API参数模拟）...")
    # 模拟前端发送的格式
    space_separated = " ".join(test_order_numbers[:2])
    print(f"   输入格式: '{space_separated}'")
    
    # 前端会处理成逗号分隔，这里直接测试逗号分隔的格式
    test_response = requests.get(
        f"{API_BASE}/procurement/orders",
        params={
            "order_numbers": test_order_numbers[0] + "," + test_order_numbers[1],
            "page_size": 10
        }
    )
    
    if test_response.status_code == 200:
        result = test_response.json()
        print(f"   找到 {result['total']} 个订单")
    
    print("\n✅ 测试完成！请在前端页面验证实际效果。")

if __name__ == "__main__":
    test_multi_order_search()