添加主播七日数据接口

This commit is contained in:
2025-06-17 17:59:45 +08:00
parent 023a62e13b
commit 047ceaea21
7 changed files with 97 additions and 0 deletions

View File

@@ -4,8 +4,10 @@ import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yupi.springbootinit.common.BaseResponse; import com.yupi.springbootinit.common.BaseResponse;
import com.yupi.springbootinit.common.ResultUtils; import com.yupi.springbootinit.common.ResultUtils;
import com.yupi.springbootinit.model.dto.host.HistoryDataDTO;
import com.yupi.springbootinit.model.dto.host.HostInfoDTO; import com.yupi.springbootinit.model.dto.host.HostInfoDTO;
import com.yupi.springbootinit.model.vo.hosts.NewHostsVO; import com.yupi.springbootinit.model.vo.hosts.NewHostsVO;
import com.yupi.springbootinit.model.vo.hosts.SevenDaysData;
import com.yupi.springbootinit.service.HostInfoService; import com.yupi.springbootinit.service.HostInfoService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -32,4 +34,12 @@ public class HostInfoController {
Page<NewHostsVO> conditionHosts = hostInfoService.getConditionHosts(hostInfoDTO); Page<NewHostsVO> conditionHosts = hostInfoService.getConditionHosts(hostInfoDTO);
return ResultUtils.success(conditionHosts); return ResultUtils.success(conditionHosts);
} }
@PostMapping("7days_data")
public BaseResponse<List<SevenDaysData>> sevenDaysData(@RequestBody HistoryDataDTO historyDataDTO){
Object loginId = StpUtil.getLoginId();
historyDataDTO.setUserId(Long.valueOf(loginId.toString()));
List<SevenDaysData> data = hostInfoService.getSevenDaysData(historyDataDTO);
return ResultUtils.success(data);
}
} }

View File

@@ -3,11 +3,13 @@ package com.yupi.springbootinit.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yupi.springbootinit.model.dto.host.HistoryDataDTO;
import com.yupi.springbootinit.model.dto.host.HostInfoDTO; import com.yupi.springbootinit.model.dto.host.HostInfoDTO;
import com.yupi.springbootinit.model.entity.NewHosts; import com.yupi.springbootinit.model.entity.NewHosts;
import java.util.List; import java.util.List;
import com.yupi.springbootinit.model.vo.hosts.NewHostsVO; import com.yupi.springbootinit.model.vo.hosts.NewHostsVO;
import com.yupi.springbootinit.model.vo.hosts.SevenDaysData;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/* /*
@@ -30,4 +32,7 @@ public interface NewHostsMapper extends BaseMapper<NewHosts> {
int batchInsert(@Param("list") List<NewHosts> list); int batchInsert(@Param("list") List<NewHosts> list);
Page<NewHostsVO> selectPageByCondition(@Param("page") Page<NewHostsVO> page, @Param("hostInfoDTO") HostInfoDTO hostInfoDTO); Page<NewHostsVO> selectPageByCondition(@Param("page") Page<NewHostsVO> page, @Param("hostInfoDTO") HostInfoDTO hostInfoDTO);
List<SevenDaysData> selectSevenDaysData(HistoryDataDTO historyDataDTO);
} }

View File

@@ -0,0 +1,26 @@
package com.yupi.springbootinit.model.dto.host;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/*
* @author: ziin
* @date: 2025/6/17 15:59
*/
@Data
@ApiModel("历史数据")
public class HistoryDataDTO {
@ApiModelProperty(value = "历史数据名称", example = "fans")
private String historyDataName;
@ApiModelProperty(value = "主播 Id")
private String hostsId;
@ApiModelProperty(value = "租户 Id", example = "1")
private Long tenantId;
@ApiModelProperty(value = "用户 Id", example = "1")
private Long userId;
}

View File

@@ -0,0 +1,19 @@
package com.yupi.springbootinit.model.vo.hosts;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/*
* @author: ziin
* @date: 2025/6/17 16:05
*/
@Data
public class SevenDaysData {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
private Integer DataContent;
}

View File

@@ -3,9 +3,11 @@ package com.yupi.springbootinit.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yupi.springbootinit.model.dto.host.HistoryDataDTO;
import com.yupi.springbootinit.model.dto.host.HostInfoDTO; import com.yupi.springbootinit.model.dto.host.HostInfoDTO;
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.SevenDaysData;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@@ -18,4 +20,6 @@ public interface HostInfoService extends IService<NewHosts> {
Page<NewHostsVO> getConditionHosts(HostInfoDTO hostInfoDTO); Page<NewHostsVO> getConditionHosts(HostInfoDTO hostInfoDTO);
List<SevenDaysData> getSevenDaysData(HistoryDataDTO historyDataDTO);
} }

View File

@@ -7,9 +7,11 @@ import com.google.common.collect.Lists;
import com.yupi.springbootinit.common.BaseResponse; import com.yupi.springbootinit.common.BaseResponse;
import com.yupi.springbootinit.common.ResultUtils; import com.yupi.springbootinit.common.ResultUtils;
import com.yupi.springbootinit.mapper.NewHostsMapper; import com.yupi.springbootinit.mapper.NewHostsMapper;
import com.yupi.springbootinit.model.dto.host.HistoryDataDTO;
import com.yupi.springbootinit.model.dto.host.HostInfoDTO; import com.yupi.springbootinit.model.dto.host.HostInfoDTO;
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.SevenDaysData;
import com.yupi.springbootinit.service.HostInfoService; import com.yupi.springbootinit.service.HostInfoService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
@@ -41,4 +43,10 @@ public class HostInfoServiceImpl extends ServiceImpl<NewHostsMapper, NewHosts> i
Page<NewHostsVO> page = new Page<>(hostInfoDTO.getCurrent(),hostInfoDTO.getPageSize()); Page<NewHostsVO> page = new Page<>(hostInfoDTO.getCurrent(),hostInfoDTO.getPageSize());
return newHostsMapper.selectPageByCondition(page, hostInfoDTO); return newHostsMapper.selectPageByCondition(page, hostInfoDTO);
} }
@Override
public List<SevenDaysData> getSevenDaysData(HistoryDataDTO historyDataDTO) {
List<SevenDaysData> data = newHostsMapper.selectSevenDaysData(historyDataDTO);
return data;
}
} }

View File

@@ -346,4 +346,29 @@
</when> </when>
</choose> </choose>
</select> </select>
<select id="selectSevenDaysData" resultType="com.yupi.springbootinit.model.vo.hosts.SevenDaysData">
select create_time as createTime,
<choose>
<when test="historyDataName != null and historyDataName != ''">
<if test="historyDataName == 'fans' ">
fans dataContent
</if>
<if test="historyDataName == 'hostsCoins' ">
hosts_coins as dataContent
</if>
<if test="historyDataName == 'fllowernum'">
fllowernum as dataContent
</if>
<if test="historyDataName == 'onlineFans'">
online_fans as dataContent
</if>
</when>
</choose>
from server_new_hosts
where hosts_id =#{hostsId,jdbcType=VARCHAR}
and creator =#{userId,jdbcType=BIGINT}
and tenant_id =#{tenantId,jdbcType=BIGINT}
ORDER BY create_time DESC LIMIT 7
</select>
</mapper> </mapper>