ChannelController.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.cyksj.web.controller.channel;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.cyksj.common.exception.BusinessRuntimeException;
  4. import com.cyksj.common.util.Jsons;
  5. import com.cyksj.dto.Result;
  6. import com.cyksj.enums.GatewayResponse;
  7. import com.cyksj.mapper.channel.ChannelPopularizeMapper;
  8. import com.cyksj.mapper.channel.ChannelPopularizeVisitMapper;
  9. import com.cyksj.mapper.channel.MoviesVisitRecordMapper;
  10. import com.cyksj.mapper.manage.coupon.CouponSkuMapper;
  11. import com.cyksj.model.entity.ChannelPopularizeVisit;
  12. import com.cyksj.model.entity.MoviesVisitRecord;
  13. import com.cyksj.model.views.ChannelPopularizeFrontView;
  14. import com.cyksj.model.views.CouponTfPopularizeView;
  15. import com.cyksj.web.util.StpUserUtil;
  16. import com.ejlchina.searcher.BeanSearcher;
  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 java.util.List;
  23. /**
  24. * @author chan
  25. * @date 2022/12/13 2:36 PM
  26. */
  27. @RequestMapping("/applets/channel")
  28. @RestController
  29. @RequiredArgsConstructor
  30. public class ChannelController {
  31. private final ChannelPopularizeVisitMapper channelPopularizeVisitMapper;
  32. private final ChannelPopularizeMapper popularizeMapper;
  33. private final MoviesVisitRecordMapper moviesVisitRecordMapper;
  34. private final BeanSearcher beanSearcher;
  35. private final CouponSkuMapper couponSkuMapper;
  36. @GetMapping("/get/{id}")
  37. public Result<ChannelPopularizeFrontView> getById(@PathVariable Long id, Boolean isLogin) {
  38. ChannelPopularizeFrontView channelPopularize = beanSearcher.searchFirst(ChannelPopularizeFrontView.class, MapUtils.builder()
  39. .put("id", String.format("id = %s", id))
  40. .build());
  41. if (channelPopularize == null) {
  42. throw BusinessRuntimeException.getInstance("该链接不存在!");
  43. }
  44. if (StrUtil.isNotBlank(channelPopularize.getCouponIds())) {
  45. try {
  46. List<Long> couponIds = Jsons.parseList(channelPopularize.getCouponIds(), Long.class);
  47. Long userId = (isLogin != null && !isLogin) ? null : StpUserUtil.getLoginIdAsLong();
  48. MapBuilder builder = MapUtils.builder().field(CouponTfPopularizeView::getCouponId, couponIds).op(Operator.InList);
  49. if (userId != null) {
  50. builder.put("user_id", String.format("and cu.user_id = %s", userId));
  51. }
  52. List<CouponTfPopularizeView> couponTfPopularizeViews = beanSearcher.searchAll(CouponTfPopularizeView.class, builder.build());
  53. couponTfPopularizeViews.forEach(data -> {
  54. String str = couponSkuMapper.selectGoodsSkuStr(data.getCouponId());
  55. data.setGoodsSkuStr(str.replaceAll(",", "/").replaceAll(";", ""));
  56. });
  57. channelPopularize.setCoupons(couponTfPopularizeViews);
  58. } catch (Exception e) {
  59. System.out.println(e.getMessage());
  60. }
  61. }
  62. ChannelPopularizeVisit channelPopularizeVisit = new ChannelPopularizeVisit();
  63. channelPopularizeVisit.setPopularizeId(id);
  64. channelPopularizeVisitMapper.insert(channelPopularizeVisit);
  65. return GatewayResponse.SUCCESS.newBuilder().toResult(channelPopularize);
  66. }
  67. /**
  68. * 记录银河电影浏览量
  69. */
  70. @PostMapping("/movies/record/")
  71. public Result<String> moviesVisitRecord() {
  72. MoviesVisitRecord moviesVisitRecord = new MoviesVisitRecord();
  73. moviesVisitRecord.setType(MoviesVisitRecord.Type.movies);
  74. moviesVisitRecordMapper.insert(moviesVisitRecord);
  75. return GatewayResponse.SUCCESS.newBuilder().toResult();
  76. }
  77. }