import requests
import time
import  json
import random
import cProfile

from test.test_all import response_call


def getinformation_t (url,class_name,file_path):
    with open(file_path, 'rb') as f:
        file = {'file': f}
        data = {'class_name': class_name}
        response = requests.post(url, files=file, data=data)
        print(response.text)

def call_students_t (url,data_call):
    response_call = requests.post(url, data=data_call)
    print(response_call.text)
    return response_call

def updatetable_t (url,data_update):
    response_update = requests.post(url, data=data_update)
    print(response_update.text)

def show_information_t (url,data_show):
    response_show = requests.post(url, data=data_show)
    print(response_show.text)

def main ():
    #一、导入2个班级
    url = 'http://127.0.0.1:8000/get/information/'
    class_name1 = '嵌入式系统'
    file_path1 = 'C:/Users/Lenovo/Desktop/嵌入式系统.xlsx'
    getinformation_t(url,class_name1,file_path1)

    class_name2 = '软件工程'
    file_path2 = 'C:/Users/Lenovo/Desktop/软工学生名单.xlsx'
    getinformation_t(url,class_name2,file_path2)

    #课前点名，举例3个
    url_call = 'http://127.0.0.1:8000/call/students/'  # 确保 URL 正确
    data_call = {
        'class_name': '软件工程',
        'num': 3,
        'mode': 1  # 点名使用正常模式
    }
    response_call = call_students_t(url_call,data_call)
    res = response_call.json()
    result = res.get('result', {})
    url_update = 'http://127.0.0.1:8000/update/table/'
    # 有到加1分，没到扣一分
    for name, student_id in result.items():
        print(student_id)
        point = random.choice([1, -1])
        data_update = {
            'point': point,
            'class_name': '软件工程',
            'sid': student_id,
            'style': 1
        }
        updatetable_t(url_update,data_update)
    # 三、上课提问，一个一个提问，问了之后直接加分,选择三五成群的模式，提问完直接加分，提问3次
    i = 0
    while i < 3:
        data_call = {
            'class_name': '软件工程',
            'num': 1,
            'mode': 3
        }
        response_call1 = call_students_t(url_call, data_call)
        res = response_call1.json()
        result = res.get('result', {})
        student_ids = list(result.values())
        if not student_ids:
            continue
        i += 1
        student_id = student_ids[0]
        data_update = {
            'point': 6,
            'class_name': '软件工程',
            'sid': student_id,
            'style': 1
        }
        updatetable_t(url_update, data_update)

    #四、课堂主动回答问题
    data_update = {
        'point': 6,
        'class_name': '软件工程',
        'sid': 102201203,
        'style': 1
    }
    updatetable_t(url_update, data_update)
    data_update = {
        'point': 2,
        'class_name': '软件工程',
        'sid': 102201216,
        'style': 1
    }
    updatetable_t(url_update, data_update)

    #五、教师查看2(#`O′)学生的排名
    url_show = 'http://127.0.0.1:8000/show/information/'
    data_show = {
        'order': 1,
        'class_name': '软件工程',
        'sid': 102201539,
    }
    show_information_t(url_show,data_show)
    data = {
        'order': 1,
        'class_name': '软件工程',
        'sid': 102201529,
    }
    show_information_t(url_show,data)

if __name__ == '__main__':
    #cProfile.run('main()','test_total0.txt')
    main()









