会员 问题
This commit is contained in:
@@ -122,20 +122,24 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
conditionMap.put("BIND_PHONE", StrUtil.isNotBlank(shopUserInfo.getPhone()));
|
||||
break;
|
||||
case "ORDER":
|
||||
conditionMap.put("ORDER", orderInfoService.count(new QueryWrapper().eq(OrderInfo::getShopId, shopUserInfo.getSourceShopId()).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||
conditionMap.put("ORDER", orderInfoService.count(query().eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) >= Integer.parseInt(item.getValue()));
|
||||
|
||||
break;
|
||||
case "COST_AMOUNT":
|
||||
conditionMap.put("COST_AMOUNT", orderInfoService.list(new QueryWrapper().eq(OrderInfo::getShopId, shopUserInfo.getSourceShopId()).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode()))
|
||||
.stream().map(OrderInfo::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0);
|
||||
conditionMap.put("COST_AMOUNT", orderInfoService.getOneAs(query().select("sum(pay_amount)").eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode()), BigDecimal.class)
|
||||
.compareTo(new BigDecimal(item.getValue())) >= 0);
|
||||
|
||||
break;
|
||||
case "RECHARGE_AMOUNT":
|
||||
conditionMap.put("RECHARGE_AMOUNT", paymentService.list(new QueryWrapper().eq(OrderPayment::getShopId, shopUserInfo.getSourceShopId())
|
||||
.eq(OrderPayment::getSourceId, shopUserInfo.getId()).isNotNull(OrderPayment::getTradeNumber))
|
||||
.stream().map(OrderPayment::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0);
|
||||
conditionMap.put("RECHARGE_AMOUNT", paymentService.getOneAs(query().select("sum(amount)")
|
||||
.eq(OrderPayment::getShopId, shopId)
|
||||
.eq(OrderPayment::getSourceType, PayTypeConstants.SourceType.MEMBER_IN)
|
||||
.eq(OrderPayment::getPayType, PayTypeConstants.PayType.PAY)
|
||||
.eq(OrderPayment::getSourceId, shopUserInfo.getId())
|
||||
.eq(OrderPayment::getPayStatus, PayTypeConstants.PayStatus.SUCCESS), BigDecimal.class)
|
||||
.compareTo(new BigDecimal(item.getValue())) >= 0);
|
||||
|
||||
break;
|
||||
default:
|
||||
@@ -421,8 +425,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
orderInfoService.getOneAs(query().select("sum(pay_amount)").eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUser.getUserId())
|
||||
.eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode()), BigDecimal.class)
|
||||
.compareTo(new BigDecimal(item.getValue())) >= 0;
|
||||
case "RECHARGE_AMOUNT" ->
|
||||
paymentService.getOneAs(query().select("sum(amount)")
|
||||
case "RECHARGE_AMOUNT" -> paymentService.getOneAs(query().select("sum(amount)")
|
||||
.eq(OrderPayment::getShopId, shopId)
|
||||
.eq(OrderPayment::getSourceType, PayTypeConstants.SourceType.MEMBER_IN)
|
||||
.eq(OrderPayment::getPayType, PayTypeConstants.PayType.PAY)
|
||||
@@ -567,20 +570,27 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
@Override
|
||||
@Transactional
|
||||
public MemberDetailVO getUserDetail(Long userId, Long shopId) {
|
||||
Long mainIdByShopId = shopInfoService.getMainIdByShopId(shopId);
|
||||
ShopInfo shopInfo = shopInfoService.getById(shopId);
|
||||
Long mainIdByShopId = shopInfo.getMainId() == null ? shopId : shopInfo.getMainId();
|
||||
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getUserId, userId).eq(ShopUser::getMainShopId, mainIdByShopId));
|
||||
MemberLevelVO levelVO = null;
|
||||
if (shopUser.getMemberLevelId() != null) {
|
||||
levelVO = levelConfigService.detail(shopUser.getMemberLevelId());
|
||||
}
|
||||
TbMemberConfig memberConfig = getOne(new QueryWrapper().eq(TbMemberConfig::getShopId, shopId));
|
||||
if ("CONDITION".equals(memberConfig.getOpenType())) {
|
||||
joinMemberByCondition(shopId, userId, shopUser);
|
||||
MemberConfigVO memberConfig = detail(shopId);
|
||||
long nextLevelExperience = 0;
|
||||
if (memberConfig != null && memberConfig.getIsOpen() == 1) {
|
||||
if ("CONDITION".equals(memberConfig.getOpenType())) {
|
||||
joinMemberByCondition(shopId, userId, shopUser);
|
||||
}
|
||||
MemberLevelConfig nextLevel = levelConfigService.getOne(new QueryWrapper()
|
||||
.eq(MemberLevelConfig::getShopId, mainIdByShopId)
|
||||
.ge(MemberLevelConfig::getExperienceValue, shopUser.getExperience())
|
||||
.ne(MemberLevelConfig::getId, shopUser.getMemberLevelId()).orderBy(MemberLevelConfig::getExperienceValue, true));
|
||||
if (nextLevel != null) {
|
||||
nextLevelExperience = nextLevel.getExperienceValue() - shopUser.getExperience();
|
||||
}
|
||||
}
|
||||
|
||||
ShopInfo shopInfo = shopInfoService.getById(shopUser.getSourceShopId());
|
||||
MemberLevelConfig nextLevel = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId).ge(MemberLevelConfig::getExperienceValue, shopUser.getExperience())
|
||||
.ne(MemberLevelConfig::getId, shopUser.getMemberLevelId()).orderBy(MemberLevelConfig::getExperienceValue, true));
|
||||
return new MemberDetailVO()
|
||||
.setMemberCircleName(shopUser.getMemberCircleName())
|
||||
.setMemberCircleReward(shopUser.getMemberCircleReward())
|
||||
@@ -589,6 +599,6 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
.setMemberLevel(levelVO)
|
||||
.setExperience(shopUser.getExperience())
|
||||
.setEndTime(shopUser.getEndTime())
|
||||
.setNextExperienceValue(nextLevel == null ? 0 : nextLevel.getExperienceValue() - shopUser.getExperience());
|
||||
.setNextExperienceValue(nextLevelExperience);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user