UserSuggestController.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.cyksj.web.controller.suggest;
  2. import cn.hutool.core.lang.Assert;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.cyksj.dto.Result;
  5. import com.cyksj.enums.GatewayResponse;
  6. import com.cyksj.mapper.UserFeedbackRecordMapper;
  7. import com.cyksj.mapper.UserMapper;
  8. import com.cyksj.model.entity.UserFeedbackProgressRecord;
  9. import com.cyksj.model.entity.UserFeedbackRecord;
  10. import com.cyksj.model.entity.UserRecommendGoodsRecord;
  11. import com.cyksj.model.views.UserFeedbackProgressRecordFrontView;
  12. import com.cyksj.service.suggest.UserSuggestService;
  13. import com.cyksj.web.util.StpUserUtil;
  14. import com.ejlchina.searcher.BeanSearcher;
  15. import com.ejlchina.searcher.SearchResult;
  16. import com.ejlchina.searcher.util.MapUtils;
  17. import lombok.RequiredArgsConstructor;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.servlet.http.HttpServletRequest;
  20. import java.util.List;
  21. /**
  22. * server/投诉建议
  23. * 项目名: yhlxj2
  24. * 文件名: UserSuggestController
  25. * 创建者: JavaZou
  26. * 创建时间:2024/10/11 16:05
  27. */
  28. @RestController
  29. @RequestMapping("/applets/user/suggest")
  30. @RequiredArgsConstructor
  31. public class UserSuggestController {
  32. private final BeanSearcher beanSearcher;
  33. private final HttpServletRequest request;
  34. private final UserMapper userMapper;
  35. private final UserFeedbackRecordMapper userFeedbackRecordMapper;
  36. private final UserSuggestService userSuggestService;
  37. /**
  38. * 平台使用建议
  39. */
  40. @PostMapping("/goods/usage")
  41. public Result<String> suggestGoodsUsage(@RequestBody UserFeedbackProgressRecord progressRecord) {
  42. long userId = StpUserUtil.getLoginIdAsLong();
  43. progressRecord.setUserId(userId);
  44. userSuggestService.suggestGoodsUsage(progressRecord);
  45. return GatewayResponse.SUCCESS.newBuilder().toResult();
  46. }
  47. /**
  48. * 是否有最新留言
  49. */
  50. @GetMapping("/goods/usage/isReply")
  51. public Result<Boolean> isSuggestReply() {
  52. long userId = StpUserUtil.getLoginIdAsLong();
  53. Integer selectCount = userFeedbackRecordMapper.selectCount(Wrappers.lambdaQuery(UserFeedbackRecord.class)
  54. .eq(UserFeedbackRecord::getUserId, userId)
  55. .eq(UserFeedbackRecord::getIsNewReply, 1));
  56. return GatewayResponse.SUCCESS.newBuilder().toResult(selectCount > 0);
  57. }
  58. /**
  59. * 用户建议反馈列表
  60. */
  61. @GetMapping("/goods/usage/feedback/list")
  62. public Result<SearchResult<UserFeedbackRecord>> getFeedbackList() {
  63. long userId = StpUserUtil.getLoginIdAsLong();
  64. SearchResult<UserFeedbackRecord> search = beanSearcher.search(UserFeedbackRecord.class, MapUtils.flatBuilder(request.getParameterMap())
  65. .field(UserFeedbackRecord::getUserId, userId)
  66. .orderBy(UserFeedbackRecord::getUpdateTime).desc()
  67. .onlySelect(UserFeedbackRecord::getId, UserFeedbackRecord::getGoodsId, UserFeedbackRecord::getIsNewReply, UserFeedbackRecord::getDescription, UserFeedbackRecord::getGoodsTitle, UserFeedbackRecord::getCreatedTime, UserFeedbackRecord::getUpdateTime)
  68. .build());
  69. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  70. }
  71. /**
  72. * 用户建议反馈留言
  73. */
  74. @PostMapping("/feedback/msg")
  75. public Result<String> userFeedbackMsg(@RequestBody UserFeedbackProgressRecord progressRecord) {
  76. long userId = StpUserUtil.getLoginIdAsLong();
  77. progressRecord.setUserId(userId);
  78. userSuggestService.userFeedbackMsg(progressRecord);
  79. return GatewayResponse.SUCCESS.newBuilder().toResult();
  80. }
  81. /**
  82. * 用户查看最新反馈内容
  83. */
  84. @GetMapping("/goods/usage/feedback/content/list")
  85. public Result<List<UserFeedbackProgressRecordFrontView>> getFeedbackContentList(Long feedbackId) {
  86. long userId = StpUserUtil.getLoginIdAsLong();
  87. Assert.notNull(feedbackId, "查看错误");
  88. List<UserFeedbackProgressRecordFrontView> search = beanSearcher.searchAll(UserFeedbackProgressRecordFrontView.class, MapUtils.flatBuilder(request.getParameterMap())
  89. .field(UserFeedbackProgressRecordFrontView::getFeedbackId, feedbackId)
  90. .field(UserFeedbackProgressRecordFrontView::getUserId, userId)
  91. .build());
  92. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  93. }
  94. /**
  95. * 记录用户推荐上架新品
  96. */
  97. @PostMapping("/recommend/goods")
  98. public Result<String> recommendGoods(@RequestBody UserRecommendGoodsRecord userRecommendGoodsRecord) {
  99. long userId = StpUserUtil.getLoginIdAsLong();
  100. userRecommendGoodsRecord.setUserId(userId);
  101. userSuggestService.recommendGoods(userRecommendGoodsRecord);
  102. return GatewayResponse.SUCCESS.newBuilder().toResult();
  103. }
  104. }