计算机毕业设计选题推荐-个人健康管理微信小程序/安卓APP

作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

一、前言

个人健康管理微信小程序/安卓APP:移动端健康管理的创新与实践
随着社会的发展和人们生活节奏的加快,健康管理逐渐成为人们关注的焦点。传统的健康管理方式往往依赖于医院、体检单位等机构,存在一定的时间和空间局限性,无法满足现代人对健康管理的灵活和实时性需求。因此,开发一款基于微信小程序/安卓APP的个人健康管理工具,对于提高个人健康管理的效率和质量,增进健康管理的信息化建设具有迫切性和必要性。
虽然市面上已有一些个人健康管理工具,但它们往往存在以下问题:
缺乏全局性:现有的健康管理工具功能较为单一,仅局限于体检记录、运动计划、饮食管理等方面的部分功能,无法为用户提供全局的健康管理服务。
数据不透明:用户无法实时获取自己的健康数据和健康状况,导致无法及时调整自己的健康管理方案。
操作繁琐:使用流程较为复杂,需要用户花费较多的时间和精力去操作,降低了用户的使用体验。
缺乏个性化:现有的健康管理工具往往采用一刀切的方式,无法根据用户的个体差异提供个性化的健康管理方案。
这些问题进一步强调了开发新的个人健康管理工具的必要性。
本课题旨在开发一款功能齐全、数据透明、操作便捷、具有个性化的个人健康管理微信小程序/安卓APP。该工具将具备以下功能:
体检记录管理:用户可以实时上传、查询和导出自己的体检记录,包括身体指标、化验结果等。
运动计划管理:用户可以根据自己的身体状况和运动目标制定个性化的运动计划,并实时监控和记录自己的运动情况。
饮食管理:用户可以制定自己的饮食计划,并实时监控和记录自己的饮食情况,以便更好地控制饮食摄入量和营养配比。
数据统计与分析:通过对用户的体检记录、运动计划、饮食管理等数据的统计和分析,为用户提供齐全的健康报告和健康建议。
专家咨询:用户可以通过小程序/APP与医学专家进行在线咨询,获得更加专业的健康建议和治疗方案。
通过这些功能,该工具能够提高个人健康管理的效率和质量,增进健康管理的信息化建设。同时,该工具还可以为用户提供更加灵活和实时的健康管理服务,使用户能够更加自主地掌控自己的健康生活。
本课题的意义在于解决现有个人健康管理方式的不足,推动个人健康管理的移动化和信息化。同时,该研究还具有以下价值:
提高健康管理的效率和质量:通过移动端访问和齐全的健康管理功能,用户可以更加方便地管理自己的健康生活,提高健康管理的效率和质量。
增进健康管理的信息化建设:该研究将结合移动端架构和信息化技术,推动个人健康管理的信息化建设,为用户提供更加齐全的服务。
增进公众对健康的关注和认识:通过个人健康管理微信小程序/安卓APP的推广和应用,可以增进公众对健康的关注和认识,提高全社会的健康意识和健康素养。

二、开发环境

  • 开发语言:Java
  • 数据库:MySQL
  • 系统架构:移动端
  • 后端:SpringBoot
  • 前端:Vue

三、系统界面展示

  • 个人健康管理微信小程序/安卓APP界面展示:
    个人健康管理微信小程序/安卓APP-运动教程详情
    个人健康管理微信小程序/安卓APP-健康食谱详情
    个人健康管理微信小程序/安卓APP-我的体检记录管理
    个人健康管理微信小程序/安卓APP-我的每日计划管理
    个人健康管理微信小程序/安卓APP-个人中心
    个人健康管理微信小程序/安卓APP-健康贴士管理
    个人健康管理微信小程序/安卓APP-健康食谱管理
    个人健康管理微信小程序/安卓APP-运动教程管理

四、部分代码设计

  • 微信小程序/安卓APP项目实战-代码参考:
@RestController
@RequestMapping("/api/dietRecord")
public class DietRecordController {
    @Resource
    private DietRecordService dietRecordService;
    @Resource
    private HttpServletRequest request;

    public User getUser() {
        User user = (User) request.getSession().getAttribute("user");
        if (user == null) {
            throw new CustomException("-1", "请登录");
        }
        return user;
    }

    @PostMapping
    public Result<?> save(@RequestBody DietRecord dietRecord) {
        return Result.success(dietRecordService.save(dietRecord));
    }

    @PutMapping
    public Result<?> update(@RequestBody DietRecord dietRecord) {
        return Result.success(dietRecordService.updateById(dietRecord));
    }

    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        dietRecordService.removeById(id);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(dietRecordService.getById(id));
    }

    @GetMapping
    public Result<?> findAll() {
        return Result.success(dietRecordService.list());
    }

    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<DietRecord> query = Wrappers.<DietRecord>lambdaQuery().orderByDesc(DietRecord::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(DietRecord::getName, name);
        }
        return Result.success(dietRecordService.page(new Page<>(pageNum, pageSize), query));
    }

    @GetMapping("/export")
    public void export(HttpServletResponse response) throws IOException {

        List<Map<String, Object>> list = CollUtil.newArrayList();

        List<DietRecord> all = dietRecordService.list();
        for (DietRecord obj : all) {
            Map<String, Object> row = new LinkedHashMap<>();
            row.put("id", obj.getId());
            row.put("食谱名称", obj.getName());
            row.put("食品信息", obj.getFoodInfo());
            row.put("食品图片", obj.getFoodImg());
            row.put("用户id", obj.getUserId());
            row.put("创建时间", obj.getCreateTime());

            list.add(row);
        }

        // 2. 写excel
        ExcelWriter writer = ExcelUtil.getWriter(true);
        writer.write(list, true);

        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        String fileName = URLEncoder.encode("食谱记录信息", "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");

        ServletOutputStream out = response.getOutputStream();
        writer.flush(out, true);
        writer.close();
        IoUtil.close(System.out);
    }

    @GetMapping("/upload/{fileId}")
    public Result<?> upload(@PathVariable String fileId) {
        String basePath = System.getProperty("user.dir") + "/src/main/resources/static/file/";
        List<String> fileNames = FileUtil.listFileNames(basePath);
        String file = fileNames.stream().filter(name -> name.contains(fileId)).findAny().orElse("");
        List<List<Object>> lists = ExcelUtil.getReader(basePath + file).read(1);
        List<DietRecord> saveList = new ArrayList<>();
        for (List<Object> row : lists) {
            DietRecord obj = new DietRecord();
            obj.setName((String) row.get(1));
            obj.setFoodInfo((String) row.get(2));
            obj.setFoodImg((String) row.get(3));
            obj.setUserId(Integer.valueOf((String) row.get(4)));
            obj.setCreateTime((String) row.get(5));

            saveList.add(obj);
        }
        dietRecordService.saveBatch(saveList);
        return Result.success();
    }

}
/**
 *  文件上传
 */
@RestController
@RequestMapping("/files")
public class FileController {

    /**
     * 单文件上传
     * 用处:头像选择 图片文件
     * @param file
     * @return
     */
    @PostMapping("/upload")
    public Result<String> upload(MultipartFile file) {
        synchronized (FileController.class) {
            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/file/";
            String flag = System.currentTimeMillis() + "";
            String fileName = file.getOriginalFilename();
            try {
                /**
                 * hutool的FileUtil工具包
                 */
                FileUtil.writeBytes(file.getBytes(), filePath + flag + "-" + fileName);
                System.out.println(fileName + "--上传成功");
                Thread.sleep(1L);
            } catch (Exception e) {
                System.err.println(fileName + "--文件上传失败");
            }
            return Result.success(flag);
        }
    }


    /**
     * 获取文件
     * 使用: 1.message.html 的聊天框 通过 获得 Message对象中的avatar 头像 的图片文件
     *
     * @param flag
     * @param response
     */
    @GetMapping("/{flag}")
    public void avatarPath(@PathVariable String flag, HttpServletResponse response) {
        OutputStream os;
        String basePath = System.getProperty("user.dir") + "/src/main/resources/static/file/";
        List<String> fileNames = FileUtil.listFileNames(basePath);
        String avatar = fileNames.stream().filter(name -> name.contains(flag)).findAny().orElse("");
        try {
            if (StrUtil.isNotEmpty(avatar)) {
                response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(avatar, "UTF-8"));
                response.setContentType("application/octet-stream");
                byte[] bytes = FileUtil.readBytes(basePath + avatar);
                os = response.getOutputStream();
                os.write(bytes);
                os.flush();
                os.close();
            }
        } catch (Exception e) {
            System.out.println("文件下载失败");
        }
    }

    /**
     * 删除文件
     *
     * @param flag
     */
    @DeleteMapping("/{flag}")
    public void delFile(@PathVariable String flag) {
        String basePath = System.getProperty("user.dir") + "/src/main/resources/static/file/";
        List<String> fileNames = FileUtil.listFileNames(basePath);
        String filename = fileNames.stream().filter(name -> name.contains(flag)).findAny().orElse("");
        FileUtil.del(basePath + filename);
        System.out.println("删除文件" + filename + "成功");
    }

}
@RestController
@RequestMapping("/api/healthInfo")
public class HealthInfoController {
    @Resource
    private HealthInfoService healthInfoService;
    @Resource
    private HttpServletRequest request;

    public User getUser() {
        User user = (User) request.getSession().getAttribute("user");
        if (user == null) {
            throw new CustomException("-1", "请登录");
        }
        return user;
    }

    @PostMapping
    public Result<?> save(@RequestBody HealthInfo healthInfo) {
        return Result.success(healthInfoService.save(healthInfo));
    }

    @PutMapping
    public Result<?> update(@RequestBody HealthInfo healthInfo) {
        return Result.success(healthInfoService.updateById(healthInfo));
    }

    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        healthInfoService.removeById(id);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(healthInfoService.getById(id));
    }

    @GetMapping
    public Result<?> findAll() {
        return Result.success(healthInfoService.list());
    }

    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<HealthInfo> query = Wrappers.<HealthInfo>lambdaQuery().orderByDesc(HealthInfo::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(HealthInfo::getTitle, name);
        }
        return Result.success(healthInfoService.page(new Page<>(pageNum, pageSize), query));
    }

    @GetMapping("/export")
    public void export(HttpServletResponse response) throws IOException {

        List<Map<String, Object>> list = CollUtil.newArrayList();

        List<HealthInfo> all = healthInfoService.list();
        for (HealthInfo obj : all) {
            Map<String, Object> row = new LinkedHashMap<>();
            row.put("id", obj.getId());
            row.put("信息内容", obj.getContent());
            row.put("信息标题", obj.getTitle());
            row.put("用户id", obj.getUserId());
            row.put("信息创建时间", obj.getCreateTime());

            list.add(row);
        }

        // 2. 写excel
        ExcelWriter writer = ExcelUtil.getWriter(true);
        writer.write(list, true);

        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        String fileName = URLEncoder.encode("健康信息信息", "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");

        ServletOutputStream out = response.getOutputStream();
        writer.flush(out, true);
        writer.close();
        IoUtil.close(System.out);
    }

    @GetMapping("/upload/{fileId}")
    public Result<?> upload(@PathVariable String fileId) {
        String basePath = System.getProperty("user.dir") + "/src/main/resources/static/file/";
        List<String> fileNames = FileUtil.listFileNames(basePath);
        String file = fileNames.stream().filter(name -> name.contains(fileId)).findAny().orElse("");
        List<List<Object>> lists = ExcelUtil.getReader(basePath + file).read(1);
        List<HealthInfo> saveList = new ArrayList<>();
        for (List<Object> row : lists) {
            HealthInfo obj = new HealthInfo();
            obj.setContent((String) row.get(1));
            obj.setTitle((String) row.get(2));
            obj.setUserId(Integer.valueOf((String) row.get(3)));
            obj.setCreateTime((String) row.get(4));

            saveList.add(obj);
        }
        healthInfoService.saveBatch(saveList);
        return Result.success();
    }

}

五、论文参考

  • 计算机毕业设计选题推荐-个人健康管理微信小程序/安卓APP-论文参考:
    计算机毕业设计选题推荐-个人健康管理微信小程序/安卓APP-论文参考

六、系统视频

个人健康管理微信小程序/安卓APP-项目视频:

计算机毕业设计选题推荐-个人健康管理微信小程序/安卓APP

结语

计算机毕业设计选题推荐-个人健康管理微信小程序/安卓APP
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值