|
|
@ -12,7 +12,9 @@ import com.qniao.dam.domain.service.revenuereward.AcquireRevenueRewardDomainServ |
|
|
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; |
|
|
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; |
|
|
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.OrderDao; |
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao; |
|
|
|
|
|
import com.qniao.dam.query.matchmaker.MatchmakerQueryService; |
|
|
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.walletaccount.WalletAccountQueryService; |
|
|
import com.qniao.dam.query.walletaccount.WalletAccountQueryService; |
|
|
import com.qniao.dam.domain.aggregate.order.entity.Order; |
|
|
import com.qniao.dam.domain.aggregate.order.entity.Order; |
|
|
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; |
|
|
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; |
|
|
@ -25,6 +27,8 @@ import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; |
|
|
import com.qniao.dam.query.order.OrderQueryService; |
|
|
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.store.entity.Store; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
@ -50,6 +54,10 @@ public class RewardApplicationService { |
|
|
private RevenueRewardQueryService revenueRewardQueryService; |
|
|
private RevenueRewardQueryService revenueRewardQueryService; |
|
|
@Resource |
|
|
@Resource |
|
|
private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService; |
|
|
private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private MatchmakerQueryService matchmakerQueryService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private StoreQueryService storeQueryService; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获得红娘推荐奖励 |
|
|
* 获得红娘推荐奖励 |
|
|
@ -80,10 +88,7 @@ public class RewardApplicationService { |
|
|
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); |
|
|
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); |
|
|
|
|
|
|
|
|
//钱包信息 |
|
|
//钱包信息 |
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByUserId(dto.getInitiatorUserId()); |
|
|
|
|
|
if (Objects.isNull(walletAccount)) { |
|
|
|
|
|
walletAccount = WalletAccount.initUser(dto.getInitiatorUserId()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getInitiatorUserId(), IdentityTypeEnum.INDIVIDUAL); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true); |
|
|
@ -99,9 +104,6 @@ public class RewardApplicationService { |
|
|
if (Objects.nonNull(recommendRewardConfig)) { |
|
|
if (Objects.nonNull(recommendRewardConfig)) { |
|
|
//收益信息 |
|
|
//收益信息 |
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId()); |
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getStoreOrgId()); |
|
|
if (Objects.isNull(revenueReward)) { |
|
|
|
|
|
revenueReward = RevenueReward.initOrg(dto.getStoreOrgId()); |
|
|
|
|
|
} |
|
|
|
|
|
//营收额 |
|
|
//营收额 |
|
|
BigDecimal revenue = recommendRewardConfig.calculate(rewardAmount); |
|
|
BigDecimal revenue = recommendRewardConfig.calculate(rewardAmount); |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, |
|
|
@ -113,9 +115,6 @@ public class RewardApplicationService { |
|
|
|
|
|
|
|
|
//钱包信息 |
|
|
//钱包信息 |
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getStoreOrgId(), IdentityTypeEnum.ORGANIZATION); |
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getStoreOrgId(), IdentityTypeEnum.ORGANIZATION); |
|
|
if (Objects.isNull(walletAccount)) { |
|
|
|
|
|
walletAccount = WalletAccount.initOrg(dto.getStoreOrgId()); |
|
|
|
|
|
} |
|
|
|
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true); |
|
|
@ -131,9 +130,6 @@ public class RewardApplicationService { |
|
|
if (Objects.nonNull(recommendRewardConfig)) { |
|
|
if (Objects.nonNull(recommendRewardConfig)) { |
|
|
//收益信息 |
|
|
//收益信息 |
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getOperationCenterOrgId()); |
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByOrgId(dto.getOperationCenterOrgId()); |
|
|
if (Objects.isNull(revenueReward)) { |
|
|
|
|
|
revenueReward = RevenueReward.initOrg(dto.getOperationCenterOrgId()); |
|
|
|
|
|
} |
|
|
|
|
|
//营收额 |
|
|
//营收额 |
|
|
BigDecimal revenue = recommendRewardConfig.calculate(rewardAmount); |
|
|
BigDecimal revenue = recommendRewardConfig.calculate(rewardAmount); |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, |
|
|
@ -145,9 +141,6 @@ public class RewardApplicationService { |
|
|
|
|
|
|
|
|
//钱包信息 |
|
|
//钱包信息 |
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getStoreOrgId(), IdentityTypeEnum.ORGANIZATION); |
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getStoreOrgId(), IdentityTypeEnum.ORGANIZATION); |
|
|
if (Objects.isNull(walletAccount)) { |
|
|
|
|
|
walletAccount = WalletAccount.initOrg(dto.getOperationCenterOrgId()); |
|
|
|
|
|
} |
|
|
|
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true); |
|
|
@ -159,14 +152,16 @@ public class RewardApplicationService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获得红娘推荐奖励 |
|
|
|
|
|
|
|
|
* 获得见面费用 |
|
|
|
|
|
* 原门店享受红娘服务嘉宾(悬赏)5%提成奖励(来源于平台抽佣30%),分配情况为:红娘原门店5%、现门店10%、运营中心5%,平台10% |
|
|
*/ |
|
|
*/ |
|
|
public void acquireMatchmakerConfirmMeetingReward(AcquireMatchmakerConfirmMeetingRewardDto dto) { |
|
|
public void acquireMatchmakerConfirmMeetingReward(AcquireMatchmakerConfirmMeetingRewardDto dto) { |
|
|
|
|
|
BigDecimal serviceFee = BigDecimal.ZERO; |
|
|
|
|
|
TradeTypeEnum tradeType = transform(dto.getRewardType()); |
|
|
|
|
|
MarriageInformation meetingMi = marriageInformationDao.selectById(dto.getAssociatedMiId()); |
|
|
synchronized (dto.getReceiver().toString().intern()) { |
|
|
synchronized (dto.getReceiver().toString().intern()) { |
|
|
RewardConfig serviceFeeRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PLATFORM_SERVICE_FEE); |
|
|
RewardConfig serviceFeeRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PLATFORM_SERVICE_FEE); |
|
|
if (Objects.nonNull(serviceFeeRewardConfig)) { |
|
|
if (Objects.nonNull(serviceFeeRewardConfig)) { |
|
|
MarriageInformation meetingMi = marriageInformationDao.selectById(dto.getAssociatedMiId()); |
|
|
|
|
|
TradeTypeEnum tradeType = transform(dto.getRewardType()); |
|
|
|
|
|
//收益信息 |
|
|
//收益信息 |
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(dto.getReceiver()); |
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(dto.getReceiver()); |
|
|
if (Objects.isNull(revenueReward)) { |
|
|
if (Objects.isNull(revenueReward)) { |
|
|
@ -175,7 +170,7 @@ public class RewardApplicationService { |
|
|
//营收额 |
|
|
//营收额 |
|
|
BigDecimal revenue = dto.getReceivedAmount(); |
|
|
BigDecimal revenue = dto.getReceivedAmount(); |
|
|
//服务费用 |
|
|
//服务费用 |
|
|
BigDecimal serviceFee = serviceFeeRewardConfig.calculate(revenue); |
|
|
|
|
|
|
|
|
serviceFee = serviceFeeRewardConfig.calculate(revenue); |
|
|
BigDecimal earnings = revenue.subtract(serviceFee); |
|
|
BigDecimal earnings = revenue.subtract(serviceFee); |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, |
|
|
revenue, earnings, dto.getTotalAssociateOrderAmount()); |
|
|
revenue, earnings, dto.getTotalAssociateOrderAmount()); |
|
|
@ -192,10 +187,7 @@ public class RewardApplicationService { |
|
|
} |
|
|
} |
|
|
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); |
|
|
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); |
|
|
//钱包 |
|
|
//钱包 |
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByUserId(dto.getReceiver()); |
|
|
|
|
|
if (Objects.isNull(walletAccount)) { |
|
|
|
|
|
walletAccount = WalletAccount.initUser(dto.getReceiver()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getReceiver(), IdentityTypeEnum.INDIVIDUAL); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(earnings)); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(earnings)); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(tradeType, earnings, true); |
|
|
WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(tradeType, earnings, true); |
|
|
@ -203,26 +195,85 @@ public class RewardApplicationService { |
|
|
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); |
|
|
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(dto.getReceiver()); |
|
|
|
|
|
if (Objects.nonNull(matchmaker) && Objects.nonNull(matchmaker.getStoreId())) { |
|
|
|
|
|
//门店收益 |
|
|
|
|
|
Store store = storeQueryService.queryById(matchmaker.getStoreId()); |
|
|
|
|
|
handleAcquireReward(store.getOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_STORE_REWARD, serviceFee, meetingMi, |
|
|
|
|
|
dto.getTotalAssociateOrderAmount(), dto.getOrderIdRelList(), tradeType); |
|
|
|
|
|
//门店升级收益 |
|
|
|
|
|
if (Objects.nonNull(store.getParentStoreId())) { |
|
|
|
|
|
Store parentStore = storeQueryService.queryById(store.getParentStoreId()); |
|
|
|
|
|
handleAcquireReward(parentStore.getOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_STORE_UPGRADE_REWARD, serviceFee, meetingMi, |
|
|
|
|
|
dto.getTotalAssociateOrderAmount(), dto.getOrderIdRelList(), tradeType); |
|
|
|
|
|
} |
|
|
|
|
|
//运营中心 |
|
|
|
|
|
if (Objects.nonNull(store.getOperationCenterOrgId())) { |
|
|
|
|
|
handleAcquireReward(store.getOperationCenterOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_OPERATION_CENTER_REWARD, serviceFee, meetingMi, |
|
|
|
|
|
dto.getTotalAssociateOrderAmount(), dto.getOrderIdRelList(), tradeType); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void handleAcquireReward(Long identityId, |
|
|
|
|
|
IdentityTypeEnum identityType, |
|
|
|
|
|
RewardTypeEnum rewardType, |
|
|
|
|
|
BigDecimal amount, |
|
|
|
|
|
MarriageInformation meetingMi, |
|
|
|
|
|
BigDecimal totalAssociateOrderAmount, |
|
|
|
|
|
List<Long> 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.calculate(amount); |
|
|
|
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, |
|
|
|
|
|
revenue, revenue, totalAssociateOrderAmount); |
|
|
|
|
|
revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName())); |
|
|
|
|
|
if (CollUtil.isNotEmpty(orderIdRekList)) { |
|
|
|
|
|
List<RevenueRewardAssociateOrderRecord> 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); |
|
|
|
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue)); |
|
|
|
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
|
|
|
WalletAccountRecord record = WalletAccountRecord.build(tradeType, revenue, true); |
|
|
|
|
|
walletAccount.setRecordList(Collections.singletonList(record)); |
|
|
|
|
|
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 确认匹配 |
|
|
* 确认匹配 |
|
|
*/ |
|
|
*/ |
|
|
public void acquireMatchmakerConfirmMatchReward(AcquireMatchmakerConfirmMatchRewardDto dto) { |
|
|
public void acquireMatchmakerConfirmMatchReward(AcquireMatchmakerConfirmMatchRewardDto dto) { |
|
|
|
|
|
BigDecimal serviceFee = BigDecimal.ZERO; |
|
|
|
|
|
MarriageInformation associatedMi = marriageInformationDao.selectById(dto.getAssociatedMiId()); |
|
|
|
|
|
TradeTypeEnum tradeType = transform(dto.getRewardType()); |
|
|
synchronized (dto.getReceiver().toString().intern()) { |
|
|
synchronized (dto.getReceiver().toString().intern()) { |
|
|
RewardConfig serviceFeeRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PLATFORM_SERVICE_FEE); |
|
|
RewardConfig serviceFeeRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PLATFORM_SERVICE_FEE); |
|
|
if (Objects.nonNull(serviceFeeRewardConfig)) { |
|
|
if (Objects.nonNull(serviceFeeRewardConfig)) { |
|
|
MarriageInformation associatedMi = marriageInformationDao.selectById(dto.getAssociatedMiId()); |
|
|
|
|
|
TradeTypeEnum tradeType = transform(dto.getRewardType()); |
|
|
|
|
|
//收益信息 |
|
|
//收益信息 |
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(dto.getReceiver()); |
|
|
|
|
|
if (Objects.isNull(revenueReward)) { |
|
|
|
|
|
revenueReward = RevenueReward.initUser(dto.getReceiver()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
RevenueReward revenueReward = revenueRewardQueryService.queryByType(dto.getReceiver(), IdentityTypeEnum.INDIVIDUAL); |
|
|
//营收额 |
|
|
//营收额 |
|
|
BigDecimal revenue = dto.getReceivedAmount(); |
|
|
BigDecimal revenue = dto.getReceivedAmount(); |
|
|
//服务费用 |
|
|
//服务费用 |
|
|
BigDecimal serviceFee = serviceFeeRewardConfig.calculate(revenue); |
|
|
|
|
|
|
|
|
serviceFee = serviceFeeRewardConfig.calculate(revenue); |
|
|
BigDecimal earnings = revenue.subtract(serviceFee); |
|
|
BigDecimal earnings = revenue.subtract(serviceFee); |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, revenue, earnings, dto.getTotalAssociateOrderAmount()); |
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, revenue, earnings, dto.getTotalAssociateOrderAmount()); |
|
|
revenueRewardRecord.handleContent(Collections.singletonList(associatedMi.getNickName())); |
|
|
revenueRewardRecord.handleContent(Collections.singletonList(associatedMi.getNickName())); |
|
|
@ -238,11 +289,7 @@ public class RewardApplicationService { |
|
|
} |
|
|
} |
|
|
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); |
|
|
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByUserId(dto.getReceiver()); |
|
|
|
|
|
if (Objects.isNull(walletAccount)) { |
|
|
|
|
|
walletAccount = WalletAccount.initUser(dto.getReceiver()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getReceiver(), IdentityTypeEnum.INDIVIDUAL); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(earnings)); |
|
|
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(earnings)); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance())); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(tradeType, earnings, true); |
|
|
WalletAccountRecord record = WalletAccountRecord.build(tradeType, earnings, true); |
|
|
@ -250,6 +297,25 @@ public class RewardApplicationService { |
|
|
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); |
|
|
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(dto.getReceiver()); |
|
|
|
|
|
if (Objects.nonNull(matchmaker) && Objects.nonNull(matchmaker.getStoreId())) { |
|
|
|
|
|
//门店收益 |
|
|
|
|
|
Store store = storeQueryService.queryById(matchmaker.getStoreId()); |
|
|
|
|
|
handleAcquireReward(store.getOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_STORE_REWARD, serviceFee, associatedMi, |
|
|
|
|
|
dto.getTotalAssociateOrderAmount(), dto.getOrderIdRelList(), tradeType); |
|
|
|
|
|
//门店升级收益 |
|
|
|
|
|
if (Objects.nonNull(store.getParentStoreId())) { |
|
|
|
|
|
Store parentStore = storeQueryService.queryById(store.getParentStoreId()); |
|
|
|
|
|
handleAcquireReward(parentStore.getOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_STORE_UPGRADE_REWARD, serviceFee, associatedMi, |
|
|
|
|
|
dto.getTotalAssociateOrderAmount(), dto.getOrderIdRelList(), tradeType); |
|
|
|
|
|
} |
|
|
|
|
|
//运营中心 |
|
|
|
|
|
if (Objects.nonNull(store.getOperationCenterOrgId())) { |
|
|
|
|
|
handleAcquireReward(store.getOperationCenterOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_OPERATION_CENTER_REWARD, serviceFee, associatedMi, |
|
|
|
|
|
dto.getTotalAssociateOrderAmount(), dto.getOrderIdRelList(), tradeType); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private TradeTypeEnum transform(RewardTypeEnum rewardType) { |
|
|
private TradeTypeEnum transform(RewardTypeEnum rewardType) { |
|
|
|