ftmarkingcloudInf.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. """
  2. 云阅卷接口
  3. """
  4. import config
  5. import requests
  6. import logger
  7. import os
  8. import bs4
  9. class ftmarkingcloudInf():
  10. def __init__(self):
  11. self.session = requests.session()
  12. self.header = {
  13. "auth-info": "loginname=" + config.user_name + ";password=" + config.password,
  14. }
  15. self.login()
  16. def login(self):
  17. url = config.domain + "login"
  18. data = {
  19. "loginType": "admin-login",
  20. "loginName": config.user_name,
  21. "password": config.password
  22. }
  23. result = self.session.post(url, data=data)
  24. logger.info("login server" + str(result.status_code))
  25. def selectExam(self):
  26. url = config.domain + "admin/exam/select/"
  27. logger.info("select exam " + url)
  28. data = {
  29. "examId": str(config.examId)
  30. }
  31. result = self.session.post(url, data=data)
  32. logger.info("select exam" + str(result.status_code))
  33. def importStudent(self):
  34. url = config.domain + "admin/exam/student/import"
  35. upfile = {'file': open(str(config.examId) + os.sep + "student.xlsx", 'rb')}
  36. result = self.session.post(url, files=upfile)
  37. logger.info("upload student data" + str(result.status_code))
  38. def importObjectivePaper(self):
  39. url = config.domain + "admin/exam/paper/import"
  40. data = {
  41. "objective": True
  42. }
  43. upfile = {'file': open(str(config.examId) + os.sep + "object.xlsx", 'rb')}
  44. result = self.session.post(url, data=data, files=upfile)
  45. logger.info("upload objective data" + str(result.status_code))
  46. def importSubjectivePaper(self):
  47. url = config.domain + "admin/exam/paper/import"
  48. data = {
  49. "objective": False
  50. }
  51. upfile = {'file': open(str(config.examId) + os.sep + "subjective.xlsx", 'rb')}
  52. result = self.session.post(url, data=data, files=upfile)
  53. logger.info("upload subjective data" + str(result.status_code))
  54. def queryStudent(self, examnumber):
  55. url = config.domain + "admin/exam/student"
  56. examstudentdata = {
  57. "pageNumber": 1,
  58. "pageSize": 10,
  59. "name": "",
  60. "examNumber": examnumber,
  61. "secretNumber": "",
  62. "studentCode": "",
  63. "subjectCode": "",
  64. "subjectLevel": "",
  65. "subjectCategory": "",
  66. "upload": "",
  67. "absent": "",
  68. "breach": "",
  69. "manualAbsent": "",
  70. "packageCode": "",
  71. "batchCode": ""
  72. }
  73. result = self.session.post(url, data=examstudentdata, headers=self.header)
  74. bsoup=bs4.BeautifulSoup(result.text,'html.parser')
  75. data=bsoup.select("#contentTable > tbody > tr")
  76. student_check_data={
  77. "examNumber":data[0].select("td")[0].text,
  78. "secrectNumber":data[0].select("td")[1].text
  79. }
  80. return student_check_data
  81. def scanstudent(self, studentdata):
  82. url = config.domain + "api/scan/student/" + str(config.examId)
  83. result = self.session.post(url, json=[studentdata], headers=self.header)
  84. if result.status_code == 200:
  85. logger.info(str(studentdata["examNumber"]) + "upload success")
  86. else:
  87. logger.error(str(studentdata["examNumber"]) + "upload false")
  88. def batchcreateMarker(self, count, subject_code):
  89. url = config.domain + "admin/exam/marker/batch-create"
  90. data = {
  91. "subjectCode": subject_code,
  92. "groupNumber": 0,
  93. "count": count,
  94. "password": "1234"
  95. }
  96. result = self.session.post(url, data=data, headers=self.header)
  97. if result.status_code == 200:
  98. logger.info(str(subject_code) + "batch create marker success")
  99. else:
  100. logger.error(str(subject_code) + "batch create marker false")
  101. #
  102. # inf=gxmarkingcloudInf()
  103. # inf.scanstudent("19000001")