超级会员购买相关
This commit is contained in:
@@ -107,5 +107,7 @@ public class MemberConfigDTO {
|
|||||||
|
|
||||||
private String openType;
|
private String openType;
|
||||||
|
|
||||||
|
private String memberPriceShopType;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,4 +95,6 @@ public class TbMemberConfig implements Serializable {
|
|||||||
|
|
||||||
private String openType;
|
private String openType;
|
||||||
|
|
||||||
|
private String memberPriceShopType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,55 +253,55 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|||||||
boolean canOpen = false;
|
boolean canOpen = false;
|
||||||
|
|
||||||
if (shopUser.getStartTime() == null || shopUser.getEndTime().isBefore(DateUtil.date().toLocalDateTime())) {
|
if (shopUser.getStartTime() == null || shopUser.getEndTime().isBefore(DateUtil.date().toLocalDateTime())) {
|
||||||
|
shopUser.setStartTime(DateUtil.date().toLocalDateTime());
|
||||||
|
}
|
||||||
|
if (shopUser.getEndTime() == null || shopUser.getEndTime().isBefore(DateUtil.date().toLocalDateTime())) {
|
||||||
|
shopUser.setEndTime(DateUtil.date().toLocalDateTime());
|
||||||
}
|
}
|
||||||
// shopUser.
|
|
||||||
// 购买开通
|
// 购买开通
|
||||||
if (memberOrderId != null) {
|
MemberOrder memberOrder = memberOrderService.getOne(new QueryWrapper().eq(MemberOrder::getId, memberOrderId).eq(MemberOrder::getShopId, shopId));
|
||||||
MemberOrder memberOrder = memberOrderService.getOne(new QueryWrapper().eq(MemberOrder::getId, memberOrderId).eq(MemberOrder::getShopId, shopId));
|
if (memberOrder == null) {
|
||||||
if (memberOrder == null) {
|
log.warn("会员购买支付失败,会员订单不存在,会员订单id:{}", memberOrderId);
|
||||||
log.warn("会员购买支付失败,会员订单不存在,会员订单id:{}", memberOrderId);
|
return false;
|
||||||
return false;
|
}
|
||||||
}
|
if (!OrderStatusEnums.UNPAID.getCode().equals(memberOrder.getStatus())) {
|
||||||
if (!OrderStatusEnums.UNPAID.getCode().equals(memberOrder.getStatus())) {
|
log.warn("会员购买支付失败,会员订单状态不为待支付,会员订单id:{}", memberOrderId);
|
||||||
log.warn("会员购买支付失败,会员订单状态不为待支付,会员订单id:{}", memberOrderId);
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (memberOrder.getCircleUnit()) {
|
|
||||||
case "天":
|
|
||||||
// shopUser.s
|
|
||||||
}
|
|
||||||
canOpen = true;
|
|
||||||
// 条件开通
|
|
||||||
} else if ("CONDITION".equals(memberConfigVO.getOpenType())){
|
|
||||||
for (MemberConfigDTO.condition item : memberConfigVO.getConditionList()) {
|
|
||||||
canOpen = switch (item.getCode()) {
|
|
||||||
case "BIND_PHONE" -> StrUtil.isNotBlank(shopUser.getPhone());
|
|
||||||
case "ORDER" ->
|
|
||||||
orderInfoService.count(new QueryWrapper().eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, userId)
|
|
||||||
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) > Integer.parseInt(item.getValue());
|
|
||||||
case "COST_AMOUNT" ->
|
|
||||||
orderInfoService.list(new QueryWrapper().eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, userId)
|
|
||||||
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode()))
|
|
||||||
.stream().map(OrderInfo::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) > 0;
|
|
||||||
case "RECHARGE_AMOUNT" ->
|
|
||||||
orderPaymentService.list(new QueryWrapper().eq(OrderPayment::getShopId, shopId)
|
|
||||||
.eq(OrderPayment::getSourceId, shopUser.getId()).isNotNull(OrderPayment::getTradeNumber))
|
|
||||||
.stream().map(OrderPayment::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) > 0;
|
|
||||||
default -> throw new CzgException("会员开通条件类型错误");
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canOpen) {
|
switch (memberOrder.getCircleUnit()) {
|
||||||
MemberLevelConfig levelConfig = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId).orderBy(MemberLevelConfig::getExperienceValue, true).limit(1));
|
case "天":
|
||||||
shopUser.setMemberLevelId(levelConfig.getId());
|
shopUser.setEndTime(shopUser.getEndTime().plusDays(memberOrder.getCircleTime()));
|
||||||
shopUser.setIsVip(1);
|
break;
|
||||||
shopUserService.updateById(shopUser);
|
case "周":
|
||||||
|
shopUser.setEndTime(shopUser.getEndTime().plusWeeks(memberOrder.getCircleTime()));
|
||||||
|
break;
|
||||||
|
case "月":
|
||||||
|
shopUser.setEndTime(shopUser.getEndTime().plusMonths(memberOrder.getCircleTime()));
|
||||||
|
break;
|
||||||
|
case "季":
|
||||||
|
shopUser.setEndTime(shopUser.getEndTime().plusMonths(memberOrder.getCircleTime() * 3L));
|
||||||
|
break;
|
||||||
|
case "年":
|
||||||
|
shopUser.setEndTime(shopUser.getEndTime().plusYears(memberOrder.getCircleTime()));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new CzgException("周期单位错误");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (memberOrder.getReward() != null) {
|
||||||
|
shopUser.setExperience(shopUser.getExperience() + memberOrder.getReward());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (memberOrder.getCouponList() != null && !memberOrder.getCouponList().isEmpty()) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
MemberLevelConfig levelConfig = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId).orderBy(MemberLevelConfig::getExperienceValue, true).limit(1));
|
||||||
|
shopUser.setMemberLevelId(levelConfig.getId());
|
||||||
|
shopUser.setIsVip(1);
|
||||||
|
shopUserService.updateById(shopUser);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user