CpsPopularizeServiceImpl.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.cyksj.service.cps.impl;
  2. import cn.hutool.core.lang.Assert;
  3. import cn.hutool.core.util.RandomUtil;
  4. import cn.hutool.core.util.StrUtil;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.cyksj.common.EnvCommonService;
  7. import com.cyksj.common.constant.Constant;
  8. import com.cyksj.common.exception.BusinessRuntimeException;
  9. import com.cyksj.mapper.UserMapper;
  10. import com.cyksj.mapper.manage.cps.UserDistributePopularizeMapper;
  11. import com.cyksj.model.entity.User;
  12. import com.cyksj.model.entity.UserDistributePopularize;
  13. import com.cyksj.model.views.UserDistributePopularizeView;
  14. import com.cyksj.service.cps.CpsPopularizeService;
  15. import com.cyksj.service.user.UserService;
  16. import lombok.RequiredArgsConstructor;
  17. import lombok.extern.slf4j.Slf4j;
  18. import org.springframework.dao.DuplicateKeyException;
  19. import org.springframework.stereotype.Service;
  20. /*
  21. *项目名: netflix
  22. *文件名: CpsPopularizeServiceImpl
  23. *创建者: JavaZou
  24. *创建时间:2023/5/15 16:01
  25. */
  26. @Service
  27. @RequiredArgsConstructor
  28. @Slf4j
  29. public class CpsPopularizeServiceImpl implements CpsPopularizeService {
  30. private final UserDistributePopularizeMapper popularizeMapper;
  31. private final UserMapper userMapper;
  32. private final EnvCommonService envCommonService;
  33. private final UserService userService;
  34. @Override
  35. public void insert(UserDistributePopularize popularize) {
  36. saveOrUpdate(popularize);
  37. }
  38. @Override
  39. public void update(UserDistributePopularize popularize) {
  40. Long popularizeId = popularize.getId();
  41. if (popularizeId == null) throw BusinessRuntimeException.getInstance("链接不存在");
  42. saveOrUpdate(popularize);
  43. }
  44. @Override
  45. public void deleteById(long cpsUserId, Long id) {
  46. popularizeMapper.update(null, Wrappers.lambdaUpdate(UserDistributePopularize.class)
  47. .set(UserDistributePopularize::getDeleted, false)
  48. .eq(UserDistributePopularize::getUserId, cpsUserId)
  49. .eq(UserDistributePopularize::getId, id));
  50. }
  51. public void saveOrUpdate(UserDistributePopularize popularize) {
  52. Long popularizeId = popularize.getId();
  53. String name = popularize.getName();
  54. String remark = popularize.getRemark();
  55. Long userId = popularize.getUserId();
  56. if (name.length() > 128) {
  57. throw BusinessRuntimeException.getInstance("链接名称过长");
  58. }
  59. if (StrUtil.isNotBlank(remark) && remark.length() > 200) {
  60. throw BusinessRuntimeException.getInstance("备注过长");
  61. }
  62. if (popularizeId == null) {
  63. boolean isSuccess = false;
  64. String code = null;
  65. while (!isSuccess) {
  66. try {
  67. code = RandomUtil.randomString(6);
  68. popularize.setCode(code);
  69. popularizeMapper.insert(popularize);
  70. isSuccess = true;
  71. } catch (DuplicateKeyException e) {
  72. log.info("重复推广链接码code:{},重新获取code", code);
  73. }
  74. }
  75. return;
  76. }
  77. Assert.notNull(popularizeMapper.selectById(popularizeId), "链接不存在");
  78. popularizeMapper.update(null, Wrappers.lambdaUpdate(UserDistributePopularize.class)
  79. .set(UserDistributePopularize::getName, name)
  80. .set(UserDistributePopularize::getRemark, remark)
  81. .eq(UserDistributePopularize::getId, popularizeId)
  82. .set(UserDistributePopularize::getGoodsId, popularize.getGoodsId())
  83. .eq(UserDistributePopularize::getUserId, userId));
  84. }
  85. @Override
  86. public UserDistributePopularizeView getDefaultPopularizeDetail(long cpsUserId, String start, String end) {
  87. return popularizeMapper.getDefaultPopularizeDetail(cpsUserId, start, end);
  88. }
  89. @Override
  90. public String getServiceCodeUrl(long cpsUserId) {
  91. User user = userMapper.selectById(cpsUserId);
  92. String dsCode = user.getShowId();
  93. if (StrUtil.isEmpty(dsCode)) {
  94. user.setShowId(userService.getUserShowId(user.getId()));
  95. }
  96. String sharedUrl;
  97. if (envCommonService.isPrdEnv()) {
  98. sharedUrl = String.format(envCommonService.getDomain() + "serviceCode/?serviceCode=%s&dsCode=%s", Constant.EP_AC_CODE_ID, dsCode);
  99. } else {
  100. //测试环境
  101. sharedUrl = String.format(envCommonService.getDomain() + "test/web/serviceCode?serviceCode=%s&dsCode=%s", Constant.EP_AC_CODE_ID, dsCode);
  102. }
  103. return sharedUrl;
  104. }
  105. }