From c75b6944a0fcbc689d0143d38ce1aae3a917be85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Fri, 31 Oct 2025 09:58:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=94=80=E9=85=8D=E7=BD=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=94=A8=E6=88=B7=E7=AD=89=E7=BA=A7=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=8F=98=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MkDistributionUserService.java | 3 ++ .../impl/MkDistributionConfigServiceImpl.java | 32 ++++++++++++++++++- .../impl/MkDistributionUserServiceImpl.java | 4 ++- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java index 621fbacdb..bacda8fed 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java @@ -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 void resetDistributionUserLevel(MkDistributionUserDTO param); + void initLevel(MkDistributionConfig config, MkDistributionUser distributionUser); + /** * 删除分销员 * 逻辑删除分销员 diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java index e66efae77..37705c2df 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java @@ -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 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; } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java index a0b409798..3af7bb563 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java @@ -477,7 +477,9 @@ public class MkDistributionUserServiceImpl extends ServiceImpl