refactor(契约): 展示题号统一叫 problemDisplayId,题单 id 统一叫 problemSetId
Deploy / deploy (push) Canceled after 0s
Deploy / deploy (push) Canceled after 0s
前后端同时改,部署前开着的旧页面要刷新一次(题号列会是空的、提交筛选会失效)。 - 挂在非题目对象上的展示题号,原来叫 problem(字符串)或 displayId,统一成 problemDisplayId:提交列表、流程图列表、统计的 lastFailure / items / 今日最热题、站内信里的提交、后台题单的题目列表。别处的 problem 都是对象 或数字 id,这几处是字符串,最容易看错 - 列表筛选的 query 参数 ?problemId= 实际传的是展示题号,改成 ?problemDisplayId=(提交列表、流程图列表、三个统计接口) - 契约里 problemsetId / problemSetId、problemset / problemSet 两种拼法并存, 统一成 problemSetId / problemSet,和 ProblemSet* 类型名、problem-sets 路径、前端路由参数一致。drizzle 的列键跟表名走,没动 - aiDetail.user(用户名字符串,而契约里别的 user 都是对象)→ username。 ai_analysis.data 里存的历史快照仍是 user,没有代码读回它 - 后台题单题目表的列是按字符串键 'displayId' 取的,类型检查抓不到,一并改 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5ae830a7f9
commit
9412ba3cf6
24 files changed
+80
-82
No files matched your search
@@ -151,7 +151,7 @@ submissionStatisticsRoutes.get(
|
||||
count: row.value,
|
||||
})),
|
||||
problems: problemRows.map((row) => ({
|
||||
problem: row.displayId,
|
||||
problemDisplayId: row.displayId,
|
||||
problemTitle: row.title,
|
||||
count: row.value,
|
||||
acceptedCount: row.accepted,
|
||||
@@ -240,7 +240,7 @@ async function lastFailureByUser(where: SQL | undefined, userIds: number[]) {
|
||||
number,
|
||||
{
|
||||
id: string
|
||||
problem: string
|
||||
problemDisplayId: string
|
||||
result: JudgeStatusValue
|
||||
error: string | null
|
||||
}
|
||||
@@ -276,7 +276,7 @@ async function lastFailureByUser(where: SQL | undefined, userIds: number[]) {
|
||||
for (const row of rows) {
|
||||
byUser.set(row.user_id, {
|
||||
id: row.id,
|
||||
problem: row.problem,
|
||||
problemDisplayId: row.problem,
|
||||
result: row.result,
|
||||
error: row.error,
|
||||
})
|
||||
@@ -412,7 +412,7 @@ async function statisticsScope(c: {
|
||||
if (range.start)
|
||||
filters.push(sql`${schema.submission.createTime} >= ${range.start}`)
|
||||
|
||||
const displayIds = parseDisplayIds(c.req.query("problemId") ?? "")
|
||||
const displayIds = parseDisplayIds(c.req.query("problemDisplayId") ?? "")
|
||||
if (displayIds.length > STATISTICS_MAX_PROBLEMS) {
|
||||
return {
|
||||
ok: false,
|
||||
@@ -682,7 +682,7 @@ submissionStatisticsRoutes.get(
|
||||
id: schema.submission.id,
|
||||
result: schema.submission.result,
|
||||
createTime: schema.submission.createTime,
|
||||
problem: schema.problem.displayId,
|
||||
problemDisplayId: schema.problem.displayId,
|
||||
problemTitle: schema.problem.title,
|
||||
})
|
||||
.from(schema.submission)
|
||||
|
||||
Reference in new issue
Block a user