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 a8d0a07..2a4b443 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 @@ -85,6 +85,8 @@ public class RevenueRewardRecord extends ValueObject { content = StrUtil.format("推荐{}参与{}", elements.toArray()); } else if (TradeTypeEnum.SERVICE_PROVIDER_RECOMMEND_FEE.equals(tradeType)) { content = StrUtil.format("推荐服务商{}入驻平台", elements.toArray()); + } else if (TradeTypeEnum.QZQ_RECOMMEND_GIFT_REWARD.equals(tradeType)) { + content = StrUtil.format("{}消费分成", elements.toArray()); } } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java index 54fa6c6..ea3516d 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java @@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.eventbus.Subscribe; import com.qniao.dam.application.service.marriagebounty.MarriageBountyOrderApplicationService; import com.qniao.dam.application.service.order.OrderApplicationService; +import com.qniao.dam.application.service.reward.RewardApplicationService; import com.qniao.dam.application.service.right.RightApplicationService; import com.qniao.dam.application.service.virtualaccount.VirtualAccountApplicationService; import com.qniao.dam.domain.aggregate.activity.entity.Activity; import com.qniao.dam.domain.aggregate.activity.repository.ActivityRepository; import com.qniao.dam.domain.aggregate.externalorder.ExternalOrderRelAggregate; import com.qniao.dam.domain.aggregate.externalorder.entity.ExternalOrderRel; +import com.qniao.dam.domain.aggregate.ffpm.entity.FranchiseFeeProfitManagement; import com.qniao.dam.domain.aggregate.order.OrderAggregate; import com.qniao.dam.domain.aggregate.order.entity.Order; import com.qniao.dam.domain.aggregate.order.entity.OrderItem; @@ -42,6 +44,7 @@ import com.qniao.dam.domian.aggregate.product.constant.ProductMainCategoryEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermNameEnum; +import com.qniao.dam.domian.aggregate.revenuereward.event.RevenueRewardUpdatedEvent; import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; @@ -54,6 +57,7 @@ import com.qniao.dam.query.matchmakermarriage.MatchmakerMarriageInformationQuery import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.revenuereward.RevenueRewardQueryService; import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; +import com.qniao.dam.query.store.StoreQueryService; import com.qniao.dam.query.walletaccount.WalletAccountQueryService; import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; import com.qniao.das.domian.aggregate.matchmakermarriage.MatchmakerMarriageInformation; @@ -61,6 +65,7 @@ import com.qniao.das.domian.aggregate.siteactivity.SiteActivity; import com.qniao.dau.application.UecServerApplicationService; import com.qniao.dau.application.request.PaidMatchmakerFeeBySdkDto; import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker; +import com.qniao.dau.domain.aggregate.store.entity.Store; import com.qniao.dau.domian.aggregate.matchmakingcorner.event.MatchmakingCornerPaidMQ; import com.qniao.domain.BaseApplicationService; import com.qniao.domain.BaseDomainEvent; @@ -124,6 +129,10 @@ public class OrderEventHandler extends BaseApplicationService { @Resource private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService; @Resource + private StoreQueryService storeQueryService; + @Resource + private OrderDao orderDao; + @Resource private SnowFlakeUtil snowFlakeUtil; @Resource private AmqpTemplate amqpTemplate; @@ -231,9 +240,9 @@ public class OrderEventHandler extends BaseApplicationService { BigDecimal revenue = rewardConfig.calculateReward(totalAmount); if (revenue.compareTo(BigDecimal.ZERO) > 0) { RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.QZQ_RECOMMEND_GIFT_REWARD, TradeSceneEnum.ONLINE, - revenue, new BigDecimal(rewardConfig.getValue()), BigDecimal.ZERO, revenue, order.getSettlementAmount()); - revenueRewardRecord.setContent(order.getOrderBelongName() + "消费分成"); - RevenueRewardAssociateOrderRecord associateOrderRecord = RevenueRewardAssociateOrderRecord.build(order.getId(), order.getSettlementAmount()); + revenue, new BigDecimal(rewardConfig.getValue()), BigDecimal.ZERO, revenue, totalAmount); + revenueRewardRecord.handleContent(Collections.singletonList(order.getOrderBelongName())); + RevenueRewardAssociateOrderRecord associateOrderRecord = RevenueRewardAssociateOrderRecord.build(order.getId(), totalAmount); revenueRewardRecord.setAssociateOrderRecordList(Collections.singletonList(associateOrderRecord)); revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); @@ -247,15 +256,74 @@ public class OrderEventHandler extends BaseApplicationService { acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); } } + + //门店区域分润 + //站点分佣金 + if (Objects.nonNull(matchmaker.getStoreId())) { + TradeTypeEnum tradeType = TradeTypeEnum.QZQ_RECOMMEND_GIFT_REWARD; + //门店收益 + Store store = storeQueryService.queryById(matchmaker.getStoreId()); + handleAcquireReward(store.getOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_STORE_REWARD, totalAmount, order.getOrderBelongName(), + order.getSettlementAmount(), Collections.singletonList(order.getId()), tradeType); + //运营中心 + if (Objects.nonNull(store.getOperationCenterOrgId())) { + handleAcquireReward(store.getOperationCenterOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_OPERATION_CENTER_REWARD, totalAmount, order.getOrderBelongName(), + order.getSettlementAmount(), Collections.singletonList(order.getId()), tradeType); + } + } } } } } - } catch (Exception e) { + } catch ( + Exception e) { log.error("订单已完成事件处理异常", e); } } + private void handleAcquireReward(Long identityId, + IdentityTypeEnum identityType, + RewardTypeEnum rewardType, + BigDecimal amount, + String orderBelongName, + BigDecimal totalAssociateOrderAmount, + List orderIdRekList, + TradeTypeEnum tradeType) { + if (Objects.nonNull(identityId)) { + synchronized (identityId.toString().intern()) { + RewardConfig recommendRewardConfig = rewardConfigQueryService.queryByRewardType(rewardType); + if (Objects.nonNull(recommendRewardConfig)) { + //收益信息 + RevenueReward revenueReward = revenueRewardQueryService.queryByType(identityId, identityType); + //营收额 + BigDecimal revenue = recommendRewardConfig.calculateReward(amount); + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, TradeSceneEnum.ONLINE, + revenue, new BigDecimal(recommendRewardConfig.getValue()), BigDecimal.ZERO, revenue, totalAssociateOrderAmount); + revenueRewardRecord.handleContent(Collections.singletonList(orderBelongName)); + if (CollUtil.isNotEmpty(orderIdRekList)) { + List associateOrderRecordList = new ArrayList<>(); + for (Long associateOrderId : orderIdRekList) { + Order associateOrder = orderDao.selectById(associateOrderId); + RevenueRewardAssociateOrderRecord associateOrderRecord = RevenueRewardAssociateOrderRecord.build(associateOrder.getId(), associateOrder.getSettlementAmount()); + revenueRewardRecord.setAssociateOrderRecordList(Collections.singletonList(associateOrderRecord)); + associateOrderRecordList.add(associateOrderRecord); + } + revenueRewardRecord.setAssociateOrderRecordList(associateOrderRecordList); + } + revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); + //钱包信息 + WalletAccount walletAccount = walletAccountQueryService.queryByType(identityId, identityType); + BigDecimal originalBalance = walletAccount.getTotalBalance(); + walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); + walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); + WalletAccountRecord record = WalletAccountRecord.build(tradeType, revenue, true, originalBalance, walletAccount.getTotalBalance()); + walletAccount.setRecordList(Collections.singletonList(record)); + acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); + } + } + } + } + private void giftSiteActivityOrder(Long externalId, Long userId, Long miId) { SiteActivity siteActivity = siteActivityDao.selectById(externalId); MarriageInformation marriageInformation = marriageInformationDao.selectById(miId); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java index 3deba12..42e432b 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java @@ -297,8 +297,8 @@ public class RevenueRewardEventHandler extends BaseApplicationService { RevenueReward storeRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOrgId()); if (!storeRevenueReward.getAllRecoveryRequirement()) { //未回本 拿100% 20%推荐费+50%门店费用+ 30%回本补贴 - rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder); - rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.PAYBACK_SUBSIDY_30, associateOrder); + rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder,TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD); + rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.PAYBACK_SUBSIDY_30, associateOrder,TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD); //发送事件 检查是否满足回本要求 RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOrgId()); @@ -306,8 +306,8 @@ public class RevenueRewardEventHandler extends BaseApplicationService { handle(storeReEvent); } 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); + rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder,TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD); + rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder,TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD); //发送事件 检查是否满足回本要求 RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOrgId()); @@ -315,7 +315,7 @@ public class RevenueRewardEventHandler extends BaseApplicationService { handle(storeReEvent); //区域分润 - rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOperationCenterOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder); + rewardApplicationService.handleStoreRecommendMatchmakerFee(store.getOperationCenterOrgId(), associateOrder.getOrderBelongName(), associateOrder.getSettlementAmount(), RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder,TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD); //发送事件 检查是否满足回本要求 RevenueReward operationCenterRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOperationCenterOrgId()); RevenueRewardUpdatedEvent operationCenterReEvent = new RevenueRewardUpdatedEvent(operationCenterRevenueReward.getId()); 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 57c6123..0f9942c 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 @@ -167,8 +167,8 @@ public class RewardApplicationService extends BaseApplicationService { RevenueReward storeRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId()); if (Objects.nonNull(store.getFranchiseFee()) && store.getFranchiseFee().compareTo(BigDecimal.ZERO) > 0 && !storeRevenueReward.getAllRecoveryRequirement()) { //未回本 拿100% 20%推荐费+50%门店费用+ 30%回本补贴 - handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder); - handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.PAYBACK_SUBSIDY_30, associateOrder); + handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); + handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.PAYBACK_SUBSIDY_30, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); //发送事件 检查是否满足回本要求 RevenueReward stRevenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId()); @@ -176,14 +176,14 @@ public class RewardApplicationService extends BaseApplicationService { this.sendEvent(storeReEvent); } else { //回本后 拿70% 20%推荐费+50%门店费用 - handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder); + handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); //发送事件 检查是否满足回本要求 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); + handleStoreRecommendMatchmakerFee(store.getOperationCenterOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); //发送事件 检查是否满足回本要求 RevenueReward operationCenterRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOperationCenterOrgId()); RevenueRewardUpdatedEvent operationCenterReEvent = new RevenueRewardUpdatedEvent(operationCenterRevenueReward.getId()); @@ -231,23 +231,24 @@ public class RewardApplicationService extends BaseApplicationService { 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); + handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); + handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.PAYBACK_SUBSIDY_30, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); //发送事件 检查是否满足回本要求. 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); + handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.OPERATING_RECOMMEND_50, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); + handleStoreRecommendMatchmakerFee(store.getOrgId(), dto.getReceiveUserName(), rewardAmount, RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); //发送事件 检查是否满足回本要求 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); + handleStoreRecommendMatchmakerFee(store.getOperationCenterOrgId(), dto.getReceiveUserName(), rewardAmount, + RewardTypeEnum.SERVICE_PROVIDER_MANAGEMENT_FEE, associateOrder,TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE); //发送事件 检查是否满足回本要求 RevenueReward operationCenterRevenueReward = revenueRewardQueryService.queryByOrgId(store.getOperationCenterOrgId()); RevenueRewardUpdatedEvent operationCenterReEvent = new RevenueRewardUpdatedEvent(operationCenterRevenueReward.getId()); @@ -259,13 +260,14 @@ public class RewardApplicationService extends BaseApplicationService { String name, BigDecimal franchiseFee, RewardTypeEnum rewardType, - Order associateOrder) { + Order associateOrder, + TradeTypeEnum tradeType) { //服务商管理费 RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(rewardType); RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(orgId); BigDecimal revenue = RewardConfig.calculatePct(franchiseFee, new BigDecimal(rewardConfig.getValue())); //线下收益 - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE, + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, TradeSceneEnum.ONLINE, revenue, new BigDecimal(rewardConfig.getValue()), BigDecimal.ZERO, revenue, franchiseFee); revenueRewardRecord.handleContent(Collections.singletonList(name)); if (RewardTypeEnum.PAYBACK_SUBSIDY_30.equals(rewardType)) { @@ -282,7 +284,7 @@ public class RewardApplicationService extends BaseApplicationService { BigDecimal originalBalance = walletAccount.getTotalBalance(); walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); - WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true, originalBalance, walletAccount.getTotalBalance()); + WalletAccountRecord record = WalletAccountRecord.build(tradeType, revenue, true, originalBalance, walletAccount.getTotalBalance()); walletAccount.setRecordList(Collections.singletonList(record)); acquireRevenueRewardDomainService.handle(revenueReward, walletAccount);