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'修改成功!')
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()
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
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
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