diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/right/constant/RightTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/right/constant/RightTypeEnum.java index 734aae8..002cd16 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/right/constant/RightTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/right/constant/RightTypeEnum.java @@ -30,6 +30,8 @@ public enum RightTypeEnum { VIP(601,"会员"), + VIP_TRIAL(602,"会员体验"), + CONTRACT_LOVE(701,"包恋爱"), CONTRACTED_MARRIAGE(801,"包领证"); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java index 0fda9e2..1976ea0 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java @@ -74,10 +74,27 @@ public class RightApplicationService { right.setUserId(order.getUserId()); right.setMiId(order.getMiId()); right.setType(type); - //寻找用户未过期的,且规格属于周期的权益 - Right oldSpecPeriodRight = rightQueryService.getEnableRight(order.getUserId(), order.getMiId(), type, RightUnitEnum.SPEC_PERIOD); - if (Objects.nonNull(oldSpecPeriodRight)) { - right.setId(oldSpecPeriodRight.getId()); + Right oldSpecPeriodRight = null; + //会员逻辑处理 + if (RightTypeEnum.VIP.equals(type) || RightTypeEnum.VIP_TRIAL.equals(type)) { + oldSpecPeriodRight = rightQueryService.getEnableRight(order.getUserId(), order.getMiId(), RightTypeEnum.VIP, RightUnitEnum.SPEC_PERIOD); + if (Objects.nonNull(oldSpecPeriodRight)) { + right.setId(oldSpecPeriodRight.getId()); + }else{ + oldSpecPeriodRight = rightQueryService.getEnableRight(order.getUserId(), order.getMiId(), RightTypeEnum.VIP_TRIAL, RightUnitEnum.SPEC_PERIOD); + if (Objects.nonNull(oldSpecPeriodRight)) { + right.setId(oldSpecPeriodRight.getId()); + if (RightTypeEnum.VIP.equals(type)){ + right.setType(RightTypeEnum.VIP); + } + } + } + } else { + //寻找用户未过期的,且规格属于周期的权益 + oldSpecPeriodRight = rightQueryService.getEnableRight(order.getUserId(), order.getMiId(), type, RightUnitEnum.SPEC_PERIOD); + if (Objects.nonNull(oldSpecPeriodRight)) { + right.setId(oldSpecPeriodRight.getId()); + } } //权益时间范围+考虑周期 todo 没有有效期限制如何提现永久? right.setStartTime(Objects.nonNull(oldSpecPeriodRight) ? oldSpecPeriodRight.getStartTime() : LocalDateTime.now()); @@ -167,11 +184,12 @@ public class RightApplicationService { case CHAT_CARD: return RightTypeEnum.CHAT_CARD; case VIP: - case VIP_TRIAL_CARD: case VIP_MONTHLY_CARD: case VIP_QUARTERLY_CARD: case VIP_YEARLY_CARD: return RightTypeEnum.VIP; + case VIP_TRIAL_CARD: + return RightTypeEnum.VIP_TRIAL; case CONTRACT_LOVE: return RightTypeEnum.CONTRACT_LOVE; case CONTRACTED_MARRIAGE: