feat(host): 新增主播收入统计查询接口

This commit is contained in:
2026-01-13 18:44:30 +08:00
parent 7b708ef390
commit 1d1e45174c
6 changed files with 171 additions and 0 deletions

View File

@@ -8,7 +8,9 @@ import com.yupi.springbootinit.model.dto.host.ServerLiveHostDetailDTO;
import com.yupi.springbootinit.model.entity.NewHosts; import com.yupi.springbootinit.model.entity.NewHosts;
import com.yupi.springbootinit.model.vo.hosts.NewHostsVO; import com.yupi.springbootinit.model.vo.hosts.NewHostsVO;
import com.yupi.springbootinit.model.vo.hosts.ServerLiveHostDetailVO; import com.yupi.springbootinit.model.vo.hosts.ServerLiveHostDetailVO;
import com.yupi.springbootinit.model.entity.ServerHostsRevenueStats;
import com.yupi.springbootinit.service.HostInfoService; import com.yupi.springbootinit.service.HostInfoService;
import com.yupi.springbootinit.service.ServerHostsRevenueStatsService;
import com.yupi.springbootinit.service.ServerLiveHostDetailService; import com.yupi.springbootinit.service.ServerLiveHostDetailService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -33,6 +35,9 @@ public class HostInfoController {
@Resource @Resource
private ServerLiveHostDetailService serverLiveHostDetailService; private ServerLiveHostDetailService serverLiveHostDetailService;
@Resource
private ServerHostsRevenueStatsService serverHostsRevenueStatsService;
@PostMapping("hosts_info") @PostMapping("hosts_info")
public BaseResponse<Page<NewHostsVO>> hostsInfo(@RequestBody HostInfoDTO hostInfoDTO){ public BaseResponse<Page<NewHostsVO>> hostsInfo(@RequestBody HostInfoDTO hostInfoDTO){
Page<NewHostsVO> conditionHosts = hostInfoService.getConditionHosts(hostInfoDTO); Page<NewHostsVO> conditionHosts = hostInfoService.getConditionHosts(hostInfoDTO);
@@ -64,4 +69,18 @@ public class HostInfoController {
List<ServerLiveHostDetailVO> result = serverLiveHostDetailService.getLiveHostDetailByHostsIdAndTenantId(detailDTO); List<ServerLiveHostDetailVO> result = serverLiveHostDetailService.getLiveHostDetailByHostsIdAndTenantId(detailDTO);
return ResultUtils.success(result); return ResultUtils.success(result);
} }
/**
* 根据displayId查询主播收入统计
*/
@GetMapping("/revenue_stats")
public BaseResponse <List<ServerHostsRevenueStats>> getRevenueStatsByDisplayId(@RequestParam String displayId){
List<ServerHostsRevenueStats> list = serverHostsRevenueStatsService.lambdaQuery()
.eq(ServerHostsRevenueStats::getDisplayId, displayId)
.list();
return ResultUtils.success(list);
}
} }

View File

@@ -0,0 +1,12 @@
package com.yupi.springbootinit.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yupi.springbootinit.model.entity.ServerHostsRevenueStats;
/*
* @author: ziin
* @date: 2026/1/12 20:13
*/
public interface ServerHostsRevenueStatsMapper extends BaseMapper<ServerHostsRevenueStats> {
}

View File

@@ -0,0 +1,87 @@
package com.yupi.springbootinit.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/*
* @author: ziin
* @date: 2026/1/12 20:13
*/
/**
* 用户收入数据统计表
*/
@ApiModel(description="主播收入数据统计表")
@TableName(value = "server_hosts_revenue_stats")
@Data
public class ServerHostsRevenueStats {
/**
* 自增主键
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="自增主键")
private Long id;
/**
* 租户Id
*/
@TableField(value = "tenant_id")
@ApiModelProperty(value="租户Id")
private Long tenantId;
/**
* 历史收入数据列表 (数组格式)
*/
@TableField(value = "history")
@ApiModelProperty(value="历史收入数据列表 (数组格式)")
private String history;
/**
* 展示ID/用户标识
*/
@TableField(value = "display_id")
@ApiModelProperty(value="展示ID/用户标识")
private String displayId;
/**
* 今日收入
*/
@TableField(value = "today_revenue")
@ApiModelProperty(value="今日收入")
private BigDecimal todayRevenue;
/**
* 累计总收入
*/
@TableField(value = "total_revenue")
@ApiModelProperty(value="累计总收入")
private BigDecimal totalRevenue;
/**
* 统计的天数/周期数
*/
@TableField(value = "last_days_count")
@ApiModelProperty(value="统计的天数/周期数")
private Integer lastDaysCount;
/**
* 最后更新时间
*/
@TableField(value = "updated_at")
@ApiModelProperty(value="最后更新时间")
private Date updatedAt;
/**
* 创建时间
*/
@TableField(value = "created_at")
@ApiModelProperty(value="创建时间")
private Date createdAt;
}

View File

@@ -0,0 +1,13 @@
package com.yupi.springbootinit.service;
import com.yupi.springbootinit.model.entity.ServerHostsRevenueStats;
import com.baomidou.mybatisplus.extension.service.IService;
/*
* @author: ziin
* @date: 2026/1/12 20:13
*/
public interface ServerHostsRevenueStatsService extends IService<ServerHostsRevenueStats>{
}

View File

@@ -0,0 +1,18 @@
package com.yupi.springbootinit.service.impl;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yupi.springbootinit.model.entity.ServerHostsRevenueStats;
import com.yupi.springbootinit.mapper.ServerHostsRevenueStatsMapper;
import com.yupi.springbootinit.service.ServerHostsRevenueStatsService;
/*
* @author: ziin
* @date: 2026/1/12 20:13
*/
@Service
public class ServerHostsRevenueStatsServiceImpl extends ServiceImpl<ServerHostsRevenueStatsMapper, ServerHostsRevenueStats> implements ServerHostsRevenueStatsService{
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yupi.springbootinit.mapper.ServerHostsRevenueStatsMapper">
<resultMap id="BaseResultMap" type="com.yupi.springbootinit.model.entity.ServerHostsRevenueStats">
<!--@mbg.generated-->
<!--@Table server_hosts_revenue_stats-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
<result column="history" jdbcType="VARCHAR" property="history" />
<result column="display_id" jdbcType="VARCHAR" property="displayId" />
<result column="today_revenue" jdbcType="DECIMAL" property="todayRevenue" />
<result column="total_revenue" jdbcType="DECIMAL" property="totalRevenue" />
<result column="last_days_count" jdbcType="INTEGER" property="lastDaysCount" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, tenant_id, history, display_id, today_revenue, total_revenue, last_days_count,
updated_at, created_at
</sql>
</mapper>