w263基于springboot + vue 健康饮食管理系统

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。

  1. 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《Python网站项目》600套

⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目展示

摘 要

在基础功能实现的基础上,系统也针对数据安全问题提供了一系列有效的解决策略,健康饮食管理系统不仅提高了管理工作的效率,而且还实现了数据的集成、规范化和自动化处理,得到了有效的进步,健康饮食管理系统的设计与实现,有效的提高了网络信息的重要性,减少了数据安全问题,从而使健康饮食管理系统得到了有效的提高,信息化技术的智能化应用,加速了教育模式的数字化转变,有的技术比较落后不能满足大部分学生的要求,开发出的一款健康饮食管理系统的设计与实现。

本系统采用了java语言的Springboot框架,数据采用MySQL数据库进行存储。结合B/S结构进行开发设计,功能强大,界面化操作便于上手。本系统具有良好的易用性和安全性,系统功能齐全,可以满足健康饮食管理系统管理的相关工作。

关键词:健康饮食管理系统;java技术;Springboot框架;MySQL

1 绪 论

1.1 研究背景和意义

随着科学技术的不断发展,计算机现在已经成为了社会的必需品,人们通过网络可以获得海量的信息,这些信息可以和各行各业进行关联,健康饮食管理系统也不例外,它给健康饮食管理系统管理带来了更多的选择和便捷。然而,因2019年末的新冠疫情席卷全球,加重了全世界经济的不稳定性并严重影响了电子商务平台的准确度。为解决这样的问题,健康饮食管理系统应运而生并快速发展,目前已成为众多公司的应用模块,同时也引起了学术界的长期关注1

随着时代的发展和需求的不断提高,健康饮食管理系统应对的数据量将越来越庞大,数据结构也会越来越复杂,因此本文所提出的健康饮食管理系统具有实际意义,可提高效率,减少不必要的人力财力的损失,具有一定的现实意义。

1.2 拟解决的问题及特性

面对高重复性机械性的工作,工作人员不可避免的会出现失误,而改正失误的成本也相当高。这些都为健康饮食管理系统管理工作带来了新的问题。从而急需开发一款这样的系统来解决这些问题,对高速发展的技术有着更强的适应性,只需要维护更新得当,大大的降低了人力成本。健康饮食管理系统有以下几个特性:

(1) 高自由度:健康饮食管理系统是一种人性化设计的系统,可以根据用户的需要来添加不同功能的组件和界面,让健康饮食管理系统更加的符合操作者的使用习惯,提供更多的便利功能。

(2) 用户之间互动性强:健康饮食管理系统的所有用户们可以交流自己的心得。

(3) 高检索率:传统管理信息检索也需要系统的支持,不过纸质载体的体积大,占地面积广,复原困难等问题,就算检索到了位置,也会出现找不到资源的情况,健康饮食管理系统可以不受物理空间的限制,能储存的资料也没有空间的限制,大大的提高了资源搜索效率。

(4) 节省资源:传统健康饮食管理系统管理需要消耗大量人力对信息进行编辑管理,费人,费时,费力。而健康饮食管理系统这些缺陷都没有,还节省了大量资源。极大地提高工作效率,可以精确查询和编辑各类信息,能更快、更好地满足了他们的需求。

1.3 论文的结构

本文的主体结构如下:

第一章主要对当下的健康饮食管理系统的背景及开发意义进行了重点论述。

第二章 重点介绍本系统的相关的开发技术,并对软件的部署环境进行必要的说明。

第三章 重点对系统进行需求分析、流程分析和可行性论述。

第四章 主要对系统整体功能进行设计和对数据库进行设计。

第五章 详细的对各个模块进行阐述,各个模块总体的设计以文字加图表的形式进行说明。

第六章 对系统的测试方法进行说明及测试结果的展示。

2 相关技术简介及部署环境说明

2.1 Java语言

Java是一种面向对象的静态式编程语言。Java编程语言具有多线程和对象定向的特点。其特点是根据方案的属性将方案分为几个不同的模块,这些模块是封闭的和多样化的,在申请过程中具有很强的独立性。Java语言在计算机软件开发过程中的运用可以达到交互操作的目的,通过各种形式的交换,可以有效地处理所需的数据,从而确保计算机软件开发的可控性和可见性。开发Java语言时,保留了网络接口,Java保留的缺省网络接口可以与web应用程序编程所依赖的类别库相匹配。为了使Java开发的应用程序更加稳定和强健,Java会自动收集程序中的垃圾,并处理程序中存在的异常。Java语言是日常开发过程中广泛使用的通用基本语言。其中Java语言课程库、句子、语法规则和关键字经常用于计算机软件的开发和编程。

面向对象编程是Java语言最显着的特点。它具有原始接口和补充接口以及继承,不仅可以实现相同类型的单个继承,而且还支持接口之间的多个继承,从而实现类、接口和接口之间以及类和接口之间的有效通信。Java的面向对象特性主要包括三个方面:继承、多态性和封装。封装是Java的核心,可以封装所有数据操作。多态性是指由面向对象行为派生的相关行为。继承作为特殊编程模式有两种类型:父类和子类,这两种类型的属性具有相同的功能和特性。对于父类的属性特性,子类可以实现继承和优化。

2.2 Springboot框架

Spring Boot是由Pivotal的开发团队在2013年开发的一个免费、轻量级、开源的系统框架。Springboot的主要设计思想是约定大于配置,因此Springboot在设计时几乎达到零配置。Springboot集成了业界的开源框架。

Springboot是一个非常强大的后台框架,因为Springboot的开发基本上不需要写配置文件,所以利用Springboot来构建网站的后台环境,在Springboot的YML配置文件中写项目启动端口,项目就可以启动了。项目的Java和静态文件由Springboot管理。

2.3 MySQL简介

MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注。在各个方面,与同等的数据库相比,MySQL的优点极为突出,它的运行速度快,适用的范围广泛,而且数据库的安全性这一方面独树一帜。在语言结构方面,MySQL的语言简单,其他数据库需要一大段代码来实现的操作,MySQL仅需要一小部分代码甚至几行。综上所述,MySQL这种关系型数据库管理系统,已经成为了开发者进行项目的数据开发、存储的不二之选。MySQL的功能也多种多样,如数据操纵和数据库的建立维护等。而且该数据库的数据共享性高、冗余度低而且容易扩充。MySQL在安全性这一方面也具有自身的特点,它应用了用户的标识和鉴别技术,对试图和数据进行加密,确保资料信息的可靠性。介于数据库系统的功能与强大等性质之间,本数据库系统的设计中主要使用了MySQL实现对数据的处理。本系统运用MySQL数据库,在Web应用这一块,MySQL是最好的选择。对于该系统整个的开发、搭建、运行和维护具有极其重要的作用5

2.4 B/S结构

B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作10

B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:

(1) 跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。

(2) 低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。

3 需求分析

3.1 系统的可行性分析

健康饮食管理系统的可行性分析基于当下的互联网背景,从经济、技术、法律和用户使用上进行了调查,从此验证次系统开发的可行性6。下面分别从以下几点进行分析:

(1) 经济可行性分析:此系统所用的框架技术完全是开源的,其余的软件使用也都是免费的,在开发方面所消耗的成本可以忽略不计。而建立系统信息库所需的费用远远少于其带来的社会收益,从经济上分析系统是完全可行的。

(2) 技术可行性分析:对系统进行分析,健康饮食管理系统的大部分功能都需要管理员完成,系统只需要添加少量代码就可以很好适配管理员功能7。可以提高文件的复用率,提高效率。在数据库方面,ORM简化了表的创建和使用,采用了Oracle旗下开源的关系型数据管理系统MySQL,多表存储的特点使数据更加规范化,增删改查更容易8。综上所述,技术开发上并无太大的难点。

(3) 用户使用可行性分析:鉴于系统的使用用户,有统一的账号和密码,且系统无需用户有过多的操作,界面清晰简洁,用户使用可行性上无问题。

(4) 法律可行性分析:即分析本系统是否与各类法律相悖。本系统使用市面开源免费软件开发,且作为个人毕设,无商用,均为本人自主开发,并且页面设计合理,发布的信息要求符合常规。整个系统无抵触法律法规的问题。因此在法律上,本系统可行。

3.2 系统需求分析

需求分析在系统开发中有着十分重要的作用9。软件项目凭借软件工程的思想和步骤可以大大的提高开发效率,缩短软件开发周期,保证了软件项目的质量。需求分析作为软件工程方法中的一步是至关重要的。软件需求工程是一门分析并记录软件需求的学科10。需求分析简单的来说就是用户需要什么,系统需要什么,对此进行问题的列举,等级的排列,需要缜密的思分析和大量的调研11

健康饮食管理系统在国内有很多值得借鉴的例子,功能也都趋于完善,因此此次健康饮食管理系统将轻量化开发,要完成以下功能:

(1) 要支持完整的用户注册,登录功能,账号的管理通过管理员来实现。

(2) 健康饮食管理系统的前端页面简单明了,功能让用户快速上手,一目了然,不需要教程也能直接使用。

(3) 为了用户能够方便的搜寻信息。

(4) 管理员通过后台系统来完成对健康饮食管理系统信息的编辑,包括添加、删除等操作。

3.3 开发目标

健康饮食管理系统主要开发目标如下:

(1) 对零碎化、分布散的健康饮食管理系统信息进行收纳、整理,通过网络服务平台使这些信息内容更加调理,更加方便化和清晰化,让访问该系统的每个用户享受浏览的过程。

(2) 生活中存在的一些现象:人员冗余。健康饮食管理系统应尽量减少用户的需求压力,给他们提供省时省力省心的服务平台,降低其工作量。

(3) 便于查询信息及管理信息等。

(4) 通过计算机网络技术,提升解决管理问题和技术工作的质量,为用户一种规范方便的服务。

(5) 该系统的面向社会为用户,系统的设计风格应该简约整洁,操作容易上手,目标信息明确,避免花里胡哨。

(6) 为社会稳定和发展贡献一份力量。

3.4 系统流程设计

3.4.1 用户登录流程

登录流程实现了用户的登录,在登录页面需要用户填写自己的信息,前端页面会将信息传递给后端接口,然后查询数据库确定该身份有效后登录成功,否则此用户登录失败,需要重新填写信息,进行再次验证,如图3-1所示。

图3-1登录流程图

3.4.2 系统操作流程

系统操作流程分析是软件开发过程中的一个关键环节,它是整个系统整体的运行过程,必须保证其中的每一个步骤都是确定的,这样一个规范的流程图可以使开发者易于理解,快速的投入到接口开发中,从而提升系统开发效率。

同时,流程图还能减少开发者对系统操作流程产生歧义和降低沟通的成本,系统操作流程如图3-2所示。

图3-2系统操作流程图

4 系统总体设计

4.1 系统功能结构设计图

系统采用了结构化开发的方法。这种开发方法的优点是控制性比较强,开发过程中采用了结构化和模块化的设计思想,自顶向下,从总体到部分,合理划分系统的结构和模块。结构化开发时使用模块式开发,各模块之间互不影响,方便系统的开发与管理。 系统总体功能如下图所示:

图 4-1系统总体功能模块图

4.2 数据库设计与实现

在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。

4.2.1 概念模型设计

概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。

管理员实体图如图4-2所示:

图4-2管理员实体图

轮播图实体图如图4-3所示:

图4-3轮播图实体图

用户实体图如图4-4所示:

图4-4用户实体图

ER实体图如图4-5所示:

图4-5ER实体图

4.2.2 系统数据表设计

数据库表的设计通常是根据业务逻辑设置的。数据库模型在数据库中设计,并根据模型创建数据库表。数据库包涵了以下数据表来实现了对数据库的存储、调用。以下分别列出数据表的每个字段名称、类型、长度、字段说明、主键、默认值。

表4.1用户

|----------------|-----------|-----|------|----|-----|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | |
| yonghuzhanghao | varchar | 200 | 用户账号 | | |
| yonghumima | varchar | 200 | 用户密码 | | |
| yonghuxingming | varchar | 200 | 用户姓名 | | |
| touxiang | longtext | | 头像 | | |
| xingbie | varchar | 200 | 性别 | | |
| shoujihaoma | varchar | 200 | 手机号码 | | |

表4.2管理员

|----------|-----------|-----|------|----|-----|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | |
| username | varchar | 200 | 用户名 | | |
| password | varchar | 200 | 密码 | | |
| role | varchar | 200 | 角色 | | |

表4.3食谱信息

|-----------------|-----------|-----|------|----|-----|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | |
| shipumingcheng | varchar | 200 | 食谱名称 | | |
| fengmian | longtext | | 封面 | | |
| shicaimingcheng | varchar | 200 | 食材名称 | | |
| shipuxiangqing | longtext | | 食谱详情 | | |
| pengrenbuzhou | longtext | | 烹饪步骤 | | |
| yonghuzhanghao | varchar | 200 | 用户账号 | | |
| yonghuxingming | varchar | 200 | 用户姓名 | | |

表4.4食材位置

|--------------|-----------|-----|------|----|-----|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | |
| shicaiweizhi | varchar | 200 | 食材位置 | | |

表4.5食材烹饪

|-----------------|-----------|-----|------|----|-----|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | |
| shicaimingcheng | varchar | 200 | 食材名称 | | |
| shicaitupian | longtext | | 食材图片 | | |
| shicaiweizhi | varchar | 200 | 食材位置 | | |
| shicaishuliang | int | | 需要数量 | | |
| pengrenriqi | date | | 烹饪日期 | | |
| yonghuzhanghao | varchar | 200 | 用户账号 | | |
| yonghuxingming | varchar | 200 | 用户姓名 | | |

表4.6食材百科

|-----------------|-----------|-----|------|----|-----|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | |
| shicaimingcheng | varchar | 200 | 食材名称 | | |
| shicaitupian | longtext | | 食材图片 | | |
| shicaiweizhi | varchar | 200 | 食材位置 | | |
| shicaishuliang | int | | 食材数量 | | |
| yingyangjiazhi | longtext | | 营养价值 | | |
| baozhiqi | date | | 保质期 | | |
| yonghuzhanghao | varchar | 200 | 用户账号 | | |
| yonghuxingming | varchar | 200 | 用户姓名 | | |

5 系统详细设计与实现

按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块一一说明如何设计和实现的。

5.1 食材百科管理

健康饮食管理系统的设计与实现管理员进入食材百科管理界面图,可以对食材百科进行管理具体操作如下图所示:

图5-1 食材百科管理界面

5.2 食材位置管理

健康饮食管理系统的设计与实现管理员进入食材位置管理界面图,可以对食材位置进行管理具体操作如下图所示:

图5-2食材位置管理页面

5.3 食谱信息管理

健康饮食管理系统的设计与实现管理员进入食谱信息管理界面图,可以对食谱信息进行管理具体操作如下图所示:

图5-3食谱信息管理页面

5.4 食材烹饪管理

健康饮食管理系统的设计与实现管理员进入食材烹饪管理界面图,可以对食材烹饪进行管理具体操作如下图所示:

图5-4食材烹饪管理界面

5.5 添加用户信息

5.5.1 添加用户信息流程

管理员点击添加用户信息按钮,前端代码中button触发绑定的add方法,代码进入方法中后,去执行日志打印,请求封装的api操作,在封装的api中书写了需要请求的后端地址,系统根据书写的后端地址名称和在前端中配置的请求网络路径一起通过ajax组件发起请求,请求后端的Springboot框架下在controller文件中的暴露的addcontroller方法;当后端接收到请求后会从集中到user实体类中的用户数据进行解析,解析出来用户名,密码,联系方式等信息,从而调用数据库mybatis组件对数据信息进行新增操作,和对数据进行持久化存储,下图为添加用户代码图。

图5-5 添加用户代码

5.5.2 代码说明

// 配置请求参数

Map<String, String> param = new HashMap<>();

// 发送请求

String wxResult = HttpUtils.doGet(WX_LOGIN_URL, param);

JSONObject jsonObject = JSONObject.parseObject(wxResult);

// 获取参数返回的

String sessionKey = jsonObject.get("session_key").toString();

// 根据返回的user实体类,判断用户是否是新用户,不是的话,更新最新登录时间,是的话,将用户信息存到数据库

User user = butcherUserAgent.selectByOpenId(openId);

if (user != null) {

}

//返回错误提示}}

// 封装返回App

Map<String, Object> map = new HashMap<>();

map.put("session_key", sessionKey);

6 系统测试

6.1 软件测试的定义

在软件测试的过程之中,为了保证软件测试的各项工作能够安全有序地进行,就要对整个测试过程进行有效的干预或管理。

我们要清楚的是,无论从理论上,还是从经验上,我们都无法发现软件系统中的所有错误,一个软件系统必定存在着缺陷,软件测试必然有一定的局限性。

6.2 测试方法

系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。

尽管软件测试的方法有好几种,但现目前主要采用的是包括以功能性为主要测试方向的黑盒测试以及以逻辑性为主要测试方向的白盒测试,由于这也是二种不一样的测试方式,因此最先白盒测试是依据程序的内部结构逻辑总体设计测试测试用例的方式。 因而,也称之为构造测试和夹层玻璃实例测试,将手机软件视为全透明的黑盒,依据程序的构造和解决逻辑挑选适宜的测试实例,测试手机软件的逻辑途径和步骤, 科学研究其与设计方案是不是一致的黑盒测试主要是挑选充足的测试测试用例,充足遮盖源码,尽量多地发觉程序中产生的不正确。 关键有这两种方式。 一种称为逻辑未来展望法,另一种称为途径未来展望法。

黑盒测试:又被称为作用测试、数据驱动测试等,将精确测量目标视为白盒,彻底不考虑到程序的构造和特点,只需依据说明书查验程序的作用是不是常规应用就可以。

6.3 测试过程

登录:录入登录信息,输入账号,账号密码,用户权限,然后单击登录进行操作,会出现两种情况:一种情况是登录成功,进入用户相应的功能界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;

管理员登录:录入登录信息,管理员账号,密码,权限,然后单击登录进行操作,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。一种情况是登录成功,进入管理员界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作。

6.4 测试结果

通过一系列的软件测试,系统基本上满足了需求分析中设计目标的要求。软件功能基本上是完整的,使用者表现良好,系统故障处理基本上是正确的,缺陷也可以得到纠正。然而,在测试过程中也发现了系统的一些不可改变的方面,例如, 系统的数据库没有被完全完善,用户的信息显示也不全面。与此同时,用户不能修改自己提交的管理信息。如此一来,当系统进一步修改和完善时,这些问题就必须得到纠正。

最后,该系统通过了测试。

参考文献

1 李晓黎.Spring Boot+Spring Cloud+Docker微服务架构开发实战M.人民邮电出版社:202112.293.

2 柯万超.基于Java Web的高校科研成果管理系统设计与实现D.阜阳师范大学,2021.

3 周密.高职"Java程序设计"教学改革初探J.信息系统工程,2024,(12):161-164.

4 柯尊旺,武治宇.基于Gitee高校版的Java Web课程教学模式实践J.计算机教育,2024,(12):172-176.

5 陈钱,兰全祥.Java Web中文件上传方法的研究与分析J.工业控制计算机,2024,37(11):72-74+77.

6 谢帅虎.基于Java语言的翻页功能接口程序设计与实现J.数字通信世界,2024,(11):92-94.

7 房宸舒.基于Java多线程技术的通信网络数据传输优化调度方法J.长江信息通信,2024,37(11):160-162.

8 刘生智,马晓晓,贾园园,等.面向课程思政的JAVA程序设计课程教学改革探索J.现代商贸工业,2024,(24):266-268.

9 肖智兵,龚雄涛,王亮."Java程序设计"专业课数字化转型思路与实践J.湖北职业技术学院学报,2024,27(05):98-101+51.

10 王富广.基于Java学生选课系统的设计与实现J.安阳师范学院学报,2024,26(05):109-113.

11 王浏海.基于动态分析的Java软件关键类识别方法研究D.浙江工商大学,2023.

12 秦怡婷.基于程序分析的Java内存Webshell检测技术研究和实现D.北京邮电大学,2023.

13 余晓波.面向Java Web应用服务器的后门注入攻击的研究D.桂林电子科技大学,2023.

14 Rachmadan A ,Koeshidayatullah A ,Kaka I S .Developing ground motion prediction models for West Java: A machine learning approach to support Indonesia's earthquake early warning systemJ.Applied Computing and Geosciences,2025,25100212-100212.

15 Rodliyah S ,Khusnuridlo M ,Fauzi I , et al.Optimizing the quality of Islamic Senior High School graduates through curriculum management of vocational programs based on pesantrens in East Java, IndonesiaJ.Cogent Education,2024,11(1).

致 谢

在如此特殊时间里,我能顺利将毕业设计和论文完成,这都要归功于导师的无私的帮助,悉心的教导。为我指引方向,解答疑惑,每个问题都能得到专业的解释,让我在解惑的同时又能对语言和框架的理解更加深入。

通过这次毕业设计,我了解了怎样将理论联系到实际,收获到了许多书本上不曾有过的知识,也将知识融入自己的设计中进行了努力,拥有了成就感。

我也发觉了规划计划和查阅资料的重要性,规划计划让你每一步都有明确的目标,按照计划走能少走很多弯路,省去很多不必要的麻烦。java是一门发展迅速,改动较大的语言,就需要在网络上不断寻找新的文章,合适的版本和技术逐渐完善程序,解决各种各样的小问题。

以上,毕业设计磨练了我的开发技术和理论知识,这为我以后的道路打下了坚实的基础,这段经历也会成为我人生中宝贵的财富。

最后,我要再次感谢导师对我的帮助,和同学们在我设计过程中提出的意见和建议。

核心代码展示

java 复制代码
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

项目推荐

【计算机毕业设计】各项技术选题汇总

【计算机毕业设计】基于Springboot的网上购物商城销售系统

【计算机毕业设计】开题报告模板2

【计算机毕业设计】任务书案例2

【网站项目】基于springboot的在线考试系统

【网站项目】基于springboot的4S店车辆管理系统

【软件设计】基于python的高校资产管理系统

【网站项目】python009基于推荐算法的电影推荐系统

【网站项目】基于Springcloud的分布式架构网上商城

⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

相关推荐
九皇叔叔1 小时前
RHEL9.8 配置本地镜像仓库
android·java·缓存
范什么特西1 小时前
苍穹外卖体会
java
Nontee1 小时前
数据类型与包装类 — 一个新手学Java的数据类型笔记
java·笔记·python
音符犹如代码2 小时前
Java动态线程池:避坑原生线程池,吃透Dynamic-TP,手写一个Demo
java·开发语言
无情的西瓜皮2 小时前
MCP 协议实战:从零搭建一个 MCP 服务器(Node.js 版)
vue.js·人工智能·typescript·node.js
万亿少女的梦1682 小时前
基于Spring Boot、Vue.js和MySQL的超市管理系统设计与实现
java·vue.js·spring boot·mysql·管理系统
AI产品实战2 小时前
Gradle打包生成dependencies.xml详解
xml·java·gradle
方华世界3 小时前
企业级Java AI Agent应用平台
java·开发语言·人工智能
阿演3 小时前
DataDjinn v0.2.11:SQL 编辑、AI 协作和表格操作继续打磨
数据库·人工智能·sql