CollectionController.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.izouma.nineth.web;
  2. import com.izouma.nineth.domain.Collection;
  3. import com.izouma.nineth.dto.CollectionDTO;
  4. import com.izouma.nineth.service.CollectionService;
  5. import com.izouma.nineth.dto.PageQuery;
  6. import com.izouma.nineth.exception.BusinessException;
  7. import com.izouma.nineth.repo.CollectionRepo;
  8. import com.izouma.nineth.service.LikeService;
  9. import com.izouma.nineth.utils.ObjUtils;
  10. import com.izouma.nineth.utils.SecurityUtils;
  11. import com.izouma.nineth.utils.excel.ExcelUtils;
  12. import io.swagger.annotations.ApiOperation;
  13. import lombok.AllArgsConstructor;
  14. import org.springframework.data.domain.Page;
  15. import org.springframework.security.access.prepost.PreAuthorize;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.servlet.http.HttpServletResponse;
  18. import java.io.IOException;
  19. import java.util.List;
  20. @RestController
  21. @RequestMapping("/collection")
  22. @AllArgsConstructor
  23. public class CollectionController extends BaseController {
  24. private CollectionService collectionService;
  25. private CollectionRepo collectionRepo;
  26. private LikeService likeService;
  27. //@PreAuthorize("hasRole('ADMIN')")
  28. @PostMapping("/save")
  29. public Collection save(@RequestBody Collection record) {
  30. if (record.getId() != null) {
  31. Collection orig = collectionRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
  32. ObjUtils.merge(orig, record);
  33. return collectionRepo.save(orig);
  34. }
  35. return collectionRepo.save(record);
  36. }
  37. //@PreAuthorize("hasRole('ADMIN')")
  38. @PostMapping("/all")
  39. public Page<CollectionDTO> all(@RequestBody PageQuery pageQuery) {
  40. return collectionService.toDTO(collectionService.all(pageQuery));
  41. }
  42. @GetMapping("/get/{id}")
  43. public CollectionDTO get(@PathVariable Long id) {
  44. return collectionService.toDTO(collectionRepo.findById(id).orElseThrow(new BusinessException("无记录")), true);
  45. }
  46. @PostMapping("/del/{id}")
  47. public void del(@PathVariable Long id) {
  48. collectionRepo.softDelete(id);
  49. }
  50. @GetMapping("/excel")
  51. @ResponseBody
  52. public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
  53. List<Collection> data = collectionService.all(pageQuery).getContent();
  54. ExcelUtils.export(response, data);
  55. }
  56. @GetMapping("/{id}/like")
  57. @ApiOperation("点赞")
  58. public void like(@PathVariable Long id) {
  59. likeService.like(SecurityUtils.getAuthenticatedUser().getId(), id);
  60. }
  61. @GetMapping("/{id}/unlike")
  62. @ApiOperation("取消点赞")
  63. public void unlike(@PathVariable Long id) {
  64. likeService.unlike(SecurityUtils.getAuthenticatedUser().getId(), id);
  65. }
  66. }