fix(排名): 老师点「本班」不再随手挑个交题最多的班,改成布置过作业的班、上次选的班,都没有就停在全部
Deploy / deploy (push) Canceled after 0s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-12 23:28:55 +08:00
1 parent e4abbc1645
commit 3ca3b42997
5 files changed
+36 -11

No files matched your search

+13 -4
View File
@@ -538,17 +538,26 @@ export async function classPk(
}
/**
* 老师打开排名页(和后台「自学情况」)默认看哪个班:自己最近布置过作业的班 → 最近一周交题人数最多的班。
* 不记老师上次选的:统计面板吃过那个亏(上一节课的班悄悄留在框里)。
* 老师自己最近布置过作业的班。老师账号没有班级,这是唯一能说明「这是他的班」的数据;
* 排名页点「本班」只认这个,猜不出就交给前端(用上次选的班,没有就停在全部)。
*/
export async function defaultClassFor(teacherId: number) {
export async function lessonClassFor(teacherId: number) {
const [lesson] = await db
.select({ className: schema.classLesson.className })
.from(schema.classLesson)
.where(eq(schema.classLesson.createdBy, teacherId))
.orderBy(desc(schema.classLesson.day), desc(schema.classLesson.updatedAt))
.limit(1)
if (lesson) return lesson.className
return lesson?.className ?? null
}
/**
* 后台「自学情况」和班级 PK 默认看哪个班:自己最近布置过作业的班 → 最近一周交题人数最多的班。
* 不记老师上次选的:统计面板吃过那个亏(上一节课的班悄悄留在框里)。
*/
export async function defaultClassFor(teacherId: number) {
const lesson = await lessonClassFor(teacherId)
if (lesson) return lesson
const users = countDistinct(schema.submission.userId)
const [busiest] = await db