CpsPopularizeServiceImpl.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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.exception.BusinessRuntimeException;
  7. import com.cyksj.mapper.manage.cps.UserDistributePopularizeMapper;
  8. import com.cyksj.model.entity.UserDistributePopularize;
  9. import com.cyksj.model.views.UserDistributePopularizeView;
  10. import com.cyksj.service.cps.CpsPopularizeService;
  11. import lombok.RequiredArgsConstructor;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.dao.DuplicateKeyException;
  14. import org.springframework.stereotype.Service;
  15. /*
  16. *项目名: netflix
  17. *文件名: CpsPopularizeServiceImpl
  18. *创建者: JavaZou
  19. *创建时间:2023/5/15 16:01
  20. */
  21. @Service
  22. @RequiredArgsConstructor
  23. @Slf4j
  24. public class CpsPopularizeServiceImpl implements CpsPopularizeService {
  25. private final UserDistributePopularizeMapper popularizeMapper;
  26. @Override
  27. public void insert(UserDistributePopularize popularize) {
  28. saveOrUpdate(popularize);
  29. }
  30. @Override
  31. public void update(UserDistributePopularize popularize) {
  32. Long popularizeId = popularize.getId();
  33. if (popularizeId == null) throw BusinessRuntimeException.getInstance("链接不存在");
  34. saveOrUpdate(popularize);
  35. }
  36. @Override
  37. public void deleteById(long cpsUserId, Long id) {
  38. popularizeMapper.update(null, Wrappers.lambdaUpdate(UserDistributePopularize.class)
  39. .set(UserDistributePopularize::getDeleted, false)
  40. .eq(UserDistributePopularize::getUserId, cpsUserId)
  41. .eq(UserDistributePopularize::getId, id));
  42. }
  43. public void saveOrUpdate(UserDistributePopularize popularize) {
  44. Long popularizeId = popularize.getId();
  45. String name = popularize.getName();
  46. String remark = popularize.getRemark();
  47. Long userId = popularize.getUserId();
  48. if (name.length() > 128) {
  49. throw BusinessRuntimeException.getInstance("链接名称过长");
  50. }
  51. if (StrUtil.isNotBlank(remark) && remark.length() > 200) {
  52. throw BusinessRuntimeException.getInstance("备注过长");
  53. }
  54. if (popularizeId == null) {
  55. boolean isSuccess = false;
  56. String code = null;
  57. while (!isSuccess) {
  58. try {
  59. code = RandomUtil.randomString(6);
  60. popularize.setCode(code);
  61. popularizeMapper.insert(popularize);
  62. isSuccess = true;
  63. } catch (DuplicateKeyException e) {
  64. log.info("重复推广链接码code:{},重新获取code", code);
  65. }
  66. }
  67. return;
  68. }
  69. Assert.notNull(popularizeMapper.selectById(popularizeId), "链接不存在");
  70. popularizeMapper.update(null, Wrappers.lambdaUpdate(UserDistributePopularize.class)
  71. .set(UserDistributePopularize::getName, name)
  72. .set(UserDistributePopularize::getRemark, remark)
  73. .eq(UserDistributePopularize::getId, popularizeId)
  74. .set(UserDistributePopularize::getGoodsId, popularize.getGoodsId())
  75. .eq(UserDistributePopularize::getUserId, userId));
  76. }
  77. @Override
  78. public UserDistributePopularizeView getDefaultPopularizeDetail(long cpsUserId) {
  79. return popularizeMapper.getDefaultPopularizeDetail(cpsUserId);
  80. }
  81. }