|
|
@ -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.domian.aggregate.walletaccount.constant.TradeSceneEnum; |
|
|
import com.qniao.dam.infrastructure.constant.MqExchange; |
|
|
import com.qniao.dam.infrastructure.constant.MqExchange; |
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao; |
|
|
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.OrderDao; |
|
|
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.StoreDao; |
|
|
import com.qniao.dam.query.matchmaker.MatchmakerQueryService; |
|
|
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.revenuereward.RevenueRewardQueryService; |
|
|
import com.qniao.dam.query.store.StoreQueryService; |
|
|
import com.qniao.dam.query.store.StoreQueryService; |
|
|
import com.qniao.dam.query.walletaccount.WalletAccountQueryService; |
|
|
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.dam.query.rewardconfig.RewardConfigQueryService; |
|
|
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; |
|
|
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; |
|
|
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker; |
|
|
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.domain.aggregate.store.entity.Store; |
|
|
import com.qniao.dau.domian.aggregate.matchmakeraudit.constant.MatchmakerAuditBehaviorEnum; |
|
|
import com.qniao.dau.domian.aggregate.matchmakeraudit.constant.MatchmakerAuditBehaviorEnum; |
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
@ -64,8 +68,11 @@ public class RewardApplicationService extends BaseApplicationService { |
|
|
@Resource |
|
|
@Resource |
|
|
private StoreQueryService storeQueryService; |
|
|
private StoreQueryService storeQueryService; |
|
|
@Resource |
|
|
@Resource |
|
|
|
|
|
private OperationCenterQueryService operationCenterQueryService; |
|
|
|
|
|
@Resource |
|
|
private AmqpTemplate amqpTemplate; |
|
|
private AmqpTemplate amqpTemplate; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获得红娘推荐奖励 |
|
|
* 获得红娘推荐奖励 |
|
|
*/ |
|
|
*/ |
|
|
@ -138,55 +145,61 @@ public class RewardApplicationService extends BaseApplicationService { |
|
|
|
|
|
|
|
|
//门店提成 |
|
|
//门店提成 |
|
|
if (Objects.nonNull(dto.getStoreOrgId())) { |
|
|
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())) { |
|
|
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; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void replenishMatchmakerJoinRecommend() { |
|
|
|
|
|
List<RevenueRewardRecord> revenueRewardRecordList = revenueRewardQueryService. |
|
|
|
|
|
listAllRecordBy(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE); |
|
|
|
|
|
if (CollUtil.isNotEmpty(revenueRewardRecordList)){ |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |