分销配置修改用户等级同步变动
This commit is contained in:
@@ -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);
|
||||
|
||||
/**
|
||||
* 删除分销员
|
||||
* 逻辑删除分销员
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user