achievement.utils module¶
成就系统 API - 处理用户触发成就 - 后台批量添加成就
- achievement.utils.bulk_add_achievement_record(users: QuerySet, achievement: Achievement)[源代码]¶
批量添加成就解锁记录 若已解锁则不添加 按需发布通知与发放元气值奖励
Args: - users (QuerySet[User]): 待更改User的QuerySet - achievement (Achievement): 需添加的成就
Returns: - bool: 是否成功添加
警告
本函数保证原子化,且保证并行安全性,但后者实现存在风险
- achievement.utils.get_students_by_grade(grade: int) QuerySet [源代码]¶
传入目标入学年份数,返回满足的、未毕业的学生User列表。 示例:今年是2023年,我希望返回入学第二年的user,即查找username前两位为22的user 仅限秋季学期开始后使用。
- achievement.utils.get_students_without_credit_record(start_date: date, end_date: date) QuerySet [源代码]¶
获取一段时间内没有扣分记录的在读同学
Args: - start_date: 查询起始时间 - end_date: 查询结束时间
Returns: - QuerySet[User]: 没有扣分记录的在读同学
- achievement.utils.trigger_achievement(user: User, achievement: Achievement)[源代码]¶
处理用户触发成就,添加单个解锁记录 若已解锁则不添加 按需发布通知与发放元气值奖励
Args: - user (User): 触发该成就的用户 - achievement (Achievement): 该成就
Returns: - bool: 是否成功解锁
警告
本函数保证原子化,且保证并行安全性,但后者实现存在风险