ExamRegistrationController.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.keao.edu.user.controller;
  2. import com.keao.edu.auth.api.client.SysUserFeignService;
  3. import com.keao.edu.auth.api.entity.SysUser;
  4. import com.keao.edu.common.controller.BaseController;
  5. import com.keao.edu.common.entity.HttpResponseResult;
  6. import com.keao.edu.common.page.PageInfo;
  7. import com.keao.edu.common.page.QueryInfo;
  8. import com.keao.edu.thirdparty.ocr.Ocr;
  9. import com.keao.edu.user.dto.*;
  10. import com.keao.edu.user.entity.Employee;
  11. import com.keao.edu.user.entity.ExamRegistration;
  12. import com.keao.edu.user.enums.StudentRegistrationStatusEnum;
  13. import com.keao.edu.user.page.ApplyListQueryInfo;
  14. import com.keao.edu.user.page.ExamRecordQueryInfo;
  15. import com.keao.edu.user.page.ExamRegistrationQueryInfo;
  16. import com.keao.edu.user.service.EmployeeService;
  17. import com.keao.edu.user.service.ExamRegistrationService;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiImplicitParam;
  20. import io.swagger.annotations.ApiImplicitParams;
  21. import io.swagger.annotations.ApiOperation;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.security.access.prepost.PreAuthorize;
  24. import org.springframework.web.bind.annotation.*;
  25. import org.springframework.web.multipart.MultipartFile;
  26. import java.io.IOException;
  27. import java.util.Objects;
  28. /**
  29. * @Author Joburgess
  30. * @Date 2020.06.23
  31. */
  32. @RestController
  33. @Api(tags = "学员报名服务")
  34. @RequestMapping(value = "examRegistration")
  35. public class ExamRegistrationController extends BaseController {
  36. @Autowired
  37. private ExamRegistrationService examRegistrationService;
  38. @Autowired
  39. private SysUserFeignService sysUserFeignService;
  40. @Autowired
  41. private EmployeeService employeeService;
  42. @ApiOperation(value = "学员报名记录查询")
  43. @GetMapping(value = "list")
  44. @PreAuthorize("@pcs.hasPermissions('examRegistration/list')")
  45. public HttpResponseResult<PageInfo<ExamRegistrationRoomDto>> list(ExamRegistrationQueryInfo queryInfo) {
  46. SysUser sysUser = sysUserFeignService.queryUserInfo();
  47. if (!sysUser.getIsSuperAdmin() && Objects.isNull(queryInfo.getOrganId())) {
  48. Employee employee = employeeService.get(sysUser.getId());
  49. if(Objects.isNull(employee)){
  50. return failed("用户信息异常");
  51. }
  52. queryInfo.setOrganId(employee.getOrganId());
  53. }else if(sysUser.getIsSuperAdmin()){
  54. queryInfo.setOrganId(null);
  55. }
  56. if(Objects.nonNull(queryInfo.getOrganizationId())){
  57. queryInfo.setOrganId(queryInfo.getOrganizationId());
  58. }
  59. return succeed(examRegistrationService.queryExamRegistrationStudents(queryInfo));
  60. }
  61. @ApiOperation(value = "学生端学员报名记录查询")
  62. @GetMapping(value = "applyList")
  63. public HttpResponseResult<PageInfo<ExamRegistrationDto>> applyList(ApplyListQueryInfo queryInfo) {
  64. return succeed(examRegistrationService.applyList(queryInfo));
  65. }
  66. @ApiOperation(value = "学生端考级曲库考试列表")
  67. @GetMapping(value = "studentBaseExams")
  68. public HttpResponseResult<PageInfo<StudentBaseExamsDto>> studentBaseExams(QueryInfo queryInfo) {
  69. return succeed(examRegistrationService.studentBaseExams(queryInfo));
  70. }
  71. @ApiOperation(value = "学生端获取学员考试记录")
  72. @GetMapping(value = "examList")
  73. public HttpResponseResult<PageInfo<StudentExamListDto>> examList(ExamRecordQueryInfo queryInfo) {
  74. SysUser sysUser = sysUserFeignService.queryUserInfo();
  75. queryInfo.setStudentId(sysUser.getId());
  76. return succeed(examRegistrationService.examList(queryInfo));
  77. }
  78. @ApiOperation(value = "更新学员报名状态")
  79. @PostMapping(value = "updateExamRegistrationStatus")
  80. @PreAuthorize("@pcs.hasPermissions('examRegistration/updateExamREgistrationStatus')")
  81. public HttpResponseResult updateExamRegistrationStatus(Long registId, StudentRegistrationStatusEnum status, String memo){
  82. examRegistrationService.updateExamRegistrationStatus(registId, status, memo);
  83. return succeed();
  84. }
  85. @ApiOperation(value = "修改学员报名信息")
  86. @PostMapping(value = "update")
  87. public HttpResponseResult update(@RequestBody ExamRegistration examRegistration) {
  88. SysUser sysUser = sysUserFeignService.queryUserInfo();
  89. if(Objects.isNull(sysUser)){
  90. return failed("用户信息异常");
  91. }
  92. examRegistration.setStudentId(sysUser.getId());
  93. examRegistrationService.updateExamRegistration(examRegistration);
  94. return succeed();
  95. }
  96. @ApiOperation(value = "报名")
  97. @PostMapping(value = "add")
  98. public HttpResponseResult add(@RequestBody ExamRegistration examRegistration) throws Exception {
  99. SysUser student = sysUserFeignService.queryUserInfo();
  100. examRegistration.setStudentId(student.getId());
  101. return succeed(examRegistrationService.addRegistration(examRegistration));
  102. }
  103. @ApiOperation(value = "获取招生统计信息")
  104. @GetMapping(value = "getExamRegistrationStaticsInfo")
  105. @PreAuthorize("@pcs.hasPermissions('examRegistration/getExamRegistrationStaticsInfo')")
  106. public HttpResponseResult<ExamRegistrationStatisticsDto> getExamRegistrationStaticsInfo(Integer examId) {
  107. SysUser sysUser = sysUserFeignService.queryUserInfo();
  108. Integer organId=null;
  109. if(!sysUser.getIsSuperAdmin()){
  110. Employee employee = employeeService.get(sysUser.getId());
  111. if(Objects.isNull(employee)){
  112. return failed("用户信息异常");
  113. }
  114. organId=employee.getOrganId();
  115. }
  116. return succeed(examRegistrationService.getExamRegistrationStaticsInfo(organId, examId));
  117. }
  118. @ApiOperation(value = "ocr")
  119. @PostMapping(value = "ocr")
  120. @ApiImplicitParams({@ApiImplicitParam(name = "file", value = "身份证图片", required = true, dataType = "file"),
  121. @ApiImplicitParam(name = "idCardSide", value = "身份证(front-人像面 back-国徽面)", required = true, dataType = "String")})
  122. public HttpResponseResult ocr(@RequestParam("file") MultipartFile file, String idCardSide) throws IOException {
  123. return succeed(Ocr.idcard(file, idCardSide));
  124. }
  125. @ApiOperation(value = "获取报名信息(报名)")
  126. @GetMapping(value = "getExamRegistration")
  127. @ApiImplicitParams({@ApiImplicitParam(name = "examRegistrationId", value = "报名id", required = true, dataType = "int")})
  128. public HttpResponseResult<ExamRegistrationDto> getExamRegistration(Long examRegistrationId) {
  129. return succeed(examRegistrationService.getExamRegistration(examRegistrationId));
  130. }
  131. @ApiOperation(value = "重新支付(报名用)")
  132. @PostMapping(value = "repay")
  133. public HttpResponseResult repay(@RequestParam String orderNo) throws Exception {
  134. SysUser student = sysUserFeignService.queryUserInfo();
  135. return succeed(examRegistrationService.repay(student.getId(), orderNo));
  136. }
  137. }