feat: 初始化考培练系统项目

- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
111
2026-01-24 19:33:28 +08:00
commit 998211c483
1197 changed files with 228429 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
#!/usr/bin/env python3
"""
测试陪练记录列表API
"""
import requests
import json
# API基础地址
BASE_URL = "http://120.79.247.16"
def login(username: str, password: str):
"""登录获取token"""
url = f"https://aiedu.ireborn.com.cn/api/v1/auth/login"
data = {
"username": username,
"password": password
}
print(f"正在登录: {username}")
response = requests.post(url, json=data, verify=False)
print(f"登录响应: {response.status_code}")
result = response.json()
print(f"登录结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
if response.status_code == 200 and result.get('code') == 200:
token = result['data'].get('access_token')
print(f"✓ 登录成功Token: {token[:20]}...")
return token
else:
print(f"✗ 登录失败")
return None
def get_practice_sessions(token: str):
"""获取陪练记录列表"""
url = f"https://aiedu.ireborn.com.cn/api/v1/practice/sessions/list"
headers = {
"Authorization": f"Bearer {token}"
}
params = {
"page": 1,
"size": 20
}
print(f"\n正在获取陪练记录列表...")
print(f"请求URL: {url}")
print(f"请求参数: {params}")
response = requests.get(url, headers=headers, params=params, verify=False)
print(f"响应状态码: {response.status_code}")
result = response.json()
print(f"响应结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
if response.status_code == 200 and result.get('code') == 200:
data = result['data']
print(f"\n✓ 获取成功")
print(f"总记录数: {data.get('total', 0)}")
print(f"当前页记录数: {len(data.get('items', []))}")
# 打印前5条记录
items = data.get('items', [])
if items:
print(f"\n{min(5, len(items))}条记录:")
for i, item in enumerate(items[:5], 1):
print(f"{i}. {item.get('session_id')} - {item.get('scene_name')} - {item.get('start_time')}")
else:
print("\n⚠️ 记录列表为空!")
else:
print(f"\n✗ 获取失败")
def get_practice_stats(token: str):
"""获取陪练统计数据"""
url = f"https://aiedu.ireborn.com.cn/api/v1/practice/stats"
headers = {
"Authorization": f"Bearer {token}"
}
print(f"\n正在获取陪练统计数据...")
response = requests.get(url, headers=headers, verify=False)
print(f"响应状态码: {response.status_code}")
result = response.json()
print(f"响应结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
def main():
print("=" * 60)
print("测试陪练记录列表API")
print("=" * 60)
# 测试多个用户
test_users = [
("admin", "admin123"), # admin
("consultant_001", "admin123"), # consultant_001
("consultant_002", "admin123"), # consultant_002
]
for username, password in test_users:
print(f"\n{'=' * 60}")
print(f"测试用户: {username}")
print(f"{'=' * 60}")
# 登录
token = login(username, password)
if not token:
print(f"用户 {username} 登录失败,跳过")
continue
# 获取陪练记录
get_practice_sessions(token)
# 获取统计数据
get_practice_stats(token)
print("\n")
if __name__ == "__main__":
main()