Browse Source

红娘续费

release
张彭杰 1 year ago
parent
commit
aa1af9b983
6 changed files with 47 additions and 7 deletions
  1. 4
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java
  2. 10
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java
  3. 7
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java
  4. 14
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
  5. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java
  6. 17
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java

4
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java

@ -14,7 +14,9 @@ public enum RewardAmountUnitEnum {
PERCENT(2, "百分比"),
MONTH(3, "月");
MONTH(3, "月"),
DAY(4, "天");
@EnumValue
@JsonValue

10
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java

@ -64,6 +64,16 @@ public enum RewardTypeEnum {
MATCHMAKER_JOIN_RECOMMEND_UP_MIN(125, "红娘入驻向上推荐最小奖励"),
/**
* 红娘到期续费保护周期
*/
MATCHMAKER_PARTNER_RENEW_VALIDITY_PERIOD(126,"高级红娘续费保护周期"),
MATCHMAKER_ONLINE_RENEW_VALIDITY_PERIOD(127,"线上红娘续费保护周期"),
MATCHMAKER_TRAINEE_RENEW_VALIDITY_PERIOD(128,"实习红娘续费保护周期"),
// 2** 服务费
PLATFORM_SERVICE_FEE(201, "平台服务费"),

7
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java

@ -59,6 +59,11 @@ public class RewardConfig extends Entity<RewardConfig> {
}
public LocalDateTime getPeriodTime(LocalDateTime time) {
return time.plusMonths(Long.parseLong(value));
if (RewardAmountUnitEnum.MONTH.equals(rewardAmountUnit)) {
return time.plusMonths(Long.parseLong(value));
} else if (RewardAmountUnitEnum.DAY.equals(rewardAmountUnit)) {
return time.plusDays(Long.parseLong(value));
}
return time;
}
}

14
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

@ -540,12 +540,16 @@ public class OrderApplicationService extends BaseApplicationService {
throw new BizException("没有查询到红娘信息");
} else {
orderItem.setOriginalAmount(orderItem.getUnitOriginalPrice());
BigDecimal discountAmount = BigDecimal.ZERO;
RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_RENEW_DISCOUNT);
if (Objects.nonNull(rewardConfig)) {
discountAmount = rewardConfig.calculatePrice(orderItem.getOriginalAmount());
RewardConfig validityPeriodRewardConfig = rewardConfigQueryService.queryMatchmakerRenewValidityPeriod(matchmaker);
if (Objects.nonNull(validityPeriodRewardConfig)) {
if (LocalDateTime.now().isBefore(validityPeriodRewardConfig.getPeriodTime(matchmaker.getValidityPeriodTo()))) {
//在保护期内
RewardConfig discountRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_RENEW_DISCOUNT);
if (Objects.nonNull(discountRewardConfig)) {
orderItem.setDiscountAmount(discountRewardConfig.calculatePrice(orderItem.getOriginalAmount()));
}
}
}
orderItem.setDiscountAmount(discountAmount);
orderItem.calculate();
orderItem.setUnitSettlementPrice(orderItem.getSettlementAmount());
}

2
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java

@ -27,4 +27,6 @@ public interface RewardConfigQueryService {
BigDecimal queryRecommendRewardPct(MatchmakerLevelEnum initiatorLevel, MatchmakerLevelEnum receiveLevel);
RewardConfig queryMatchmakerRenewValidityPeriod(Matchmaker matchmaker);
}

17
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java

@ -118,6 +118,23 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService {
return null;
}
@Override
public RewardConfig queryMatchmakerRenewValidityPeriod(Matchmaker matchmaker) {
if (Objects.nonNull(matchmaker)) {
if (ProductSubCategoryEnum.MATCHMAKER_TRAINEE_FEE.equals(matchmaker.getType())) {
//实习红娘
return queryByRewardType(RewardTypeEnum.MATCHMAKER_TRAINEE_RENEW_VALIDITY_PERIOD);
} else if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) {
//线上红娘
return queryByRewardType(RewardTypeEnum.MATCHMAKER_ONLINE_RENEW_VALIDITY_PERIOD);
} else {
//红娘合伙人
return queryByRewardType(RewardTypeEnum.MATCHMAKER_PARTNER_RENEW_VALIDITY_PERIOD);
}
}
return null;
}
@Override
public BigDecimal queryRecommendRewardPct(MatchmakerLevelEnum initiatorLevel,
MatchmakerLevelEnum receiveLevel) {

Loading…
Cancel
Save