Java毕业设计基于springboot一款基于BS的美食网站的设计与实现

一、项目介绍

??互联网的兴起从本质上改变了整个社会对信息的管理方式,我国从上个世纪90年代互联网兴起之时,就产生了通过网络进行系统管理的想法。但是由于在互联网上的信誉难以认证、网络的法规政策不健全等一系列的原因,限制了网上信息管理发展的步伐。进入21世纪以后,随着整个社会的发展、进步,制约网上交流的各个瓶颈问题逐一被击破,比如QQ、微信等各大平台也纷纷的加入到洪潮之中。
美食网站是在的数据存储主要通过MySQL。用户在使用应用时产生的数据通过Java语言传递给数据库。通过此方式促进美食信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的平台。述了数据库的设计,系统的详细设计部分主要论述了几个主要模块的详细设计过程。
【关键词】美食; Java;MySQL数据库;

二、开发环境

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————

三、功能介绍

本次的毕业设计主要就是设计并开发一个美食网站软件。运用当前Google提供的Spring Boot 框架来实现对美食信息查询功能。当然使用的数据库是mysql。系统主要包括个人信息修改,对餐厅管理、用户管理、餐厅信息管理、菜系分类管理、美食信息管理、美食文化管理、系统管理、订单管理等功能进行操作;
本管理系统的用例图根据角色权限进行分类,主要可分为管理员用例、用户用例和餐厅用例。
(1)管理员用例图
管理员用例图依据管理员的权限需求以及对系统的管理需求进行分析,主要包括了登录、个人信息修改,对餐厅管理、用户管理、餐厅信息管理、菜系分类管理、美食信息管理、美食文化管理、系统管理、订单管理等进行操作,管理员用例图如下所示:
在这里插入图片描述

图3-1 管理员用例图
(2)用户用例图
用户用例图根据用户的需求进行分析,包括登录注册、个人信息修改、美食文化管理等。用户用例图如下所示:
在这里插入图片描述

图3-2用户用例图
(3)餐厅用例图
餐厅用例图根据餐厅的需求进行分析,包括登录注册、个人信息修改、餐厅信息管理、美食信息管理、订单管理等。餐厅用例图如下所示:
在这里插入图片描述

图3-3餐厅用例图

四、核心代码

部分代码:

package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

五、效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

六、文章目录

目 录
1 引言 4
1.1 选题背景 4
1.2 研究目的及意义 4
1.3 研究的主要内容 4
2 平台开发相关技术 5
2.1 Java语言 5
2.2 springboot框架 5
2.3 MySQL数据库 5
2.4 B/S架构 7
3系统需求分析 8
3.1 功能需求分析 8
3.2性能需求分析 10
3.3 系统可行性分析 10
3.3.1 技术可行性 10
3.3.2 操作可行性 11
3.3.3运行可行性 11
3.3.4社会可行性 11
3.4系统流程图分析 11
3.4.1 登录流程图 11
3.4.2 添加新用户流程图 12
4 系统软件的总体设计 14
4.1系统的基本要求 14
4.2 系统开发目标 14
4.3 系统总体架构设计 14
4.4 系统数据库的设计 15
4.4.1数据库设计原则 15
4.4.2数据库E/R图 15
4.4.3 数据库表 17
5 系统软件功能的具体实现 25
5.1系统功能实现 25
5.2后台模块实现 27
5.2.1管理员模块实现 27
5.2.2用户模块实现 31
5.2.3餐厅模块实现 32
6 系统测试与运行维护 35
6.1系统测试的目的 35
6.2测试用例 35
6.3系统运行与维护 36
7 结论 37
参考文献 38
致 谢 39