基于Java+SpringBoot+vue的食品安全管理系统设计与实现

news2024/11/16 18:03:17

  博主介绍擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

Java项目精品实战案例(300套)
Java微信小程序项目实战(200套)

Python项目精品实战案例(100套)

目录

一、效果演示

二、前言介绍

三、主要技术

四、系统设计

4.1、主要功能模块设计   

4.2、系统开发架构设计

五、功能截图

5.1、首页

5.2、后台登录

5.3、食品信息添加页面

5.4、食品查询

六、数据库设计(部分)

6.1、E-R图

七、代码参考

 八、源码获取


一、效果演示

二、前言介绍

本次的设计就是针对中小型食品商店管理系统进行的信息化建设,在语言技术选择上采用成熟稳定的JAVA语言,另外一方面为了能够使开发更接近目前主流技术还特意采用了Spring Boot框架来进行框架设计。前端页面框架方面还是选择了比较流行的VUE.js可以从不同角度来满足商店的进销存服务管理系统的页面需求。技术及食品行业的特有业务加持来共同完成信息化的建设。

三、主要技术

技术名作用
SpringBoot后端框架
Vue前端框架
MySQL数据库

四、系统设计

4.1、主要功能模块设计   

食品安全管理系统功能主要是通过不同角色来进行区分的,分为用户和后台管理者。如下图所示:      

4.2、系统开发架构设计

 

五、功能截图

5.1、首页

在食品安全管理系统当中,不仅有首页,也有后台管理,那么首页就是能够让用户看到的界面。用户看到的界面要除了功能齐全之外,还要美观美丽。当然管理者可能不需要很美观,但用用户要看起来整整齐齐,舒服才能用的起来系统。如何能够让使用者一下就记住自己开的系统呢?首先要做的就是能够在首页让用户停留住,只有能够吸引到用户,那么用户才能进行详细的功能查看,把查看的功能也进行一一整理可以清清楚楚的认识到我们所要做的系统的样子。这样一来就能够把首页的主题突显出来了,如下图所示:

 

5.2、后台登录

用户的前台登录和后台登录完全不一样,后台登录是管理者来看数据的,要有一个入口,那么也要通过后台登录的用户名、密码来进行一个判别,当然还需要提供一个权限,是系统管理员还是供应商,这都是不一样的,食品安全管理系统都有详细的介绍。为了能够提供更好的后台管理功能,在后台管理入口处也进行了相关的管理员登录,通过账号、密码以及不同的管理权限来进行登录,风格上还是按照简洁的风格进行设计调整,这样一来我们就可以和应用相对保持统一。在UI风格上也是从一个应用中分离出来的登录页面。黄色的风景画页面能给人一种舒服的感觉,所以在登录页面中背景图选择了树叶儿。如下图所示:

 

5.3、食品信息添加页面

食品安全管理系统中最重要的一个管理环节就是食品信息的还。那么在这个环节当中,我们不仅能够添加食品的信息,也能够进行一个简单的介绍,当然为了能够更加清楚,还做了一个附件关于食品图片以及价格的上传,这样一来可以清楚明了的把食品进行一个添加。任何信息系统都具备的功能就是信息的添加,如果没有了信息添加那么相对就没有了信息入口,这样的系统应用起来是完全没有什么意义的,本次设计呢也还是将这些添加信息的页面单通过功能来做出来,在信息的添加页面不仅仅只是看到的这些属性,还有一些暗藏的验证规划,只能都通过了才能进行保存。如下图所示: 

 

5.4、食品查询

查询的时候,为了能够清楚的看到,我就用了列表的形式,列表的形式中,列表的表格是食品的属性,这样有很多不同的属性就可以一目了然。当然能够操作的按钮我也用不同的颜色进行了区别,这样很快就可以看到。在信息的添加页面当中,除了一些必要的。属性之外还是提供编辑和删除的功能,同时也支持当数据量大时进行一个模糊搜索以及类别搜索,这样一来管理人员可以快速的定位到想要找的数据。如下图所示:

这里功能太多,就不一一展示啦~ 

六、数据库设计(部分)

6.1、E-R图

管理员信息属性有:用户名、密码、编号。如下图所示。

用户信息属性包括:编号,姓名,性别,年龄,电话,邮箱,地址,身份证号。具体如下图所示。

服务信息

 

 

七、代码参考

package com.xiangmu.controler;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.xiangmu.mappers.AdminMapper;
import com.xiangmu.pojo.Admin;
import com.xiangmu.util.JsonResult;
import com.xiangmu.zexception.MimaCuowuException;
import com.xiangmu.zexception.ZhanghaoCuowuException;



@Controller
public class AdminControler extends BaseController
{
	@Autowired
	private AdminMapper adminMapper;
	
	@RequestMapping("/adminLogin")
	@ResponseBody
	public JsonResult<Admin> adminLogin(String username,String password,HttpSession  session) 
	{
		List adminList=adminMapper.select(username.trim());
		if(adminList.size()<=0)
		{
			throw new ZhanghaoCuowuException();
		}
		
		Admin admin=(Admin)adminList.get(0);
		if(!password.equals(admin.getPassword()))
		{
			throw new MimaCuowuException();
		}
		
		session.setAttribute("admin", admin);
		return new JsonResult<>(66,admin);
    }
	
	
	@RequestMapping("/adminPassUpdate")
	@ResponseBody
	public JsonResult<Void> adminPassUpdate(String oldPass,String newPass,HttpSession  session) 
	{
		Admin admin=(Admin)session.getAttribute("admin");
		
		System.out.println(oldPass+"&&&&&&&&&&&&&&&&&&&&&&&&&"+newPass+"*******"+admin);
		
		if(!(oldPass.trim()).equals(admin.getPassword().trim()))
		{
			throw new MimaCuowuException();
		}
		
		int rows=adminMapper.updateAdminPass(newPass.trim(), admin.getId());
		
		return new JsonResult<>(66);
    }
	
	
	
	@RequestMapping("/adminLogout")
	@ResponseBody
	public JsonResult<Void> adminLogout(HttpSession  session) 
	{
		session.setAttribute("admin", null);
		return new JsonResult<>(66);
    }
	
	
}

 八、源码获取

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

精彩专栏推荐订阅下方专栏👇🏻👇🏻👇🏻👇🏻

Java项目精品实战案例(300套)

Java微信小程序项目实战(200套)

Python项目精品实战案例(100套)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java+Vue前后端分离网络教学平台设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

Ubuntu连不上网,在windows安装docker后

在windows上安装docker后&#xff0c;会依赖于virtualbox虚拟机&#xff0c;并且有虚拟网络&#xff0c;与ubuntu虚拟机网络产生冲突。 解决办法&#xff0c;打开网络适配器&#xff0c;禁用VirtualBox网络 这个时候就可以了。 ubuntu上使用docker pull镜像的时候&#xff0c…

线性代数克莱姆法则的几何含义

以二元一次方程组的求解为例&#xff1a; { a c a 1 b c b 1 c 1 a c a 2 b c b 2 c 2 \left\{\begin{array}{l} a_{c}a_{1} b_{c}b_{1} c_{1} \\ a_{c}a_{2} b_cb_{2} c_{2} \end{array}\right. {ac​a1​bc​b1​c1​ac​a2​bc​b2​c2​​ 其中 a c a_c ac​和 b c b_…

【Lua】ZeroBrane Studio免费专业IDE使用详解

▒ 目录 ▒ &#x1f6eb; 问题描述环境 1️⃣ IDE界面说明项目目录编辑器控制台窗口输出窗口选择解释器堆栈窗口监视窗口大纲窗口 2️⃣ 调试程序3️⃣ 自定义lua解释器编译自己的lua解释器增加interpreters配置文件重启IDE 4️⃣ 其它IDE比较Lua EditorVSCode &#x1f6ec; …

精密电阻的丝印识别方法

在PCB上经常会出现一些精密的电阻丝印和普通的电阻的丝印识别方式不太一样&#xff0c;比如图1所示。 图1 这种电阻的丝印主要是由两部分组成&#xff0c;第一部分是两个数字&#xff0c;第二部分是一个字母&#xff0c;电阻的阻值的计算就是根据这这个丝印编码。例如图2中的丝…

css中鼠标悬停和点击触发样式变换(:hover和:active)

效果 代码 /*hover--光标&#xff08;鼠标指针&#xff09;悬停在元素上时触发*/ .el-card:hover{background: #f5f5f6; } /*active--按下按键和松开按键之间的时间触发*/ .el-card:active{background: #e0dfdf; }

Linux--管道文件:|

作用&#xff1a; 传输资源&#xff0c;你现在可以单纯的把资源看作是数据 》管道的作用是传导数据 构成&#xff1a;入口与出口 存储&#xff1a; 内存级的文件&#xff0c;没有在磁盘上&#xff01;

Emacs之sr-speedbar替代neotree显示目录(一百一十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【Linux进程】进程优先级和其他概念 {查看进程优先级,PRI和NI,修改进程优先级;竞争性,独立性,并发和并行,进程上下文}

进程优先级和其他概念 一、进程优先级 1.1 基本概念 什么是优先级&#xff1f; 进程的优先权&#xff08;priority&#xff09;就是用来确定CPU资源分配的先后顺序的。进程的优先级是调度器调度进程到CPU执行的重要指标。 为什么要存在优先级&#xff1f; 由于CPU资源有限…

注册登录账号系统

目录 前言 一、项目介绍 二、项目分析 1.框架介绍 框架流程图&#xff1a;​ 板块分析&#xff1a; 前提&#xff1a; &#xff08;1&#xff09;注册板块 &#xff08;2&#xff09;登录板块 &#xff08;3&#xff09;main方法主板块 2.实操展示 &#xff08;1&#x…

并发List:CopyOnWriteArrayList

CopyOnWriteArrayList 适合写多读少 介绍 JUC包中的并发List只有CopyOnWriteArrayList。CopyOnWriteArrayList是一个线程安全的ArrayList&#xff0c;使用了写时复制策略&#xff0c;对其进行的修改操作都是在底层的一个复制的数组上进行的。 CopyOnWriteList 实现的接口和 Ar…

async异步任务_同步任务选项

需要先看完上文&#xff1a;async创建异步任务_御坂美琴1的博客-CSDN博客 让类里面的一个成员函数当作线程的参数。 async里面有三个参数&#xff0c;一个是成员函数的地址&#xff0c;第二个是 类&#xff0c;第三个是传入的参数。 接下来介绍async的同步线程创建。 asy…

C++类Day2,作业思维

1.昨天的基础上完成运算符重载 #include <iostream> using namespace std;class Complex { private:int real;int vir; public://无参构造Complex(){cout << "无参构造" << endl;}//有参构造Complex(int a,int b):real(a),vir(b){cout << &q…

Ubuntu18.04本地部署Stable-Diffusion-webui绘画

记录Ubuntu下安装Stable-Diffusion-webui&#xff0c;比较简单,以供参考。 系统&#xff1a;Ubuntu 18.04.4 LTS 内存&#xff1a;40G 显卡&#xff1a;32G 硬盘&#xff1a;500G 一、安装cuda 支持安装的cuda版本可以用nvidia-smi命令查看&#xff1a; ----------------…

Tomcat的优化及多实例部署

文章目录 一.Tomcat的优化1.tomcat启动速度优化——random2.Tomcat配置文件参数优化2.1 常用的优化相关参数2.2 优化的配置文件 二.Tomcat多实例部署1.为什么会有tomcat多实例部署2.多实例部署图示3.多实例部署的配置3.1 安装JDK3.2 安装启动Tomcat3.3 配置 tomcat 环境变量3.4…

筹码分布图高级用法——历史换手衰减系数自动计算公式

在使用筹码分布图时&#xff0c;很多人习惯于采用软件的默认设置&#xff0c;然而默认设置不一定能满足我们的要求。今天将向大家介绍筹码分布图的高级用法——历史换手衰减系数&#xff0c;并编写历史换手衰减系数自动计算公式。有些网友认为通过修改衰减系数&#xff0c;可以…

【远程控制】向日葵连接Ubuntu黑屏

Ubuntu 远程黑屏 Ubuntu 22.04 方法 1&#xff1a;切换桌面工作模式方法 2&#xff1a;安装 lightdm 插件来渲染界面客服工单回答 Ubuntu 22.04 方法 1&#xff1a;切换桌面工作模式 进入到登录页 点击用户名 点击右下角&#xff0c;切换桌面工作模式为Ubuntu on xorg即可 …

基于Python+MySQL所写的音乐网管理系统

点击以下链接获取源码资源&#xff1a; https://download.csdn.net/download/qq_64505944/87971719?spm1001.2014.3001.5503 《甜橙音乐网》程序使用说明 在虚拟环境下输入命令“python manage.py runserver”启动项目&#xff0c;启动成功后&#xff0c;访问“http://127.0…

x264 deblock filter 代码解读

在x264源码里&#xff0c;void x264_frame_deblock_row( x264_t *h, int mb_y )函数中定义了如下的宏片段&#xff0c;这段代码旨在完成对MB的deblocking 操作&#xff0c;其中针对edge 取不同的值的时候&#xff0c;有的做deblocking&#xff0c; 有的不做&#xff0c;看这部分…

计算机网络的89个核心概念

主机&#xff1a;计算机网络上任何一种能够连接网络的设备都被称为主机或者说端系统&#xff0c;比如手机、平板电脑、电视、游戏机、汽车等&#xff0c;随着 5G 的到来&#xff0c;将会有越来越多的终端设备接入网络。 通信链路&#xff1a;通信链路是由物理链路&#xff08;…