diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java index 46c4d78..c619aed 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java @@ -16,7 +16,9 @@ public enum RewardAmountUnitEnum { MONTH(3, "月"), - DAY(4, "天"); + DAY(4, "天"), + + WEEK(5, "周"); @EnumValue @JsonValue diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java index 86415d7..21a6b02 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java @@ -161,7 +161,18 @@ public enum RewardTypeEnum { CONTRACT_MATCHMAKER_RECOMMEND_COST_PCT(708, "签约红娘推荐消费收益百分比"), ONLINE_MATCHMAKER_RECOMMEND_COST_PCT(709, "线上红娘推荐消费收益百分比"), - TRAINEE_MATCHMAKER_RECOMMEND_COST_PCT(710, "实习红娘推荐消费收益百分比"); + TRAINEE_MATCHMAKER_RECOMMEND_COST_PCT(710, "实习红娘推荐消费收益百分比"), + + //VIP体验-权益 + VIP_TRIAL_PROFILE_CARD(801, "VIP体验-资料卡"), + VIP_TRIAL_CONTACT_CARD(802, "VIP体验-联系卡"), + VIP_TRIAL_MATCH_CARD(803, "VIP体验-匹配卡"), + + //VIP正式-权益 + VIP_PROFILE_CARD(901, "VIP-资料卡"), + VIP_CONTACT_CARD(902, "VIP-联系卡"), + VIP_MATCH_CARD(903, "VIP-匹配卡"); + @EnumValue @JsonValue 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 a243e1f..734aae8 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 @@ -20,15 +20,19 @@ public enum RightTypeEnum { OFFLINE_MEET(401, "线下见面"), - CHAT_CARD(501,"聊天卡"), + CHAT_CARD(501, "聊天卡"), - VIP(601, "会员"), + PROFILE_CARD(502, "资料卡"), - CONTRACT_LOVE(701,"包恋爱"), + CONTACT_CARD(503, "联系卡"), - CONTRACTED_MARRIAGE(801,"包领证"); + MATCH_CARD(504, "匹配卡"), + VIP(601,"会员"), + CONTRACT_LOVE(701,"包恋爱"), + + CONTRACTED_MARRIAGE(801,"包领证"); @EnumValue @@ -50,4 +54,4 @@ public enum RightTypeEnum { } return null; } -} \ No newline at end of file + } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserListProductByVipVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserListProductByVipVo.java index 7e9ef51..a60fa54 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserListProductByVipVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserListProductByVipVo.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.List; @Data public class UserListProductByVipVo { @@ -49,6 +50,7 @@ public class UserListProductByVipVo { private PurchaseTimeLimitTypeEnum purchaseTimeLimit; //会员权益 - + @ApiModelProperty("会员权益") + private List vipRightList; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/VipRightVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/VipRightVo.java new file mode 100644 index 0000000..4f03a84 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/VipRightVo.java @@ -0,0 +1,20 @@ +package com.qniao.dam.api.query.product.user.response; + +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardAmountUnitEnum; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class VipRightVo { + + @ApiModelProperty("奖励类型") + private RewardTypeEnum rewardType; + + @ApiModelProperty("奖励金额单位") + private RewardAmountUnitEnum rewardAmountUnit; + + @ApiModelProperty("值") + private String value; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java index fedeec3..e93bf2a 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java @@ -8,10 +8,12 @@ import com.qniao.dam.api.query.product.user.request.UserPageProductByCustomerQue import com.qniao.dam.api.query.product.user.request.UserPageProductByMatchmakerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; import com.qniao.dam.api.query.product.user.response.*; +import com.qniao.dam.api.query.right.user.response.UserVipRightVo; import com.qniao.dam.domain.aggregate.externalproduct.valueobj.ExternalProductRel; import com.qniao.dam.domain.aggregate.product.entity.Product; import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; import com.qniao.dam.domain.aggregate.productspec.valueobj.ProductSpecTerm; +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; import com.qniao.dam.domian.aggregate.product.constant.PurchaseTimeLimitTypeEnum; @@ -24,6 +26,7 @@ import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecTermDao; import com.qniao.dam.infrastructure.persistent.dao.view.ProductViewDao; import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.purchaseproductrecord.PurchaseProductRecordQueryService; +import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.das.domian.aggregate.marriageinformation.constant.GenderEnum; import com.qniao.framework.utils.PageUtil; import com.qniao.framework.utils.TypeConvertUtils; @@ -50,6 +53,8 @@ public class ProductQueryServiceImpl implements ProductQueryService { private ProductSpecTermDao productSpecTermDao; @Resource private PurchaseProductRecordQueryService purchaseProductRecordQueryService; + @Resource + private RewardConfigQueryService rewardConfigQueryService; @Value("${service-phone}") private String servicePhone; @@ -126,6 +131,15 @@ public class ProductQueryServiceImpl implements ProductQueryService { public List listProductByVip(Long userId) { List list = productViewDao.listProductByVip(); list = eliminatePurchaseTimeLimit(list, userId); + List vipTrialRightList = rewardConfigQueryService.listVipTrialRight(); + List vipRightList = rewardConfigQueryService.listVipRight(); + for (UserListProductByVipVo record : list) { + if (ProductSubCategoryEnum.VIP_TRIAL_CARD.equals(record.getSubCategory())) { + record.setVipRightList(TypeConvertUtils.convert(vipTrialRightList, VipRightVo.class)); + } else { + record.setVipRightList(TypeConvertUtils.convert(vipRightList, VipRightVo.class)); + } + } return list; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java index 7a8a7ee..c527348 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java @@ -31,4 +31,8 @@ public interface RewardConfigQueryService { RewardConfig queryMatchmakerRenewValidityPeriod(Matchmaker matchmaker); BigDecimal queryMatchmakerChannelGiftPct(Long userId, Integer todayCrossMicCount); + + List listVipTrialRight(); + + List listVipRight(); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java index 7bde8ef..133de49 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java @@ -21,10 +21,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; +import java.util.*; @Service public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { @@ -169,6 +166,20 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { return pct; } + @Override + public List listVipTrialRight() { + return rewardConfigDao.selectList(new LambdaQueryWrapper() + .in(RewardConfig::getRewardType, Arrays.asList(RewardTypeEnum.VIP_TRIAL_PROFILE_CARD, RewardTypeEnum.VIP_TRIAL_CONTACT_CARD, RewardTypeEnum.VIP_TRIAL_MATCH_CARD)) + .orderByAsc(RewardConfig::getRewardType)); + } + + @Override + public List listVipRight() { + return rewardConfigDao.selectList(new LambdaQueryWrapper() + .in(RewardConfig::getRewardType, Arrays.asList(RewardTypeEnum.VIP_PROFILE_CARD, RewardTypeEnum.VIP_CONTACT_CARD, RewardTypeEnum.VIP_MATCH_CARD)) + .orderByAsc(RewardConfig::getRewardType)); + } + @Override public BigDecimal queryRecommendRewardPct(MatchmakerLevelEnum initiatorLevel, MatchmakerLevelEnum receiveLevel) {