开通会员修改

This commit is contained in:
张松
2025-11-13 10:52:11 +08:00
parent 1495ff2553
commit 23ee09a81b
5 changed files with 21 additions and 20 deletions

View File

@@ -40,7 +40,7 @@ public class MemberTask {
// @Scheduled(cron = "0 0 1 * * ? ")
public void task() {
shopUserService.list(new QueryWrapper().eq(ShopUser::getIsVip, 1).lt(ShopUser::getNextDeliverTime, DateUtil.date().toLocalDateTime())).forEach(item -> {
memberConfigService.deliver(item.getSourceShopId(), item.getUserId(), TableValueConstant.MemberExpFlow.Type.MEMBER_TASK, null, null, null);
memberConfigService.deliver(item, TableValueConstant.MemberExpFlow.Type.MEMBER_TASK, null, null, null);
});
}

View File

@@ -1,5 +1,6 @@
package com.czg.market.service;
import com.czg.account.entity.ShopUser;
import com.czg.constant.TableValueConstant;
import com.czg.exception.ApiNotPrintException;
import com.czg.market.dto.MemberConfigDTO;
@@ -46,7 +47,7 @@ public interface TbMemberConfigService extends IService<TbMemberConfig> {
* @param expVal 经验值只有当type为pay的时候才生效
* @return 是否成功
*/
boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId);
boolean deliver(ShopUser shopUser, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId);
/**
* 获取用户会员列表

View File

@@ -297,18 +297,17 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
}
@Override
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId) {
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getSourceShopId, shopInfoService.getMainIdByShopId(shopId)).eq(ShopUser::getUserId, userId));
@Transactional(rollbackFor = Exception.class)
public boolean deliver(ShopUser shopUser, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId) {
if (shopUser == null || shopUser.getIsVip() == 0) {
return false;
}
if (shopUser.getMemberLevelId() == null) {
log.warn("会员等级不存在, 店铺id: {}, 用户id: {}", shopId, userId);
log.warn("会员等级不存在, 店铺id: {}, 用户id: {}", shopUser.getMainShopId(), shopUser.getUserId());
}
MemberConfigVO memberConfig = detail(shopId);
MemberConfigVO memberConfig = detail(shopUser.getMainShopId());
if (memberConfig == null) {
log.warn("会员配置不存在, 店铺id: {}", shopId);
log.warn("会员配置不存在, 店铺id: {}", shopUser.getMainShopId());
return false;
}
@@ -319,11 +318,11 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
MemberLevelVO levelVO = levelConfigService.detail(shopUser.getMemberLevelId());
if (levelVO == null) {
log.warn("会员等级配置不存在, 店铺id: {}, 等级id: {}", shopId, shopUser.getMemberLevelId());
log.warn("会员等级配置不存在, 店铺id: {}, 等级id: {}", shopUser.getMainShopId(), shopUser.getMemberLevelId());
return false;
}
log.info("会员奖励发放,类型: {} 金额: {}, userId: {}, 经验值: {}", type.getCode(), money, userId, expVal);
log.info("会员奖励发放,类型: {} 金额: {}, userId: {}, 经验值: {}", type.getCode(), money, shopUser.getUserId(), expVal);
long exp = 0;
switch (type) {
@@ -353,10 +352,10 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
if (levelVO.getCycleRewardCouponList() != null && !levelVO.getCycleRewardCouponList().isEmpty()) {
levelVO.getCycleRewardCouponList().forEach(item -> {
shopCouponRecordService.grant(shopId, new MkRewardCouponDTO().setCouponId(item.getCoupon().getId())
shopCouponRecordService.grant(shopUser.getMainShopId(), new MkRewardCouponDTO().setCouponId(item.getCoupon().getId())
.setNum(item.getNum())
.setUserId(shopUser.getUserId())
.setShopId(shopId));
.setShopId(shopUser.getMainShopId()));
});
// couponGiftService.addCouponGift(memberOrderId, "会员开通赠券", 1, giftDTOS);
@@ -371,8 +370,8 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
MemberExpFlow expFlow = new MemberExpFlow();
expFlow.setContent(type.getMsg() + exp);
expFlow.setType("+");
expFlow.setUserId(userId);
expFlow.setShopId(shopId);
expFlow.setUserId(shopUser.getUserId());
expFlow.setShopId(shopUser.getMainShopId());
expFlow.setMoney(money);
expFlow.setValue(exp);
expFlow.setSourceId(sourceId);
@@ -380,7 +379,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
shopUser.setExperience(shopUser.getExperience() + exp);
// 修改会员等级
MemberLevelConfig nextConfig = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId)
MemberLevelConfig nextConfig = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopUser.getMainShopId())
.gt(MemberLevelConfig::getExperienceValue, levelVO.getExperienceValue()).orderBy(MemberLevelConfig::getExperienceValue, true).limit(1));
if (nextConfig != null && shopUser.getExperience() >= nextConfig.getExperienceValue()) {
shopUser.setMemberLevelId(nextConfig.getId());
@@ -388,7 +387,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
shopUserService.updateInfo(shopUser);
}
log.info("用户id: {}, 增加经验值: {}, 当前经验值: {}, 当前等级: {}", userId, exp, shopUser.getExperience(), shopUser.getMemberLevelId());
log.info("用户id: {}, 增加经验值: {}, 当前经验值: {}, 当前等级: {}", shopUser.getUserId(), exp, shopUser.getExperience(), shopUser.getMemberLevelId());
return true;
}
@@ -520,7 +519,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
memberOrder.setStatus(OrderStatusEnums.DONE.getCode());
memberOrderService.updateById(memberOrder);
if (memberOrder.getReward() != null) {
deliver(shopId, userId, TableValueConstant.MemberExpFlow.Type.PAY, memberOrder.getAmount(), memberOrder.getReward(), memberOrderId);
deliver(shopUser, TableValueConstant.MemberExpFlow.Type.PAY, memberOrder.getAmount(), memberOrder.getReward(), memberOrderId);
}
if (shopUser.getMemberLevelId() == null || shopUser.getMemberLevelId() == 0) {
shopUser.setMemberLevelId(levelConfig.getId());

View File

@@ -1063,7 +1063,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
// 会员加入
memberConfigService.joinMemberByCondition(orderInfo.getShopId(), orderInfo.getUserId());
// 会员消费赠送成长值
memberConfigService.deliver(orderInfo.getShopId(), orderInfo.getUserId(), TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getPayAmount(), null, orderInfo.getId());
ShopUser shopUser = shopUserService.getShopUserInfo(orderInfo.getShopId(), orderInfo.getUserId());
memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getPayAmount(), null, orderInfo.getId());
// 分销员升级等级
distributionUserService.costUpgradeLevelBefore(orderInfo.getUserId(), orderInfo.getShopId());
// 分销奖励
@@ -1129,7 +1130,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
// 发放成长值
// 会员消费赠送成长值
memberConfigService.deliver(orderInfo.getShopId(), orderInfo.getUserId(),
memberConfigService.deliver(shopUser,
TableValueConstant.MemberExpFlow.Type.RECHARGE,
BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN), null, orderInfo.getId());
if (TransactionSynchronizationManager.isSynchronizationActive()) {

View File

@@ -246,7 +246,7 @@ public class PayServiceImpl implements PayService {
LocalDateTime.now(), flowId, PayEnums.VIP_PAY);
log.info("发放经验值");
memberConfigService.deliver(orderInfo.getShopId(), orderInfo.getUserId(), TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getOrderAmount(), null, orderInfo.getId());
memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getOrderAmount(), null, orderInfo.getId());
return CzgResult.success();
}