123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- """
- 功能:调用云平台rpc服务
- 版本:v1.0
- 作者:pengchen
- """
- import config
- import requests
- import time
- import hashlib
- import logger
- def queryExamValidRecordData(courseId,pageNo):
- """
- 获取全部考生的阅卷信息
- 获取成功返回具体信息,失败则返回None
- """
- #logger.info("start to get %s course valid record"%(str(courseId)))
- url=config.oedomain+"api/core/oe/admin/examRecordForMarking/queryValidExamRecordInfoPage"
- data = {
- "examId": config.examId,
- "courseId": courseId,
- "start": pageNo,
- "size":200
- }
- headers = createRpcheader("4","OE")
- result = requests.post(url, headers=headers,json=data)
- if result.status_code==200:
- #logger.info("get %s course valid record success" % (str(courseId)))
- return result.json()
- else:
- #logger.error("get %s course valid record failed" % (str(courseId)))
- return None
- def getQuestion(questionId,courseCode,paperType):
- """
- 获取question详细信息
- """
- #logger.info("start to get course %s,quesionid is %s question info" % (courseCode,str(questionId)))
- url = config.questiondomain + "api/core/questions/extract_config/getQuestion"
- headers = createRpcheader("3", "Q")
- data = {
- "examId": config.examId,
- "courseCode": courseCode,
- "groupCode": paperType,
- "questionId": questionId
- }
- result = requests.post(url, headers=headers,json=data)
- if result.status_code == 200:
- #logger.info("get course %s,quesionid is %s question info success" % (courseCode,str(questionId)))
- return result.json()
- else:
- #logger.error("get course %s,quesionid is %s question info failed" % (courseCode,str(questionId)))
- return None
- def getCourse(courseId):
- """
- 获取课程详细信息
- """
- url=config.basedomain+"api/core/basic/course/getCoursesByIdList"
- headers =createRpcheader("1","B")
- data={
- "courseIdList":[courseId]
- }
- result = requests.post(
- url, headers=headers,json=data)
- if result.status_code == 200:
- #logger.info("get %s course detail info success" % (str(courseId)))
- return result.json()
- else:
- #logger.error("get %s course detail info failed" % (str(courseId)))
- return None
- def createRpcheader(appid,appcode):
- secretkey = "123456"
- t = time.time()
- secretstr = ''.join([appid, appcode, str(int(round(t * 1000))), secretkey])
- accssToken = hashlib.sha256(secretstr.encode("utf-8")).hexdigest()
- headers = {
- "App-Id": appid,
- "App-Code": appcode,
- "Trace-Id": "1222222",
- "Access-Token": accssToken,
- "timestamp": str(int(round(t * 1000)))
- }
- return headers
- def querySubjectInfo(examRecordDataId):
- """
- 根据考试记录id,获取考试记录所有主观题学生作答
- paperId:
- paperType:
- courseCode:
- """
- url=config.oedomain+"api/core/oe/admin/examRecordQuestions/querySubjectiveAnswerList"
- headers=createRpcheader("4","OE")
- data={
- "examRecordDataId":examRecordDataId
- }
- result = requests.post(url, headers=headers,json=data)
- if result.status_code == 200:
- #logger.info("get examrecordid %s subject info success" % (str(examRecordDataId)))
- return result.json()
- else:
- logger.error("get examrecordid %s subject info failed" % (str(examRecordDataId)))
- return None
- def queryExamMarkingInfo():
- """
- 获取阅卷科目信息
- """
- url=config.oedomain+"api/core/oe/admin/examRecordForMarking/findExamRecordForMarkingInfo"
- data = {
- "examId": config.examId,
- "courseId": "",
- "batchNum": ""
- }
- headers=createRpcheader("4","OE")
- result = requests.post(url, headers=headers,json=data)
- if result.status_code == 200:
- #logger.info("get examid %s formarking info success" % (str(config.examId)))
- return result.json()
- else:
- #logger.error("get examid %s formarking info failed" % (str(config.examId)))
- return None
- def queryPaperStruct(courseCode,groupCode,paperId,courseName):
- url = config.questiondomain + "api/core/questions/extract_config/getPaper"
- data = {
- "examId": config.examId,
- "courseCode": courseCode,
- "groupCode": groupCode,
- "paperId": paperId
- }
- headers = createRpcheader("3", "Q")
- result = requests.post(url, headers=headers, json=data)
- if result.status_code == 200:
- #logger.info("get courseName %s,coursecode %s ,papertype %s,paperId is %s success" % (courseName,courseCode,groupCode,paperId))
- return result.json()
- else:
- logger.error("get courseName %s,coursecode %s ,papertype %s,paperId is %s failed" % (courseName,courseCode,groupCode,paperId))
- return None
- def queryExamStudent(examstudentid):
- url=config.examworkdomain+"api/core/examwork/examStudent/getExamStudent"
- headers = createRpcheader("2", "E")
- data={
- "rootOrgId":config.rootOrgId,
- "examStudentId":examstudentid,
- }
- result = requests.post(
- url, headers=headers,
- json=data)
- if result.status_code==200:
- examstudent=result.json()["examStudentBean"]
- return examstudent
- else:
- logger.info(("query examstudent %s failed")%(str(examstudentid)))
- return None
|