From 0daa8449d5721c0995d859e0180459315c4b8608 Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 5 Mar 2025 15:32:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8B=E6=94=B6=E7=9B=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/TradeSceneEnum.java | 38 +++++++++++++++++++ .../valueobj/RevenueRewardRecord.java | 9 +++++ ...afflePrizeActivityWinningEventHandler.java | 3 +- .../reward/RewardApplicationService.java | 9 +++-- 4 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeSceneEnum.java diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeSceneEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeSceneEnum.java new file mode 100644 index 0000000..f0a903b --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeSceneEnum.java @@ -0,0 +1,38 @@ +package com.qniao.dam.domian.aggregate.walletaccount.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum TradeSceneEnum { + + ONLINE(1, "线上"), + + OFFLINE(2, "线下"); + + @EnumValue + @JsonValue + private final Integer value; + + private final String desc; + + TradeSceneEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static TradeSceneEnum get(Integer v) { + + for (TradeSceneEnum e : TradeSceneEnum.values()) { + if (e.getValue().equals(v)) { + return e; + } + } + return null; + } +} diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/revenuereward/valueobj/RevenueRewardRecord.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/revenuereward/valueobj/RevenueRewardRecord.java index e0fc78e..14be3e3 100644 --- a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/revenuereward/valueobj/RevenueRewardRecord.java +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/revenuereward/valueobj/RevenueRewardRecord.java @@ -2,6 +2,7 @@ package com.qniao.dam.domain.aggregate.revenuereward.valueobj; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; import com.qniao.domain.ValueObject; import io.swagger.annotations.ApiModelProperty; @@ -22,6 +23,9 @@ public class RevenueRewardRecord extends ValueObject { @ApiModelProperty("交易类型") private TradeTypeEnum tradeType; + @ApiModelProperty("交易场景") + private TradeSceneEnum tradeScene; + @ApiModelProperty("营收额") private BigDecimal revenue; @@ -40,9 +44,13 @@ public class RevenueRewardRecord extends ValueObject { @ApiModelProperty("内容") private String content; + @ApiModelProperty("凭证Url") + private String proofUrl; + private transient List associateOrderRecordList; public static RevenueRewardRecord build(TradeTypeEnum tradeType, + TradeSceneEnum tradeScene, BigDecimal revenue, BigDecimal revenuePct, BigDecimal servicePct, @@ -50,6 +58,7 @@ public class RevenueRewardRecord extends ValueObject { BigDecimal totalAssociateOrderAmount) { RevenueRewardRecord record = new RevenueRewardRecord(); record.setTradeType(tradeType); + record.setTradeScene(tradeScene); record.setRevenue(revenue); record.setRevenuePct(revenuePct); record.setServicePct(servicePct); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpaw/RafflePrizeActivityWinningEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpaw/RafflePrizeActivityWinningEventHandler.java index 4a0c553..fb506f3 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpaw/RafflePrizeActivityWinningEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpaw/RafflePrizeActivityWinningEventHandler.java @@ -13,6 +13,7 @@ import com.qniao.dam.domain.service.revenuereward.AcquireRevenueRewardDomainServ import com.qniao.dam.domian.aggregate.rpaw.event.RafflePrizeActivityWinningDrawnEvent; import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; import com.qniao.dam.infrastructure.persistent.dao.rpaw.RafflePrizeActivityWinningDao; import com.qniao.dam.query.revenuereward.RevenueRewardQueryService; @@ -56,7 +57,7 @@ public class RafflePrizeActivityWinningEventHandler extends BaseApplicationServi //收益信息 RevenueReward revenueReward = revenueRewardQueryService.queryByType(winning.getUserId(), IdentityTypeEnum.INDIVIDUAL); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.RAFFLE_PRIZE_ACTIVITY_WINNING, earnings, BigDecimal.ZERO, + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.RAFFLE_PRIZE_ACTIVITY_WINNING, TradeSceneEnum.ONLINE,earnings, BigDecimal.ZERO, BigDecimal.ZERO, earnings, earnings); revenueRewardRecord.setContent("抽奖活动奖励"); revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); 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 de29b80..33cacd5 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 @@ -15,6 +15,7 @@ import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ; import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; import com.qniao.dam.infrastructure.constant.MqExchange; import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao; import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao; @@ -90,7 +91,7 @@ public class RewardApplicationService extends BaseApplicationService { } //营收额 BigDecimal revenue = RewardConfig.calculatePct(rewardAmount, recommendRewardPct); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE, 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()); @@ -214,7 +215,7 @@ public class RewardApplicationService extends BaseApplicationService { //服务费用 serviceFee = serviceFeeRewardConfig.calculateReward(revenue); BigDecimal earnings = revenue.subtract(serviceFee); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,TradeSceneEnum.ONLINE, revenue, BigDecimal.valueOf(100), new BigDecimal(serviceFeeRewardConfig.getValue()), earnings, dto.getTotalAssociateOrderAmount()); revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName())); if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) { @@ -275,7 +276,7 @@ public class RewardApplicationService extends BaseApplicationService { RevenueReward revenueReward = revenueRewardQueryService.queryByType(identityId, identityType); //营收额 BigDecimal revenue = recommendRewardConfig.calculateReward(amount); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,TradeSceneEnum.ONLINE, revenue, new BigDecimal(recommendRewardConfig.getValue()), BigDecimal.ZERO, revenue, totalAssociateOrderAmount); revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName())); if (CollUtil.isNotEmpty(orderIdRekList)) { @@ -322,7 +323,7 @@ public class RewardApplicationService extends BaseApplicationService { //服务费用 serviceFee = serviceFeeRewardConfig.calculateReward(revenue); BigDecimal earnings = revenue.subtract(serviceFee); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, revenue, dto.getRevenuePct(), + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,TradeSceneEnum.ONLINE, revenue, dto.getRevenuePct(), new BigDecimal(serviceFeeRewardConfig.getValue()), earnings, dto.getTotalAssociateOrderAmount()); revenueRewardRecord.handleContent(Collections.singletonList(associatedMi.getNickName())); if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) {