UserDetailController.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. package com.izouma.nineth.web;
  2. import com.izouma.nineth.domain.UserAssetSummary;
  3. import com.izouma.nineth.domain.UserDetail;
  4. import com.izouma.nineth.dto.MetaRestResult;
  5. import com.izouma.nineth.dto.PageQuery;
  6. import com.izouma.nineth.dto.PublicShowDTO;
  7. import com.izouma.nineth.exception.BusinessException;
  8. import com.izouma.nineth.repo.UserAssetSummaryRepo;
  9. import com.izouma.nineth.repo.UserDetailRepo;
  10. import com.izouma.nineth.service.ContentAuditService;
  11. import com.izouma.nineth.service.UserDetailService;
  12. import com.izouma.nineth.utils.excel.ExcelUtils;
  13. import lombok.AllArgsConstructor;
  14. import org.apache.commons.collections.CollectionUtils;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.data.domain.Page;
  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. import java.util.Objects;
  23. @RestController
  24. @RequestMapping("/userDetail")
  25. @AllArgsConstructor
  26. public class UserDetailController extends BaseController {
  27. private UserDetailService userDetailService;
  28. private UserDetailRepo userDetailRepo;
  29. private ContentAuditService contentAuditService;
  30. private UserAssetSummaryRepo userAssetSummaryRepo;
  31. //@PreAuthorize("hasRole('ADMIN')")
  32. @PostMapping("/save")
  33. public UserDetail save(@RequestBody UserDetail record) {
  34. if (StringUtils.isNotBlank(record.getAutograph())) {
  35. if (!contentAuditService.auditText(record.getAutograph())) {
  36. throw new BusinessException("简介包含非法内容");
  37. }
  38. }if (StringUtils.isNotBlank(record.getNickname())) {
  39. if (!contentAuditService.auditText(record.getNickname())) {
  40. throw new BusinessException("昵称包含非法内容");
  41. }
  42. }if (StringUtils.isNotBlank(record.getMail())) {
  43. if (!contentAuditService.auditText(record.getMail())) {
  44. throw new BusinessException("邮箱包含非法内容");
  45. }
  46. }if (StringUtils.isNotBlank(record.getSchool())) {
  47. if (!contentAuditService.auditText(record.getSchool())) {
  48. throw new BusinessException("学校包含非法内容");
  49. }
  50. }if (StringUtils.isNotBlank(record.getCompany())) {
  51. if (!contentAuditService.auditText(record.getCompany())) {
  52. throw new BusinessException("公司包含非法内容");
  53. }
  54. }if (StringUtils.isNotBlank(record.getOccupation())) {
  55. if (!contentAuditService.auditText(record.getOccupation())) {
  56. throw new BusinessException("职业包含非法内容");
  57. }
  58. }
  59. return userDetailRepo.save(record);
  60. }
  61. @PostMapping("/meta/save")
  62. public MetaRestResult<UserDetail> metaSave(@RequestBody UserDetail record) {
  63. UserDetail userDetail;
  64. try {
  65. userDetail = save(record);
  66. } catch (Exception e) {
  67. return MetaRestResult.returnError(e.getMessage());
  68. }
  69. return MetaRestResult.returnSuccess(userDetail);
  70. }
  71. //@PreAuthorize("hasRole('ADMIN')")
  72. @PostMapping("/all")
  73. public Page<UserDetail> all(@RequestBody PageQuery pageQuery) {
  74. return userDetailService.all(pageQuery);
  75. }
  76. @GetMapping("/get/{id}")
  77. public UserDetail get(@PathVariable Long id) {
  78. UserDetail userDetail = userDetailRepo.findById(id).orElse(null);
  79. if (Objects.isNull(userDetail)) {
  80. userDetail = new UserDetail();
  81. userDetail.setUserId(id);
  82. userDetailRepo.save(userDetail);
  83. }
  84. userDetail.setNftCount(userDetailRepo.findNftCountById(id));
  85. userDetail.setBuildCount(userDetailRepo.findBuildCountById(id));
  86. userDetail.setPlotCount(userDetailRepo.findPlotCountById(id));
  87. userDetail.setFansCount(userDetailRepo.findFansCountById(id));
  88. userDetail.setReikiCount(userDetailRepo.findReikiCountById(id));
  89. userDetail.setMedalCount(userDetailRepo.findMedalCountById(id));
  90. userDetail.setPersonalheatCount(userDetailRepo.findPersonalHeatCountById(id));
  91. List<UserAssetSummary> userAssetSummaries = userAssetSummaryRepo.findPublicShowAsset(id);
  92. List<PublicShowDTO> list = new ArrayList<>();
  93. if (CollectionUtils.isEmpty(userAssetSummaries)) {
  94. userDetail.setPublicShowDTOs(list);
  95. return userDetail;
  96. }
  97. userAssetSummaries.forEach(userAssetSummary -> {
  98. list.add(new PublicShowDTO(userAssetSummary.getName(), "video/mp4".equals(userAssetSummary.getPic().get(0).getType()) ? userAssetSummary.getPic().get(0).getThumb() : userAssetSummary.getPic().get(0).getUrl(), userAssetSummary.getOpenShowNum()));
  99. });
  100. userDetail.setPublicShowDTOs(list);
  101. return userDetail;
  102. }
  103. @GetMapping("/light/{userId}")
  104. public boolean light(@PathVariable Long userId) {
  105. UserDetail userDetail = userDetailRepo.findById(userId).orElse(null);
  106. if (Objects.isNull(userDetail)) {
  107. return false;
  108. }
  109. if (StringUtils.isNotBlank(userDetail.getAutograph())) {
  110. return true;
  111. }
  112. if (StringUtils.isNotBlank(userDetail.getBgpic())) {
  113. return true;
  114. }
  115. if (StringUtils.isNotBlank(userDetail.getBirthday())) {
  116. return true;
  117. }
  118. if (StringUtils.isNotBlank(userDetail.getBlood())) {
  119. return true;
  120. }
  121. if (StringUtils.isNotBlank(userDetail.getCompany())) {
  122. return true;
  123. }
  124. if (StringUtils.isNotBlank(userDetail.getConstellation())) {
  125. return true;
  126. }
  127. if (StringUtils.isNotBlank(userDetail.getHome())) {
  128. return true;
  129. }
  130. if (StringUtils.isNotBlank(userDetail.getMail())) {
  131. return true;
  132. }
  133. if (StringUtils.isNotBlank(userDetail.getOccupation())) {
  134. return true;
  135. }
  136. if (StringUtils.isNotBlank(userDetail.getPic())) {
  137. return true;
  138. }
  139. if (StringUtils.isNotBlank(userDetail.getSchool())) {
  140. return true;
  141. }
  142. if (StringUtils.isNotBlank(userDetail.getSex())) {
  143. return true;
  144. }
  145. return false;
  146. }
  147. @GetMapping("/{userId}/metaQuery")
  148. public MetaRestResult<UserDetail> metaQuery(@PathVariable Long userId) {
  149. return MetaRestResult.returnSuccess(get(userId));
  150. }
  151. @PostMapping("/del/{id}")
  152. public void del(@PathVariable Long id) {
  153. userDetailRepo.softDelete(id);
  154. }
  155. @GetMapping("/excel")
  156. @ResponseBody
  157. public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
  158. List<UserDetail> data = all(pageQuery).getContent();
  159. ExcelUtils.export(response, data);
  160. }
  161. }