CpsPopularizeController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.cyksj.web.controller.cps;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.cyksj.common.EnvCommonService;
  4. import com.cyksj.common.annotation.NoSubmit;
  5. import com.cyksj.dto.Result;
  6. import com.cyksj.enums.GatewayResponse;
  7. import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
  8. import com.cyksj.model.entity.GoodsDon;
  9. import com.cyksj.model.entity.User;
  10. import com.cyksj.model.entity.UserDistributePopularize;
  11. import com.cyksj.model.views.UserDistributePopularizeView;
  12. import com.cyksj.service.cps.CpsPopularizeService;
  13. import com.cyksj.service.user.UserService;
  14. import com.cyksj.web.util.StpCpsManageUser;
  15. import com.ejlchina.searcher.BeanSearcher;
  16. import com.ejlchina.searcher.SearchResult;
  17. import com.ejlchina.searcher.param.Operator;
  18. import com.ejlchina.searcher.util.MapBuilder;
  19. import com.ejlchina.searcher.util.MapUtils;
  20. import lombok.RequiredArgsConstructor;
  21. import org.springframework.web.bind.annotation.*;
  22. import javax.servlet.http.HttpServletRequest;
  23. import java.math.BigDecimal;
  24. import java.util.List;
  25. import java.util.Optional;
  26. /*
  27. *项目名: netflix
  28. *文件名: CpsPopularizeController
  29. *创建者: JavaZou
  30. *创建时间:2023/5/15 15:03
  31. */
  32. @RestController
  33. @RequestMapping("/cps/manage/popularize")
  34. @RequiredArgsConstructor
  35. public class CpsPopularizeController {
  36. private final CpsPopularizeService cpsPopularizeService;
  37. private final BeanSearcher beanSearcher;
  38. private final HttpServletRequest request;
  39. private final EnvCommonService envCommonService;
  40. private final CouponDistributePopularizeMapper couponDistributePopularizeMapper;
  41. private final UserService userService;
  42. /**
  43. * 渠道推广链接列表
  44. */
  45. @GetMapping("/get")
  46. public Result<SearchResult<UserDistributePopularizeView>> getList() {
  47. long cpsUserId = StpCpsManageUser.getLoginIdAsLong();
  48. MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
  49. builder.put("userId", String.format("and user_id = %s", cpsUserId));
  50. SearchResult<UserDistributePopularizeView> search = beanSearcher.search(UserDistributePopularizeView.class, builder.build());
  51. search.getDataList().forEach(data -> {
  52. data.setPopularizeLink(String.format(envCommonService.DISTRIBUTE_DEFAULT_URL_PREFIX, data.getCode()));
  53. });
  54. return GatewayResponse.SUCCESS.newBuilder().toResult(search);
  55. }
  56. /**
  57. * 默认链接详情
  58. */
  59. @GetMapping("/get/default")
  60. public Result<UserDistributePopularizeView> getDefaultDetail() {
  61. long cpsUserId = StpCpsManageUser.getLoginIdAsLong();
  62. User user = userService.getById(cpsUserId);
  63. UserDistributePopularizeView view = Optional.ofNullable(cpsPopularizeService.getDefaultPopularizeDetail(cpsUserId)).orElseGet(() -> {
  64. UserDistributePopularizeView newPopularizeView = new UserDistributePopularizeView();
  65. newPopularizeView.setOrders(0);
  66. newPopularizeView.setOrdersMoney(BigDecimal.ZERO);
  67. newPopularizeView.setWMoney(BigDecimal.ZERO);
  68. newPopularizeView.setGotMoney(BigDecimal.ZERO);
  69. return newPopularizeView;
  70. });
  71. if (StrUtil.isEmpty(user.getShowId())) {
  72. user.setShowId(userService.getUserShowId(user.getId()));
  73. }
  74. view.setPopularizeLink(String.format(envCommonService.DISTRIBUTE_DEFAULT_URL_PREFIX, user.getShowId()));
  75. //优惠码
  76. view.setCouponCode(couponDistributePopularizeMapper.getCouponCodeByUid(cpsUserId));
  77. return GatewayResponse.SUCCESS.newBuilder().toResult(view);
  78. }
  79. /**
  80. * 新增推广链接
  81. */
  82. @PostMapping("/post")
  83. @NoSubmit
  84. public Result<String> insert(@RequestBody UserDistributePopularize popularize) {
  85. long cpsUserId = StpCpsManageUser.getLoginIdAsLong();
  86. popularize.setUserId(cpsUserId);
  87. cpsPopularizeService.insert(popularize);
  88. return GatewayResponse.SUCCESS.newBuilder().toResult(String.format("%s?dsCode=%s", envCommonService.getDomain2(), popularize.getCode()));
  89. }
  90. /**
  91. * 编辑推广链接
  92. */
  93. @PutMapping("/put")
  94. @NoSubmit
  95. public Result<String> update(@RequestBody UserDistributePopularize popularize) {
  96. long cpsUserId = StpCpsManageUser.getLoginIdAsLong();
  97. popularize.setUserId(cpsUserId);
  98. cpsPopularizeService.update(popularize);
  99. return GatewayResponse.SUCCESS.newBuilder().toResult();
  100. }
  101. /**
  102. * 删除推广链接
  103. */
  104. @DeleteMapping("/delete/{id}")
  105. @NoSubmit
  106. public Result<String> deleteById(@PathVariable Long id) {
  107. long cpsUserId = StpCpsManageUser.getLoginIdAsLong();
  108. cpsPopularizeService.deleteById(cpsUserId, id);
  109. return GatewayResponse.SUCCESS.newBuilder().toResult();
  110. }
  111. /**
  112. * 获取所有平台列表
  113. */
  114. @GetMapping("/get/all/goods")
  115. public Result<List<GoodsDon>> getAllGoodsList(Boolean isNoBuyout) {
  116. MapBuilder mapBuilder = MapUtils.flatBuilder(request.getParameterMap());
  117. //过滤买断制 平台
  118. String conditionSql;
  119. if (isNoBuyout != null && isNoBuyout) {
  120. mapBuilder.field(GoodsDon::getSpecialType).op(Operator.IsNull);
  121. conditionSql = "(select count(*) from goods_don_sku sku where sku.goods_id = g.id and sku.months = 300) = 0";
  122. } else {
  123. conditionSql = "(special_type is null or special_type != 'giftCard')";
  124. }
  125. conditionSql += " and exists (select id from goods_don_sku sku where sku.goods_id = g.id limit 1)";
  126. List<GoodsDon> goodsDons = beanSearcher.searchAll(GoodsDon.class, mapBuilder
  127. .put("condition", conditionSql)
  128. .field(GoodsDon::getType, 1)
  129. .field(GoodsDon::getStatus, 1)
  130. .field(GoodsDon::getDeleted, true)
  131. .onlySelect(GoodsDon::getId, GoodsDon::getCategory, GoodsDon::getType, GoodsDon::getTitle, GoodsDon::getSecondType).build());
  132. return GatewayResponse.SUCCESS.newBuilder().toResult(goodsDons);
  133. }
  134. /**
  135. * 复制客服活码链接
  136. * 用于cps用户实物分销
  137. */
  138. @GetMapping("/get/service/code")
  139. public Result<String> getServiceCodeUrl() {
  140. long cpsUserId = StpCpsManageUser.getLoginIdAsLong();
  141. return GatewayResponse.SUCCESS.newBuilder().toResult(cpsPopularizeService.getServiceCodeUrl(cpsUserId));
  142. }
  143. }