基于SpringBoot+Vue的美食分享平台

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

随着中国餐饮业发展迅猛,城市生活节奏加快,人们已不满足于饮食选择的多样化,更要讲究饮食的优化和文化。而发展日益成熟的互联网也已经影响到我们生活的方方面面,因此,互联网与餐饮业的有效结合,美食推荐系统的出现,恰到好处的弥补了这个空白。美食推荐系统致力于为用户提供一个可同时拥有美食介绍、吃客推荐、优惠团购等多方面的综合平台,目的真正成为餐饮市场的“红娘”。本系统以网络为平台,以美食为主要内容,以团购为主打,运用计算机技术,提供一个针对各地美食全方位搜罗的互动型系统。与此同时,本系统支持网络营销这一重要手段,不仅为消费者找餐厅,同时又为餐厅找市场、找顾客,使之真正成为可实现双向沟通的交流平台,从而获得持续的良性发展。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
    Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
  4. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  5. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:‘管理员’(admin)

字段名类型默认值列注释
idbigintNULL主键ID
user_namevarcharNULL用户名(select)
pass_wordvarcharNULL密码
head_imgvarcharNULL头像(img)
nick_namevarcharNULL姓名
create_timedatetimeNULL创建时间

2:‘美食评价表’(food_comment)

字段名类型默认值列注释
idbigintNULL主键ID
comment_infotextNULL评价内容
user_idbigintNULL用户ID
foods_idbigintNULL美食ID
create_timedatetimeNULL创建时间

3:‘美食分类’(food_type)

字段名类型默认值列注释
idbigintNULL主键ID
type_namevarcharNULL分类名称
create_timedatetimeNULL创建时间

4:‘用户表’(food_user)

字段名类型默认值列注释
idbigintNULL主键ID
accountvarcharNULL账号
passwordvarcharNULL密码
nick_namevarcharNULL姓名
head_imgvarcharNULL头像
create_timedatetimeNULL创建时间

5:‘美食表’(foods)

字段名类型默认值列注释
idbigintNULL主键ID
food_namevarcharNULL美食名称
food_infotextNULL美食简介
banner_imgvarcharNULL封面图片
video_urltextNULL介绍视频
create_timedatetimeNULL创建时间
type_idbigintNULL美食分类

6:‘美食图片’(foods_img)

字段名类型默认值列注释
idbigintNULL主键ID
img_urlvarcharNULL图片地址
food_idbigintNULL美食ID

五、功能模块:

  1. 美食管理:管理员可以在后台添加一些需要分享出去的美食,其中包括简介地址图片,视频等一些基本信息,用户即可在前台页面查看相关信息

    美食管理

  2. 美食评价:用户在看完美食的相关信息之后,可以在评论区对美食进行评价或者留言讨论,后台管理员则可以对评论进行对应的管理,不合适的评论进行删除等操作

    美食评价

  3. 美食分类管理:主要对不同的美食进行不同的分类,方面用户进行搜索查询

    美食分类管理

六、代码示例:

美食管理
@GetMapping("/all/foodType")
    public ReturnMsg allFoodType() {
        List<BaseSelectEntity> list = new ArrayList<>();
        List<FoodTypeDTO> dtos = foodTypeService.list();
        for (FoodTypeDTO dto : dtos) {
            BaseSelectEntity baseSelectEntity = new BaseSelectEntity();
            baseSelectEntity.setKey(dto.getId());
            baseSelectEntity.setValue(dto.getTypeName());
            list.add(baseSelectEntity);
        }
        return ReturnMsg.ok(list);
    }

美食评价
    @GetMapping("/all/{foodsId}")
    public ReturnMsg all(@PathVariable("foodsId") Long foodsId) {
        return ReturnMsg.ok(baseService.all(foodsId));
    }
美食分类管理
package com.dhz.food.controller;

import com.dhz.food.common.BaseController;
import com.dhz.food.common.ReturnMsg;
import com.dhz.food.dto.FoodTypeDTO;
import com.dhz.food.service.FoodTypeService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.IOException;

import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.dhz.food.common.BaseSelectEntity;
import cn.hutool.core.collection.CollectionUtil;

/**
 * @description: 美食分类管理对外接口层
 * @author: dhz
 * @create: 2023.02.06 10:47:37
 */
@RestController
@RequestMapping("/foodType")
public class FoodTypeController extends BaseController<FoodTypeService, FoodTypeDTO> {


    @Override
    @Resource(name = "foodTypeService")
    protected void setBaseService(FoodTypeService foodTypeService) {
        this.baseService = foodTypeService;
    }

    /**
     * 默认分页查询
     *
     * @param foodTypeDTO
     * @return
     */
    @PostMapping("/page")
    public ReturnMsg page(@RequestBody FoodTypeDTO foodTypeDTO) {
        return ReturnMsg.ok(baseService.basePage(foodTypeDTO));
    }


    @Override
    protected void beforeSave(FoodTypeDTO entity) throws Exception {
        entity.setCreateTime(new Date());
        super.beforeSave(entity);
    }
}


七、项目总结:

 采用Java+Mysql的方式设计制作的在美食分享平台系统,在功能上可以满足管理人员对于信息的管理需求;在界面的设计上,尽最大努力用自身的美工知识做到界面美观简洁。在操作方面上,让系统可以方便操作,同时对用户常见的误操作行为进行分析总结,并尽力在系统中避免同样的由于用户的误操作所带来的错误现象。

    作为毕业设计,分配给本系统的设计与制作时间还是不足的,所以,美食分享平台还有许多需要完善的地方。

    第一个就是本系统的编程代码问题,各个程序文件的代码存在冗余的地方非常多,导致代码不够简洁,同时对代码的注释也比较麻烦。编码期间,对于很多页面可以共享的函数与方法都没有单独列出来,而是在需要用到函数和方法的页面上都重新编写了代码,通过后期的技术学习,以及对编码过程的分析总结,发现可以把共用的函数或方法编写在同一个页面上,在之后的页面中,需要使用此函数的页面,则可以直接调用函数,无需再编写代码了,这样可以简化代码,也能节省时间和存储空间。

    第二个就是对数据库的设计不够好,在数据处理中,影响程序运行速度。因此需要对数据库的性能进行优化。通过这方面知识的学习,在某个开发技术类的博客中,发现可以用数据库连接池技术来解决数据库的性能问题,另外还需规范数据库里面的关系模式,降低数据库的冗余率,提高运行速度。

    如果说平时的作业也是检查对知识的掌握情况,那么制作毕业设计,将是对自身所有知识的一个全面检测。因为系统能够制作完成则是经历了很多阶段,正如文中所展示的那样,先有可行性分析,对功能的分析,对功能的设计,对数据库的设计,对程序功能的编码实现,对完成编码程序的测试等,这些环节缺一不可,而且还都需要认真对待,大学学到的所有知识在制作系统时,才会发现不够用。所以这个项目制作,在检测自身能力的同时,也对问题分析,资料搜集,问题解决等能力进行了培养。

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

  • 4
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值