| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package com.cyksj.service.cps.impl;
- import cn.hutool.core.lang.Assert;
- import cn.hutool.core.util.RandomUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.cyksj.common.EnvCommonService;
- import com.cyksj.common.constant.Constant;
- import com.cyksj.common.exception.BusinessRuntimeException;
- import com.cyksj.mapper.UserMapper;
- import com.cyksj.mapper.manage.cps.UserDistributePopularizeMapper;
- import com.cyksj.model.entity.User;
- import com.cyksj.model.entity.UserDistributePopularize;
- import com.cyksj.model.views.UserDistributePopularizeView;
- import com.cyksj.service.cps.CpsPopularizeService;
- import com.cyksj.service.user.UserService;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.dao.DuplicateKeyException;
- import org.springframework.stereotype.Service;
- /*
- *项目名: netflix
- *文件名: CpsPopularizeServiceImpl
- *创建者: JavaZou
- *创建时间:2023/5/15 16:01
- */
- @Service
- @RequiredArgsConstructor
- @Slf4j
- public class CpsPopularizeServiceImpl implements CpsPopularizeService {
- private final UserDistributePopularizeMapper popularizeMapper;
- private final UserMapper userMapper;
- private final EnvCommonService envCommonService;
- private final UserService userService;
- @Override
- public void insert(UserDistributePopularize popularize) {
- saveOrUpdate(popularize);
- }
- @Override
- public void update(UserDistributePopularize popularize) {
- Long popularizeId = popularize.getId();
- if (popularizeId == null) throw BusinessRuntimeException.getInstance("链接不存在");
- saveOrUpdate(popularize);
- }
- @Override
- public void deleteById(long cpsUserId, Long id) {
- popularizeMapper.update(null, Wrappers.lambdaUpdate(UserDistributePopularize.class)
- .set(UserDistributePopularize::getDeleted, false)
- .eq(UserDistributePopularize::getUserId, cpsUserId)
- .eq(UserDistributePopularize::getId, id));
- }
- public void saveOrUpdate(UserDistributePopularize popularize) {
- Long popularizeId = popularize.getId();
- String name = popularize.getName();
- String remark = popularize.getRemark();
- Long userId = popularize.getUserId();
- if (name.length() > 128) {
- throw BusinessRuntimeException.getInstance("链接名称过长");
- }
- if (StrUtil.isNotBlank(remark) && remark.length() > 200) {
- throw BusinessRuntimeException.getInstance("备注过长");
- }
- if (popularizeId == null) {
- boolean isSuccess = false;
- String code = null;
- while (!isSuccess) {
- try {
- code = RandomUtil.randomString(6);
- popularize.setCode(code);
- popularizeMapper.insert(popularize);
- isSuccess = true;
- } catch (DuplicateKeyException e) {
- log.info("重复推广链接码code:{},重新获取code", code);
- }
- }
- return;
- }
- Assert.notNull(popularizeMapper.selectById(popularizeId), "链接不存在");
- popularizeMapper.update(null, Wrappers.lambdaUpdate(UserDistributePopularize.class)
- .set(UserDistributePopularize::getName, name)
- .set(UserDistributePopularize::getRemark, remark)
- .eq(UserDistributePopularize::getId, popularizeId)
- .set(UserDistributePopularize::getGoodsId, popularize.getGoodsId())
- .eq(UserDistributePopularize::getUserId, userId));
- }
- @Override
- public UserDistributePopularizeView getDefaultPopularizeDetail(long cpsUserId, String start, String end) {
- return popularizeMapper.getDefaultPopularizeDetail(cpsUserId, start, end);
- }
- @Override
- public String getServiceCodeUrl(long cpsUserId) {
- User user = userMapper.selectById(cpsUserId);
- String dsCode = user.getShowId();
- if (StrUtil.isEmpty(dsCode)) {
- user.setShowId(userService.getUserShowId(user.getId()));
- }
- String sharedUrl;
- if (envCommonService.isPrdEnv()) {
- sharedUrl = String.format(envCommonService.getDomain() + "serviceCode/?serviceCode=%s&dsCode=%s", Constant.EP_AC_CODE_ID, dsCode);
- } else {
- //测试环境
- sharedUrl = String.format(envCommonService.getDomain() + "test/web/serviceCode?serviceCode=%s&dsCode=%s", Constant.EP_AC_CODE_ID, dsCode);
- }
- return sharedUrl;
- }
- }
|