开通会员修改
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
* 获取用户会员列表
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user