ExamSiteManageController.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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.examsite.ExamSiteGuideReq;
  8. import com.qmth.exam.reserve.bean.examsite.ExamSiteReq;
  9. import com.qmth.exam.reserve.bean.examsite.ExamSiteSaveReq;
  10. import com.qmth.exam.reserve.bean.examsite.ExamSiteVO;
  11. import com.qmth.exam.reserve.bean.login.LoginUser;
  12. import com.qmth.exam.reserve.controller.BaseController;
  13. import com.qmth.exam.reserve.entity.ExamSiteEntity;
  14. import com.qmth.exam.reserve.enums.Role;
  15. import com.qmth.exam.reserve.service.ExamSiteService;
  16. import com.qmth.exam.reserve.util.ResourceUtil;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiOperation;
  19. import io.swagger.annotations.ApiParam;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.*;
  22. import org.springframework.web.multipart.MultipartFile;
  23. import java.io.IOException;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. @RestController
  28. @Api(tags = "【管理端】考点管理相关接口")
  29. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/site")
  30. @Aac(strict = false, auth = true)
  31. public class ExamSiteManageController extends BaseController {
  32. @Autowired
  33. private ExamSiteService examSiteService;
  34. @ApiOperation(value = "考点管理分页")
  35. @PostMapping(value = "/page")
  36. public PageResult<ExamSiteVO> page(@RequestBody ExamSiteReq req) {
  37. LoginUser user = curLoginUser();
  38. if (user.getRole().equals(Role.TEACHING)) {
  39. req.setTeachingId(user.getCategoryId());
  40. }
  41. return examSiteService.page(req);
  42. }
  43. @ApiOperation(value = "考点管理查询")
  44. @PostMapping(value = "/find")
  45. public ExamSiteEntity find(@ApiParam("考点ID") @RequestParam Long id) {
  46. return examSiteService.getById(id);
  47. }
  48. @ApiOperation(value = "考点新增/编辑")
  49. @PostMapping(value = "/save")
  50. public void save(@RequestBody ExamSiteSaveReq req) {
  51. LoginUser user = curLoginUser();
  52. if(!user.getRole().equals(Role.ADMIN)) {
  53. throw new StatusException("没有权限");
  54. }
  55. examSiteService.saveExamSite(user, req);
  56. }
  57. @ApiOperation(value = "考点启用/禁用")
  58. @PostMapping(value = "/enable")
  59. public void enable(@ApiParam("考点ID") @RequestParam Long id, @ApiParam("启用/禁用") @RequestParam Boolean enable) {
  60. LoginUser user = curLoginUser();
  61. if(!user.getRole().equals(Role.ADMIN)) {
  62. throw new StatusException("没有权限");
  63. }
  64. examSiteService.enable(id, enable);
  65. }
  66. @ApiOperation(value = "查询考点指引")
  67. @PostMapping(value = "/guide")
  68. public String guide(@ApiParam("考点ID") @RequestParam Long id) {
  69. ExamSiteEntity examSite = examSiteService.getById(id);
  70. return examSite.getGuide();
  71. }
  72. @ApiOperation(value = "保存考点指引")
  73. @PostMapping(value = "/guide/save")
  74. public void saveGuide(@ApiParam("考点指引") @RequestBody ExamSiteGuideReq req) {
  75. examSiteService.saveGuide(req);
  76. }
  77. @ApiOperation(value = "考点模版下载")
  78. @PostMapping(value = "/import/template")
  79. public void download() {
  80. exportFile("考点模板.xlsx", ResourceUtil.getStream("templates/examSite.xlsx"));
  81. }
  82. @ApiOperation(value = "考点导入")
  83. @PostMapping(value = "/import")
  84. public Map<String, Object> importExamSite(@RequestParam MultipartFile file) {
  85. LoginUser user = this.curLoginUser();
  86. if (!Role.ADMIN.equals(user.getRole())) {
  87. throw new StatusException("没有权限");
  88. }
  89. List<Map<String, Object>> failRecords;
  90. try {
  91. failRecords = examSiteService.importExamSite(user, file.getInputStream());
  92. } catch (IOException e) {
  93. throw new StatusException("文件读取出错", e);
  94. }
  95. Map<String, Object> map = new HashMap<>();
  96. map.put("hasError", CollectionUtils.isNotEmpty(failRecords));
  97. map.put("failRecords", failRecords);
  98. return map;
  99. }
  100. }