分销员

This commit is contained in:
2025-10-27 13:55:14 +08:00
parent 22ab03ea51
commit 6118711919
6 changed files with 181 additions and 14 deletions

View File

@@ -1,13 +1,31 @@
package com.czg.service.market.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.czg.account.entity.ShopUser;
import com.czg.account.service.ShopUserService;
import com.czg.market.dto.MkDistributionUserDTO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.spring.service.impl.ServiceImpl;
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.service.market.mapper.MkDistributionUserMapper;
import com.czg.utils.AssertUtil;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 分销员表 服务层实现。
*
@@ -15,25 +33,82 @@ import org.springframework.stereotype.Service;
* @since 2025-10-27
*/
@Service
public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUserMapper, MkDistributionUser> implements MkDistributionUserService{
public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUserMapper, MkDistributionUser> implements MkDistributionUserService {
@Resource
private MkDistributionConfigService mkDistributionConfigService;
@Resource
private MkDistributionLevelConfigService levelConfigService;
@DubboReference
private ShopUserService shopUserService;
@Override
public Page<MkDistributionUserDTO> getDistributionUser(MkDistributionUserDTO param) {
return null;
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq(MkDistributionUser::getShopId, param.getShopId());
queryWrapper.eq(MkDistributionUser::getParentId, param.getParentId());
queryWrapper.eq(MkDistributionUser::getShopUserId, param.getShopUserId());
queryWrapper.ge(MkDistributionUser::getCreateTime, param.getStartTime());
queryWrapper.le(MkDistributionUser::getCreateTime, param.getEndTime());
queryWrapper.orderBy(MkDistributionUser::getCreateTime).desc();
Page<MkDistributionUserDTO> page = pageAs(new Page<>(param.getPage(), param.getSize()), queryWrapper, MkDistributionUserDTO.class);
Map<Long, ShopUser> shopUserMap = new HashMap<>();
if (CollUtil.isNotEmpty(page.getRecords())) {
if (param.getShopUserId() != null) {
shopUserMap.put(param.getShopUserId(), shopUserService.getById(param.getShopUserId()));
} else {
Set<Long> shopUserIds = page.getRecords().stream()
.map(MkDistributionUserDTO::getShopUserId)
.filter(Objects::nonNull)
.collect(Collectors.toSet());
shopUserMap = shopUserService.list(QueryWrapper.create().in(ShopUser::getId, shopUserIds))
.stream().collect(Collectors.toMap(ShopUser::getId, shopUser -> shopUser));
}
for (MkDistributionUserDTO record : page.getRecords()) {
ShopUser shopUser = shopUserMap.get(record.getShopUserId());
if (shopUser == null || shopUser.getId() == null) {
continue;
}
record.setShopUserName(shopUser.getNickName());
record.setShopUserPhone(shopUser.getPhone());
}
}
return page;
}
@Override
public void addDistributionUser(MkDistributionUser param) {
AssertUtil.isNull(param.getShopId(), "店铺ID不能为空");
AssertUtil.isNull(param.getOpeningMethod(), "开通方式不能为空");
MkDistributionConfig config = mkDistributionConfigService.getOne(
QueryWrapper.create().eq(MkDistributionConfig::getShopId, param.getShopId())
.eq(MkDistributionConfig::getIsEnable, 1));
AssertUtil.isNull(config, "店铺未配置分销");
if (config.getInviteCount() == 0) {
param.setStatus(1);
MkDistributionLevelConfig levelConfig = levelConfigService.getOne(QueryWrapper.create()
.eq(MkDistributionLevelConfig::getShopId, param.getShopId())
.eq(MkDistributionLevelConfig::getLevel, 1));
AssertUtil.isNull(levelConfig, "店铺未配置分销等级");
param.setDistributionLevelId(levelConfig.getId());
param.setDistributionLevelName(levelConfig.getName());
}
save(param);
}
@Override
public void updateDistributionUserById(MkDistributionUserDTO param) {
AssertUtil.isNull(param.getId(), "分销员ID不能为空");
MkDistributionUser distributionUser = BeanUtil.toBean(param, MkDistributionUser.class);
updateById(distributionUser);
}
@Override
public void deleteDistributionUser(Long id) {
AssertUtil.isNull(id, "分销员ID不能为空");
MkDistributionUser distributionUser = new MkDistributionUser();
distributionUser.setId(id);
distributionUser.setDel(true);
updateById(distributionUser);
}
}