CompanyCollectionController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.izouma.nineth.web;
  2. import com.izouma.nineth.domain.CompanyCollection;
  3. import com.izouma.nineth.dto.oasis.OasisDistrictCollectionDTO;
  4. import com.izouma.nineth.dto.oasis.OasisDistrictDTO;
  5. import com.izouma.nineth.enums.CollectionStatus;
  6. import com.izouma.nineth.service.CompanyCollectionService;
  7. import com.izouma.nineth.dto.PageQuery;
  8. import com.izouma.nineth.exception.BusinessException;
  9. import com.izouma.nineth.repo.CompanyCollectionRepo;
  10. import com.izouma.nineth.utils.ObjUtils;
  11. import com.izouma.nineth.utils.SecurityUtils;
  12. import com.izouma.nineth.utils.excel.ExcelUtils;
  13. import lombok.AllArgsConstructor;
  14. import org.springframework.beans.BeanUtils;
  15. import org.springframework.data.domain.Page;
  16. import org.springframework.security.access.prepost.PreAuthorize;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.io.IOException;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. @RestController
  23. @RequestMapping("/companyCollection")
  24. @AllArgsConstructor
  25. public class CompanyCollectionController extends BaseController {
  26. private CompanyCollectionService companyCollectionService;
  27. private CompanyCollectionRepo companyCollectionRepo;
  28. @PreAuthorize("hasAnyRole('ADMIN','COMPANY')")
  29. @PostMapping("/save")
  30. public CompanyCollection save(@RequestBody CompanyCollection record) {
  31. if (record.getId() != null) {
  32. CompanyCollection orig = companyCollectionRepo.findById(record.getId())
  33. .orElseThrow(new BusinessException("无记录"));
  34. if (CollectionStatus.SUCCESS.equals(orig.getStatus())) {
  35. throw new BusinessException("已通过申请,不可编辑");
  36. }
  37. ObjUtils.merge(orig, record);
  38. return companyCollectionRepo.save(orig);
  39. }
  40. record.setUserId(SecurityUtils.getAuthenticatedUser().getId());
  41. return companyCollectionRepo.save(record);
  42. }
  43. //oasis创建保存地块接口
  44. @PreAuthorize("hasAnyRole('ADMIN','COMPANY')")
  45. @PostMapping("/saveDistrict")
  46. public CompanyCollection saveDistrict(@RequestBody OasisDistrictDTO oasisDistrictDTO) {
  47. CompanyCollection record = new CompanyCollection();
  48. BeanUtils.copyProperties(oasisDistrictDTO, record);
  49. record.setStatus(CollectionStatus.PENDING);
  50. record.setCategory("地块");
  51. record.setUserId(7958191L);
  52. record.setMinter("oasis地块测试");
  53. if (record.getId() != null) {
  54. CompanyCollection orig = companyCollectionRepo.findById(record.getId())
  55. .orElseThrow(new BusinessException("无记录"));
  56. if (CollectionStatus.SUCCESS.equals(orig.getStatus())) {
  57. throw new BusinessException("已通过申请,不可编辑");
  58. }
  59. ObjUtils.merge(orig, record);
  60. return companyCollectionRepo.save(orig);
  61. }
  62. record.setUserId(SecurityUtils.getAuthenticatedUser().getId());
  63. return companyCollectionRepo.save(record);
  64. }
  65. //oasis创建保存地块接口
  66. @PreAuthorize("hasAnyRole('ADMIN','COMPANY')")
  67. @PostMapping("/multiDistrict")
  68. public List<CompanyCollection> multiDistrict(@RequestBody List<OasisDistrictDTO> oasisDistrictDTOs) {
  69. List<CompanyCollection> companyCollections = new ArrayList<>();
  70. oasisDistrictDTOs.forEach(oasisDistrictDTO -> {
  71. CompanyCollection record = new CompanyCollection();
  72. BeanUtils.copyProperties(oasisDistrictDTO, record);
  73. record.setStatus(CollectionStatus.PENDING);
  74. record.setCategory("地块");
  75. record.setUserId(7958191L);
  76. record.setMinter("oasis地块测试");
  77. if (record.getId() != null) {
  78. CompanyCollection orig = companyCollectionRepo.findById(record.getId())
  79. .orElseThrow(new BusinessException("无记录"));
  80. if (CollectionStatus.SUCCESS.equals(orig.getStatus())) {
  81. throw new BusinessException("已通过申请,不可编辑");
  82. }
  83. ObjUtils.merge(orig, record);
  84. companyCollections.add(orig);
  85. }
  86. record.setUserId(SecurityUtils.getAuthenticatedUser().getId());
  87. companyCollections.add(record);
  88. });
  89. return companyCollectionRepo.saveAll(companyCollections);
  90. }
  91. //oasis创建地块接口
  92. @PreAuthorize("hasAnyRole('ADMIN','COMPANY')")
  93. @PostMapping("/oasisSearch")
  94. public List<OasisDistrictCollectionDTO> oasisSearch(@RequestBody List<Long> oasisIds) {
  95. return companyCollectionService.oasisSearch(oasisIds);
  96. }
  97. //@PreAuthorize("hasRole('ADMIN')")
  98. @PostMapping("/all")
  99. public Page<CompanyCollection> all(@RequestBody PageQuery pageQuery) {
  100. return companyCollectionService.all(pageQuery);
  101. }
  102. @GetMapping("/get/{id}")
  103. public CompanyCollection get(@PathVariable Long id) {
  104. return companyCollectionRepo.findById(id).orElseThrow(new BusinessException("无记录"));
  105. }
  106. @PostMapping("/del/{id}")
  107. public void del(@PathVariable Long id) {
  108. companyCollectionRepo.softDelete(id);
  109. }
  110. @GetMapping("/excel")
  111. @ResponseBody
  112. public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
  113. List<CompanyCollection> data = all(pageQuery).getContent();
  114. ExcelUtils.export(response, data);
  115. }
  116. @PostMapping("/pass")
  117. public void pass(@RequestParam Long id) {
  118. companyCollectionService.audit(id, CollectionStatus.SUCCESS, null);
  119. }
  120. @PostMapping("/deny")
  121. public void deny(@RequestParam Long id, String reason) {
  122. companyCollectionService.audit(id, CollectionStatus.FAIL, reason);
  123. }
  124. }