OrgInfoController.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.izouma.jmrh.web;
  2. import com.izouma.jmrh.domain.OrgInfo;
  3. import com.izouma.jmrh.domain.User;
  4. import com.izouma.jmrh.repo.UserRepo;
  5. import com.izouma.jmrh.service.OrgInfoService;
  6. import com.izouma.jmrh.dto.PageQuery;
  7. import com.izouma.jmrh.exception.BusinessException;
  8. import com.izouma.jmrh.repo.OrgInfoRepo;
  9. import com.izouma.jmrh.utils.ObjUtils;
  10. import com.izouma.jmrh.utils.SecurityUtils;
  11. import com.izouma.jmrh.utils.excel.ExcelUtils;
  12. import lombok.AllArgsConstructor;
  13. import org.springframework.data.domain.Page;
  14. import org.springframework.data.domain.PageImpl;
  15. import org.springframework.data.domain.PageRequest;
  16. import org.springframework.data.domain.Sort;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.io.IOException;
  20. import java.util.List;
  21. import java.util.Map;
  22. import java.util.stream.Collectors;
  23. @RestController
  24. @RequestMapping("/orgInfo")
  25. @AllArgsConstructor
  26. public class OrgInfoController extends BaseController {
  27. private OrgInfoService orgInfoService;
  28. private OrgInfoRepo orgInfoRepo;
  29. private UserRepo userRepo;
  30. //@PreAuthorize("hasRole('ADMIN')")
  31. @PostMapping("/save")
  32. public OrgInfo save(@RequestBody OrgInfo record) {
  33. if (record.getId() != null) {
  34. OrgInfo orig = orgInfoRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
  35. ObjUtils.merge(orig, record);
  36. return orgInfoRepo.save(orig);
  37. }
  38. OrgInfo save = orgInfoRepo.save(record);
  39. User user = new User();
  40. user.setId(record.getUserId());
  41. user.setOrgInfo(save);
  42. userRepo.updateUser(user);
  43. return save;
  44. }
  45. @GetMapping("/my")
  46. public User my() {
  47. return SecurityUtils.getAuthenticatedUser();
  48. }
  49. //@PreAuthorize("hasRole('ADMIN')")
  50. @GetMapping("/all")
  51. public Page<OrgInfo> all(PageQuery pageQuery) {
  52. Page<OrgInfo> page = orgInfoRepo.findAll(toSpecification(pageQuery, OrgInfo.class), toPageRequest(pageQuery));
  53. return new PageImpl<>(page.stream()
  54. .parallel()
  55. .peek(orgInfo -> orgInfo.setNickname(userRepo.findById(orgInfo.getUserId())
  56. .map(User::getNickname)
  57. .orElse(null)))
  58. .collect(Collectors.toList()), page.getPageable(), page.getTotalElements());
  59. }
  60. @GetMapping("/get/{id}")
  61. public OrgInfo get(@PathVariable Long id) {
  62. return orgInfoRepo.findById(id).orElseThrow(new BusinessException("无记录"));
  63. }
  64. @GetMapping("/urlListSupplyDemand")
  65. public Page<Map<String, Object>> listSupplyDemand(PageQuery pageQuery) {
  66. long id = Long.parseLong(String.valueOf(pageQuery.getQuery().get("id")));
  67. String[] split = pageQuery.getSort().split(",");
  68. Sort sort = new Sort(split[1].equals("desc") ? Sort.Direction.DESC : Sort.Direction.ASC, split[0]);
  69. Page<Map<String, Object>> created_at = orgInfoRepo
  70. .listSupplyDemand(id, PageRequest.of(pageQuery.getPage(), pageQuery.getSize(), sort));
  71. return created_at;
  72. }
  73. @GetMapping("/getAllCount/{id}")
  74. public Map<String, Object> getAllCount(@PathVariable Long id) {
  75. return orgInfoService.getAllCount(id);
  76. }
  77. @PostMapping("/del/{id}")
  78. public void del(@PathVariable Long id) {
  79. orgInfoRepo.deleteById(id);
  80. }
  81. @GetMapping("/excel")
  82. @ResponseBody
  83. public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
  84. List<OrgInfo> data = all(pageQuery).getContent();
  85. ExcelUtils.export(response, data);
  86. }
  87. }