PopularizeMiniController.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.cyksj.web.controller.mini;
  2. import com.cyksj.dto.Result;
  3. import com.cyksj.enums.GatewayResponse;
  4. import com.cyksj.model.entity.MiniPopularizeUser;
  5. import com.cyksj.model.entity.MiniPopularizeUserConversationChat;
  6. import com.cyksj.model.request.MiniAiPicturesReq;
  7. import com.cyksj.model.request.MiniPopularizeIncrTimesReq;
  8. import com.cyksj.model.response.MiniPopularizeResp;
  9. import com.cyksj.model.views.MiniPopularizeConfigFrontView;
  10. import com.cyksj.model.views.MiniPopularizeUserConversationImgRecordsView;
  11. import com.cyksj.service.mini.MiniPopularizeFrontService;
  12. import com.cyksj.web.util.StpUserUtil;
  13. import com.ejlchina.searcher.BeanSearcher;
  14. import com.ejlchina.searcher.SearchResult;
  15. import com.ejlchina.searcher.util.MapUtils;
  16. import lombok.RequiredArgsConstructor;
  17. import lombok.extern.slf4j.Slf4j;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.servlet.http.HttpServletRequest;
  20. import java.io.IOException;
  21. import java.util.List;
  22. /**
  23. * server/gpt推广
  24. * 项目名: yhlxj2
  25. * 文件名: PopularizeMiniController
  26. * 创建者: JavaZou
  27. * 创建时间:2025/4/7 16:01
  28. */
  29. @RestController
  30. @RequestMapping("/applets/mini/popularize")
  31. @RequiredArgsConstructor
  32. @Slf4j
  33. public class PopularizeMiniController {
  34. private final BeanSearcher beanSearcher;
  35. private final HttpServletRequest request;
  36. private final MiniPopularizeFrontService miniPopularizeFrontService;
  37. /**
  38. * 推广小程序 配置
  39. */
  40. @GetMapping("/get/config")
  41. public Result<List<MiniPopularizeConfigFrontView>> getConfig() {
  42. List<MiniPopularizeConfigFrontView> miniPopularizeConfigFrontViews = beanSearcher.searchAll(MiniPopularizeConfigFrontView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
  43. return GatewayResponse.SUCCESS.newBuilder().toResult(miniPopularizeConfigFrontViews);
  44. }
  45. /**
  46. * 创作 图片
  47. */
  48. @PostMapping("/create/pictures")
  49. public Result<MiniPopularizeResp> createPictures(@RequestBody MiniAiPicturesReq miniAiPicturesReq) throws IOException {
  50. long userId = StpUserUtil.getLoginIdAsLong();
  51. miniAiPicturesReq.setUserId(userId);
  52. MiniPopularizeResp resp = miniPopularizeFrontService.createPictures(miniAiPicturesReq);
  53. return GatewayResponse.SUCCESS.newBuilder().toResult(resp);
  54. }
  55. /**
  56. * 创作记录
  57. */
  58. @GetMapping("/get/chat")
  59. public Result<SearchResult<MiniPopularizeUserConversationImgRecordsView>> getChat() throws IOException {
  60. long userId = StpUserUtil.getLoginIdAsLong();
  61. SearchResult<MiniPopularizeUserConversationImgRecordsView> search = beanSearcher.search(MiniPopularizeUserConversationImgRecordsView.class, MapUtils.builder().field(MiniPopularizeUserConversationImgRecordsView::getUserId, userId).build());
  62. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  63. }
  64. /**
  65. * 个人作品
  66. */
  67. @GetMapping("/get/personal")
  68. public Result<SearchResult<MiniPopularizeUserConversationChat>> getPersonal() throws IOException {
  69. long userId = StpUserUtil.getLoginIdAsLong();
  70. SearchResult<MiniPopularizeUserConversationChat> search = beanSearcher.search(MiniPopularizeUserConversationChat.class, MapUtils.builder()
  71. .field(MiniPopularizeUserConversationChat::getUserId, userId)
  72. .field(MiniPopularizeUserConversationChat::getType, MiniPopularizeUserConversationChat.Type.image.name())
  73. .orderBy(MiniPopularizeUserConversationChat::getId).desc().build());
  74. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  75. }
  76. /**
  77. * 推广小程序用户信息
  78. */
  79. @GetMapping("/get/user")
  80. public Result<MiniPopularizeUser> getUser() {
  81. long userId = StpUserUtil.getLoginIdAsLong();
  82. MiniPopularizeUser user = miniPopularizeFrontService.getUser(userId);
  83. return GatewayResponse.SUCCESS.newBuilder().toResult(user);
  84. }
  85. /**
  86. * 图片生成结果
  87. */
  88. @GetMapping("/get/result/{imageId}")
  89. public Result<MiniPopularizeUserConversationChat> getImgResultById(@PathVariable Long imageId) {
  90. long userId = StpUserUtil.getLoginIdAsLong();
  91. MiniPopularizeUserConversationChat chat = miniPopularizeFrontService.getImgResultById(userId, imageId);
  92. return GatewayResponse.SUCCESS.newBuilder().toResult(chat);
  93. }
  94. /**
  95. * 看广告增加画图次数
  96. */
  97. @PostMapping("/incr/times")
  98. public Result<String> incrGptTimes(@RequestBody MiniPopularizeIncrTimesReq reqs) throws Exception {
  99. long userId = StpUserUtil.getLoginIdAsLong();
  100. reqs.setUserId(userId);
  101. miniPopularizeFrontService.incrGptTimes(reqs);
  102. return GatewayResponse.SUCCESS.newBuilder().toResult();
  103. }
  104. /**
  105. * 关闭新用户弹窗
  106. * @return
  107. */
  108. @PutMapping("/close/tc")
  109. public Result<String> closeTc() {
  110. long userId = StpUserUtil.getLoginIdAsLong();
  111. miniPopularizeFrontService.closeTc(userId);
  112. return GatewayResponse.SUCCESS.newBuilder().toResult();
  113. }
  114. }