Example #1
0
def exp(request):
    """修改经验"""
    type = request.GET.get('type', '000')  # 类型加经验1100
    exp = int(request.GET.get('value', '0'))  # 当前经验
    p_id = int(request.GET.get('p_id'))
    uid = request.uid
    add_exp = int(type[1:])  # 需要添加或者减少的经验

    value = add_exp if int(type[0]) == 1 else -add_exp if int(type[0]) == 2 else 0
    if int(type[0]) == 2:
        if exp <= add_exp:
            value = exp if int(type[0]) == 1 else -exp
    db_name,mark = get_db_name(p_id)
    sql = """UPDATE {mark}user_extend SET exp=exp+{value} WHERE user_id = {uid}""".format(value=value, uid=uid,mark=mark)
    try:
        conn_db(db_name, sql, 57)
    except:
        return ajax(status=-1, message=u'修改失败,可能因为改项目不符合基本业务需求')
    honer, level = exp_to_grade(exp + value)
    data = dict(
        status=1,
        exp=exp + value,
        level=level,
        honer=honer,
        last=u'+%s' % add_exp if int(type[0]) == 1 else u'-%s' % add_exp
    )
    return ajax(data=data, message=u'修改成功!')
Example #2
0
def dudao(request):
    """
    127.0.0.1:8000/update/dudao?project_id=13?type=1
    :param request:
    :return:
    """
    uid = request.uid
    username = User.objects.filter(pk=uid).last().username[2:] if request.vue else request.user.username[2:]
    project_id = int(request.GET.get('project_id', '0'))
    if request.vue:
        type = int(request.GET.get('lx', '0'))
    else:
        type = int(request.GET.get('type', '0'))    # 获得资格和取消资格
    status = 1 if type == 1 else 0
    if not TeacherProject.objects.filter(user_id=uid, project_id=project_id, status=1).exists():
        TeacherProject.objects.create(teacher_id=54,user_id=uid,project_id=project_id,status=1,trained=0,trained_time=datetime.datetime.now())
        return ajax(status=-1,message=u'请先再业务后台获取该科目的督导资格!')

    TeacherProject.objects.filter(user_id=uid, project_id=project_id, status=1).update(trained=status)

    # print('\t获取督导资格成功!')
    sql = "select id from auth_user where username like'%{username}%'".format(username=username)
    user_id = fetchall_to_many('yh_edu', sql, 57, fetch_one=True)[0]
    sql_1 = "update employee_role set trained={status} where role_id=202 " \
            "and  employee_id=(select id from employee where user_id={user_id})".format(user_id=user_id, status=1)
    conn_db('yh_edu', sql_1, 57)
    # print('\t完成全部培训!')

    time1 = time.strftime('%m/%d %H:%M:%S', time.localtime(int(time.time())))
    name = Project.objects.filter(pk=project_id).last().name
    main = u'您于%s%s了教师端%s督导资格----2' % (time1, u'获取' if type==1 else u'取消',name)
    Clear.objects.create(uid=uid, explain=main, type=2, add_time=int(time.time()),p_id=project_id)
    return ajax()
Example #3
0
def clear_catalog(p_id, uid, cid, lid, user_book_id):
    """"""
    db_name, mark = get_db_name(p_id)
    info = get_test(p_id, uid, user_book_id)
    if not info:
        return 0
    id = int(info.get('id'))

    # 更新test表中字段
    sql_1 = """UPDATE {mark}test SET user_id=user_id+{n},user_book_id=user_book_id+{n},id=id+{n} WHERE id={id} AND user_book_id={user_book_id}""".format(
        id=id, n=n, user_book_id=user_book_id, mark=mark)
    conn_db(db_name, sql_1, 57)
    # 更新关卡关联的所有关卡记录
    try:
        sql_2 = """UPDATE {mark}knowledge_study SET id=id+{n},test_id=test_id+{n} WHERE test_id={id}; 
                  UPDATE {mark}method_study SET id=id+{n},test_id=test_id+{n} WHERE test_id={id};
                  UPDATE {mark}example_study SET id=id+{n},test_id=test_id+{n} WHERE test_id={id};
                  UPDATE {mark}apply_test SET id=id+{n},test_id=test_id+{n} WHERE test_id={id};
            """.format(id=id, n=n, mark=mark)
        conn_db(db_name, sql_2, 57, many=True)
    except:
        pass
    now = int(time.time())
    time1 = time.strftime('%m/%d %H:%M:%S', time.localtime(now))
    main = u'您于%s清除了%s课时全部的数据--2' % (time1, cid)
    Clear.objects.create(uid=uid,
                         p_id=p_id,
                         c_id=cid,
                         l_id=lid,
                         explain=main,
                         add_time=now)
    return 1
Example #4
0
def clear_level(p_id, uid, cid, lid, user_book_id):
    """
    清除当前关卡--逻辑说明:
    更改test表中level_id字段,update_time字段,position 删除该关卡对应的具体详情表中的数据
    """
    db_name, mark = get_db_name(p_id)
    info = get_test(p_id, uid, user_book_id)

    id = int(info.get('id'))
    l_id = lid - 1 if lid > 1 else 1
    level_status = 0 if int(info.get('level_status')) == 1 else 0
    clear_time = 0 if level_status == 0 else info.get('clear_time')
    update_time = int(time.time())
    data = json.loads(info.get('s_json_data'))
    n_lid = [l for l in range(lid, lid + 10) if 'lv_%s' % l in data.keys()]
    for o in n_lid:
        del data['lv_%s' % o]
    try:
        # 更新test表中字段
        sql_1 = """UPDATE {mark}test SET level_id={lid},level_status={status},position=0,
                    update_time={now},clear_time={clear_time},s_json_data='{data}' WHERE id={id}""".format(
            lid=l_id,
            status=level_status,
            now=update_time,
            id=id,
            clear_time=clear_time,
            data=str(json.dumps(data)),
            mark=mark)
        conn_db(db_name, sql_1, 57)
        sql_2 = get_level_sql(id, lid, mark)
        conn_db(db_name, sql_2, 57)

        time1 = time.strftime('%m/%d %H:%M:%S', time.localtime(update_time))
        main = u'您于%s清除了%s课时%s关的数据--1' % (time1, cid, lid)
        Clear.objects.create(uid=uid,
                             p_id=p_id,
                             c_id=cid,
                             l_id=lid,
                             explain=main,
                             add_time=update_time)
        return 1
    except:
        return 0
Example #5
0
def clear_all(p_id, uid, c_id, l_id, user_book_id):
    """
    清除所有数据
    优先清除外键数据 最后清理test数据   只清除逻辑数据
    1 analysis analysis_statistics personalise personalise_status  先2后1
        update analysis_statistics set id=id+1000000,analysis_id=analysis_id+1000000 where analysis_id=(select id from analysis where user_id=2969 and user_book_id=22341)
        update analysis set id=id+1000000,user_id=user_id+1000000,user_book_id=user_book_id+1000000 where user_id=2969 and user_book_id=22341
        update personalise_status set id=id+1000000,analysis_id=analysis_id+1000000 where analysis_id=(select id from personalise where user_id=2969 and user_book_id=22341)
        update personalise set id=id+1000000,user_id=user_id+1000000,user_book_id=user_book_id+1000000 where user_id=2969 and user_book_id=22341
    2 knowledge_study method_study example_study appele_test
        UPDATE knowledge_study SET id=id+1000000,test_id=test_id+1000000 WHERE test_id in (select id from test where user_id=2969 and user_book_id=22341);
        UPDATE method_study SET id=id+1000000,test_id=test_id+1000000 WHERE test_id in (select id from test where user_id=2969 and user_book_id=22341);
        UPDATE example_study SET id=id+1000000,test_id=test_id+1000000 WHERE test_id in (select id from test where user_id=2969 and user_book_id=22341);
        UPDATE apply_test SET id=id+1000000,test_id=test_id+1000000 WHERE test_id in (select id from test where user_id=2969 and user_book_id=22341);
    3 mystic user_current_catalog user_extend weak
        update mystic set id=id+1000000,user_id=user_id+1000000,user_book_id=user_book_id+1000000 where user_id=2969 and user_book_id=22341;
        update user_current_catalog set id=id+1000000,user_id=user_id+1000000,user_book_id=user_book_id+1000000 where user_id=2969 and user_book_id=22341;
        update user_extend set id=id+1000000,user_id=user_id+1000000 where user_id=2969;
        update weak set id=id+1000000,uid=uid+1000000 where uid=2969;
    4 attendance_detail user_communication test
        update user_communication set id=id+1000000,stu_id=stu_id+1000000 where stu_id=stu_id and attendance_detail_id in (select id from attendance_detail where user_id=2969 and user_book_id=22341)
        update attendance_detail set id=id+1000000,user_id=user_id+1000000,user_book_id=user_book_id+1000000 where user_id=2969 and user_book_id=22341;
        UPDATE test SET id=id+1000000,user_id=user_id+1000000,user_book_id=user_book_id+1000000 WHERE id=2969 AND user_book_id=22341
    """
    db_name, mark = get_db_name(p_id)
    # ************清除所有关卡数据
    sql1 = """select id from {mark}test where user_id={user_id} and user_book_id={user_book_id}""".format(
        mark=mark, user_id=uid, user_book_id=user_book_id)
    tids = [int(o.get('id')) for o in fetchall_to_many(db_name, sql1, 57)]
    try:
        sql2 = """
            UPDATE {mark}knowledge_study SET id=id+{n},test_id=test_id+{n} WHERE test_id in ({tids});
            UPDATE {mark}method_study SET id=id+{n},test_id=test_id+{n} WHERE test_id in ({tids});
            UPDATE {mark}example_study SET id=id+{n},test_id=test_id+{n} WHERE test_id in ({tids});
            UPDATE {mark}apply_test SET id=id+{n},test_id=test_id+{n} WHERE test_id in ({tids});
        """.format(mark=mark, tids=','.join(map(str, tids)), n=n)
        conn_db(db_name, sql2, 57, many=True)
        time.sleep(0.5)
    except:
        pass
    # print('清除所有关卡数据')
    # ***********清除学情分析,个性化作业
    try:
        sql3 = """
            update {mark}analysis_statistics set id=id+{n},analysis_id=analysis_id+{n} where analysis_id in (select id from {mark}analysis where user_id={user_id} and user_book_id={user_book_id});
            update {mark}personalise_statistics set id=id+{n},personalise_id=personalise_id+{n} where personalise_id in (select id from {mark}personalise where user_id={user_id} and user_book_id={user_book_id});
        """.format(n=n, user_id=uid, user_book_id=user_book_id, mark=mark)
        conn_db(db_name, sql3, 57, many=True)
        time.sleep(0.5)
    except:
        pass
    print('清除学情分析,个性化作业')
    # ***********清除独立部分
    try:
        sql4 = """
            update {mark}mystic set id=id+{n},user_id=user_id+{n},user_book_id=user_book_id+{n} where user_id={user_id} and user_book_id={user_book_id};
            update {mark}user_current_catalog set id=id+{n},user_id=user_id+{n},user_book_id=user_book_id+{n} where user_id={user_id} and user_book_id={user_book_id};
            update {mark}user_extend set id=id+{n},user_id=user_id+{n} where user_id={user_id};
            update {mark}weak set id=id+{n},uid=uid+{n} where uid={user_id};
        """.format(n=n, user_id=uid, user_book_id=user_book_id, mark=mark)
        conn_db(db_name, sql4, 57, many=True)
        time.sleep(0.5)
    except:
        pass
    print('清除独立部分')
    # ************清除最后关联表
    try:
        sql5 = """
            update {mark}personalise set id=id+{n},user_id=user_id+{n},user_book_id=user_book_id+{n} where user_id={user_id} and user_book_id={user_book_id};
            update {mark}analysis set id=id+{n},user_id=user_id+{n},user_book_id=user_book_id+{n} where user_id={user_id} and user_book_id={user_book_id};
            update {mark}user_communication set id=id+{n},stu_id=stu_id+{n} where stu_id=stu_id and attendance_detail_id in (select id from attendance_detail where user_id={user_id} and user_book_id={user_book_id});
            update {mark}attendance_detail set id=id+{n},user_id=user_id+{n},user_book_id=user_book_id+{n} where user_id={user_id} and user_book_id={user_book_id};
            UPDATE {mark}test SET id=id+{n},user_id=user_id+{n},user_book_id=user_book_id+{n} WHERE user_id={user_id} AND user_book_id={user_book_id};
        """.format(n=n, user_id=uid, user_book_id=user_book_id, mark=mark)
        conn_db(db_name, sql5, 57, many=True)
        time.sleep(0.5)
    except:
        pass
    print('清除最后关联表')

    UserBook.objects.filter(pk=user_book_id).update(start_catalog_id=0,
                                                    last_catalog_id=0,
                                                    used_lesson_num=0)
    time1 = time.strftime('%m/%d %H:%M:%S', time.localtime(int(time.time())))
    main = u'您于%s恢复了出厂设置--4' % (time1)
    Clear.objects.create(uid=uid,
                         p_id=p_id,
                         c_id=0,
                         l_id=0,
                         explain=main,
                         add_time=int(time.time()))
    return 1