计算机大数据毕设项目—基于大数据的校园外卖点餐数据分析可视化系统(Springboot-Vue-Mysql,Hadoop-Hdfs,Scrapy爬虫,数据分析Echarts可视化看板,协同算法)
·
基于大数据的校园外卖点餐数据分析可视化系统
基于Hadoop的外卖点餐数据分析可视化系统
前言介绍
本文基于大数据的校园点餐系统设计与实现采用Spring Boot、Vue.js、MySQL、Hadoop等技术,构建了一个功能全面的Web应用。该系统实现了用户注册与登录、用户信息管理、外卖信息和公告资讯等管理,外卖点餐数据分析大屏展示等功能模块,为用户了解外平台的点餐数据和未来外卖市场的前景提供了肉眼可见的数据分析展示。管理员可以通过系统进行各种信息管理和外卖数据的爬取等,确保推荐内容的时效性和准确性。
系统通过整合前后端技术,提供了高效的数据处理和用户体验。Hadoop集群负责存储和处理大规模外卖信息数据。系统的模块化设计使得各功能相互独立又紧密协作,提升了系统的可扩展性和维护性。用户能够方便地浏览评分高和销量高的外卖,管理员则可以灵活地管理用户和外卖信息以及对数据进行数据分析统计,准确洞悉外卖平台餐品的评分和销量以及用户喜爱程度,为后续提升外卖平台的运营提供了便捷的途径。
01开发环境
1.1 Java 技术
1.2 Spring Boot 框架
1.3 Hadoop,hdfs
1.4 Scrapy爬虫
1.5 MySQL数据库
1.6 B/S 结构
1.7 Vue.js 技术
1.8 基于用户收藏的协同算法
02系统功能模块
亮点(爬虫【美团】、基于用户收藏的协同算法、数据分析看板、Echarts可视化)
1、数据管理:爬虫信息列表展示。
2、数据存储:mysql数据库。
3、可视化分析:各种数据分析统计后图表大屏展示
4、数据分析:根据hadoop大数据技术进行数据分析
03图片展示









04部分代码展示
/**
* 协同算法(按用户收藏行为推荐)(交流学习+vx:S20231025S )
*/
@RequestMapping("/autoSort2")
public R autoSort2(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
String userId = request.getSession().getAttribute("userId").toString();
String inteltypeColumn = "typename";
List<StoreupEntity> storeups = storeupService.selectList(new EntityWrapper<StoreupEntity>().eq("type", 1).eq("userid", userId).eq("tablename", "news").orderBy("addtime", false));
List<String> inteltypes = new ArrayList<String>();
Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());
List<NewsEntity> newsList = new ArrayList<NewsEntity>();
//去重
if(storeups!=null && storeups.size()>0) {
List<String> typeList = new ArrayList<String>();
for(StoreupEntity s : storeups) {
if(typeList.contains(s.getInteltype())) continue;
typeList.add(s.getInteltype());
newsList.addAll(newsService.selectList(new EntityWrapper<NewsEntity>().eq(inteltypeColumn, s.getInteltype())));
}
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
params.put("sort", "id");
params.put("order", "desc");
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
List<NewsEntity> pageList = (List<NewsEntity>)page.getList();
if(newsList.size()<limit) {
int toAddNum = (limit-newsList.size())<=pageList.size()?(limit-newsList.size()):pageList.size();
for(NewsEntity o1 : pageList) {
for(NewsEntity o2 : newsList) {
if(o1.getId().intValue()==o2.getId().intValue()) {
addFlag = false;
break;
}
}
page.setList(newsList);
return R.ok().put("data", page);
}
更多推荐
所有评论(0)