From 85dd650e483b55760f85e7b8bb53a10f6c4b7eda Mon Sep 17 00:00:00 2001 From: Derran Date: Mon, 2 Dec 2024 11:51:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E5=A8=98=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...arriageBountyOrderRewardReceiveRecord.java | 6 +++++- .../valueobj/RevenueRewardRecord.java | 15 ++++++++++++- ...arriageBountyOrderConfirmedMatchEvent.java | 3 +++ ...cquireMatchmakerConfirmMatchRewardDto.java | 3 +++ .../RevenueRewardUserQueryController.java | 21 +++++++++++++++++-- ...MarriageBountyOrderApplicationService.java | 16 +++++++------- .../reward/RewardApplicationService.java | 10 ++++----- 7 files changed, 57 insertions(+), 17 deletions(-) diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRewardReceiveRecord.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRewardReceiveRecord.java index b996eac..3daca11 100644 --- a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRewardReceiveRecord.java +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRewardReceiveRecord.java @@ -29,11 +29,15 @@ public class MarriageBountyOrderRewardReceiveRecord extends ValueObject { @ApiModelProperty("营收额") private BigDecimal revenue; + @ApiModelProperty("营收额百分比") + private BigDecimal revenuePct; + + @ApiModelProperty("服务费百分比") + private BigDecimal servicePct; + @ApiModelProperty("收益额 营收额除去平台服务费") private BigDecimal earnings; @@ -36,10 +42,17 @@ public class RevenueRewardRecord extends ValueObject { private transient List associateOrderRecordList; - public static RevenueRewardRecord build(TradeTypeEnum tradeType, BigDecimal revenue, BigDecimal earnings, BigDecimal totalAssociateOrderAmount) { + public static RevenueRewardRecord build(TradeTypeEnum tradeType, + BigDecimal revenue, + BigDecimal revenuePct, + BigDecimal servicePct, + BigDecimal earnings, + BigDecimal totalAssociateOrderAmount) { RevenueRewardRecord record = new RevenueRewardRecord(); record.setTradeType(tradeType); record.setRevenue(revenue); + record.setRevenuePct(revenuePct); + record.setServicePct(servicePct); record.setEarnings(earnings); record.setTotalAssociateOrderAmount(totalAssociateOrderAmount); return record; diff --git a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMatchEvent.java b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMatchEvent.java index 2725795..8ee1751 100644 --- a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMatchEvent.java +++ b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMatchEvent.java @@ -37,6 +37,9 @@ public class MarriageBountyOrderConfirmedMatchEvent extends BaseDomainEvent { @ApiModelProperty("领取金额") private BigDecimal receivedAmount; + @ApiModelProperty("营收额百分比") + private BigDecimal revenuePct; + @ApiModelProperty("相关订单金额") private BigDecimal totalAssociateOrderAmount; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/request/AcquireMatchmakerConfirmMatchRewardDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/request/AcquireMatchmakerConfirmMatchRewardDto.java index 51481a6..367eebc 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/request/AcquireMatchmakerConfirmMatchRewardDto.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/request/AcquireMatchmakerConfirmMatchRewardDto.java @@ -22,6 +22,9 @@ public class AcquireMatchmakerConfirmMatchRewardDto { @ApiModelProperty("领取金额") private BigDecimal receivedAmount; + @ApiModelProperty("营收额百分比") + private BigDecimal revenuePct; + @ApiModelProperty("相关订单金额") private BigDecimal totalAssociateOrderAmount; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java index ee6793b..bf002b4 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java @@ -44,9 +44,26 @@ public class RevenueRewardUserQueryController { @RequestParam("userId") Long userId, @RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID, required = false) Long orgId) { if (Objects.isNull(queryParams.getQueryOrgId()) && Objects.isNull(queryParams.getQueryUserId())) { - if (Objects.nonNull(orgId)){ + if (Objects.nonNull(orgId)) { queryParams.setQueryOrgId(orgId); - }else{ + } else { + queryParams.setQueryUserId(userId); + } + } + return PageUtil.convert(revenueRewardQueryService.pageRevenueRewardRecord(pageUtil, queryParams), UseGetRevenueRewardRecordVo.class); + } + + + @GetMapping("page/revenue-reward-record/by/operator") + @ApiOperation("运营端获取用户收益记录分页") + public QnPage usePageRevenueRewardRecordByOperator(PageUtil pageUtil, + UsePageRevenueRewardRecordQueryParams queryParams, + @RequestParam("userId") Long userId, + @RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID, required = false) Long orgId) { + if (Objects.isNull(queryParams.getQueryOrgId()) && Objects.isNull(queryParams.getQueryUserId())) { + if (Objects.nonNull(orgId)) { + queryParams.setQueryOrgId(orgId); + } else { queryParams.setQueryUserId(userId); } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java index 6cfaca3..911f6c2 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java @@ -225,7 +225,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(guestCertificationReward)) { BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - guestCertificationReward.getRewardType(), rewardInviteUserId, receivedAmount); + guestCertificationReward.getRewardType(), rewardInviteUserId, receivedAmount, new BigDecimal(guestCertificationReward.getValue())); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecordList.add(rewardReceiveRecord); } @@ -237,7 +237,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(guestCertificationReward)) { BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - guestCertificationReward.getRewardType(), guestsInviteUserId, receivedAmount); + guestCertificationReward.getRewardType(), guestsInviteUserId, receivedAmount, new BigDecimal(guestCertificationReward.getValue())); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecordList.add(rewardReceiveRecord); } @@ -249,7 +249,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(publishMarriageBountyReward)) { BigDecimal receivedAmount = publishMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - publishMarriageBountyReward.getRewardType(), rewardPublishMatchmakerUserId, receivedAmount); + publishMarriageBountyReward.getRewardType(), rewardPublishMatchmakerUserId, receivedAmount, new BigDecimal(publishMarriageBountyReward.getValue())); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecordList.add(rewardReceiveRecord); } @@ -261,7 +261,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(matchMarriageBountyReward)) { BigDecimal receivedAmount = matchMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - matchMarriageBountyReward.getRewardType(), guestsMatchmakerUserId, receivedAmount); + matchMarriageBountyReward.getRewardType(), guestsMatchmakerUserId, receivedAmount, new BigDecimal(matchMarriageBountyReward.getValue())); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecordList.add(rewardReceiveRecord); } @@ -315,7 +315,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(guestCertificationReward)) { BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - guestCertificationReward.getRewardType(), rewardInviteUserId, receivedAmount); + guestCertificationReward.getRewardType(), rewardInviteUserId, receivedAmount, new BigDecimal(guestCertificationReward.getValue())); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecordList.add(rewardReceiveRecord); } @@ -327,7 +327,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(guestCertificationReward)) { BigDecimal receivedAmount = guestCertificationReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - guestCertificationReward.getRewardType(), guestsInviteUserId, receivedAmount); + guestCertificationReward.getRewardType(), guestsInviteUserId, receivedAmount, new BigDecimal(guestCertificationReward.getValue())); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecordList.add(rewardReceiveRecord); } @@ -341,7 +341,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(publishMarriageBountyReward)) { BigDecimal receivedAmount = publishMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - publishMarriageBountyReward.getRewardType(), rewardPublishMatchmakerUserId, receivedAmount); + publishMarriageBountyReward.getRewardType(), rewardPublishMatchmakerUserId, receivedAmount, new BigDecimal(publishMarriageBountyReward.getValue())); rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); rewardReceiveRecordList.add(rewardReceiveRecord); } @@ -353,7 +353,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic if (Objects.nonNull(matchMarriageBountyReward)) { BigDecimal receivedAmount = matchMarriageBountyReward.calculateReward(marriageBountyOrderReward.getRewardAmount()); MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( - matchMarriageBountyReward.getRewardType(), guestsMatchmakerUserId, receivedAmount); + matchMarriageBountyReward.getRewardType(), guestsMatchmakerUserId, receivedAmount, new BigDecimal(matchMarriageBountyReward.getValue())); rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); rewardReceiveRecordList.add(rewardReceiveRecord); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java index 7c31660..9251f69 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java @@ -81,9 +81,8 @@ public class RewardApplicationService { } //营收额 BigDecimal revenue = RewardConfig.calculatePct(rewardAmount, recommendRewardPct); - rewardAmount = rewardAmount.subtract(revenue); RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, - revenue, revenue, associateOrder.getSettlementAmount()); + revenue, recommendRewardPct, BigDecimal.ZERO, revenue, associateOrder.getSettlementAmount()); revenueRewardRecord.handleContent(Collections.singletonList(StrUtil.isNotBlank(dto.getReceiveUserName()) ? dto.getReceiveUserName() : "")); RevenueRewardAssociateOrderRecord associateOrderRecord = RevenueRewardAssociateOrderRecord.build(associateOrder.getId(), associateOrder.getSettlementAmount()); revenueRewardRecord.setAssociateOrderRecordList(Collections.singletonList(associateOrderRecord)); @@ -176,7 +175,7 @@ public class RewardApplicationService { serviceFee = serviceFeeRewardConfig.calculateReward(revenue); BigDecimal earnings = revenue.subtract(serviceFee); RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, - revenue, earnings, dto.getTotalAssociateOrderAmount()); + revenue, BigDecimal.valueOf(100), new BigDecimal(serviceFeeRewardConfig.getValue()), earnings, dto.getTotalAssociateOrderAmount()); revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName())); if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) { List associateOrderRecordList = new ArrayList<>(); @@ -236,7 +235,7 @@ public class RewardApplicationService { //营收额 BigDecimal revenue = recommendRewardConfig.calculateReward(amount); RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, - revenue, revenue, totalAssociateOrderAmount); + revenue, new BigDecimal(recommendRewardConfig.getValue()), BigDecimal.ZERO, revenue, totalAssociateOrderAmount); revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName())); if (CollUtil.isNotEmpty(orderIdRekList)) { List associateOrderRecordList = new ArrayList<>(); @@ -278,7 +277,8 @@ public class RewardApplicationService { //服务费用 serviceFee = serviceFeeRewardConfig.calculateReward(revenue); BigDecimal earnings = revenue.subtract(serviceFee); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, revenue, earnings, dto.getTotalAssociateOrderAmount()); + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, revenue, dto.getRevenuePct(), + new BigDecimal(serviceFeeRewardConfig.getValue()), earnings, dto.getTotalAssociateOrderAmount()); revenueRewardRecord.handleContent(Collections.singletonList(associatedMi.getNickName())); if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) { List associateOrderRecordList = new ArrayList<>();