当前位置: 首页 > news >正文

统计图表ECharts

统计某个时间段,观看人数
在这里插入图片描述

在这里插入图片描述

①、数据表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②、业务代码

@RestController
@RequstMapping(value="/admin/vod/videoVisitor")
@CrossOrigin
public class VideoVisitorController{@Autowriedprivate VideoVisitorService videoVisitorService;//课程统计的接口@GetMapping("findCount/{courseId}/{startDate}/{endDate}")public Result findCount(@PathVariable Long courseId,@PathVariable String startDate,@PathVariable String endDate){Map<String,Object> map = videoVisitorService.findCount(courseId,startDate,endDate);return Result.ok(map);}
}
@Override
public Map<String,Object> findCount(Long courseId,String startDate,String endDate){List<VideoVisitorCountVo> videoVisitorVoList = baseMapper.findCount(courseId,startDate,endDate);Map<String,Object> map = new HashMap<>();List<String> dateList = videoVisitorVoList.stream().map(VideoVisitorCountVo::getJoinTime).collect(Collectors.toList());List<Integer> countList = videoVisitorVoList.stream().map(VideoVisitorCountVo::getUserCount).collect(Collectors.toList());map.put("xData",dataList);map.put("yData",countList);return map;
}
public interface VideoVisitorMapper extends BaseMapper<VideoVisitor>{List<VideoVisitorCountVo> findCount(@Param("courseId") Long courseId,@Param("startDate") String startDate,@Param("endDate") String endDate);}
<select id="findCount" resultType="com.michael.ggkt.vo.vod.VideoVisitorCountVo">SELECTFROM<where><if test="startDate!=null and startDate!=''">AND DATE(join_tiem) >= #{startDate}</if><if test="endDate!=null and endDate!=''">AND DATE(join_tiem) &lt;= #{endDate}</if>and course_id=#{courseId}</where>GROUP BY DATE(join_time)ORDER BY DATE(join_time)
</select>

在这里插入图片描述

③、前端整合

接口videoVisitor.js

import request from '@/utils/request'const api_name = '/admin/vod/videoVisitor'export default{findCount(courseId,startDate,endDate){return request({url:`${api_name}/findCount/${courseId}/${startDate}/${endDate}`,method:'get'})}
}

安装Echarts组件
在这里插入图片描述
在这里插入图片描述

页面chart.vue

<template><div class="app-container"><el-form :inline="true" class="demo-form-inline"><el-form-item><el-date-picker v-model="startDate"type="date"placeholder="选择开始日期"value-format="yyyy-MM-dd"/></el-form-item><el-form-item><el-date-pickerv-model="endDate"type="date"/></el-form-item></el-form></div>
</template>
http://www.xdnf.cn/news/62551.html

相关文章:

  • 2025年世界职业院校技能大赛实施方案(意见稿)
  • 【单片机 C语言】单片机学习过程中常见C库函数(学习笔记)
  • 由Ai生成的Linux 入门到精通学习路径
  • 记录seatunnel排查重复数据的案例分析
  • ESP8266_ESP32 Smartconfig一键配网功能
  • qt 配置 mysql 驱动问题:Cannot load library qsqlmysql;QMYSQL driver not loaded
  • 如何编写单元测试
  • 运维工程师面试总结21/4
  • 前端笔记-Axios
  • 3步拆解Linux内核源码的思维模型
  • 汽车动力转向器落锤冲击试验台
  • Java+nanomsg快速实现去broker的数据通信
  • 2025年最新服务器、中间件安全(面试题)
  • HADOOP 3.4.1安装和搭建(尚硅谷版~)
  • 强化学习系统学习路径与实践方法
  • 随机面试--<二>
  • 1+X: Python程序开发职业技能等级要求(初级)练习资料分享
  • 哈希表的学习
  • 基于RK3588+FPGA+AI YOLO的无人船目标检测系统(一)概述
  • 几何编码:启用矢量模式地理空间机器学习
  • OOA-CNN-LSTM-Attention、CNN-LSTM-Attention、OOA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比
  • 【Redis】SpringDataRedis
  • 【自然语言处理与大模型】模型压缩技术之量化
  • 在线查看【免费】avi,mov,rm,webm,ts,rm,mkv,mpeg,ogg,mpg,rmvb,wmv,3gp,ts,swf文件格式网站
  • Spring Boot 集成 Redis 实战总结
  • Idea中实用设置和插件
  • 系统架构师2025年论文《论基于UML的需求分析》
  • 项目实战 -- 发布管理
  • 把dll模块注入到游戏进程的方法_基于文件修改的注入方式
  • SQL语言的三大分类及其应用详解