分销配置修改用户等级同步变动
This commit is contained in:
@@ -4,6 +4,7 @@ import com.czg.account.entity.UserInfo;
|
|||||||
import com.czg.constant.TableValueConstant;
|
import com.czg.constant.TableValueConstant;
|
||||||
import com.czg.market.dto.MkDistributionUserDTO;
|
import com.czg.market.dto.MkDistributionUserDTO;
|
||||||
import com.czg.market.dto.MkDistributionWithdrawFlowDTO;
|
import com.czg.market.dto.MkDistributionWithdrawFlowDTO;
|
||||||
|
import com.czg.market.entity.MkDistributionConfig;
|
||||||
import com.czg.market.entity.MkDistributionUser;
|
import com.czg.market.entity.MkDistributionUser;
|
||||||
import com.czg.market.vo.DistributionCenterShopVO;
|
import com.czg.market.vo.DistributionCenterShopVO;
|
||||||
import com.czg.market.vo.InviteUserVO;
|
import com.czg.market.vo.InviteUserVO;
|
||||||
@@ -90,6 +91,8 @@ public interface MkDistributionUserService extends IService<MkDistributionUser>
|
|||||||
void resetDistributionUserLevel(MkDistributionUserDTO param);
|
void resetDistributionUserLevel(MkDistributionUserDTO param);
|
||||||
|
|
||||||
|
|
||||||
|
void initLevel(MkDistributionConfig config, MkDistributionUser distributionUser);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除分销员
|
* 删除分销员
|
||||||
* 逻辑删除分销员
|
* 逻辑删除分销员
|
||||||
|
|||||||
@@ -6,9 +6,12 @@ import cn.hutool.extra.qrcode.QrCodeUtil;
|
|||||||
import com.czg.market.dto.MkDistributionConfigDTO;
|
import com.czg.market.dto.MkDistributionConfigDTO;
|
||||||
import com.czg.market.entity.MkDistributionConfig;
|
import com.czg.market.entity.MkDistributionConfig;
|
||||||
import com.czg.market.entity.MkDistributionLevelConfig;
|
import com.czg.market.entity.MkDistributionLevelConfig;
|
||||||
|
import com.czg.market.entity.MkDistributionUser;
|
||||||
import com.czg.market.service.MkDistributionConfigService;
|
import com.czg.market.service.MkDistributionConfigService;
|
||||||
import com.czg.market.service.MkDistributionLevelConfigService;
|
import com.czg.market.service.MkDistributionLevelConfigService;
|
||||||
|
import com.czg.market.service.MkDistributionUserService;
|
||||||
import com.czg.market.vo.MkDistributionConfigVO;
|
import com.czg.market.vo.MkDistributionConfigVO;
|
||||||
|
import com.czg.order.entity.OrderInfo;
|
||||||
import com.czg.service.market.mapper.MkDistributionConfigMapper;
|
import com.czg.service.market.mapper.MkDistributionConfigMapper;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
@@ -16,12 +19,17 @@ import jakarta.annotation.Resource;
|
|||||||
import org.springframework.cache.annotation.CacheConfig;
|
import org.springframework.cache.annotation.CacheConfig;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.transaction.support.TransactionSynchronization;
|
||||||
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分销配置 服务层实现。
|
* 分销配置 服务层实现。
|
||||||
@@ -35,6 +43,9 @@ public class MkDistributionConfigServiceImpl extends ServiceImpl<MkDistributionC
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MkDistributionLevelConfigService levelConfigService;
|
private MkDistributionLevelConfigService levelConfigService;
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private MkDistributionUserService distributionUserService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Cacheable(key = "#shopId")
|
@Cacheable(key = "#shopId")
|
||||||
@@ -52,15 +63,34 @@ public class MkDistributionConfigServiceImpl extends ServiceImpl<MkDistributionC
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CacheEvict(key = "#shopId")
|
@CacheEvict(key = "#shopId")
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean edit(Long shopId, MkDistributionConfigDTO dto) {
|
public Boolean edit(Long shopId, MkDistributionConfigDTO dto) {
|
||||||
MkDistributionConfig config = getOne(new QueryWrapper().eq(MkDistributionConfig::getShopId, shopId));
|
MkDistributionConfig config = getOne(new QueryWrapper().eq(MkDistributionConfig::getShopId, shopId));
|
||||||
|
List<MkDistributionUser> distributionUserList = distributionUserService.list(new QueryWrapper().eq(MkDistributionUser::getShopId, shopId));
|
||||||
|
// 邀请人数变动
|
||||||
|
if (!config.getInviteCount().equals(dto.getInviteCount())) {
|
||||||
|
distributionUserList.forEach(item -> item.setStatus(item.getInviteCount() >= dto.getInviteCount() ? 1 : 0));
|
||||||
|
distributionUserService.updateBatch(distributionUserList);
|
||||||
|
}
|
||||||
BeanUtil.copyProperties(dto, config);
|
BeanUtil.copyProperties(dto, config);
|
||||||
|
|
||||||
if (dto.getLevelConfigList() != null) {
|
if (dto.getLevelConfigList() != null) {
|
||||||
levelConfigService.updateByShopId(dto.getLevelConfigList(), config.getShopId(), config.getId());
|
levelConfigService.updateByShopId(dto.getLevelConfigList(), config.getShopId(), config.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
return updateById(config);
|
boolean b = updateById(config);
|
||||||
|
if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
||||||
|
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||||
|
@Override
|
||||||
|
public void afterCommit() {
|
||||||
|
// 事务成功提交后执行消息发送
|
||||||
|
distributionUserList.forEach(item -> {
|
||||||
|
distributionUserService.initLevel(config, item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -477,7 +477,9 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void initLevel(MkDistributionConfig config, MkDistributionUser distributionUser) {
|
|
||||||
|
@Override
|
||||||
|
public void initLevel(MkDistributionConfig config, MkDistributionUser distributionUser) {
|
||||||
MkDistributionLevelConfig levelConfig = new MkDistributionLevelConfig();
|
MkDistributionLevelConfig levelConfig = new MkDistributionLevelConfig();
|
||||||
if ("not_upgrade".equals(config.getUpgradeType())) {
|
if ("not_upgrade".equals(config.getUpgradeType())) {
|
||||||
levelConfig = levelConfigService.getOne(QueryWrapper.create()
|
levelConfig = levelConfigService.getOne(QueryWrapper.create()
|
||||||
|
|||||||
Reference in New Issue
Block a user