Browse Source

直播红娘任务

master
张彭杰 2 months ago
parent
commit
90bb8a52ed
8 changed files with 58 additions and 14 deletions
  1. 4
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java
  2. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java
  3. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetTodayLiveIncomeVo.java
  4. 16
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java
  5. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java
  6. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java
  7. 13
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java
  8. 10
      dating-agency-mall-server/src/main/resources/mapper/walletaccount/RecommendationRelationQueryService.xml

4
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, "聊天收益"), CHAT_REWARD(111, "聊天收益"),
GIFT_REWARD(112, "礼物收益"),
IM_GIFT_REWARD(112, "聊天礼物收益"),
RECOMMEND_GIFT_REWARD(113, "邀请分成"), RECOMMEND_GIFT_REWARD(113, "邀请分成"),
@ -44,6 +44,8 @@ public enum TradeTypeEnum {
TASK_REWARD(117, "任务奖励"), TASK_REWARD(117, "任务奖励"),
CHANNEL_GIFT_REWARD(118, "直播礼物收益"),
PLATFORM_SERVICE_FEE(201, "平台服务费"), PLATFORM_SERVICE_FEE(201, "平台服务费"),
WITHDRAW(202, "提现"); WITHDRAW(202, "提现");

7
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.UsePageWalletAccountRecordByOperatorQueryParams;
import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; 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.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.UserGetWalletAccountRecordVo;
import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo;
import com.qniao.dam.query.walletaccount.WalletAccountQueryService; import com.qniao.dam.query.walletaccount.WalletAccountQueryService;
@ -60,4 +61,10 @@ public class WalletAccountUserQueryController {
public String userExportWalletAccountRecordByOperator(UsePageWalletAccountRecordByOperatorQueryParams queryParams) { public String userExportWalletAccountRecordByOperator(UsePageWalletAccountRecordByOperatorQueryParams queryParams) {
return walletAccountQueryService.exportData(queryParams); return walletAccountQueryService.exportData(queryParams);
} }
@GetMapping("get/today-live-income")
@ApiOperation("用户获取今日直播收益")
public UserGetTodayLiveIncomeVo userGetTodayLiveIncome(@RequestParam("userId") Long userId) {
return walletAccountQueryService.getTodayLiveIncome(userId);
}
} }

12
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;
}

16
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); 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)); revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance));
//todo //todo
revenueRewardRecord.setContent("一对一礼物"); revenueRewardRecord.setContent("一对一礼物");
@ -210,7 +210,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
BigDecimal originalBalance = walletAccount.getTotalBalance(); BigDecimal originalBalance = walletAccount.getTotalBalance();
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 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)); walletAccount.setRecordList(Collections.singletonList(walletAccountRecord));
costGiftRewardDomainService.handle(order, virtualAccount, costBalance, revenueReward, walletAccount); costGiftRewardDomainService.handle(order, virtualAccount, costBalance, revenueReward, walletAccount);
@ -263,7 +263,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
} }
//营收额 todo //营收额 todo
BigDecimal toRevenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(BigDecimal.valueOf(0.1)).setScale(2, RoundingMode.HALF_UP); 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)); toRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, toRevenue, BigDecimal.valueOf(costBalance));
//todo //todo
toRevenueRewardRecord.setContent("直播间礼物"); toRevenueRewardRecord.setContent("直播间礼物");
@ -273,7 +273,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
BigDecimal toOriginalBalance = toWalletAccount.getTotalBalance(); BigDecimal toOriginalBalance = toWalletAccount.getTotalBalance();
toWalletAccount.setAvailableBalance(toWalletAccount.getAvailableBalance().add(toRevenue)); toWalletAccount.setAvailableBalance(toWalletAccount.getAvailableBalance().add(toRevenue));
toWalletAccount.setTotalBalance(toWalletAccount.getAvailableBalance().add(toWalletAccount.getFrozenBalance())); 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)); toWalletAccount.setRecordList(Collections.singletonList(toWalletAccountRecord));
//收益信息 //收益信息
@ -286,7 +286,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
giftRewardPct = giftRewardPct.subtract(BigDecimal.valueOf(10)); giftRewardPct = giftRewardPct.subtract(BigDecimal.valueOf(10));
BigDecimal anchorRevenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(giftRewardPct) BigDecimal anchorRevenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(giftRewardPct)
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); .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)); anchorRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, anchorRevenue, BigDecimal.valueOf(costBalance));
//todo //todo
anchorRevenueRewardRecord.setContent("直播间礼物"); anchorRevenueRewardRecord.setContent("直播间礼物");
@ -296,7 +296,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
BigDecimal anchorOriginalBalance = anchorWalletAccount.getTotalBalance(); BigDecimal anchorOriginalBalance = anchorWalletAccount.getTotalBalance();
anchorWalletAccount.setAvailableBalance(anchorWalletAccount.getAvailableBalance().add(anchorRevenue)); anchorWalletAccount.setAvailableBalance(anchorWalletAccount.getAvailableBalance().add(anchorRevenue));
anchorWalletAccount.setTotalBalance(anchorWalletAccount.getAvailableBalance().add(anchorWalletAccount.getFrozenBalance())); 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)); anchorWalletAccount.setRecordList(Collections.singletonList(anchorWalletAccountRecord));
List<BaseDomainEvent> eventList = costGiftRewardDomainService.handle(order, virtualAccount, costBalance, toRevenueReward, toWalletAccount, anchorRevenueReward, anchorWalletAccount); List<BaseDomainEvent> 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) BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(BigDecimal.valueOf(0.1428)).multiply(giftRewardPct)
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); .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)); revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance));
//todo //todo
revenueRewardRecord.setContent("直播间礼物"); revenueRewardRecord.setContent("直播间礼物");
@ -343,7 +343,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
BigDecimal originalBalance = walletAccount.getTotalBalance(); BigDecimal originalBalance = walletAccount.getTotalBalance();
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 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)); walletAccount.setRecordList(Collections.singletonList(walletAccountRecord));
List<BaseDomainEvent> eventList = costGiftRewardDomainService.handle(order, virtualAccount, costBalance, revenueReward, walletAccount); List<BaseDomainEvent> eventList = costGiftRewardDomainService.handle(order, virtualAccount, costBalance, revenueReward, walletAccount);

7
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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Mapper @Mapper
public interface WalletAccountViewDao { public interface WalletAccountViewDao {
@ -18,4 +19,8 @@ public interface WalletAccountViewDao {
IPage<UsePageWalletAccountRecordByOperatorVo> pageWalletAccountRecordByOperator(Page<Object> pageWithoutOrders, IPage<UsePageWalletAccountRecordByOperatorVo> pageWalletAccountRecordByOperator(Page<Object> pageWithoutOrders,
@Param("queryParams") UsePageWalletAccountRecordByOperatorQueryParams queryParams); @Param("queryParams") UsePageWalletAccountRecordByOperatorQueryParams queryParams);
BigDecimal getTodayLiveIncome(@Param("userId") Long userId,
@Param("startTime") LocalDateTime startTime,
@Param("endTime") LocalDateTime endTime);
} }

3
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.UsePageWalletAccountRecordByOperatorQueryParams;
import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; 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.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.UserGetWalletAccountRecordVo;
import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount; import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
@ -27,4 +28,6 @@ public interface WalletAccountQueryService {
IPage<UsePageWalletAccountRecordByOperatorVo> pageWalletAccountRecordByOperator(PageUtil pageUtil, UsePageWalletAccountRecordByOperatorQueryParams queryParams); IPage<UsePageWalletAccountRecordByOperatorVo> pageWalletAccountRecordByOperator(PageUtil pageUtil, UsePageWalletAccountRecordByOperatorQueryParams queryParams);
String exportData(UsePageWalletAccountRecordByOperatorQueryParams queryParams); String exportData(UsePageWalletAccountRecordByOperatorQueryParams queryParams);
UserGetTodayLiveIncomeVo getTodayLiveIncome(Long userId);
} }

13
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.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.walletaccount.user.request.UsePageWalletAccountRecordByOperatorQueryParams; 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.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.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; 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<WalletAccountRecordExportVo> transformExport(List<UsePageWalletAccountRecordByOperatorVo> recordList) { private List<WalletAccountRecordExportVo> transformExport(List<UsePageWalletAccountRecordByOperatorVo> recordList) {
List<WalletAccountRecordExportVo> list = new ArrayList<>(); List<WalletAccountRecordExportVo> list = new ArrayList<>();
for (UsePageWalletAccountRecordByOperatorVo record : recordList) { for (UsePageWalletAccountRecordByOperatorVo record : recordList) {

10
dating-agency-mall-server/src/main/resources/mapper/walletaccount/RecommendationRelationQueryService.xml

@ -60,4 +60,14 @@
</if> </if>
order by dawar.create_time desc order by dawar.create_time desc
</select> </select>
<select id="getTodayLiveIncome" resultType="java.math.BigDecimal" parameterType="java.lang.Long">
SELECT IFNULL(SUM(dawar.trade_amount), 0)
From da_wallet_account as dawa
INNER JOIN da_wallet_account_record as dawar on dawar.wallet_account_id = dawa.id
where dawa.is_delete = 0
and dawa.user_id = #{userId}
and dawar.trade_type in (116, 118)
and dawar.create_time BETWEEN #{startTime} and #{endTime}
</select>
</mapper> </mapper>
Loading…
Cancel
Save