前端测试通过,部分接口没有数据,运行没问题了。

This commit is contained in:
Orangeeee
2026-09-23 03:53:57 +08:00
parent 24a7da624b
commit 1ff0782399
5 changed files with 393 additions and 38 deletions
+31 -25
View File
@@ -144,6 +144,8 @@ def seed_test_data():
enrollment = date(2024, 9, 1) if class_idx != 2 else date(2025, 9, 1)
graduate = date(2028, 6, 30) if class_idx != 2 else date(2029, 6, 30)
phone = f"1390000{1000 + i}"
# 前3个学生年龄设大一些,用于30岁以上统计测试
age = 30 + i if i < 3 else 18 + (i % 4)
db.execute(text("""
INSERT INTO students (num, name, age, sex, home_Place, college,
specialty, enrollment_time, graduate_time,
@@ -154,7 +156,7 @@ def seed_test_data():
"""), {
"num": f"2024{1001 + i}",
"name": first_names[i],
"age": 18 + (i % 4),
"age": age,
"sex": "m" if i % 2 == 0 else "f",
"home_Place": home_places[i % 8],
"college": colleges[i % 8],
@@ -176,10 +178,20 @@ def seed_test_data():
for idx, st in enumerate(all_students):
for subj_idx, sub in enumerate(all_subjects):
score_val = 60 + (idx * 7 + subj_idx * 13) % 41
# 前3名学生部分课程不及格(供统计接口测试)
if idx < 3 and subj_idx < 2:
score_val = 30 + (idx * 5) % 25
# 前3名学生设大年龄(用于30岁以上统计)
# 前2名学生所有科目80分以上(用于优秀成绩统计)
# 最后2名学生部分科目不及格(用于不及格统计)
if idx < 2:
# 优秀学生:所有科目85-95分
score_val = 85 + (idx * 5 + subj_idx * 3) % 11
elif idx >= 18:
# 不及格学生:部分科目50-60分
if subj_idx < 3:
score_val = 50 + (idx * 3 + subj_idx) % 11
else:
score_val = 75 + (idx * 2 + subj_idx) % 16
else:
score_val = 60 + (idx * 7 + subj_idx * 13) % 41
db.execute(text("""
INSERT INTO scores (sid, cid, num, score, t_subject, is_deleted)
VALUES (:sid, :cid, 1, :score, :t_subject, 0)
@@ -210,24 +222,18 @@ def seed_test_data():
company_ids.append(result.lastrowid)
# ── 8. 就业信息 ───────────────────────────────────
employment_data = [
(all_students[0][0], all_students[0][1], company_ids[0],
35000, date(2028, 3, 1), date(2028, 4, 15)),
(all_students[1][0], all_students[1][1], company_ids[1],
32000, date(2028, 3, 1), date(2028, 5, 1)),
(all_students[2][0], all_students[2][1], company_ids[2],
30000, date(2028, 3, 1), date(2028, 4, 20)),
(all_students[3][0], all_students[3][1], company_ids[3],
28000, date(2028, 3, 1), date(2028, 5, 10)),
(all_students[4][0], all_students[4][1], company_ids[4],
25000, date(2028, 3, 1), date(2028, 6, 1)),
(all_students[5][0], all_students[5][1], company_ids[0],
33000, date(2028, 3, 1), date(2028, 4, 25)),
(all_students[6][0], all_students[6][1], company_ids[1],
29000, date(2028, 3, 1), None),
(all_students[7][0], all_students[7][1], company_ids[2],
31000, date(2028, 3, 1), date(2028, 5, 5)),
]
# 添加更多就业记录,确保统计接口有数据
employment_data = []
for i in range(min(15, len(all_students))):
company_idx = i % len(company_ids)
address_idx = i % len(address_ids)
salary = 25000 + (i * 2000) % 15000
# 前10个学生有offer时间,后5个没有(测试不同情况)
offer_time = date(2028, 4, 15 + i) if i < 10 else None
employment_data.append((
all_students[i][0], all_students[i][1], company_ids[company_idx],
address_ids[address_idx], salary, date(2028, 3, 1), offer_time
))
for idx, emp in enumerate(employment_data):
db.execute(text("""
INSERT INTO Employments (stuid, class_id, company_id, address_id,
@@ -237,8 +243,8 @@ def seed_test_data():
:open_time, :offer_time, 0)
"""), {
"stuid": emp[0], "class_id": emp[1],
"company_id": emp[2], "addr_id": address_ids[idx % len(address_ids)],
"salary": emp[3], "open_time": emp[4], "offer_time": emp[5],
"company_id": emp[2], "addr_id": emp[3],
"salary": emp[4], "open_time": emp[5], "offer_time": emp[6],
})
db.commit()