#!/usr/bin/env python3
"""
测试采购方式列是否正确显示
"""
import os
import requests
import json

# 禁用代理
os.environ['NO_PROXY'] = 'localhost,127.0.0.1'
os.environ.pop('http_proxy', None)
os.environ.pop('https_proxy', None)
os.environ.pop('all_proxy', None)


def test_procurement_method_column():
    """测试采购方式是否在API响应中"""

    url = "http://localhost:8000/api/v1/new-shipping/pending-orders"
    headers = {"Content-Type": "application/json"}
    data = {"limit": 5}

    try:
        response = requests.post(url, json=data, headers=headers, timeout=10)

        if response.status_code == 200:
            result = response.json()
            print(f"✅ API请求成功")
            print(f"总订单数: {result.get('total', 0)}")

            if result.get('orders'):
                print("\n采购方式展示:")
                print("=" * 60)

                for i, order in enumerate(result['orders'][:5], 1):
                    print(f"\n订单 {i}:")
                    print(f"  子订单编号: {order.get('子订单编号')}")
                    print(f"  商品标题: {order.get('商品标题')[:30]}...")

                    if order.get('procurement_info'):
                        info = order['procurement_info']
                        print(f"  ✅ 采购信息存在:")
                        print(f"    品牌: {info.get('品牌', '无')}")
                        print(f"    颜色: {info.get('颜色', '无')}")
                        print(f"    尺码: {info.get('尺码', '无')}")
                        print(f"    货号: {info.get('货号', '无')}")

                        # 重点检查采购方式字段
                        if '采购方式' in info:
                            print(f"    🎯 采购方式: {info.get('采购方式')}")
                        else:
                            print(f"    ❌ 采购方式字段不存在!")
                    else:
                        print(f"  ❌ 无采购信息")

                # 统计采购方式
                print("\n" + "=" * 60)
                print("采购方式统计:")

                methods = {}
                for order in result['orders']:
                    if order.get('procurement_info') and order['procurement_info'].get('采购方式'):
                        method = order['procurement_info']['采购方式']
                        methods[method] = methods.get(method, 0) + 1

                if methods:
                    for method, count in sorted(methods.items(), key=lambda x: x[1], reverse=True):
                        print(f"  {method}: {count}个订单")
                else:
                    print("  无采购方式数据")

            else:
                print("⚠️ 没有返回订单数据")

        else:
            print(f"❌ API请求失败，状态码: {response.status_code}")
            print(f"响应内容: {response.text}")

    except requests.exceptions.RequestException as e:
        print(f"❌ 网络请求错误: {e}")
    except json.JSONDecodeError as e:
        print(f"❌ JSON解析错误: {e}")
    except Exception as e:
        print(f"❌ 未知错误: {e}")


if __name__ == "__main__":
    test_procurement_method_column()