| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package com.cyksj.service.distribute.impl;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.cyksj.common.constant.TaskTypeEnum;
- import com.cyksj.common.exception.BusinessRuntimeException;
- import com.cyksj.mapper.GoodsDonMapper;
- import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
- import com.cyksj.mapper.manage.distribute.UserDistributeSharedMapper;
- import com.cyksj.mapper.manage.distribute.UserPlatDistributeRateMapper;
- import com.cyksj.mapper.market.task.TaskTypeMapper;
- import com.cyksj.model.entity.*;
- import com.cyksj.model.request.UserDistributeReq;
- import com.cyksj.service.distribute.DistributeService;
- import com.cyksj.service.market.task.TaskService;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.dao.DuplicateKeyException;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- /*
- *项目名: netflix
- *文件名: DistributeServiceImpl
- *创建者: JavaZou
- *创建时间:2022/11/14 12:21
- */
- @Service
- @RequiredArgsConstructor
- @Slf4j
- public class DistributeServiceImpl implements DistributeService {
- private final UserDistributeMapper userDistributeMapper;
- private final UserPlatDistributeRateMapper userPlatDistributeRateMapper;
- private final GoodsDonMapper goodsDonMapper;
- private final TaskService taskService;
- private final TaskTypeMapper taskTypeMapper;
- private final UserDistributeSharedMapper userDistributeSharedMapper;
- @Override
- @Transactional(rollbackFor = Throwable.class)
- public void insertDistribute(UserDistributeReq userDistributeReq) {
- UserDistribute exists = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class).eq(UserDistribute::getUserId, userDistributeReq.getUserId()).eq(UserDistribute::getDeleted, true).last("limit 1"));
- if (exists != null) {
- throw BusinessRuntimeException.getInstance("该推广者已添加");
- }
- UserDistribute userDistribute = new UserDistribute();
- userDistribute.setUserId(userDistributeReq.getUserId());
- userDistribute.setRemark(userDistributeReq.getRemark());
- userDistributeMapper.insert(userDistribute);
- for (UserPlatDistributeRate rate : userDistributeReq.getRates()) {
- if (rate.getRate() <0 || rate.getRate() > 100) {
- throw new BusinessRuntimeException("比例错误");
- }
- GoodsDon goodsDon = goodsDonMapper.selectById(rate.getGoodsId());
- if (goodsDon == null || !goodsDon.getDeleted() || goodsDon.getType() == 3) {
- throw new BusinessRuntimeException("平台错误");
- }
- rate.setDistributeId(userDistribute.getId());
- userPlatDistributeRateMapper.insert(rate);
- }
- }
- @Override
- public void editDistribute(UserDistributeReq userDistributeReq) {
- if (userDistributeReq.getId() == null || userDistributeReq.getId() < 1) {
- throw BusinessRuntimeException.getInstance("id错误");
- }
- UserDistribute userDistribute = new UserDistribute();
- userDistribute.setId(userDistributeReq.getId());
- userDistribute.setRemark(userDistributeReq.getRemark());
- userDistributeMapper.updateById(userDistribute);
- for (UserPlatDistributeRate rate : userDistributeReq.getRates()) {
- if (rate.getRate() <0 || rate.getRate() > 100) {
- throw new BusinessRuntimeException("比例错误");
- }
- GoodsDon goodsDon = goodsDonMapper.selectById(rate.getGoodsId());
- if (goodsDon == null || !goodsDon.getDeleted() || goodsDon.getType() == 3) {
- throw new BusinessRuntimeException("平台错误");
- }
- rate.setDistributeId(userDistribute.getId());
- userPlatDistributeRateMapper.updateById(rate);
- }
- }
- @Override
- public void saveDistributionInvitation(Long sharedId, Long userId) {
- UserDistributeShared userDistributeShared = new UserDistributeShared();
- userDistributeShared.setSharedId(sharedId);
- //存在分销
- userDistributeShared.setUserId(userId);
- try {
- userDistributeSharedMapper.insert(userDistributeShared);
- TaskType taskType = taskTypeMapper.selectOne(Wrappers.lambdaQuery(TaskType.class)
- .eq(TaskType::getName, TaskTypeEnum.share.getDesc()).last("limit 1"));
- taskService.completeTask(taskType, sharedId);
- } catch (DuplicateKeyException e) {
- log.info("分销被邀请人重复插入");
- }
- }
- }
|