Browse Source

补充新手任务奖励

master
188814092560 11 months ago
parent
commit
fece57995a
2 changed files with 51 additions and 0 deletions
  1. 2
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java
  2. 49
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java

2
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java

@ -28,6 +28,8 @@ public enum TradeTypeEnum {
PIPELINE_REVENUE_FEE(109, "管道收益"),
MATCHMAKER_NOVICE_TASK_REWARD(110, "红娘新手任务奖励"),
PLATFORM_SERVICE_FEE(201, "平台服务费"),
WITHDRAW(202, "提现");

49
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/revenuereward/RevenueRewardEventHandler.java

@ -1,6 +1,7 @@
package com.qniao.dam.application.handler.revenuereward;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.eventbus.Subscribe;
import com.qniao.dam.application.service.revenuereward.RevenueRewardApplicationService;
import com.qniao.dam.application.service.reward.RewardApplicationService;
@ -9,9 +10,14 @@ import com.qniao.dam.domain.aggregate.ffpm.entity.FranchiseFeeProfitManagement;
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.revenuereward.RevenueRewardAggregate;
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward;
import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardAssociateOrderRecord;
import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord;
import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecoveredRecord;
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.dam.domain.service.revenuereward.AcquireRevenueRewardDomainService;
import com.qniao.dam.domian.aggregate.ffpm.constant.FranchiseFeeProfitManagementTypeEnum;
import com.qniao.dam.domian.aggregate.revenuereward.event.RevenueRewardRecoveryRequirementFilledEvent;
import com.qniao.dam.domian.aggregate.revenuereward.event.RevenueRewardUpdatedEvent;
@ -31,6 +37,7 @@ import com.qniao.dam.query.operationcenter.OperationCenterQueryService;
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.mntp.event.MatchmakerNoviceTaskProgressFinishedMQ;
import com.qniao.dau.domain.aggregate.operationcenter.entity.OperationCenter;
import com.qniao.dau.domain.aggregate.organization.entity.Organization;
@ -86,6 +93,12 @@ public class RevenueRewardEventHandler extends BaseApplicationService {
private RewardApplicationService rewardApplicationService;
@Resource
private StoreDao storeDao;
@Resource
private WalletAccountQueryService walletAccountQueryService;
@Resource
private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService;
@Resource
private WalletAccountAggregate walletAccountAggregate;
@RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.OPERATION_CENTER_CREATED),
exchange = @Exchange(value = MqExchange.OPERATION_CENTER_CREATED,
@ -287,9 +300,45 @@ public class RevenueRewardEventHandler extends BaseApplicationService {
//todo 推荐的红娘不在一个门店中收益是否归门店
//todo 红娘的新手任务奖励
handleStoreNoviceTaskReward(store.getOrgId(), mq.getMatchmakerExtraBonus(), mq.getMatchmakerName());
handleMatchmakerNoviceTaskReward(mq.getMatchmakerUserId(), mq.getMatchmakerExtraBonus());
}
} catch (Exception e) {
log.error("新手任务完成事件处理异常", e);
}
}
private void handleStoreNoviceTaskReward(Long orgId, BigDecimal revenue, String matchmakerName) {
//钱包信息
WalletAccount walletAccount = walletAccountQueryService.queryByType(orgId, IdentityTypeEnum.ORGANIZATION);
BigDecimal originalBalance = walletAccount.getTotalBalance();
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().subtract(revenue));
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD, revenue, false, originalBalance, walletAccount.getTotalBalance());
record.setRemark(matchmakerName + TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD.getDesc());
walletAccount.setRecordList(Collections.singletonList(record));
walletAccountAggregate.save(walletAccount);
}
private void handleMatchmakerNoviceTaskReward(Long matchmakerUserId, BigDecimal revenue) {
//收益信息
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(matchmakerUserId);
if (Objects.isNull(revenueReward)) {
revenueReward = RevenueReward.initUser(matchmakerUserId);
}
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD, TradeSceneEnum.ONLINE,
revenue, BigDecimal.ZERO, BigDecimal.ZERO, revenue, BigDecimal.ZERO);
revenueRewardRecord.setContent(TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD.getDesc());
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord));
//钱包信息
WalletAccount walletAccount = walletAccountQueryService.queryByType(matchmakerUserId, IdentityTypeEnum.INDIVIDUAL);
BigDecimal originalBalance = walletAccount.getTotalBalance();
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue));
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_NOVICE_TASK_REWARD, revenue, true, originalBalance, walletAccount.getTotalBalance());
walletAccount.setRecordList(Collections.singletonList(record));
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount);
}
}
Loading…
Cancel
Save