diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java index 80f36ad..17743a0 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java @@ -32,7 +32,7 @@ public enum TradeTypeEnum { CHAT_REWARD(111, "聊天收益"), - GIFT_REWARD(112, "礼物收益"), + IM_GIFT_REWARD(112, "聊天礼物收益"), RECOMMEND_GIFT_REWARD(113, "邀请分成"), @@ -44,6 +44,8 @@ public enum TradeTypeEnum { TASK_REWARD(117, "任务奖励"), + CHANNEL_GIFT_REWARD(118, "直播礼物收益"), + PLATFORM_SERVICE_FEE(201, "平台服务费"), WITHDRAW(202, "提现"); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java index c35f34d..ef711a4 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java @@ -3,6 +3,7 @@ package com.qniao.dam.api.query.walletaccount.user; import com.qniao.dam.api.query.walletaccount.user.request.UsePageWalletAccountRecordByOperatorQueryParams; import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; import com.qniao.dam.api.query.walletaccount.user.response.UsePageWalletAccountRecordByOperatorVo; +import com.qniao.dam.api.query.walletaccount.user.response.UserGetTodayLiveIncomeVo; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountRecordVo; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo; import com.qniao.dam.query.walletaccount.WalletAccountQueryService; @@ -60,4 +61,10 @@ public class WalletAccountUserQueryController { public String userExportWalletAccountRecordByOperator(UsePageWalletAccountRecordByOperatorQueryParams queryParams) { return walletAccountQueryService.exportData(queryParams); } + + @GetMapping("get/today-live-income") + @ApiOperation("用户获取今日直播收益") + public UserGetTodayLiveIncomeVo userGetTodayLiveIncome(@RequestParam("userId") Long userId) { + return walletAccountQueryService.getTodayLiveIncome(userId); + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetTodayLiveIncomeVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetTodayLiveIncomeVo.java new file mode 100644 index 0000000..fff3d16 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetTodayLiveIncomeVo.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.query.walletaccount.user.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserGetTodayLiveIncomeVo { + + @ApiModelProperty("今日直播收益") + private String todayLiveIncomeStr; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java index 814bb45..1db0ad8 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java @@ -199,7 +199,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { //营收额 BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(BigDecimal.valueOf(0.4)).setScale(2, RoundingMode.HALF_UP); - RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.GIFT_REWARD, TradeSceneEnum.ONLINE, + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.IM_GIFT_REWARD, TradeSceneEnum.ONLINE, revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance)); //todo revenueRewardRecord.setContent("一对一礼物"); @@ -210,7 +210,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { 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()); + WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.IM_GIFT_REWARD, revenue, true, originalBalance, walletAccount.getTotalBalance()); walletAccount.setRecordList(Collections.singletonList(walletAccountRecord)); costGiftRewardDomainService.handle(order, virtualAccount, costBalance, revenueReward, walletAccount); @@ -263,7 +263,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { } //营收额 todo BigDecimal toRevenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(BigDecimal.valueOf(0.1)).setScale(2, RoundingMode.HALF_UP); - RevenueRewardRecord toRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.GIFT_REWARD, TradeSceneEnum.ONLINE, + RevenueRewardRecord toRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, toRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, toRevenue, BigDecimal.valueOf(costBalance)); //todo toRevenueRewardRecord.setContent("直播间礼物"); @@ -273,7 +273,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { BigDecimal toOriginalBalance = toWalletAccount.getTotalBalance(); toWalletAccount.setAvailableBalance(toWalletAccount.getAvailableBalance().add(toRevenue)); toWalletAccount.setTotalBalance(toWalletAccount.getAvailableBalance().add(toWalletAccount.getFrozenBalance())); - WalletAccountRecord toWalletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.GIFT_REWARD, toRevenue, true, toOriginalBalance, toWalletAccount.getTotalBalance()); + WalletAccountRecord toWalletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, toRevenue, true, toOriginalBalance, toWalletAccount.getTotalBalance()); toWalletAccount.setRecordList(Collections.singletonList(toWalletAccountRecord)); //收益信息 @@ -286,7 +286,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { giftRewardPct = giftRewardPct.subtract(BigDecimal.valueOf(10)); BigDecimal anchorRevenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(giftRewardPct) .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); - RevenueRewardRecord anchorRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.GIFT_REWARD, TradeSceneEnum.ONLINE, + RevenueRewardRecord anchorRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, anchorRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, anchorRevenue, BigDecimal.valueOf(costBalance)); //todo anchorRevenueRewardRecord.setContent("直播间礼物"); @@ -296,7 +296,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { BigDecimal anchorOriginalBalance = anchorWalletAccount.getTotalBalance(); anchorWalletAccount.setAvailableBalance(anchorWalletAccount.getAvailableBalance().add(anchorRevenue)); anchorWalletAccount.setTotalBalance(anchorWalletAccount.getAvailableBalance().add(anchorWalletAccount.getFrozenBalance())); - WalletAccountRecord anchorWalletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.GIFT_REWARD, anchorRevenue, true, anchorOriginalBalance, anchorWalletAccount.getTotalBalance()); + WalletAccountRecord anchorWalletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, anchorRevenue, true, anchorOriginalBalance, anchorWalletAccount.getTotalBalance()); anchorWalletAccount.setRecordList(Collections.singletonList(anchorWalletAccountRecord)); List eventList = costGiftRewardDomainService.handle(order, virtualAccount, costBalance, toRevenueReward, toWalletAccount, anchorRevenueReward, anchorWalletAccount); @@ -332,7 +332,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { 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, + RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance)); //todo revenueRewardRecord.setContent("直播间礼物"); @@ -343,7 +343,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { 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()); + WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, revenue, true, originalBalance, walletAccount.getTotalBalance()); walletAccount.setRecordList(Collections.singletonList(walletAccountRecord)); List eventList = costGiftRewardDomainService.handle(order, virtualAccount, costBalance, revenueReward, walletAccount); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java index 23abd7d..876cd35 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java @@ -9,7 +9,8 @@ import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountR import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import java.util.List; +import java.math.BigDecimal; +import java.time.LocalDateTime; @Mapper public interface WalletAccountViewDao { @@ -18,4 +19,8 @@ public interface WalletAccountViewDao { IPage pageWalletAccountRecordByOperator(Page pageWithoutOrders, @Param("queryParams") UsePageWalletAccountRecordByOperatorQueryParams queryParams); + + BigDecimal getTodayLiveIncome(@Param("userId") Long userId, + @Param("startTime") LocalDateTime startTime, + @Param("endTime") LocalDateTime endTime); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java index c430014..a1a08fe 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.qniao.dam.api.query.walletaccount.user.request.UsePageWalletAccountRecordByOperatorQueryParams; import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; import com.qniao.dam.api.query.walletaccount.user.response.UsePageWalletAccountRecordByOperatorVo; +import com.qniao.dam.api.query.walletaccount.user.response.UserGetTodayLiveIncomeVo; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountRecordVo; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo; import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount; @@ -27,4 +28,6 @@ public interface WalletAccountQueryService { IPage pageWalletAccountRecordByOperator(PageUtil pageUtil, UsePageWalletAccountRecordByOperatorQueryParams queryParams); String exportData(UsePageWalletAccountRecordByOperatorQueryParams queryParams); + + UserGetTodayLiveIncomeVo getTodayLiveIncome(Long userId); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java index d517f80..67fea64 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java @@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qniao.dam.api.query.walletaccount.user.request.UsePageWalletAccountRecordByOperatorQueryParams; import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; -import com.qniao.dam.api.query.walletaccount.user.response.UsePageWalletAccountRecordByOperatorVo; -import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountRecordVo; -import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo; -import com.qniao.dam.api.query.walletaccount.user.response.WalletAccountRecordExportVo; +import com.qniao.dam.api.query.walletaccount.user.response.*; import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; @@ -167,6 +164,14 @@ public class WalletAccountQueryServiceImpl implements WalletAccountQueryService ); } + @Override + public UserGetTodayLiveIncomeVo getTodayLiveIncome(Long userId) { + UserGetTodayLiveIncomeVo vo = new UserGetTodayLiveIncomeVo(); + BigDecimal todayLiveIncome = walletAccountViewDao.getTodayLiveIncome(userId, LocalDate.now().atStartOfDay(), LocalDate.now().plusDays(1).atStartOfDay()); + vo.setTodayLiveIncomeStr(todayLiveIncome.stripTrailingZeros().toPlainString()); + return vo; + } + private List transformExport(List recordList) { List list = new ArrayList<>(); for (UsePageWalletAccountRecordByOperatorVo record : recordList) { diff --git a/dating-agency-mall-server/src/main/resources/mapper/walletaccount/RecommendationRelationQueryService.xml b/dating-agency-mall-server/src/main/resources/mapper/walletaccount/RecommendationRelationQueryService.xml index b7cc2a7..56bbb5a 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/walletaccount/RecommendationRelationQueryService.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/walletaccount/RecommendationRelationQueryService.xml @@ -60,4 +60,14 @@ order by dawar.create_time desc + + \ No newline at end of file