#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 测试事业部开单统计接口 """ import json import sys import requests BASE_URL = "http://localhost:2011" TEST_DATE = sys.argv[1] if len(sys.argv) > 1 else "2026-01-20" def get_token(): """获取登录token""" login_data = { "account": "admin", "password": "e10adc3949ba59abbe56e057f20f883e" } try: response = requests.post( f"{BASE_URL}/api/oauth/Login", data=login_data, headers={"Content-Type": "application/x-www-form-urlencoded"}, timeout=10 ) if response.status_code == 200: result = response.json() if result.get('code') == 200 and result.get('data') and result.get('data').get('token'): return result['data']['token'] return None except Exception as e: print(f"获取Token失败: {e}") return None def test_statistics(token, date): """测试事业部开单统计接口""" url = f"{BASE_URL}/api/Extend/LqDailyReport/get-business-unit-billing-statistics" headers = { "Authorization": token, "Content-Type": "application/json" } data = {"date": date} try: response = requests.post(url, json=data, headers=headers, timeout=10) return response.json() except Exception as e: print(f"接口调用失败: {e}") return None def main(): print("=" * 80) print("事业部开单统计接口测试(修复后验证)") print(f"测试日期: {TEST_DATE}") print("=" * 80) print() # 获取Token print("步骤 1: 获取Token") token = get_token() if not token: print("❌ Token获取失败") return print("✓ Token获取成功") print() # 调用接口 print(f"步骤 2: 调用接口") print(f"接口: POST /api/Extend/LqDailyReport/get-business-unit-billing-statistics") print(f"参数: {{\"date\": \"{TEST_DATE}\"}}") print() result = test_statistics(token, TEST_DATE) if not result: print("❌ 接口调用失败") return # 解析结果 print("步骤 3: 解析结果") print("-" * 80) if result.get('code') == 200: data_list = result.get('data', []) print(f"✅ 接口调用成功") print(f"事业部数量: {len(data_list)}") print() if not data_list: print("⚠️ 该日期没有开单数据") else: total_performance = sum(unit.get('totalPerformance', 0) for unit in data_list) total_orders = sum(unit.get('totalOrderCount', 0) for unit in data_list) print(f"总业绩: {total_performance}") print(f"总单量: {total_orders}") print() # 查找西站店 has_xizhan = False all_stores = [] xizhan_orders = [] for unit in data_list: unit_name = unit.get('businessUnitName', '未知事业部') orders = unit.get('orders', []) print(f"【{unit_name}】") print(f" 业绩: {unit.get('totalPerformance', 0)}") print(f" 单量: {unit.get('totalOrderCount', 0)}") if orders: print(f" 开单列表:") for order in orders: store_name = order.get('storeName', '未知门店') amount = order.get('amount', 0) teacher = order.get('healthTeacherNames', '无') if '西站' in store_name: marker = '⭐ 西站店' has_xizhan = True xizhan_orders.append({ 'unit': unit_name, 'store': store_name, 'amount': amount, 'teacher': teacher, 'orderId': order.get('orderId', '') }) else: marker = ' ' print(f" {marker} {store_name}: {amount}元 (健康师: {teacher})") all_stores.append(store_name) else: print(f" (无开单记录)") print() print("=" * 80) if has_xizhan: print("✅ 找到西站店的开单数据!") print() print("西站店开单详情:") for order in xizhan_orders: print(f" - 事业部: {order['unit']}") print(f" 门店: {order['store']}") print(f" 金额: {order['amount']}元") print(f" 健康师: {order['teacher']}") print(f" 开单ID: {order['orderId']}") print() else: print("⚠️ 未找到西站店的开单数据") if all_stores: unique_stores = sorted(set(all_stores)) print(f"该日期共有 {len(unique_stores)} 个不同门店的开单:") for store in unique_stores: print(f" - {store}") else: print(f"❌ 接口调用失败") print(f"错误码: {result.get('code')}") print(f"错误信息: {result.get('msg', '未知错误')}") print() print("=" * 80) print("测试完成") print("=" * 80) if __name__ == "__main__": main()