PopularizeMiniController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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.views.MiniPopularizeConfigFrontView;
  8. import com.cyksj.model.views.MiniPopularizeUserConversationImgRecordsView;
  9. import com.cyksj.service.mini.MiniPopularizeFrontService;
  10. import com.cyksj.web.util.StpUserUtil;
  11. import com.ejlchina.searcher.BeanSearcher;
  12. import com.ejlchina.searcher.SearchResult;
  13. import com.ejlchina.searcher.util.MapUtils;
  14. import lombok.RequiredArgsConstructor;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.servlet.http.HttpServletRequest;
  18. import java.io.IOException;
  19. import java.util.List;
  20. /**
  21. * server/gpt推广
  22. * 项目名: yhlxj2
  23. * 文件名: PopularizeMiniController
  24. * 创建者: JavaZou
  25. * 创建时间:2025/4/7 16:01
  26. */
  27. @RestController
  28. @RequestMapping("/applets/mini/popularize")
  29. @RequiredArgsConstructor
  30. @Slf4j
  31. public class PopularizeMiniController {
  32. private final BeanSearcher beanSearcher;
  33. private final HttpServletRequest request;
  34. private final MiniPopularizeFrontService miniPopularizeFrontService;
  35. /**
  36. * 推广小程序 配置
  37. */
  38. @GetMapping("/get/config")
  39. public Result<List<MiniPopularizeConfigFrontView>> getConfig() {
  40. List<MiniPopularizeConfigFrontView> miniPopularizeConfigFrontViews = beanSearcher.searchAll(MiniPopularizeConfigFrontView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
  41. return GatewayResponse.SUCCESS.newBuilder().toResult(miniPopularizeConfigFrontViews);
  42. }
  43. /**
  44. * 创作 图片
  45. */
  46. @PostMapping("/create/pictures")
  47. public Result<Long> createPictures(@RequestBody MiniAiPicturesReq miniAiPicturesReq) throws IOException {
  48. long userId = StpUserUtil.getLoginIdAsLong();
  49. miniAiPicturesReq.setUserId(userId);
  50. Long imageId = miniPopularizeFrontService.createPictures(miniAiPicturesReq);
  51. return GatewayResponse.SUCCESS.newBuilder().toResult(imageId);
  52. }
  53. /**
  54. * 创作记录
  55. */
  56. @GetMapping("/get/chat")
  57. public Result<SearchResult<MiniPopularizeUserConversationImgRecordsView>> getChat() throws IOException {
  58. long userId = StpUserUtil.getLoginIdAsLong();
  59. SearchResult<MiniPopularizeUserConversationImgRecordsView> search = beanSearcher.search(MiniPopularizeUserConversationImgRecordsView.class, MapUtils.builder().field(MiniPopularizeUserConversationImgRecordsView::getUserId, userId).build());
  60. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  61. }
  62. /**
  63. * 个人作品
  64. */
  65. @GetMapping("/get/personal")
  66. public Result<SearchResult<MiniPopularizeUserConversationChat>> getPersonal() throws IOException {
  67. long userId = StpUserUtil.getLoginIdAsLong();
  68. SearchResult<MiniPopularizeUserConversationChat> search = beanSearcher.search(MiniPopularizeUserConversationChat.class, MapUtils.builder()
  69. .field(MiniPopularizeUserConversationChat::getUserId, userId)
  70. .field(MiniPopularizeUserConversationChat::getType, MiniPopularizeUserConversationChat.Type.image.name())
  71. .orderBy(MiniPopularizeUserConversationChat::getId).desc().build());
  72. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  73. }
  74. /**
  75. * 个人次数
  76. */
  77. @GetMapping("/get/user")
  78. public Result<MiniPopularizeUser> getUser() {
  79. long userId = StpUserUtil.getLoginIdAsLong();
  80. MiniPopularizeUser user = miniPopularizeFrontService.getUser(userId);
  81. return GatewayResponse.SUCCESS.newBuilder().toResult(user);
  82. }
  83. /**
  84. * 图片生成结果
  85. */
  86. @GetMapping("/get/result/{imageId}")
  87. public Result<String> getImgResultById(@PathVariable Long imageId) {
  88. long userId = StpUserUtil.getLoginIdAsLong();
  89. String img = miniPopularizeFrontService.getImgResultById(userId, imageId);
  90. return GatewayResponse.SUCCESS.newBuilder().toResult(img);
  91. }
  92. }