shopUser 增加 是否是分销员的标识

会员等级
This commit is contained in:
wangw 2025-10-28 13:41:45 +08:00
parent d5daa207ad
commit de02f98141
2 changed files with 55 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package com.czg.account.entity; package com.czg.account.entity;
import cn.hutool.core.util.StrUtil;
import com.mybatisflex.annotation.Column; import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
@ -12,8 +13,9 @@ import lombok.experimental.Accessors;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.HashSet;
import java.util.Set;
/** /**
* 商户储值会员 实体类 * 商户储值会员 实体类
@ -22,7 +24,6 @@ import java.time.LocalDateTime;
* @since 2025-02-08 * @since 2025-02-08
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Table("tb_shop_user") @Table("tb_shop_user")
@ -157,7 +158,7 @@ public class ShopUser implements Serializable {
//邀请人上级累计收益/二级分润 //邀请人上级累计收益/二级分润
private BigDecimal twoIncome; private BigDecimal twoIncome;
// 是否分销员 // 是否分销员
private Integer isDistribution; private String distributionShops;
@Column(ignore = true) @Column(ignore = true)
private String memberName; private String memberName;
@ -167,4 +168,44 @@ public class ShopUser implements Serializable {
@Column(ignore = true) @Column(ignore = true)
private Integer isMemberPrice; private Integer isMemberPrice;
/**
* 检查分销店铺是否包含当前店铺
*/
public boolean checkDistributionShops(String shopId) {
if (distributionShops == null || StrUtil.isEmpty(shopId)) {
return false;
}
// 按逗号分割并检查每个元素是否完全匹配
String[] shopIds = distributionShops.split(",");
for (String id : shopIds) {
if (shopId.equals(id.trim())) {
return true;
}
}
return false;
}
public void addDistributionShop(Long shopId) {
if (shopId == null) {
return;
}
String targetId = shopId.toString().trim();
if (targetId.isEmpty()) {
return;
}
// 解析原有字符串为Set去重+方便判断
Set<String> shopSet = new HashSet<>();
if (distributionShops != null && !distributionShops.trim().isEmpty()) {
for (String id : distributionShops.split(",")) {
String trimmedId = id.trim();
if (!trimmedId.isEmpty()) {
shopSet.add(trimmedId);
}
}
}
shopSet.add(targetId);
distributionShops = String.join(",", shopSet);
}
} }

View File

@ -270,7 +270,7 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
// distributionUser.setDistributionLevelId(levelConfig.getId()); // distributionUser.setDistributionLevelId(levelConfig.getId());
// distributionUser.setDistributionLevelName(levelConfig.getName()); // distributionUser.setDistributionLevelName(levelConfig.getName());
// } // }
//
// } // }
@Override @Override
@ -279,6 +279,7 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
queryWrapper.eq(MkDistributionUser::getId, param.getId()); queryWrapper.eq(MkDistributionUser::getId, param.getId());
queryWrapper.eq(MkDistributionUser::getShopId, param.getShopId()); queryWrapper.eq(MkDistributionUser::getShopId, param.getShopId());
queryWrapper.eq(MkDistributionUser::getParentId, param.getParentId()); queryWrapper.eq(MkDistributionUser::getParentId, param.getParentId());
queryWrapper.eq(MkDistributionUser::getDistributionLevelId, param.getDistributionLevelId());
queryWrapper.ge(MkDistributionUser::getCreateTime, param.getStartTime()); queryWrapper.ge(MkDistributionUser::getCreateTime, param.getStartTime());
queryWrapper.le(MkDistributionUser::getCreateTime, param.getEndTime()); queryWrapper.le(MkDistributionUser::getCreateTime, param.getEndTime());
queryWrapper.orderBy(MkDistributionUser::getCreateTime).desc(); queryWrapper.orderBy(MkDistributionUser::getCreateTime).desc();
@ -323,12 +324,11 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
AssertUtil.isNull(param.getOpeningMethod(), "开通方式不能为空"); AssertUtil.isNull(param.getOpeningMethod(), "开通方式不能为空");
AssertUtil.isNull(param.getUserId(), "用户ID不能为空"); AssertUtil.isNull(param.getUserId(), "用户ID不能为空");
AssertUtil.isNull(param.getId(), "店铺用户ID不能为空"); AssertUtil.isNull(param.getId(), "店铺用户ID不能为空");
long count = count(QueryWrapper.create() ShopUser shopUser = shopUserService.getById(param.getId());
.eq(MkDistributionUser::getId, param.getId()) AssertUtil.isNull(shopUser, "店铺用户ID不能为空");
.eq(MkDistributionUser::getShopId, param.getShopId()) boolean isExits = shopUser.checkDistributionShops(param.getShopId().toString());
.eq(MkDistributionUser::getUserId, param.getUserId())); if(isExits){
if (count > 0) { throw new CzgException("该用户已被添加为分销员,不可重复添加");
throw new CzgException("该用户已被添加为分销员");
} }
MkDistributionConfig config = mkDistributionConfigService.getOne( MkDistributionConfig config = mkDistributionConfigService.getOne(
QueryWrapper.create().eq(MkDistributionConfig::getShopId, param.getShopId()) QueryWrapper.create().eq(MkDistributionConfig::getShopId, param.getShopId())
@ -347,6 +347,10 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
param.setId(param.getId()); param.setId(param.getId());
param.setInviteCode(CzgRandomUtils.randomString(10)); param.setInviteCode(CzgRandomUtils.randomString(10));
save(param); save(param);
ShopUser shopUser2 = new ShopUser();
shopUser2.setId(shopUser.getId());
shopUser2.addDistributionShop(param.getShopId());
shopUserService.updateById(shopUser2);
} }
@Override @Override