计算机毕业设计杰瑞头像
【计算机毕设精品】基于springboot的体脂健康管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目封面图

【计算机毕设精品】基于springboot的体脂健康管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目

💖💖作者:计算机毕业设计杰瑞
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学校实战项目
计算机毕业设计选题推荐

基于springboot的体脂健康管理系统介绍

基于SpringBoot的体脂健康管理系统面向日常健康管理场景,围绕用户身材数据记录、健康工具使用与健康知识获取三条主线展开。系统采用B/S架构,后端以SpringBoot整合Spring、SpringMVC与MyBatis,前端使用Vue配合ElementUI与HTML页面,数据统一存储于MySQL,开发工具为IDEA,同时提供Django版本以便不同技术偏好下使用。功能上,系统首页集中呈现轮播图与新闻资讯,管理端覆盖用户管理、类管理、工具分类、工具管理、健康工具、数据管理、身材数据、册管理、健康手册、活管理、健康生活、留言板、关于我们、系统简介等模块,用户可录入并查看自身身材数据,调用健康工具进行日常记录,浏览健康手册与健康生活内容,并通过留言板反馈使用中的问题。整体设计以功能清晰、操作直观为目标,力求让使用者在较短时间内完成一次完整的健康数据记录与查阅流程。

基于springboot的体脂健康管理系统演示视频

演示视频

基于springboot的体脂健康管理系统演示图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于springboot的体脂健康管理系统代码展示

import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
@RequestMapping("/api/body")
public class BodyDataController {
@Autowired
private BodyDataService bodyDataService;
@Autowired
private HealthToolService healthToolService;
@Autowired
private HealthManualService healthManualService;
private SparkSession spark = SparkSession.builder().appName("BodyFatHealth").master("local[*]").getOrCreate();
@PostMapping("/record")
public Map<String,Object> recordBodyData(@RequestBody Map<String,Object> params){
Map<String,Object> result=new HashMap<>();
try{
Long userId=Long.valueOf(params.get("userId").toString());
Double weight=Double.valueOf(params.get("weight").toString());
Double bodyFat=Double.valueOf(params.get("bodyFat").toString());
Double height=Double.valueOf(params.get("height").toString());
if(weight==null||bodyFat==null||height==null||weight<=0||height<=0){
result.put("code",400);
result.put("msg","身材数据不完整或数值异常");
return result;
}
BodyData data=new BodyData();
data.setUserId(userId);
data.setWeight(weight);
data.setBodyFat(bodyFat);
data.setHeight(height);
data.setBmi(weight/((height/100)*(height/100)));
data.setRecordTime(new Date());
int rows=bodyDataService.insertBodyData(data);
if(rows>0){
result.put("code",200);
result.put("msg","身材数据记录成功");
result.put("bmi",data.getBmi());
}else{
result.put("code",500);
result.put("msg","身材数据写入失败");
}
}catch(Exception e){
result.put("code",500);
result.put("msg","参数解析异常:"+e.getMessage());
}
return result;
}
@GetMapping("/trend/{userId}")
public Map<String,Object> queryTrend(@PathVariable Long userId){
Map<String,Object> result=new HashMap<>();
try{
List<BodyData> list=bodyDataService.selectByUserId(userId);
if(list==null||list.isEmpty()){
result.put("code",404);
result.put("msg","暂无身材数据记录");
return result;
}
List<Map<String,Object>> sparkInput=new ArrayList<>();
for(BodyData d:list){
Map<String,Object> row=new HashMap<>();
row.put("weight",d.getWeight());
row.put("bodyFat",d.getBodyFat());
row.put("bmi",d.getBmi());
row.put("recordTime",d.getRecordTime().getTime());
sparkInput.add(row);
}
Dataset<Row> df=spark.createDataFrame(sparkInput,BodyData.class);
df.createOrReplaceTempView("body_trend");
Dataset<Row> stat=spark.sql("select avg(weight) avgWeight,avg(bodyFat) avgFat,avg(bmi) avgBmi from body_trend");
Row r=stat.collectAsUser()[0];
result.put("code",200);
result.put("avgWeight",r.getDouble(0));
result.put("avgBodyFat",r.getDouble(1));
result.put("avgBmi",r.getDouble(2));
result.put("records",list);
}catch(Exception e){
result.put("code",500);
result.put("msg","趋势统计失败:"+e.getMessage());
}
return result;
}
@PostMapping("/tool/use")
public Map<String,Object> useHealthTool(@RequestBody Map<String,Object> params){
Map<String,Object> result=new HashMap<>();
try{
Long toolId=Long.valueOf(params.get("toolId").toString());
Long userId=Long.valueOf(params.get("userId").toString());
HealthTool tool=healthToolService.selectById(toolId);
if(tool==null){
result.put("code",404);
result.put("msg","健康工具不存在");
return result;
}
if(tool.getStatus()!=null&&tool.getStatus()==0){
result.put("code",403);
result.put("msg","该健康工具已停用");
return result;
}
Map<String,Object> input=(Map<String,Object>)params.get("input");
if(input==null||input.isEmpty()){
result.put("code",400);
result.put("msg","健康工具参数不能为空");
return result;
}
Double value=healthToolService.calculate(tool.getToolType(),input);
ToolRecord record=new ToolRecord();
record.setUserId(userId);
record.setToolId(toolId);
record.setInputData(input.toString());
record.setResultValue(value);
record.setUseTime(new Date());
int rows=healthToolService.insertToolRecord(record);
if(rows>0){
result.put("code",200);
result.put("msg","健康工具计算完成");
result.put("resultValue",value);
}else{
result.put("code",500);
result.put("msg","工具使用记录保存失败");
}
}catch(Exception e){
result.put("code",500);
result.put("msg","健康工具调用异常:"+e.getMessage());
}
return result;
}
@GetMapping("/manual/list")
public Map<String,Object> listHealthManual(@RequestParam(defaultValue="1") Integer page,@RequestParam(defaultValue="10") Integer size,@RequestParam(required=false) String keyword){
Map<String,Object> result=new HashMap<>();
try{
if(page==null||page<1){
page=1;
}
if(size==null||size<1||size>50){
size=10;
}
int offset=(page-1)*size;
List<HealthManual> list=healthManualService.selectPage(keyword,offset,size);
int total=healthManualService.countByKeyword(keyword);
result.put("code",200);
result.put("page",page);
result.put("size",size);
result.put("total",total);
result.put("list",list);
}catch(Exception e){
result.put("code",500);
result.put("msg","健康手册查询异常:"+e.getMessage());
}
return result;
}
@GetMapping("/manual/detail/{id}")
public Map<String,Object> getManualDetail(@PathVariable Long id){
Map<String,Object> result=new HashMap<>();
try{
HealthManual manual=healthManualService.selectById(id);
if(manual==null){
result.put("code",404);
result.put("msg","健康手册内容不存在");
return result;
}
healthManualService.increaseViewCount(id);
result.put("code",200);
result.put("data",manual);
}catch(Exception e){
result.put("code",500);
result.put("msg","健康手册详情获取失败:"+e.getMessage());
}
return result;
}
}

基于springboot的体脂健康管理系统文档展示

在这里插入图片描述

💖💖作者:计算机毕业设计杰瑞
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学校实战项目
计算机毕业设计选题推荐

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2501_92994129/article/details/168337705

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--