MetaTaskToUserController.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.izouma.nineth.web;
  2. import com.izouma.nineth.domain.MetaTaskToUser;
  3. import com.izouma.nineth.dto.MetaRestResult;
  4. import com.izouma.nineth.dto.PageQuery;
  5. import com.izouma.nineth.enums.MetaTaskStatus;
  6. import com.izouma.nineth.repo.MetaTaskToUserRepo;
  7. import com.izouma.nineth.service.MetaTaskToUserService;
  8. import com.izouma.nineth.utils.excel.ExcelUtils;
  9. import lombok.AllArgsConstructor;
  10. import org.springframework.data.domain.Page;
  11. import org.springframework.web.bind.annotation.*;
  12. import javax.servlet.http.HttpServletResponse;
  13. import java.io.IOException;
  14. import java.time.LocalDateTime;
  15. import java.util.List;
  16. import java.util.Objects;
  17. @RestController
  18. @RequestMapping("/metaTaskToUser")
  19. @AllArgsConstructor
  20. public class MetaTaskToUserController {
  21. private MetaTaskToUserService metaTaskToUserService;
  22. private MetaTaskToUserRepo metaTaskToUserRepo;
  23. @PostMapping("/all")
  24. public Page<MetaTaskToUser> all(@RequestBody PageQuery pageQuery) {
  25. return metaTaskToUserService.all(pageQuery);
  26. }
  27. @GetMapping("/excel")
  28. @ResponseBody
  29. public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
  30. List<MetaTaskToUser> data = all(pageQuery).getContent();
  31. ExcelUtils.export(response, data);
  32. }
  33. @PostMapping("/receiveTask")
  34. public MetaRestResult<MetaTaskToUser> receiveTask(@RequestBody MetaTaskToUser metaTaskToUser) {
  35. return metaTaskToUserService.receiveTask(metaTaskToUser);
  36. }
  37. @PostMapping("/{id}/finishTask")
  38. public MetaRestResult<MetaTaskToUser> finishTask(@PathVariable Long id) {
  39. MetaTaskToUser metaTaskToUser = metaTaskToUserRepo.findByIdAndDel(id, false);
  40. if (Objects.isNull(metaTaskToUser)) {
  41. return MetaRestResult.returnError("暂无任务领取记录");
  42. }
  43. if (MetaTaskStatus.FINISH.equals(metaTaskToUser.getStatus())) {
  44. return MetaRestResult.returnError("当前任务已经完成");
  45. }
  46. metaTaskToUser.setFinishTime(LocalDateTime.now());
  47. metaTaskToUser.setStatus(MetaTaskStatus.FINISH);
  48. return MetaRestResult.returnSuccess(metaTaskToUserRepo.save(metaTaskToUser));
  49. }
  50. @PostMapping("/{id}/startTask")
  51. public MetaRestResult<MetaTaskToUser> startTask(@PathVariable Long id) {
  52. MetaTaskToUser metaTaskToUser = metaTaskToUserRepo.findByIdAndDel(id, false);
  53. if (Objects.isNull(metaTaskToUser)) {
  54. return MetaRestResult.returnError("暂无任务领取记录");
  55. }
  56. if (!MetaTaskStatus.GET.equals(metaTaskToUser.getStatus())) {
  57. return MetaRestResult.returnError(String.format("无法开始任务:当前任务状态[%S]", metaTaskToUser.getStatus().getDescription()));
  58. }
  59. metaTaskToUser.setStatus(MetaTaskStatus.PROGRESS);
  60. return MetaRestResult.returnSuccess(metaTaskToUserRepo.save(metaTaskToUser));
  61. }
  62. @GetMapping("/{userId}/{status}/findByStatus")
  63. public MetaRestResult<List<MetaTaskToUser>> findByStatus(@PathVariable Long userId, @PathVariable MetaTaskStatus status) {
  64. return metaTaskToUserService.findByStatus(userId, status);
  65. }
  66. @GetMapping("/{id}/findProgress")
  67. public MetaRestResult<MetaTaskToUser> findProgress(@PathVariable Long id) {
  68. return metaTaskToUserService.findProgress(id);
  69. }
  70. }