|
|
|
@ -14,6 +14,7 @@ import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; |
|
|
|
import com.qniao.dam.domain.aggregate.productspec.valueobj.ProductSpecTerm; |
|
|
|
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; |
|
|
|
import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; |
|
|
|
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; |
|
|
|
import com.qniao.dam.domain.aggregate.virtualaccount.VirtualAccountAggregate; |
|
|
|
import com.qniao.dam.domain.aggregate.virtualaccount.entity.VirtualAccount; |
|
|
|
import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate; |
|
|
|
@ -28,6 +29,7 @@ import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermNameEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.virtualaccount.constant.VirtualAccountTradeTypeEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; |
|
|
|
@ -90,9 +92,6 @@ public class VirtualAccountApplicationService extends BaseApplicationService { |
|
|
|
@Resource |
|
|
|
private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService; |
|
|
|
|
|
|
|
@Value("${virtual-unit-price:0.1}") |
|
|
|
private BigDecimal virtualUnitPrice; |
|
|
|
|
|
|
|
public void create(VirtualAccount virtualAccount) { |
|
|
|
virtualAccountAggregate.create(virtualAccount); |
|
|
|
} |
|
|
|
@ -200,8 +199,9 @@ public class VirtualAccountApplicationService extends BaseApplicationService { |
|
|
|
if (Objects.isNull(revenueReward)) { |
|
|
|
revenueReward = RevenueReward.initUser(toUserId); |
|
|
|
} |
|
|
|
RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); |
|
|
|
//营收额 |
|
|
|
BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(BigDecimal.valueOf(0.4)).setScale(2, RoundingMode.HALF_UP); |
|
|
|
BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(BigDecimal.valueOf(0.4)).setScale(2, RoundingMode.HALF_UP); |
|
|
|
|
|
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.IM_GIFT_REWARD, TradeSceneEnum.ONLINE, |
|
|
|
revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance)); |
|
|
|
@ -265,8 +265,9 @@ public class VirtualAccountApplicationService extends BaseApplicationService { |
|
|
|
if (Objects.isNull(toRevenueReward)) { |
|
|
|
toRevenueReward = RevenueReward.initUser(toUserId); |
|
|
|
} |
|
|
|
RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); |
|
|
|
//营收额 todo |
|
|
|
BigDecimal toRevenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(BigDecimal.valueOf(0.1)).setScale(2, RoundingMode.HALF_UP); |
|
|
|
BigDecimal toRevenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(BigDecimal.valueOf(0.1)).setScale(2, RoundingMode.HALF_UP); |
|
|
|
RevenueRewardRecord toRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, |
|
|
|
toRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, toRevenue, BigDecimal.valueOf(costBalance)); |
|
|
|
//todo |
|
|
|
@ -288,7 +289,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { |
|
|
|
//营收额 |
|
|
|
BigDecimal giftRewardPct = rewardConfigQueryService.queryMatchmakerChannelGiftPct(anchorId, channelCreatorTodayCrossMicCount); |
|
|
|
giftRewardPct = giftRewardPct.subtract(BigDecimal.valueOf(10)); |
|
|
|
BigDecimal anchorRevenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(giftRewardPct) |
|
|
|
BigDecimal anchorRevenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(giftRewardPct) |
|
|
|
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); |
|
|
|
RevenueRewardRecord anchorRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, |
|
|
|
anchorRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, anchorRevenue, BigDecimal.valueOf(costBalance)); |
|
|
|
@ -331,9 +332,10 @@ public class VirtualAccountApplicationService extends BaseApplicationService { |
|
|
|
if (Objects.isNull(revenueReward)) { |
|
|
|
revenueReward = RevenueReward.initUser(toUserId); |
|
|
|
} |
|
|
|
RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); |
|
|
|
//营收额 todo |
|
|
|
BigDecimal giftRewardPct = rewardConfigQueryService.queryMatchmakerChannelGiftPct(toUserId, channelCreatorTodayCrossMicCount); |
|
|
|
BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(giftRewardPct) |
|
|
|
BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(giftRewardPct) |
|
|
|
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); |
|
|
|
|
|
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, |
|
|
|
@ -364,9 +366,10 @@ public class VirtualAccountApplicationService extends BaseApplicationService { |
|
|
|
if (Objects.isNull(revenueReward)) { |
|
|
|
revenueReward = RevenueReward.initUser(userId); |
|
|
|
} |
|
|
|
RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); |
|
|
|
//营收额 todo |
|
|
|
BigDecimal giftRewardPct = rewardConfigQueryService.queryMatchmakerChannelGiftPct(userId, channelCreatorTodayCrossMicCount); |
|
|
|
BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(giftRewardPct) |
|
|
|
BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(giftRewardPct) |
|
|
|
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); |
|
|
|
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.LINK_MIC_REWARD, TradeSceneEnum.ONLINE, |
|
|
|
revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance)); |
|
|
|
|