ExamRoomController.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.qmth.exam.reserve.controller.admin;
  2. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  3. import com.qmth.boot.api.annotation.Aac;
  4. import com.qmth.boot.api.constant.ApiConstant;
  5. import com.qmth.boot.core.collection.PageResult;
  6. import com.qmth.boot.core.exception.StatusException;
  7. import com.qmth.exam.reserve.bean.login.LoginUser;
  8. import com.qmth.exam.reserve.bean.room.ExamRoomReq;
  9. import com.qmth.exam.reserve.bean.room.ExamRoomSaveReq;
  10. import com.qmth.exam.reserve.bean.room.ExamRoomVO;
  11. import com.qmth.exam.reserve.controller.BaseController;
  12. import com.qmth.exam.reserve.entity.ExamRoomEntity;
  13. import com.qmth.exam.reserve.enums.Role;
  14. import com.qmth.exam.reserve.service.ExamRoomService;
  15. import com.qmth.exam.reserve.util.ResourceUtil;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import io.swagger.annotations.ApiParam;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import java.io.IOException;
  23. import java.util.HashMap;
  24. import java.util.List;
  25. import java.util.Map;
  26. @RestController
  27. @Api(tags = "【管理端】考场管理相关接口")
  28. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/room")
  29. @Aac(strict = false, auth = true)
  30. public class ExamRoomController extends BaseController {
  31. @Autowired
  32. private ExamRoomService examRoomService;
  33. @ApiOperation(value = "考场管理分页")
  34. @PostMapping(value = "/page")
  35. public PageResult<ExamRoomVO> page(@RequestBody ExamRoomReq req) {
  36. LoginUser user = curLoginUser();
  37. if (user.getRole().equals(Role.TEACHING)) {
  38. req.setTeachingId(user.getCategoryId());
  39. }
  40. return examRoomService.pageExamRoom(req);
  41. }
  42. @ApiOperation(value = "考场单个查询")
  43. @PostMapping(value = "/find")
  44. public ExamRoomEntity find(@RequestParam Long id) {
  45. return examRoomService.getById(id);
  46. }
  47. @ApiOperation(value = "考场新增/编辑")
  48. @PostMapping(value = "/save")
  49. public void save(@RequestBody ExamRoomSaveReq req) {
  50. LoginUser user = curLoginUser();
  51. examRoomService.saveExamRoom(user, req);
  52. }
  53. @ApiOperation(value = "考场启用/禁用")
  54. @PostMapping(value = "/enable")
  55. public void enable(@ApiParam("考场ID") @RequestParam Long id, @ApiParam("启用/禁用") @RequestParam Boolean enable) {
  56. examRoomService.enable(id, enable);
  57. }
  58. @ApiOperation(value = "考场模版下载")
  59. @PostMapping(value = "/import/template")
  60. public void download() {
  61. exportFile("考场模板.xlsx", ResourceUtil.getStream("templates/examRoom.xlsx"));
  62. }
  63. @ApiOperation(value = "考场导入")
  64. @PostMapping(value = "/import")
  65. public Map<String, Object> importExamRoom(@RequestParam MultipartFile file) {
  66. LoginUser user = this.curLoginUser();
  67. List<Map<String, Object>> failRecords;
  68. try {
  69. failRecords = examRoomService.importExamRoom(user, file.getInputStream());
  70. } catch (IOException e) {
  71. throw new StatusException("文件读取出错", e);
  72. }
  73. Map<String, Object> map = new HashMap<>();
  74. map.put("hasError", CollectionUtils.isNotEmpty(failRecords));
  75. map.put("failRecords", failRecords);
  76. return map;
  77. }
  78. }