def METHOD_NAME(user: User) -> None:
    '''
    解锁成就 包含五育并举与学时相关的成就的判断
    这个不太清楚怎么调用合适 是专门写一个command(个人倾向) 还是写在view的homepage里面？
    :param user: 要查询的用户
    :type user: User
    '''
    records = CourseRecord.objects.filter(
        person__person_id=user, invalid=False)
    if not records:
        return
    # 统计有效学时
    total_hours = records.aggregate(
        total_hours=Sum('total_hours'))['total_hours']
    # 解锁成就
    _unlock_by_value(user, total_hours, [
        (32, '完成一半书院学分要求'),
        (64, '完成全部书院学分要求'),
        (96, '超额完成一半书院学分要求'),
        (128, '超额完成一倍书院学分要求'),
    ])
    # 德智体美劳检验
    course_types = set(records.values_list('course__type', flat=True))
    COURSE_DICT = {
        Course.CourseType.MORAL: '德育',
        Course.CourseType.INTELLECTUAL: '智育',
        Course.CourseType.PHYSICAL: '体育',
        Course.CourseType.AESTHETICS: '美育',
        Course.CourseType.LABOUR: '劳动教育',
    }
    for course_type in course_types:
        unlock_achievement(user, '首次修习' + COURSE_DICT[course_type] + '课程')