cloudservice.py 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. """
  2. 功能:调用云平台rpc服务
  3. 版本:v1.0
  4. 作者:pengchen
  5. """
  6. import config
  7. import requests
  8. import time
  9. import hashlib
  10. import logger
  11. def queryExamValidRecordData(courseId,pageNo):
  12. """
  13. 获取全部考生的阅卷信息
  14. 获取成功返回具体信息,失败则返回None
  15. """
  16. #logger.info("start to get %s course valid record"%(str(courseId)))
  17. url=config.oedomain+"api/core/oe/admin/examRecordForMarking/queryValidExamRecordInfoPage"
  18. data = {
  19. "examId": config.examId,
  20. "courseId": courseId,
  21. "start": pageNo,
  22. "size":200
  23. }
  24. headers = createRpcheader("4","OE")
  25. result = requests.post(url, headers=headers,json=data)
  26. if result.status_code==200:
  27. #logger.info("get %s course valid record success" % (str(courseId)))
  28. return result.json()
  29. else:
  30. #logger.error("get %s course valid record failed" % (str(courseId)))
  31. return None
  32. def getQuestion(questionId,courseCode,paperType):
  33. """
  34. 获取question详细信息
  35. """
  36. #logger.info("start to get course %s,quesionid is %s question info" % (courseCode,str(questionId)))
  37. url = config.questiondomain + "api/core/questions/extract_config/getQuestion"
  38. headers = createRpcheader("3", "Q")
  39. data = {
  40. "examId": config.examId,
  41. "courseCode": courseCode,
  42. "groupCode": paperType,
  43. "questionId": questionId
  44. }
  45. result = requests.post(url, headers=headers,json=data)
  46. if result.status_code == 200:
  47. #logger.info("get course %s,quesionid is %s question info success" % (courseCode,str(questionId)))
  48. return result.json()
  49. else:
  50. #logger.error("get course %s,quesionid is %s question info failed" % (courseCode,str(questionId)))
  51. return None
  52. def getCourse(courseId):
  53. """
  54. 获取课程详细信息
  55. """
  56. url=config.basedomain+"api/core/basic/course/getCoursesByIdList"
  57. headers =createRpcheader("1","B")
  58. data={
  59. "courseIdList":[courseId]
  60. }
  61. result = requests.post(
  62. url, headers=headers,json=data)
  63. if result.status_code == 200:
  64. #logger.info("get %s course detail info success" % (str(courseId)))
  65. return result.json()
  66. else:
  67. #logger.error("get %s course detail info failed" % (str(courseId)))
  68. return None
  69. def createRpcheader(appid,appcode):
  70. secretkey = "123456"
  71. t = time.time()
  72. secretstr = ''.join([appid, appcode, str(int(round(t * 1000))), secretkey])
  73. accssToken = hashlib.sha256(secretstr.encode("utf-8")).hexdigest()
  74. headers = {
  75. "App-Id": appid,
  76. "App-Code": appcode,
  77. "Trace-Id": "1222222",
  78. "Access-Token": accssToken,
  79. "timestamp": str(int(round(t * 1000)))
  80. }
  81. return headers
  82. def querySubjectInfo(examRecordDataId):
  83. """
  84. 根据考试记录id,获取考试记录所有主观题学生作答
  85. paperId:
  86. paperType:
  87. courseCode:
  88. """
  89. url=config.oedomain+"api/core/oe/admin/examRecordQuestions/querySubjectiveAnswerList"
  90. headers=createRpcheader("4","OE")
  91. data={
  92. "examRecordDataId":examRecordDataId
  93. }
  94. result = requests.post(url, headers=headers,json=data)
  95. if result.status_code == 200:
  96. #logger.info("get examrecordid %s subject info success" % (str(examRecordDataId)))
  97. return result.json()
  98. else:
  99. logger.error("get examrecordid %s subject info failed" % (str(examRecordDataId)))
  100. return None
  101. def queryExamMarkingInfo():
  102. """
  103. 获取阅卷科目信息
  104. """
  105. url=config.oedomain+"api/core/oe/admin/examRecordForMarking/findExamRecordForMarkingInfo"
  106. data = {
  107. "examId": config.examId,
  108. "courseId": "",
  109. "batchNum": ""
  110. }
  111. headers=createRpcheader("4","OE")
  112. result = requests.post(url, headers=headers,json=data)
  113. if result.status_code == 200:
  114. #logger.info("get examid %s formarking info success" % (str(config.examId)))
  115. return result.json()
  116. else:
  117. #logger.error("get examid %s formarking info failed" % (str(config.examId)))
  118. return None
  119. def queryPaperStruct(courseCode,groupCode,paperId,courseName):
  120. url = config.questiondomain + "api/core/questions/extract_config/getPaper"
  121. data = {
  122. "examId": config.examId,
  123. "courseCode": courseCode,
  124. "groupCode": groupCode,
  125. "paperId": paperId
  126. }
  127. headers = createRpcheader("3", "Q")
  128. result = requests.post(url, headers=headers, json=data)
  129. if result.status_code == 200:
  130. #logger.info("get courseName %s,coursecode %s ,papertype %s,paperId is %s success" % (courseName,courseCode,groupCode,paperId))
  131. return result.json()
  132. else:
  133. logger.error("get courseName %s,coursecode %s ,papertype %s,paperId is %s failed" % (courseName,courseCode,groupCode,paperId))
  134. return None
  135. def queryExamStudent(examstudentid):
  136. url=config.examworkdomain+"api/core/examwork/examStudent/getExamStudent"
  137. headers = createRpcheader("2", "E")
  138. data={
  139. "rootOrgId":config.rootOrgId,
  140. "examStudentId":examstudentid,
  141. }
  142. result = requests.post(
  143. url, headers=headers,
  144. json=data)
  145. if result.status_code==200:
  146. examstudent=result.json()["examStudentBean"]
  147. return examstudent
  148. else:
  149. logger.info(("query examstudent %s failed")%(str(examstudentid)))
  150. return None