Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
张松 2025-10-30 13:52:49 +08:00
commit 6fe5149412
2 changed files with 33 additions and 58 deletions

View File

@ -96,7 +96,6 @@ public interface MkDistributionUserService extends IService<MkDistributionUser>
void deleteDistributionUser(Long id);
Map<String, Object> pay(long userId, MkDistributionPayDTO payDTO);
Boolean cashPayOrder(long adminId, MkDistributionPayDTO payParam);

View File

@ -17,23 +17,14 @@ import com.czg.constant.TableValueConstant;
import com.czg.exception.CzgException;
import com.czg.market.dto.MkDistributionUserDTO;
import com.czg.market.dto.MkDistributionWithdrawFlowDTO;
import com.czg.market.entity.MkDistributionAmountFlow;
import com.czg.market.entity.MkDistributionConfig;
import com.czg.market.entity.MkDistributionLevelConfig;
import com.czg.market.entity.MkDistributionUser;
import com.czg.market.service.MkDistributionAmountFlowService;
import com.czg.market.service.MkDistributionConfigService;
import com.czg.market.service.MkDistributionLevelConfigService;
import com.czg.market.service.MkDistributionUserService;
import com.czg.market.vo.DistributionCenterShopVO;
import com.czg.market.vo.DistributionCenterTopVO;
import com.czg.market.entity.*;
import com.czg.market.service.*;
import com.czg.market.vo.DistributionCenterShopVO;
import com.czg.market.vo.DistributionCenterTopVO;
import com.czg.market.vo.InviteUserVO;
import com.czg.market.vo.MkDistributionConfigVO;
import com.czg.order.dto.MkDistributionPayDTO;
import com.czg.order.entity.OrderInfo;
import com.czg.order.entity.OrderPayment;
import com.czg.order.service.OrderInfoService;
import com.czg.order.service.OrderPaymentService;
import com.czg.sa.StpKit;
@ -41,10 +32,10 @@ import com.czg.service.market.enums.OrderStatusEnums;
import com.czg.service.market.mapper.MkDistributionUserMapper;
import com.czg.utils.AssertUtil;
import com.czg.utils.CzgRandomUtils;
import com.czg.utils.FunUtils;
import com.czg.utils.PageUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.czg.utils.FunUtils;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
@ -55,13 +46,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.*;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -423,20 +410,12 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
.eq(MkDistributionConfig::getIsEnable, 1));
AssertUtil.isNull(config, "店铺未配置分销");
param.setStatus(0);
if (!"自主申请".equals(param.getOpeningMethod()) || (config.getInviteCount() == 0)) {
MkDistributionLevelConfig levelConfig = levelConfigService.getOne(QueryWrapper.create()
.eq(MkDistributionLevelConfig::getShopId, param.getShopId())
.orderBy(MkDistributionLevelConfig::getId).asc().limit(1));
param.setStatus(1);
AssertUtil.isNull(levelConfig, "店铺未配置分销等级");
param.setDistributionLevelId(levelConfig.getId());
param.setDistributionLevelName(levelConfig.getName());
}
param.setId(param.getId());
param.setUserId(shopUser.getUserId());
param.setInviteCode(CzgRandomUtils.randomString(10));
BigDecimal totalAmount = mapper.getOrderConsumeAmountById(param.getShopId(), param.getUserId());
param.setConsumeAmount(totalAmount);
if (!"自主申请".equals(param.getOpeningMethod()) || config.getInviteCount() == 0) {
initLevel(config, param);
}
save(param);
ShopUser shopUser2 = new ShopUser();
shopUser2.setId(shopUser.getId());
@ -458,38 +437,50 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
MkDistributionUser distributionUser = getById(param.getId());
AssertUtil.isNull(distributionUser, "分销员不存在");
AssertUtil.isTrue(distributionUser.getIsAssignLevel() == 0, "分销员并未指定等级,不可重置");
MkDistributionConfigVO detail = mkDistributionConfigService.detail(param.getShopId());
AssertUtil.isNull(detail, "店铺未配置分销");
MkDistributionConfig config = mkDistributionConfigService.getOne(
QueryWrapper.create().eq(MkDistributionConfig::getShopId, param.getShopId())
.eq(MkDistributionConfig::getIsEnable, 1));
AssertUtil.isNull(config, "店铺未配置分销");
initLevel(config, distributionUser);
MkDistributionUser newDistributionUser = new MkDistributionUser();
newDistributionUser.setId(distributionUser.getId());
newDistributionUser.setIsAssignLevel(0);
newDistributionUser.setDistributionLevelId(distributionUser.getDistributionLevelId());
newDistributionUser.setDistributionLevelName(distributionUser.getDistributionLevelName());
newDistributionUser.setConsumeAmount(distributionUser.getConsumeAmount());
updateById(distributionUser);
}
private void initLevel(MkDistributionConfig config, MkDistributionUser distributionUser) {
MkDistributionLevelConfig levelConfig = new MkDistributionLevelConfig();
if ("not_upgrade".equals(detail.getUpgradeType())) {
if ("not_upgrade".equals(config.getUpgradeType())) {
levelConfig = levelConfigService.getOne(QueryWrapper.create()
.eq(MkDistributionLevelConfig::getShopId, param.getShopId())
.eq(MkDistributionLevelConfig::getShopId, config.getShopId())
.orderBy(MkDistributionLevelConfig::getId).asc().limit(1));
} else if ("invite".equals(detail.getUpgradeType())) {
} else if ("invite".equals(config.getUpgradeType())) {
levelConfig = levelConfigService.getOne(QueryWrapper.create()
.eq(MkDistributionLevelConfig::getShopId, param.getShopId())
.eq(MkDistributionLevelConfig::getShopId, config.getShopId())
.le(MkDistributionLevelConfig::getInviteCount, distributionUser.getInviteCount())
.orderBy(MkDistributionLevelConfig::getInviteCount).asc().limit(1));
} else if ("cost".equals(detail.getUpgradeType())) {
BigDecimal totalAmount = mapper.getOrderConsumeAmountByList(param.getShopId(), distributionUser.getId());
BigDecimal ownTotalAmount = mapper.getOrderConsumeAmountById(param.getShopId(), distributionUser.getUserId());
} else if ("cost".equals(config.getUpgradeType())) {
BigDecimal totalAmount = mapper.getOrderConsumeAmountByList(config.getShopId(), distributionUser.getId());
BigDecimal ownTotalAmount = mapper.getOrderConsumeAmountById(config.getShopId(), distributionUser.getUserId());
totalAmount = totalAmount.add(ownTotalAmount);
levelConfig = levelConfigService.getOne(QueryWrapper.create()
.eq(MkDistributionLevelConfig::getShopId, distributionUser.getShopId())
.le(MkDistributionLevelConfig::getCostAmount, totalAmount)
.orderBy(MkDistributionLevelConfig::getId).asc().limit(1));
distributionUser.setConsumeAmount(totalAmount);
}
if (levelConfig != null) {
newDistributionUser.setDistributionLevelId(levelConfig.getId());
newDistributionUser.setDistributionLevelName(levelConfig.getName());
distributionUser.setDistributionLevelId(levelConfig.getId());
distributionUser.setDistributionLevelName(levelConfig.getName());
distributionUser.setStatus(1);
} else {
newDistributionUser.setDistributionLevelId(0L);
newDistributionUser.setDistributionLevelName("无等级");
distributionUser.setDistributionLevelId(0L);
distributionUser.setDistributionLevelName("无等级");
}
updateById(newDistributionUser);
}
@Override
@ -502,21 +493,6 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
}
@Override
public Map<String, Object> pay(long userId, MkDistributionPayDTO payDTO) {
MkDistributionConfigVO detail = mkDistributionConfigService.detail(payDTO.getShopId());
AssertUtil.isTrue(detail.getIsEnable() != 1, "分销未开启");
if (!TableValueConstant.DistributionConfig.OpenType.PAY.getCode().equals(detail.getOpenType())) {
throw new CzgException("当前未开启购买分销配置");
}
OrderPayment orderPayment = new OrderPayment().setShopId(payDTO.getShopId()).setSourceId(userId)
.setPayType("distribution").setOrderNo(payDTO.getPlatformType() + IdUtil.getSnowflakeNextId()).setAmount(detail.getPayAmount());
orderPaymentService.save(orderPayment);
return Map.of();
}
@Override
public Boolean cashPayOrder(long adminId, MkDistributionPayDTO payParam) {
ShopInfo shopInfo = shopInfoService.getById(payParam.getShopId());