Browse Source

悬赏招亲

release
张彭杰 1 year ago
parent
commit
5a2bb34392
6 changed files with 137 additions and 43 deletions
  1. 10
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java
  2. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java
  3. 77
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java
  4. 14
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java
  5. 6
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java
  6. 50
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java

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

@ -1,6 +1,7 @@
package com.qniao.dam.domain.aggregate.rewardconfig.entity; package com.qniao.dam.domain.aggregate.rewardconfig.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardAmountUnitEnum; import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardAmountUnitEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.domain.Entity; import com.qniao.domain.Entity;
@ -27,6 +28,15 @@ public class RewardConfig extends Entity<RewardConfig> {
@ApiModelProperty("值") @ApiModelProperty("值")
private String value; private String value;
public static RewardTypeEnum getRecommendRewardType(ProductSubCategoryEnum type) {
if (ProductSubCategoryEnum.MATCHMAKER_FRANCHISE_FEE.equals(type)) {
return RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND;
} else if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(type)) {
return RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_BY_ONLINE;
}
return null;
}
public BigDecimal calculateReward(BigDecimal amount) { public BigDecimal calculateReward(BigDecimal amount) {
if (RewardAmountUnitEnum.NUM.equals(rewardAmountUnit)) { if (RewardAmountUnitEnum.NUM.equals(rewardAmountUnit)) {
return new BigDecimal(value); return new BigDecimal(value);

23
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java

@ -32,6 +32,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Objects; import java.util.Objects;
@Component @Component
@ -69,10 +70,12 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
//红娘获取奖励 //红娘获取奖励
if (Objects.nonNull(event.getMarriageBountyOrderRewardId()) && CollUtil.isNotEmpty(event.getRewardReceiveRecordList())) { if (Objects.nonNull(event.getMarriageBountyOrderRewardId()) && CollUtil.isNotEmpty(event.getRewardReceiveRecordList())) {
for (MarriageBountyOrderConfirmedMeetingEvent.MarriageBountyOrderRewardReceiveRecordEvent rewardReceiveRecordEvent : event.getRewardReceiveRecordList()) { for (MarriageBountyOrderConfirmedMeetingEvent.MarriageBountyOrderRewardReceiveRecordEvent rewardReceiveRecordEvent : event.getRewardReceiveRecordList()) {
AcquireMatchmakerConfirmMeetingRewardDto confirmMeetingRewardDto =
TypeConvertUtils.convert(rewardReceiveRecordEvent, AcquireMatchmakerConfirmMeetingRewardDto.class);
confirmMeetingRewardDto.setOrderIdRelList(event.getOrderIdRelList());
rewardApplicationService.acquireMatchmakerConfirmMeetingReward(confirmMeetingRewardDto);
if (Objects.nonNull(rewardReceiveRecordEvent.getReceivedAmount()) && rewardReceiveRecordEvent.getReceivedAmount().compareTo(BigDecimal.ZERO) > 0) {
AcquireMatchmakerConfirmMeetingRewardDto confirmMeetingRewardDto =
TypeConvertUtils.convert(rewardReceiveRecordEvent, AcquireMatchmakerConfirmMeetingRewardDto.class);
confirmMeetingRewardDto.setOrderIdRelList(event.getOrderIdRelList());
rewardApplicationService.acquireMatchmakerConfirmMeetingReward(confirmMeetingRewardDto);
}
} }
} }
//判断悬赏是否结束 //判断悬赏是否结束
@ -96,13 +99,15 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
//红娘获取奖励 //红娘获取奖励
if (Objects.nonNull(event.getMarriageBountyOrderRewardId()) && CollUtil.isNotEmpty(event.getRewardReceiveRecordList())) { if (Objects.nonNull(event.getMarriageBountyOrderRewardId()) && CollUtil.isNotEmpty(event.getRewardReceiveRecordList())) {
for (MarriageBountyOrderConfirmedMatchEvent.MarriageBountyOrderRewardReceiveRecordEvent rewardReceiveRecordEvent : event.getRewardReceiveRecordList()) { for (MarriageBountyOrderConfirmedMatchEvent.MarriageBountyOrderRewardReceiveRecordEvent rewardReceiveRecordEvent : event.getRewardReceiveRecordList()) {
AcquireMatchmakerConfirmMatchRewardDto confirmMatchRewardDto =
TypeConvertUtils.convert(rewardReceiveRecordEvent, AcquireMatchmakerConfirmMatchRewardDto.class);
confirmMatchRewardDto.setOrderIdRelList(event.getOrderIdRelList());
rewardApplicationService.acquireMatchmakerConfirmMatchReward(confirmMatchRewardDto);
if (Objects.nonNull(rewardReceiveRecordEvent.getReceivedAmount()) && rewardReceiveRecordEvent.getReceivedAmount().compareTo(BigDecimal.ZERO) > 0) {
AcquireMatchmakerConfirmMatchRewardDto confirmMatchRewardDto =
TypeConvertUtils.convert(rewardReceiveRecordEvent, AcquireMatchmakerConfirmMatchRewardDto.class);
confirmMatchRewardDto.setOrderIdRelList(event.getOrderIdRelList());
rewardApplicationService.acquireMatchmakerConfirmMatchReward(confirmMatchRewardDto);
}
} }
//其余未使用的费用退回 //其余未使用的费用退回
marriageBountyOrderApplicationService.refund(event.getId(),true);
marriageBountyOrderApplicationService.refund(event.getId(), true);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("悬赏招亲订单确认匹配事件处理异常", e); log.error("悬赏招亲订单确认匹配事件处理异常", e);

77
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java

@ -26,6 +26,7 @@ import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao; import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService; import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dam.query.paymentchannelorder.PaymentChannelOrderQueryService; import com.qniao.dam.query.paymentchannelorder.PaymentChannelOrderQueryService;
import com.qniao.dam.query.paymentorder.PaymentOrderQueryService; import com.qniao.dam.query.paymentorder.PaymentOrderQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
@ -59,6 +60,8 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
private PaymentOrderRefundApplicationService paymentOrderRefundApplicationService; private PaymentOrderRefundApplicationService paymentOrderRefundApplicationService;
@Resource @Resource
private RewardConfigQueryService rewardConfigQueryService; private RewardConfigQueryService rewardConfigQueryService;
@Resource
private MatchmakerQueryService matchmakerQueryService;
public void save(Long orderId) { public void save(Long orderId) {
Order order = orderRepository.load(orderId); Order order = orderRepository.load(orderId);
@ -128,8 +131,8 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
} }
} }
public void refund(Long marriageBountyOrderId,boolean management) {
UserGetMarriageBountyOrderPreRefundInfoVo preRefundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId,management);
public void refund(Long marriageBountyOrderId, boolean management) {
UserGetMarriageBountyOrderPreRefundInfoVo preRefundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId, management);
if (!preRefundInfoVo.getRefundable()) { if (!preRefundInfoVo.getRefundable()) {
throw new BizException("不能发起退款"); throw new BizException("不能发起退款");
} else { } else {
@ -202,42 +205,46 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
marriageBountyOrderReward.setIsReceive(true); marriageBountyOrderReward.setIsReceive(true);
marriageBountyOrderReward.setMeetingMiId(guestsInviteMiId); marriageBountyOrderReward.setMeetingMiId(guestsInviteMiId);
List<MarriageBountyOrderRewardReceiveRecord> rewardReceiveRecordList = new ArrayList<>(); List<MarriageBountyOrderRewardReceiveRecord> rewardReceiveRecordList = new ArrayList<>();
//分润 嘉宾实名认证
RewardConfig guestCertificationReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.GUEST_CERTIFICATION);
if (Objects.nonNull(guestCertificationReward)) {
if (Objects.nonNull(rewardInviteUserId)) {
//分润 发榜嘉宾实名认证
if (Objects.nonNull(rewardInviteUserId)) {
RewardConfig guestCertificationReward = rewardConfigQueryService.queryGuestCertificationReward(rewardInviteUserId);
if (Objects.nonNull(guestCertificationReward)) {
BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.GUEST_CERTIFICATION, rewardInviteUserId, receivedAmount);
guestCertificationReward.getRewardType(), rewardInviteUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId());
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }
if (Objects.nonNull(guestsInviteUserId)) {
}
//分润 匹配嘉宾实名认证
if (Objects.nonNull(guestsInviteUserId)) {
RewardConfig guestCertificationReward = rewardConfigQueryService.queryGuestCertificationReward(guestsInviteUserId);
if (Objects.nonNull(guestCertificationReward)) {
BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.GUEST_CERTIFICATION, guestsInviteUserId, receivedAmount);
guestCertificationReward.getRewardType(), guestsInviteUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId);
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }
} }
//分润 发布悬赏招亲 //分润 发布悬赏招亲
RewardConfig publishMarriageBountyReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY);
if (Objects.nonNull(publishMarriageBountyReward)) {
if (Objects.nonNull(rewardPublishMatchmakerUserId)) {
if (Objects.nonNull(rewardPublishMatchmakerUserId)) {
RewardConfig publishMarriageBountyReward = rewardConfigQueryService.queryPublishMarriageBountyReward(rewardPublishMatchmakerUserId);
if (Objects.nonNull(publishMarriageBountyReward)) {
BigDecimal receivedAmount = publishMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = publishMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY, rewardPublishMatchmakerUserId, receivedAmount);
publishMarriageBountyReward.getRewardType(), rewardPublishMatchmakerUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId());
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }
} }
//分润 发布悬赏招亲 //分润 发布悬赏招亲
RewardConfig matchMarriageBountyReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCH_MARRIAGE_BOUNTY);
if (Objects.nonNull(matchMarriageBountyReward)) {
if (Objects.nonNull(guestsMatchmakerUserId)) {
if (Objects.nonNull(guestsMatchmakerUserId)) {
RewardConfig matchMarriageBountyReward = rewardConfigQueryService.queryMatchMarriageBountyReward(guestsMatchmakerUserId);
if (Objects.nonNull(matchMarriageBountyReward)) {
BigDecimal receivedAmount = matchMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = matchMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.MATCH_MARRIAGE_BOUNTY, guestsMatchmakerUserId, receivedAmount);
matchMarriageBountyReward.getRewardType(), guestsMatchmakerUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId);
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }
@ -284,42 +291,48 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
marriageBountyOrder.setId(marriageBountyOrderId); marriageBountyOrder.setId(marriageBountyOrderId);
marriageBountyOrderReward.setIsReceive(true); marriageBountyOrderReward.setIsReceive(true);
List<MarriageBountyOrderRewardReceiveRecord> rewardReceiveRecordList = new ArrayList<>(); List<MarriageBountyOrderRewardReceiveRecord> rewardReceiveRecordList = new ArrayList<>();
//分润 嘉宾实名认证
RewardConfig guestCertificationReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.GUEST_CERTIFICATION);
if (Objects.nonNull(guestCertificationReward)) {
if (Objects.nonNull(rewardInviteUserId)) {
//分润 发榜嘉宾实名认证
if (Objects.nonNull(rewardInviteUserId)) {
RewardConfig guestCertificationReward = rewardConfigQueryService.queryGuestCertificationReward(rewardInviteUserId);
if (Objects.nonNull(guestCertificationReward)) {
BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.GUEST_CERTIFICATION, rewardInviteUserId, receivedAmount);
guestCertificationReward.getRewardType(), rewardInviteUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId());
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }
if (Objects.nonNull(guestsInviteUserId)) {
}
//分润 匹配嘉宾实名认证
if (Objects.nonNull(guestsInviteUserId)) {
RewardConfig guestCertificationReward = rewardConfigQueryService.queryGuestCertificationReward(guestsInviteUserId);
if (Objects.nonNull(guestCertificationReward)) {
BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.GUEST_CERTIFICATION, guestsInviteUserId, receivedAmount);
guestCertificationReward.getRewardType(), guestsInviteUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId);
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }
} }
//分润 发布悬赏招亲 //分润 发布悬赏招亲
RewardConfig publishMarriageBountyReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY);
if (Objects.nonNull(publishMarriageBountyReward)) {
if (Objects.nonNull(rewardPublishMatchmakerUserId)) {
if (Objects.nonNull(rewardPublishMatchmakerUserId)) {
RewardConfig publishMarriageBountyReward = rewardConfigQueryService.queryPublishMarriageBountyReward(rewardPublishMatchmakerUserId);
if (Objects.nonNull(publishMarriageBountyReward)) {
BigDecimal receivedAmount = publishMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = publishMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY, rewardPublishMatchmakerUserId, receivedAmount);
publishMarriageBountyReward.getRewardType(), rewardPublishMatchmakerUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId());
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }
} }
//分润 发布悬赏招亲 //分润 发布悬赏招亲
RewardConfig matchMarriageBountyReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCH_MARRIAGE_BOUNTY);
if (Objects.nonNull(matchMarriageBountyReward)) {
if (Objects.nonNull(guestsMatchmakerUserId)) {
if (Objects.nonNull(guestsMatchmakerUserId)) {
RewardConfig matchMarriageBountyReward = rewardConfigQueryService.queryMatchMarriageBountyReward(guestsMatchmakerUserId);
if (Objects.nonNull(matchMarriageBountyReward)) {
BigDecimal receivedAmount = matchMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); BigDecimal receivedAmount = matchMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount());
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.MATCH_MARRIAGE_BOUNTY, guestsMatchmakerUserId, receivedAmount);
matchMarriageBountyReward.getRewardType(), guestsMatchmakerUserId, receivedAmount);
rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId);
rewardReceiveRecordList.add(rewardReceiveRecord); rewardReceiveRecordList.add(rewardReceiveRecord);
} }

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

@ -21,7 +21,6 @@ import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate; import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount; import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord; import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import com.qniao.dam.query.order.OrderQueryService; import com.qniao.dam.query.order.OrderQueryService;
@ -70,7 +69,9 @@ public class RewardApplicationService {
//推荐的红娘 //推荐的红娘
if (Objects.nonNull(dto.getInitiatorUserId())) { if (Objects.nonNull(dto.getInitiatorUserId())) {
synchronized (dto.getInitiatorUserId().toString().intern()) { synchronized (dto.getInitiatorUserId().toString().intern()) {
RewardConfig recommendRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND);
//区分红娘类型
RewardTypeEnum rewardType = RewardConfig.getRecommendRewardType(dto.getType());
RewardConfig recommendRewardConfig = rewardConfigQueryService.queryByRewardType(rewardType);
if (Objects.nonNull(recommendRewardConfig)) { if (Objects.nonNull(recommendRewardConfig)) {
//收益信息 //收益信息
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(dto.getInitiatorUserId()); RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(dto.getInitiatorUserId());
@ -320,14 +321,23 @@ public class RewardApplicationService {
private TradeTypeEnum transform(RewardTypeEnum rewardType) { private TradeTypeEnum transform(RewardTypeEnum rewardType) {
switch (rewardType) { switch (rewardType) {
//红娘合伙人+线上红娘
case GUEST_CERTIFICATION: case GUEST_CERTIFICATION:
case GUEST_CERTIFICATION_BY_ONLINE:
return TradeTypeEnum.GUEST_CERTIFICATION_FEE; return TradeTypeEnum.GUEST_CERTIFICATION_FEE;
case PUBLISH_MARRIAGE_BOUNTY: case PUBLISH_MARRIAGE_BOUNTY:
case PUBLISH_MARRIAGE_BOUNTY_BY_ONLINE:
return TradeTypeEnum.PUBLISH_MARRIAGE_BOUNTY_FEE; return TradeTypeEnum.PUBLISH_MARRIAGE_BOUNTY_FEE;
case MATCH_MARRIAGE_BOUNTY: case MATCH_MARRIAGE_BOUNTY:
case MATCH_MARRIAGE_BOUNTY_BY_ONLINE:
return TradeTypeEnum.MATCH_MARRIAGE_BOUNTY_FEE; return TradeTypeEnum.MATCH_MARRIAGE_BOUNTY_FEE;
case MATCHMAKER_JOIN_RECOMMEND: case MATCHMAKER_JOIN_RECOMMEND:
case MATCHMAKER_JOIN_RECOMMEND_OPERATION_CENTER:
return TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE; return TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE;
case MARRIAGE_BOUNTY_MEETING_FEE: case MARRIAGE_BOUNTY_MEETING_FEE:
return TradeTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE; return TradeTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE;
case PLATFORM_SERVICE_FEE: case PLATFORM_SERVICE_FEE:

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

@ -14,4 +14,10 @@ public interface RewardConfigQueryService {
RewardConfig queryByRewardType(RewardTypeEnum rewardType); RewardConfig queryByRewardType(RewardTypeEnum rewardType);
List<RewardConfigVo> listRewardConfigByMatchMaker(Integer type); List<RewardConfigVo> listRewardConfigByMatchMaker(Integer type);
RewardConfig queryGuestCertificationReward(Long rewardInviteUserId);
RewardConfig queryPublishMarriageBountyReward(Long rewardPublishMatchmakerUserId);
RewardConfig queryMatchMarriageBountyReward(Long guestsMatchmakerUserId);
} }

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

@ -9,7 +9,9 @@ import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.RewardConfigDao; import com.qniao.dam.infrastructure.persistent.dao.domain.RewardConfigDao;
import com.qniao.dam.infrastructure.persistent.dao.view.RewardConfigViewDao; import com.qniao.dam.infrastructure.persistent.dao.view.RewardConfigViewDao;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import com.qniao.framework.utils.TypeConvertUtils; import com.qniao.framework.utils.TypeConvertUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -17,6 +19,7 @@ import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
@Service @Service
public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { public class RewardConfigQueryServiceImpl implements RewardConfigQueryService {
@ -25,6 +28,8 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService {
private RewardConfigViewDao rewardConfigViewDao; private RewardConfigViewDao rewardConfigViewDao;
@Resource @Resource
private RewardConfigDao rewardConfigDao; private RewardConfigDao rewardConfigDao;
@Resource
private MatchmakerQueryService matchmakerQueryService;
@Override @Override
public UserGetRewardConfigDetailVo getRewardConfigDetail(UserGetRewardConfigDetailQueryParams queryParams) { public UserGetRewardConfigDetailVo getRewardConfigDetail(UserGetRewardConfigDetailQueryParams queryParams) {
@ -54,4 +59,49 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService {
} }
return voList; return voList;
} }
@Override
public RewardConfig queryGuestCertificationReward(Long userId) {
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(userId);
if (Objects.nonNull(matchmaker)) {
if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) {
//线上红娘
return queryByRewardType(RewardTypeEnum.GUEST_CERTIFICATION_BY_ONLINE);
} else {
//红娘合伙人
return queryByRewardType(RewardTypeEnum.GUEST_CERTIFICATION);
}
}
return null;
}
@Override
public RewardConfig queryPublishMarriageBountyReward(Long userId) {
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(userId);
if (Objects.nonNull(matchmaker)) {
if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) {
//线上红娘
return queryByRewardType(RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY_BY_ONLINE);
} else {
//红娘合伙人
return queryByRewardType(RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY);
}
}
return null;
}
@Override
public RewardConfig queryMatchMarriageBountyReward(Long userId) {
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(userId);
if (Objects.nonNull(matchmaker)) {
if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) {
//线上红娘
return queryByRewardType(RewardTypeEnum.MATCH_MARRIAGE_BOUNTY_BY_ONLINE);
} else {
//红娘合伙人
return queryByRewardType(RewardTypeEnum.MATCH_MARRIAGE_BOUNTY);
}
}
return null;
}
} }
Loading…
Cancel
Save