分销配置修改用户等级同步变动

This commit is contained in:
张松
2025-10-31 09:58:33 +08:00
parent fbf2871e81
commit c75b6944a0
3 changed files with 37 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import com.czg.account.entity.UserInfo;
import com.czg.constant.TableValueConstant;
import com.czg.market.dto.MkDistributionUserDTO;
import com.czg.market.dto.MkDistributionWithdrawFlowDTO;
import com.czg.market.entity.MkDistributionConfig;
import com.czg.market.entity.MkDistributionUser;
import com.czg.market.vo.DistributionCenterShopVO;
import com.czg.market.vo.InviteUserVO;
@@ -90,6 +91,8 @@ public interface MkDistributionUserService extends IService<MkDistributionUser>
void resetDistributionUserLevel(MkDistributionUserDTO param);
void initLevel(MkDistributionConfig config, MkDistributionUser distributionUser);
/**
* 删除分销员
* 逻辑删除分销员

View File

@@ -6,9 +6,12 @@ import cn.hutool.extra.qrcode.QrCodeUtil;
import com.czg.market.dto.MkDistributionConfigDTO;
import com.czg.market.entity.MkDistributionConfig;
import com.czg.market.entity.MkDistributionLevelConfig;
import com.czg.market.entity.MkDistributionUser;
import com.czg.market.service.MkDistributionConfigService;
import com.czg.market.service.MkDistributionLevelConfigService;
import com.czg.market.service.MkDistributionUserService;
import com.czg.market.vo.MkDistributionConfigVO;
import com.czg.order.entity.OrderInfo;
import com.czg.service.market.mapper.MkDistributionConfigMapper;
import com.mybatisflex.core.query.QueryWrapper;
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.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Lazy;
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 java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.math.BigDecimal;
import java.util.List;
/**
* 分销配置 服务层实现。
@@ -35,6 +43,9 @@ public class MkDistributionConfigServiceImpl extends ServiceImpl<MkDistributionC
@Resource
private MkDistributionLevelConfigService levelConfigService;
@Resource
@Lazy
private MkDistributionUserService distributionUserService;
@Override
@Cacheable(key = "#shopId")
@@ -52,15 +63,34 @@ public class MkDistributionConfigServiceImpl extends ServiceImpl<MkDistributionC
@Override
@CacheEvict(key = "#shopId")
@Transactional(rollbackFor = Exception.class)
public Boolean edit(Long shopId, MkDistributionConfigDTO dto) {
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);
if (dto.getLevelConfigList() != null) {
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;
}

View File

@@ -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();
if ("not_upgrade".equals(config.getUpgradeType())) {
levelConfig = levelConfigService.getOne(QueryWrapper.create()