From 4b97ee52857a5a230cf9a3a35fbe4d2d89dedbe4 Mon Sep 17 00:00:00 2001 From: 188814092560 Date: Tue, 1 Apr 2025 22:45:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/RewardUserCommandController.java | 6 + .../reward/RewardApplicationService.java | 105 +++++++++++------- .../RevenueRewardQueryService.java | 5 + .../impl/RevenueRewardQueryServiceImpl.java | 10 ++ 4 files changed, 84 insertions(+), 42 deletions(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/RewardUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/RewardUserCommandController.java index 5e8c007..0cdef93 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/RewardUserCommandController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/RewardUserCommandController.java @@ -25,4 +25,10 @@ public class RewardUserCommandController { rewardApplicationService.acquireMatchmakerJoinRecommendReward(dto); } + @ApiOperation("补充门店+运营中心的红娘加盟佣金--临时") + @PostMapping("replenish/matchmaker-join-recommend") + @IgnoreResponseAdvice + public void replenishMatchmakerJoinRecommend() { + rewardApplicationService.replenishMatchmakerJoinRecommend(); + } } 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 843eddd..9121a2e 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 @@ -18,8 +18,11 @@ 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.OperationCenterDao; import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao; +import com.qniao.dam.infrastructure.persistent.dao.domain.StoreDao; import com.qniao.dam.query.matchmaker.MatchmakerQueryService; +import com.qniao.dam.query.operationcenter.OperationCenterQueryService; import com.qniao.dam.query.revenuereward.RevenueRewardQueryService; import com.qniao.dam.query.store.StoreQueryService; import com.qniao.dam.query.walletaccount.WalletAccountQueryService; @@ -34,6 +37,7 @@ import com.qniao.dam.query.order.OrderQueryService; import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker; +import com.qniao.dau.domain.aggregate.operationcenter.entity.OperationCenter; import com.qniao.dau.domain.aggregate.store.entity.Store; import com.qniao.dau.domian.aggregate.matchmakeraudit.constant.MatchmakerAuditBehaviorEnum; import com.qniao.domain.BaseApplicationService; @@ -64,8 +68,11 @@ public class RewardApplicationService extends BaseApplicationService { @Resource private StoreQueryService storeQueryService; @Resource + private OperationCenterQueryService operationCenterQueryService; + @Resource private AmqpTemplate amqpTemplate; + /** * 获得红娘推荐奖励 */ @@ -138,55 +145,61 @@ public class RewardApplicationService extends BaseApplicationService { //门店提成 if (Objects.nonNull(dto.getStoreOrgId())) { - synchronized (dto.getStoreOrgId().toString().intern()) { - RewardConfig recommendRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_STORE); - if (Objects.nonNull(recommendRewardConfig)) { - //收益信息 - RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId()); - //营收额 - BigDecimal revenue = recommendRewardConfig.calculateReward(rewardAmount); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE, - revenue, new BigDecimal(recommendRewardConfig.getValue()), 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)); - revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); + Store store = storeQueryService.queryByOrg(dto.getStoreOrgId()); + if (!store.getAdministratorId().equals(dto.getInitiatorUserId())) { + synchronized (dto.getStoreOrgId().toString().intern()) { + RewardConfig recommendRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_STORE); + if (Objects.nonNull(recommendRewardConfig)) { + //收益信息 + RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId()); + //营收额 + BigDecimal revenue = recommendRewardConfig.calculateReward(rewardAmount); + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE, + revenue, new BigDecimal(recommendRewardConfig.getValue()), 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)); + revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); - //钱包信息 - WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getStoreOrgId(), IdentityTypeEnum.ORGANIZATION); - 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()); - walletAccount.setRecordList(Collections.singletonList(record)); - acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); + //钱包信息 + WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getStoreOrgId(), IdentityTypeEnum.ORGANIZATION); + 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()); + walletAccount.setRecordList(Collections.singletonList(record)); + acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); + } } } } //运营中心提成 if (Objects.nonNull(dto.getOperationCenterOrgId())) { - synchronized (dto.getOperationCenterOrgId().toString().intern()) { - RewardConfig recommendRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_OPERATION_CENTER); - if (Objects.nonNull(recommendRewardConfig)) { - //收益信息 - RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getOperationCenterOrgId()); - //营收额 - BigDecimal revenue = recommendRewardConfig.calculateReward(rewardAmount); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE, - revenue, new BigDecimal(recommendRewardConfig.getValue()), 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)); - revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); + OperationCenter operationCenter = operationCenterQueryService.queryByOrg(dto.getOperationCenterOrgId()); + if (!operationCenter.getAdministratorId().equals(dto.getInitiatorUserId())) { + synchronized (dto.getOperationCenterOrgId().toString().intern()) { + RewardConfig recommendRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_OPERATION_CENTER); + if (Objects.nonNull(recommendRewardConfig)) { + //收益信息 + RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getOperationCenterOrgId()); + //营收额 + BigDecimal revenue = recommendRewardConfig.calculateReward(rewardAmount); + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE, + revenue, new BigDecimal(recommendRewardConfig.getValue()), 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)); + revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); - //钱包信息 - WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getOperationCenterOrgId(), IdentityTypeEnum.ORGANIZATION); - 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()); - walletAccount.setRecordList(Collections.singletonList(record)); - acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); + //钱包信息 + WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getOperationCenterOrgId(), IdentityTypeEnum.ORGANIZATION); + 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()); + walletAccount.setRecordList(Collections.singletonList(record)); + acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); + } } } } @@ -397,4 +410,12 @@ public class RewardApplicationService extends BaseApplicationService { return null; } } + + public void replenishMatchmakerJoinRecommend() { + List revenueRewardRecordList = revenueRewardQueryService. + listAllRecordBy(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE); + if (CollUtil.isNotEmpty(revenueRewardRecordList)){ + + } + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java index 9eff8de..9b2ffe4 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java @@ -5,7 +5,10 @@ import com.qniao.dam.api.command.revenuereward.user.response.UserGetRevenueRewar import com.qniao.dam.api.query.revenuereward.user.request.*; import com.qniao.dam.api.query.revenuereward.user.response.*; import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; +import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; 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.framework.utils.PageUtil; import java.util.List; @@ -32,4 +35,6 @@ public interface RevenueRewardQueryService { List listMatchmakerRevenueRewardStatistics(UserListMatchmakerRevenueRewardStatisticsQueryParams queryParams); IPage pageMatchmakerRevenueRewardRecord(PageUtil pageUtil, UserListMatchmakerRevenueRewardRecordQueryParams queryParams); + + List listAllRecordBy(TradeTypeEnum tradeType, TradeSceneEnum tradeScene); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java index 902b219..1a29f16 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java @@ -9,6 +9,8 @@ import com.qniao.dam.api.query.revenuereward.user.response.*; import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; 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.easyexcel.EasyExcelUtil; import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardDao; import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardRecordDao; @@ -188,6 +190,14 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService return page; } + @Override + public List listAllRecordBy(TradeTypeEnum tradeType, TradeSceneEnum tradeScene) { + return revenueRewardRecordDao.selectList(new LambdaQueryWrapper() + .eq(RevenueRewardRecord::getTradeType, tradeType) + .eq(RevenueRewardRecord::getTradeScene, tradeScene) + .orderByAsc(RevenueRewardRecord::getCreateTime)); + } + private List transformExport(List recordList) { List list = new ArrayList<>(); for (UserPageRevenueRewardRecordByOperatorVo record : recordList) {