Browse Source

玫瑰

master
张彭杰 2 months ago
parent
commit
14c7a4860d
4 changed files with 48 additions and 1 deletions
  1. 2
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java
  2. 4
      dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/UserConsumeVirtualAccountDto.java
  3. 6
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserConsumeVirtualAccountDto.java
  4. 37
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java

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

@ -40,6 +40,8 @@ public enum TradeTypeEnum {
ONE_ON_ONE_VIDEO(115, "1V1视频"), ONE_ON_ONE_VIDEO(115, "1V1视频"),
LINK_MIC_REWARD(116, "连麦收益"),
PLATFORM_SERVICE_FEE(201, "平台服务费"), PLATFORM_SERVICE_FEE(201, "平台服务费"),
WITHDRAW(202, "提现"); WITHDRAW(202, "提现");

4
dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/UserConsumeVirtualAccountDto.java

@ -12,6 +12,10 @@ public class UserConsumeVirtualAccountDto {
private Long userId; private Long userId;
private Long anchorUserId;
private Integer channelCreatorTodayCrossMicCount;
private Long productSpecId; private Long productSpecId;
private VirtualAccountTradeTypeEnum tradeType; private VirtualAccountTradeTypeEnum tradeType;

6
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserConsumeVirtualAccountDto.java

@ -11,6 +11,12 @@ public class UserConsumeVirtualAccountDto {
@NotNull @NotNull
private Long userId; private Long userId;
@NotNull
private Long anchorUserId;
@NotNull
private Integer channelCreatorTodayCrossMicCount;
@NotNull @NotNull
private Long productSpecId; private Long productSpecId;

37
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java

@ -19,6 +19,7 @@ import com.qniao.dam.domain.aggregate.virtualaccount.entity.VirtualAccount;
import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate; import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount; import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord; import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.dam.domain.service.revenuereward.AcquireRevenueRewardDomainService;
import com.qniao.dam.domain.service.virtualaccount.ConsumeVirtualAccountDomainService; import com.qniao.dam.domain.service.virtualaccount.ConsumeVirtualAccountDomainService;
import com.qniao.dam.domain.service.virtualaccount.CostGiftRewardDomainService; import com.qniao.dam.domain.service.virtualaccount.CostGiftRewardDomainService;
import com.qniao.dam.domain.service.virtualaccount.SettleOneOnOneRtcDomainService; import com.qniao.dam.domain.service.virtualaccount.SettleOneOnOneRtcDomainService;
@ -38,7 +39,6 @@ import com.qniao.dam.query.marriageinformation.MarriageInformationQueryService;
import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.product.ProductQueryService;
import com.qniao.dam.query.revenuereward.RevenueRewardQueryService; import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
import com.qniao.dam.query.usermarriageinformation.UserMarriageInformationQueryService;
import com.qniao.dam.query.virtualaccount.VirtualAccountQueryService; import com.qniao.dam.query.virtualaccount.VirtualAccountQueryService;
import com.qniao.dam.query.walletaccount.WalletAccountQueryService; import com.qniao.dam.query.walletaccount.WalletAccountQueryService;
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
@ -86,6 +86,8 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
private MarriageInformationQueryService marriageInformationQueryService; private MarriageInformationQueryService marriageInformationQueryService;
@Resource @Resource
private SettleOneOnOneRtcDomainService settleOneOnOneRtcDomainService; private SettleOneOnOneRtcDomainService settleOneOnOneRtcDomainService;
@Resource
private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService;
public void create(VirtualAccount virtualAccount) { public void create(VirtualAccount virtualAccount) {
virtualAccountAggregate.create(virtualAccount); virtualAccountAggregate.create(virtualAccount);
@ -114,6 +116,10 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
consumeVirtualAccountDomainService.handle(virtualAccount, order); consumeVirtualAccountDomainService.handle(virtualAccount, order);
vo.setSuccess(true); vo.setSuccess(true);
vo.setOrderId(order.getId()); vo.setOrderId(order.getId());
//相亲卡消费分润
if (VirtualAccountTradeTypeEnum.CONNECT_CHANNEL.equals(dto.getTradeType())) {
handleChannelConnectReward(dto.getAnchorUserId(), dto.getChannelCreatorTodayCrossMicCount(), productSpec.getUnitSellingPrice().intValue());
}
} }
} }
return vo; return vo;
@ -344,6 +350,35 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
return vo; return vo;
} }
private void handleChannelConnectReward(Long userId,
Integer channelCreatorTodayCrossMicCount,
Integer costBalance) {
//收益信息
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(userId);
if (Objects.isNull(revenueReward)) {
revenueReward = RevenueReward.initUser(userId);
}
//营收额 todo
BigDecimal giftRewardPct = rewardConfigQueryService.queryMatchmakerChannelGiftPct(userId, channelCreatorTodayCrossMicCount);
BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(giftRewardPct)
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.GIFT_REWARD, TradeSceneEnum.ONLINE,
revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance));
//todo
revenueRewardRecord.setContent("直播间礼物");
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord));
//钱包
WalletAccount walletAccount = walletAccountQueryService.queryByType(userId, IdentityTypeEnum.INDIVIDUAL);
BigDecimal originalBalance = walletAccount.getTotalBalance();
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue));
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.GIFT_REWARD, revenue, true, originalBalance, walletAccount.getTotalBalance());
walletAccount.setRecordList(Collections.singletonList(walletAccountRecord));
acquireRevenueRewardDomainService.handle(revenueReward,walletAccount);
}
/** /**
* 玫瑰充值 * 玫瑰充值
*/ */

Loading…
Cancel
Save