好感按一共做对几道分五档(不到 10 / 10 / 25 / 40 / 100 道,含比赛题,和成就同一个数), 档位不显示。门槛按最近 60 天交过题的 378 个学生定的:前四档大约各占四分之一,最高一档是前一成。 - 每档多一组自己的话,越往上越软,高档也抽得到低档的;只掺进闲聊、夸人、空白题目页、 题目列表这几类情况,现有台词不改。 - 越熟越耐烦:最低档点到第 7 次背过身,最高档到第 10 次。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3987b83220
commit
47c0b5464d
5 files changed
+93
-8
No files matched your search
@@ -51,11 +51,16 @@ mascotRoutes.get('/mascot/profile', requireAuth, async (c) => {
|
||||
|
||||
const week = weekStart()
|
||||
const e = schema.mascotEvent
|
||||
const [pokes, today, recent, tooHard, weekSubmits, weekEvents, weekHints] = await Promise.all([
|
||||
const [pokes, solved, today, recent, tooHard, weekSubmits, weekEvents, weekHints] = await Promise.all([
|
||||
db
|
||||
.select({ value: count() })
|
||||
.from(schema.mascotEvent)
|
||||
.where(and(eq(schema.mascotEvent.userId, userId), eq(schema.mascotEvent.kind, 'open'))),
|
||||
// 成就每次判完都重数一遍存进 user_stat,直接读,不再按提交现数
|
||||
db
|
||||
.select({ value: sql<number>`coalesce((${schema.userStat.metrics}->>'accepted_count')::int, 0)` })
|
||||
.from(schema.userStat)
|
||||
.where(eq(schema.userStat.userId, userId)),
|
||||
db
|
||||
.select({ value: countDistinct(s.problemId) })
|
||||
.from(s)
|
||||
@@ -94,6 +99,7 @@ mascotRoutes.get('/mascot/profile', requireAuth, async (c) => {
|
||||
|
||||
return success(c, {
|
||||
pokes: pokes[0]?.value ?? 0,
|
||||
solved: solved[0]?.value ?? 0,
|
||||
todaySolved: today[0]?.value ?? 0,
|
||||
tooHard: tooHard[0]?.value ?? 0,
|
||||
week: {
|
||||
|
||||
Reference in new issue
Block a user