超级会员购买相关

This commit is contained in:
张松
2025-09-12 10:42:24 +08:00
parent bd47a96228
commit 484d39819c
4 changed files with 21 additions and 27 deletions

View File

@@ -71,7 +71,8 @@ public class MemberLevelConfig implements Serializable {
/**
* 周期时间包含周 月 年 日
*/
private String cycleTime;
private Integer cycleTime;
private String cycleUnit;
/**
* 赠送积分

View File

@@ -41,6 +41,6 @@ public interface TbMemberConfigService extends IService<TbMemberConfig> {
* 发放会员奖励
* @param isCost 是否是消费 true 消费 false 充值
*/
boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, boolean isCost);
boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal);
}

View File

@@ -56,7 +56,8 @@ public class MemberLevelVO implements Serializable {
/**
* 周期时间包含周 月 年 日
*/
private String cycleTime;
private Integer cycleTime;
private String cycleUnit;
/**
* 赠送积分

View File

@@ -201,7 +201,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
}
@Override
public boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, boolean isCost) {
public boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal) {
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getShopId, shopId).eq(ShopUser::getUserId, userId));
if (shopUser == null || shopUser.getIsVip() == 0) {
return false;
@@ -216,12 +216,26 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
shopUser.setExperience(0L);
}
MemberLevelConfig levelConfig = levelConfigService.getById(shopUser.getMemberLevelId());
if (levelConfig == null) {
log.warn("会员等级配置不存在, 店铺id: {}, 等级id: {}", shopId, shopUser.getMemberLevelId());
return false;
}
long exp = 0;
int points = 0;
switch (type) {
case COST -> {
if (memberConfig.getCostReward() != null) {
exp = money.longValue() * memberConfig.getCostReward();
}
// 消费送积分
if (levelConfig.getCostRewardPoints() != null) {
points = (int) (money.floatValue() / levelConfig.getCostRewardPoints());
memberPointsService.addPoints(shopUser.getId(), points, "会员消费送积分", null);
}
}
case RECHARGE -> {
if (memberConfig.getRechargeReward() != null) {
@@ -229,32 +243,10 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
}
}
case PAY -> {
exp = expVal;
}
}
// 消费经验
if (memberConfig.getCostReward() != null && isCost) {
exp = money.longValue() * memberConfig.getCostReward() + shopUser.getExperience();
// shopUser.setExperience();
}
// 充值经验
if (memberConfig.getRechargeReward() != null && !isCost) {
shopUser.setExperience(money.longValue() * memberConfig.getRechargeReward() + shopUser.getExperience());
}
MemberLevelConfig levelConfig = levelConfigService.getById(shopUser.getMemberLevelId());
if (levelConfig == null) {
log.warn("会员等级配置不存在, 店铺id: {}, 等级id: {}", shopId, shopUser.getMemberLevelId());
return false;
}
// 消费送积分
if (isCost && levelConfig.getCostRewardPoints() != null) {
int points = (int) (money.floatValue() / levelConfig.getCostRewardPoints());
memberPointsService.addPoints(shopUser.getId(), points, "会员消费送积分", null);
}
MemberExpFlow expFlow = new MemberExpFlow();
expFlow.setContent(type.getMsg() + 1);