Browse Source

趣招亲新政策

master
张彭杰 9 months ago
parent
commit
a7e39dd43e
3 changed files with 54 additions and 26 deletions
  1. 6
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java
  2. 15
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java
  3. 59
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java

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

@ -129,7 +129,11 @@ public enum RewardTypeEnum {
OPERATING_RECOMMEND_20(508, "营性质推荐收益-20%"),
PAYBACK_SUBSIDY_30(509, "回本补贴-30%");
PAYBACK_SUBSIDY_30(509, "回本补贴-30%"),
NON_OPERATING_MANAGEMENT_FEE_55(510, "非经营性质服务商管理费-55%"),
NON_OPERATING_MANAGEMENT_FEE_35(511, "非经营性质服务商管理费-35%");
@EnumValue
@JsonValue

15
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java

@ -147,7 +147,18 @@ public class RevenueRewardEventHandler extends BaseApplicationService {
//非经营性质推荐
handleServiceProviderManagementFee(mq.getRecommendServiceProviderOrgId(), mq.getStoreName(), mq.getFranchiseFee(), RewardTypeEnum.NON_OPERATING_RECOMMEND);
//运营中心收益处理
handleServiceProviderManagementFee(mq.getOperationCenterOrgId(), mq.getStoreName(), mq.getFranchiseFee(), RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE);
RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(mq.getOperationCenterOrgId());
if (!revenueReward.getAllRecoveryRequirement()) {
//推荐服务商回本前 55%获得
handleServiceProviderManagementFee(mq.getOperationCenterOrgId(), mq.getStoreName(), mq.getFranchiseFee(), RewardTypeEnum.NON_OPERATING_MANAGEMENT_FEE_55);
} else {
//推荐服务商回本后 先提取35%,剩余20需要被推荐服务商回本50%后才能提取
handleServiceProviderManagementFee(mq.getOperationCenterOrgId(), mq.getStoreName(), mq.getFranchiseFee(), RewardTypeEnum.NON_OPERATING_MANAGEMENT_FEE_35);
//补充 入驻费分佣管理
FranchiseFeeProfitManagement franchiseFeeProfitManagement = FranchiseFeeProfitManagement.initOrg(mq.getOperationCenterOrgId(), mq.getOrgId(), FranchiseFeeProfitManagementTypeEnum.SERVICE_PROVIDER_SETTLEMENT,
null);
franchiseFeeProfitManagementAggregate.create(franchiseFeeProfitManagement);
}
}
}
} catch (Exception e) {
@ -296,6 +307,8 @@ public class RevenueRewardEventHandler extends BaseApplicationService {
} else {
//回本后 拿70% 20%推荐费+50%门店费用
rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder);
rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder);
//发送事件 检查是否满足回本要求
RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOrgId());
RevenueRewardUpdatedEvent storeReEvent = new RevenueRewardUpdatedEvent(stRevenueReward.getId());

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

@ -200,30 +200,7 @@ public class RewardApplicationService extends BaseApplicationService {
MatchmakerNoviceTaskProgress matchmakerNoviceTaskProgress = matchmakerNoviceTaskProgressQueryService.queryByMatchmakerId(initiatorMatchmaker.getId());
if (Objects.nonNull(matchmakerNoviceTaskProgress) && matchmakerNoviceTaskProgress.getIsFinish()) {
// 红娘已完成新手任务 门店拿50%, 没回本再拿30%回本补贴
RevenueReward storeRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId());
if (!storeRevenueReward.getAllRecoveryRequirement()) {
//未回本 门店拿50% + 30%回本补贴
handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder);
handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.PAYBACK_SUBSIDY_30, associateOrder);
//发送事件 检查是否满足回本要求.
RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId());
RevenueRewardUpdatedEvent storeReEvent = new RevenueRewardUpdatedEvent(stRevenueReward.getId());
this.sendEvent(storeReEvent);
} else {
//已回本 门店拿50%
handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder);
//发送事件 检查是否满足回本要求
RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId());
RevenueRewardUpdatedEvent storeReEvent = new RevenueRewardUpdatedEvent(stRevenueReward.getId());
this.sendEvent(storeReEvent);
//区域分润
handleStoreRecommendMatchmakerFee(store.getOperationCenterOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder);
//发送事件 检查是否满足回本要求
RevenueReward operationCenterRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOperationCenterOrgId());
RevenueRewardUpdatedEvent operationCenterReEvent = new RevenueRewardUpdatedEvent(operationCenterRevenueReward.getId());
this.sendEvent(operationCenterReEvent);
}
handleStoreRecommendMatchmaker(dto, store, rewardAmount, associateOrder);
} else {
// 红娘未完成 记录到 入驻费分佣管理中
FranchiseFeeProfitManagement franchiseFeeProfitManagement = FranchiseFeeProfitManagement.initUser(dto.getInitiatorUserId(), dto.getReceiveUserId(),
@ -238,12 +215,46 @@ public class RewardApplicationService extends BaseApplicationService {
matchmakerInvitedMQ.setAssociateOrderId(dto.getAssociateOrderId());
amqpTemplate.convertAndSend(MqExchange.MATCHMAKER_INVITED, null, matchmakerInvitedMQ);
}
} else {
//其他服务商
handleStoreRecommendMatchmaker(dto, store, rewardAmount, associateOrder);
}
}
}
}
}
private void handleStoreRecommendMatchmaker(UserAcquireMatchmakerJoinRecommendRewardDto dto,
Store store,
BigDecimal rewardAmount,
Order associateOrder) {
RevenueReward storeRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId());
if (!storeRevenueReward.getAllRecoveryRequirement()) {
//未回本 门店拿50% + 30%回本补贴
handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder);
handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.PAYBACK_SUBSIDY_30, associateOrder);
//发送事件 检查是否满足回本要求.
RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId());
RevenueRewardUpdatedEvent storeReEvent = new RevenueRewardUpdatedEvent(stRevenueReward.getId());
this.sendEvent(storeReEvent);
} else {
//已回本 门店拿50%
handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder);
handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder);
//发送事件 检查是否满足回本要求
RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId());
RevenueRewardUpdatedEvent storeReEvent = new RevenueRewardUpdatedEvent(stRevenueReward.getId());
this.sendEvent(storeReEvent);
//区域分润
handleStoreRecommendMatchmakerFee(store.getOperationCenterOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder);
//发送事件 检查是否满足回本要求
RevenueReward operationCenterRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOperationCenterOrgId());
RevenueRewardUpdatedEvent operationCenterReEvent = new RevenueRewardUpdatedEvent(operationCenterRevenueReward.getId());
this.sendEvent(operationCenterReEvent);
}
}
public void handleStoreRecommendMatchmakerFee(Long orgId,
String name,
BigDecimal franchiseFee,

Loading…
Cancel
Save