基于Java+SpringBoot+Vue+Element的OA系统的设计和实现

基于Java+SpringBoot+Vue+Element的OA系统的设计和实现

    • 源码传送入口
    • 前言
    • 主要技术
    • 系统设计
    • 功能截图
    • 数据库设计
    • 代码
    • 论文目录
    • 订阅经典源码专栏
      • Java项目精品实战案例《500套》
    • 源码获取

源码传送入口

前言

在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括小型OA系统设计与实现的网络应用,在国外小型OA系统设计与实现已经是很普遍的方式,不过国内的小型OA系统设计与实现可能还处于起步阶段。小型OA系统设计与实现具有部门公告、通知中心等功能。小型OA系统设计与实现采用Java语言,Springboot框架,基于mysql开发,实现了部门、用户、部门公告、通知中心、代办消息、个人日程、完成代办等内容进行管理,本系统具有良好的兼容性和适应性,为用户提供更多的信息,也提供了良好的平台,从而提高系统的核心竞争力。
本文首先介绍了设计的背景与研究目的,其次介绍系统相关技术,重点叙述了系统功能分析以及详细设计,最后总结了系统的开发心得。
关键词:小型OA系统设计与实现;Springboot框架; Java语言;mysql数据库。

主要技术

2.1 Java语言简介
Java语言是一个完全的面向对象的程序设计语言。面向对象编程语言的思想是把客观存在的事物看成是具有状态和行为的一类对象,然后通过抽象的方法找出相同一类对象的共同状态和行为,从而构成模型——类。类是Java程序设计语言的核心,是Java语言的基本抽象单元。世间上的各种事物都是对象,都可以把它抽象成具有状态和行为的类。Java语言的主要特点有:
Java语言是典型的面向对象的。它提供了类,类又提供了对象的模型,通过使用继承和多态的方法,可以实现代码的重用。
Java语言是安全的。当代网络环境要解决的最大的问题就是安全问题。Java具有内部的安全措施,可以确保程序的安全与完整。
Java语言的操作无关平台。Java程序可以在任何的系统中运行,只要安装了Java的运行系统。
Java语言是多线程的。
Java语言具有内存管理。Java可以自动地对内存进行管理,很好地利用了系统的资源,减少浪费。
2.2 mysql数据库介绍
利用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
MYSQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MYSQL的功能相对弱小、规模也小,但本系统要求不高,MYSQL完全可以满足本网站使用。
利用MYSQL建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。
2.3 MySQL环境配置
(1)本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
(2)修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。

2.4 B/S架构
B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说客户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。
当前MIS系统结构目前存在两种较为流行的结构:C/S和B/S两种。
C/S结构的系统:C/S结构就是客户机服务器结构,它可以法派任务到Client端和Server端来进行,充分利用两端硬件环境的优势,来降低系统的通讯的花费。客户端主要作用是处理人机交互,执行客户端应用程序,收集数据以及向服务器发送任务请求。服务器基本作用是执行后台程序,它主要对客户机的请求申请进行反馈,除此之外,它的作用还包括:数据服务预约储系统的共享管理、通讯管理、文件管理等等。
B/S结构的系统:这种网络结构简化了客户端,并把系统功能实现的中心集中到服务器上,在这种模式中,只需要一个浏览器就可以了。这种结构将很多的工作交于WEB服务器,只通过浏览器请求WEB服务,随后根据请求返回信息。
通常在企业网内部使用,采用C/S。而使用不仅限于内网的情况下使用B/S。考虑到本管理系统的一系列需求,所以,该系统开发使用B/S结构开发。

2.5 Springboot框架
本技术是Java平台的开源应用框架,其目的是简化Sping的初始搭建和开发过程。默认配置了很多框架的使用方式,自动加载Jar包,为了让读者尽可能快的跑起来spring应用程序。
SpinrgBoot的主要优点有:
1、为所有spring开发提供了一个更快、更广泛的入门体验;
2、零配置;
3、集成了大量常用的第三方库的配置;
4、提供准备好的特性。当今,Java领域的开发者机会都在使用SpinrgBoot,在开发领域逐渐成为领导者。

系统设计

在这里插入图片描述

功能截图

5.1管理员功能模块
管理员登录系统,管理员登录页面通过输入用户名、密码,选择角色并点击登录进行系统登录操作,如图5-1所示。
在这里插入图片描述

图5-1管理员登录界面图

管理员登录系统后,可以对首页、个人中心、部门管理、用户管理、部门公告管理、通知中心管理、代办消息管理、个人日程管理、完成代办管理等功能模块进行相应操作,如图5-2所示。
在这里插入图片描述

图5-2管理员功能界面图

部门管理,在部门管理页面可以对部门、部门领导、部门电话、部门邮箱等内容进行详情、修改或删除,如图5-3所示。
在这里插入图片描述

图5-3部门管理界面图

用户管理,在用户管理页面可以对用户账号、用户姓名、手机号码、头像、性别、邮箱、部门、职位、审核回复、审核状态、审核等内容进行详情、修改或删除等操作,如图5-4所示。
在这里插入图片描述

图5-4用户管理界面图

5.2用户功能模块
用户注册,在注册页面填写用户账号、用户姓名、密码、确认密码、手机号码、邮箱等详细信息进行注册,如图5-5所示。
在这里插入图片描述

图5-5用户注册界面图

用户登录,用户在登录页面通过填写账号、密码、选择角色信息完成登录,如图5-6所示。
在这里插入图片描述

图5-6用户登录界面图

用户登录进入系统后,可以对首页、个人中心、部门公告管理、通知中心管理、代办消息管理、个人日程管理、完成代办管理等功能模块进行相应操作,如图5-7所示。
在这里插入图片描述

图5-7用户功能界面图

部门公告管理,在部门公告管理页面可以对公告名称、发布时间、部门、部门领导等内容进行详情操作,如图5-8所示。
在这里插入图片描述

图5-8部门公告管理界面图

通知中心管理,在通知中心管理页面可以对文件编号、文件标题、文件、上传时间等内容进行详情操作,如图5-9所示。
在这里插入图片描述

图5-9通知中心管理界面图

代办消息管理,在代办消息管理页面可以对用户账号、用户姓名、部门、职位、部门领导、文件、发放时间、消息备注等内容进行详情、完成代办操作,如图5-10所示。
在这里插入图片描述

图5-10代办消息管理界面图

完成代办管理,在完成代办管理页面可以对用户账号、用户姓名、职位、部门、部门领导、完成文件、消息备注、发放时间、提交时间、审核回复、审核状态、等内容进行详情操作,如图5-11所示。
在这里插入图片描述

图5-11完成代办管理界面图
5.3部门(销售部门)功能模块

部门登录,部门在登录页面通过填写账号、密码、选择角色信息完成登录,如图5-12所示。
在这里插入图片描述

图5-12部门登录界面图

部门登录进入系统后,可以对首页、个人中心、用户管理、部门公告管理、通知中心管理、代办消息管理、个人日程管理、完成代办管理等功能模块进行相应操作,如图5-13所示。
在这里插入图片描述

图5-13部门功能界面图

用户管理,在用户管理页面可以对用户账号、用户姓名、手机号码、头像、性别、邮箱、部门、职位、审核回复、审核状态、审核等内容进行详情、发送代办消息等操作,如图5-14所示。
在这里插入图片描述

图5-14用户管理界面图

部门公告管理,在部门公告管理页面可以对公告名称、发布时间、部门、部门领导等内容进行详情、修改、删除操作,如图5-15所示。
在这里插入图片描述

图5-15部门公告管理界面图

通知中心管理,在通知中心管理页面可以对用户账号、用户姓名、部门、职位、通知人、通知时间等内容进行详情操作,如图5-16所示。
在这里插入图片描述

图5-16通知中心管理界面图

代办消息管理,在代办消息管理页面可以对用户账号、用户姓名、部门、职位、部门领导、文件、发放时间、消息备注等内容进行详情操作,如图5-17所示。
在这里插入图片描述

图5-17代办消息管理界面图
个人日程管理,在个人日程管理页面可以对用户账号、部门、用户姓名、职位、编辑时间、审核回复、审核状态等内容进行详情操作,如图5-18所示。
在这里插入图片描述

图5-18个人日程管理界面图

数据库设计

部门信息实体图如图4-1所示:
在这里插入图片描述

图4-1部门信息实体图

部门公告信息实体图如图4-2所示:
在这里插入图片描述

图4-2部门公告信息实体图

通知中心信息实体图如图4-3所示:
在这里插入图片描述

图4-3通知中心信息实体图

代办消息实体图如图4-4所示:
在这里插入图片描述

图4-4代办消息实体图

DROP TABLE IF EXISTS `bumengonggao`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `bumengonggao` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gonggaomingcheng` varchar(200) DEFAULT NULL COMMENT '公告名称',`gonggaoneirong` longtext COMMENT '公告内容',`fabushijian` datetime DEFAULT NULL COMMENT '发布时间',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`bumenlingdao` varchar(200) DEFAULT NULL COMMENT '部门领导',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1646011296520 DEFAULT CHARSET=utf8 COMMENT='部门公告';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `bumengonggao`
--LOCK TABLES `bumengonggao` WRITE;
/*!40000 ALTER TABLE `bumengonggao` DISABLE KEYS */;
INSERT INTO `bumengonggao` VALUES (31,'2022-02-28 01:08:14','公告名称1','公告内容1','2022-02-28 09:08:14','部门1','部门领导1'),(32,'2022-02-28 01:08:14','公告名称2','公告内容2','2022-02-28 09:08:14','部门2','部门领导2'),(33,'2022-02-28 01:08:14','公告名称3','公告内容3','2022-02-28 09:08:14','部门3','部门领导3'),(34,'2022-02-28 01:08:14','公告名称4','公告内容4','2022-02-28 09:08:14','部门4','部门领导4'),(35,'2022-02-28 01:08:14','公告名称5','公告内容5','2022-02-28 09:08:14','部门5','部门领导5'),(36,'2022-02-28 01:08:14','公告名称6','公告内容6','2022-02-28 09:08:14','部门6','部门领导6'),(1646011296519,'2022-02-28 01:21:35','销售部门公告','<p>阿道夫噶啥发啥的法撒旦法撒旦发是的<img src=\"http://localhost:8080/springbootm2yt0/upload/1646011295157.jpg\"></p>','2022-02-28 09:21:14','销售部门','王五');
/*!40000 ALTER TABLE `bumengonggao` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `config`
--DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) NOT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `config`
--LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg'),(2,'picture2','upload/picture2.jpg'),(3,'picture3','upload/picture3.jpg');
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `daibanxiaoxi`
--DROP TABLE IF EXISTS `daibanxiaoxi`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `daibanxiaoxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`yonghuzhanghao` varchar(200) DEFAULT NULL COMMENT '用户账号',`yonghuxingming` varchar(200) DEFAULT NULL COMMENT '用户姓名',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`bumenlingdao` varchar(200) DEFAULT NULL COMMENT '部门领导',`wenjian` varchar(200) DEFAULT NULL COMMENT '文件',`fafangshijian` datetime DEFAULT NULL COMMENT '发放时间',`xiaoxibeizhu` varchar(200) DEFAULT NULL COMMENT '消息备注',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1646011271144 DEFAULT CHARSET=utf8 COMMENT='代办消息';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `daibanxiaoxi`
--LOCK TABLES `daibanxiaoxi` WRITE;
/*!40000 ALTER TABLE `daibanxiaoxi` DISABLE KEYS */;
INSERT INTO `daibanxiaoxi` VALUES (51,'2022-02-28 01:08:14','用户账号1','用户姓名1','职位1','部门1','部门领导1','','2022-02-28 09:08:14','消息备注1'),(52,'2022-02-28 01:08:14','用户账号2','用户姓名2','职位2','部门2','部门领导2','','2022-02-28 09:08:14','消息备注2'),(53,'2022-02-28 01:08:14','用户账号3','用户姓名3','职位3','部门3','部门领导3','','2022-02-28 09:08:14','消息备注3'),(54,'2022-02-28 01:08:14','用户账号4','用户姓名4','职位4','部门4','部门领导4','','2022-02-28 09:08:14','消息备注4'),(55,'2022-02-28 01:08:14','用户账号5','用户姓名5','职位5','部门5','部门领导5','','2022-02-28 09:08:14','消息备注5'),(56,'2022-02-28 01:08:14','用户账号6','用户姓名6','职位6','部门6','部门领导6','','2022-02-28 09:08:14','消息备注6'),(1646011271143,'2022-02-28 01:21:10','001','张三','普通员工','销售部门','王五','upload/1646011267811.doc','2022-02-28 09:20:47','分公司发给水电费干啥地方噶水电费嘎是');
/*!40000 ALTER TABLE `daibanxiaoxi` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `gerenricheng`
--DROP TABLE IF EXISTS `gerenricheng`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `gerenricheng` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`yonghuzhanghao` varchar(200) DEFAULT NULL COMMENT '用户账号',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`yonghuxingming` varchar(200) DEFAULT NULL COMMENT '用户姓名',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`richengneirong` longtext COMMENT '日程内容',`bianjishijian` datetime DEFAULT NULL COMMENT '编辑时间',`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',`shhf` longtext COMMENT '审核回复',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1646011224706 DEFAULT CHARSET=utf8 COMMENT='个人日程';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `gerenricheng`
--LOCK TABLES `gerenricheng` WRITE;
/*!40000 ALTER TABLE `gerenricheng` DISABLE KEYS */;
INSERT INTO `gerenricheng` VALUES (61,'2022-02-28 01:08:14','用户账号1','部门1','用户姓名1','职位1','日程内容1','2022-02-28 09:08:14','是',''),(62,'2022-02-28 01:08:14','用户账号2','部门2','用户姓名2','职位2','日程内容2','2022-02-28 09:08:14','是',''),(63,'2022-02-28 01:08:14','用户账号3','部门3','用户姓名3','职位3','日程内容3','2022-02-28 09:08:14','是',''),(64,'2022-02-28 01:08:14','用户账号4','部门4','用户姓名4','职位4','日程内容4','2022-02-28 09:08:14','是',''),(65,'2022-02-28 01:08:14','用户账号5','部门5','用户姓名5','职位5','日程内容5','2022-02-28 09:08:14','是',''),(66,'2022-02-28 01:08:14','用户账号6','部门6','用户姓名6','职位6','日程内容6','2022-02-28 09:08:14','是',''),(1646011224705,'2022-02-28 01:20:23','001','销售部门','张三','普通员工','<p>是地方高等师范公司的公司地方高等师范个第三方感受到分公司的分公司答复<img src=\"http://localhost:8080/springbootm2yt0/upload/1646011223221.jpg\"></p>','2022-02-28 09:20:14','是','工作不错');
/*!40000 ALTER TABLE `gerenricheng` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `token`
--DROP TABLE IF EXISTS `token`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `token` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`userid` bigint(20) NOT NULL COMMENT '用户id',`username` varchar(100) NOT NULL COMMENT '用户名',`tablename` varchar(100) DEFAULT NULL COMMENT '表名',`role` varchar(100) DEFAULT NULL COMMENT '角色',`token` varchar(200) NOT NULL COMMENT '密码',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='token表';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `token`
--LOCK TABLES `token` WRITE;
/*!40000 ALTER TABLE `token` DISABLE KEYS */;
INSERT INTO `token` VALUES (1,1,'abo','users','管理员','3z9l9yidcrzjprbg5fnhi09atsyz7b3x','2022-02-28 01:16:32','2022-02-28 02:22:41'),(2,1646011055525,'销售部门','bumen','部门','osxmvl37fu9vtx644y2mn1xfyrz679wh','2022-02-28 01:19:25','2022-02-28 02:25:11'),(3,1646011110727,'001','yonghu','用户','1lohudgzsr0ghxewfva9129876a44yq3','2022-02-28 01:19:41','2022-02-28 02:25:57'),(4,22,'用户账号2','yonghu','用户','msf4hwhhw9j44sg6wvotcwe6mi303scl','2022-02-28 01:22:58','2022-02-28 02:22:58');
/*!40000 ALTER TABLE `token` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `tongzhizhongxin`
--DROP TABLE IF EXISTS `tongzhizhongxin`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tongzhizhongxin` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`yonghuzhanghao` varchar(200) DEFAULT NULL COMMENT '用户账号',`yonghuxingming` varchar(200) DEFAULT NULL COMMENT '用户姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`tongzhineirong` longtext COMMENT '通知内容',`tongzhiren` varchar(200) DEFAULT NULL COMMENT '通知人',`tongzhishijian` datetime DEFAULT NULL COMMENT '通知时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1646011415831 DEFAULT CHARSET=utf8 COMMENT='通知中心';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `tongzhizhongxin`
--LOCK TABLES `tongzhizhongxin` WRITE;
/*!40000 ALTER TABLE `tongzhizhongxin` DISABLE KEYS */;
INSERT INTO `tongzhizhongxin` VALUES (41,'2022-02-28 01:08:14','用户账号1','用户姓名1','部门1','职位1','通知内容1','通知人1','2022-02-28 09:08:14'),(42,'2022-02-28 01:08:14','用户账号2','用户姓名2','部门2','职位2','通知内容2','通知人2','2022-02-28 09:08:14'),(43,'2022-02-28 01:08:14','用户账号3','用户姓名3','部门3','职位3','通知内容3','通知人3','2022-02-28 09:08:14'),(44,'2022-02-28 01:08:14','用户账号4','用户姓名4','部门4','职位4','通知内容4','通知人4','2022-02-28 09:08:14'),(45,'2022-02-28 01:08:14','用户账号5','用户姓名5','部门5','职位5','通知内容5','通知人5','2022-02-28 09:08:14'),(46,'2022-02-28 01:08:14','用户账号6','用户姓名6','部门6','职位6','通知内容6','通知人6','2022-02-28 09:08:14'),(1646011208932,'2022-02-28 01:20:08','用户账号2','用户姓名2','部门2','职位2','<p>宿管宿管的分公司答复干撒地方感受得分g<img src=\"http://localhost:8080/springbootm2yt0/upload/1646011207853.jpg\"></p>','张三','2022-02-28 09:19:52'),(1646011326259,'2022-02-28 01:22:06','001','张三','销售部门','普通员工','<p>法撒旦法撒旦发啥的法撒旦法撒旦发<img src=\"http://localhost:8080/springbootm2yt0/upload/1646011325057.jpg\"></p>','王五  部门经理asd','2022-02-28 09:21:44'),(1646011415830,'2022-02-28 01:23:35','001','张三','销售部门','普通员工','<p>色任务而台湾儿童为儿童为儿童沃尔<img src=\"http://localhost:8080/springbootm2yt0/upload/1646011412811.jpg\"></p>','用户姓名2','2022-02-28 09:23:07');
/*!40000 ALTER TABLE `tongzhizhongxin` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `users`
--DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `users` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(100) NOT NULL COMMENT '用户名',`password` varchar(100) NOT NULL COMMENT '密码',`role` varchar(100) DEFAULT '管理员' COMMENT '角色',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';
/*!40101 SET character_set_client = @saved_cs_client */;

代码


package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate 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);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

论文目录

1 绪 论 1
1.1 课题背景 2
1.2 课题研究的意义 3
1.3 系统实现的功能 4
1.4 课题研究现状 5
2系统相关技术 6
2.1 Java语言简介 7
2.2 mysql数据库介绍 8
2.3 MySQL环境配置 9
2.4 B/S架构 10
2.5 Springboot框架 11
3系统需求分析 12
3.1系统功能 13
3.2可行性研究 14
3.2.1 经济可行性 15
3.2.2 技术可行性 16
3.2.3 运行可行性 17
3.2.4 时间可行性 18
3.3系统业务过程分析 19
3.4系统用例图 20
4系统设计 21
4.1数据库设计 22
4.2系统整体设计 23
4.2.1 系统设计思想 24
4.2.2系统流程图 25
5系统详细设计 26
5.1管理员功能模块 27
5.2用户功能模块 29
5.3部门(销售部门)功能模块 29
6系统测试 30
7总结与心得体会 31
7.1 总结 32
7.2 心得体会 33
参考文献 34
致谢 35

订阅经典源码专栏

Java项目精品实战案例《500套》

源码获取

欢迎大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
在这里插入图片描述

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

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

相关文章

AI写作工具,智能ai写作工具

在信息化时代&#xff0c;内容创作已经成为了许多行业的核心。从营销广告到新闻报道&#xff0c;从博客文章到学术论文&#xff0c;人们需要不断地产生高质量的文字内容。创作是一项耗时耗力的工作&#xff0c;需要丰富的知识和创造性思维。 AI写作工具&#xff0c;是一类基于人…

基于Spring Boot的医院预约挂号系统设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

SAP ABAP基础知识 访问外部数据库-开发篇

前言 本文主要介绍通过ABAP语言访问外部数据库的几种方式 一、外部数据库配置 本文示例中的代码访问了两个外部数据库 MTD : 外部oracle数据库,其中示例表 ZTTEMP 字段( ZZTNO,WERKS) S4Q : 外部HANA数据库(开发系统访问测试系统的数据库), 使用表USR02,ZTTEMP 二、ABAP访问…

IDEA(2023)解决运行乱码问题

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;无 &#x1f33c…

【计算机组成原理】读书笔记第三期:内存和磁盘的关系

目录 写在开头 内存与磁盘的关系 基本关系 磁盘缓存 虚拟内存 节约内存的编程方法 通过DLL文件实现函数共有 通过调用_stdcall来降低文件程序的大小 磁盘的物理结构 结尾 写在开头 本文继续阅读总结《程序是怎样跑起来的》这本书&#xff08;作者&#xff1a;矢泽…

操作系统(5-7分)

内容概述 进程管理 进程的状态 前驱图 同步和互斥 PV操作&#xff08;难点&#xff09; PV操作由P操作原语和V操作原语组成&#xff08;原语是不可中断的过程&#xff09;&#xff0c;对信号量进行操作&#xff0c;具体定义如下&#xff1a; P&#xff08;S&#xff09;&#…

【计算机网络】——传输层

//图片取自王道&#xff0c;仅做交流学习 一、传输层提供的服务 物理层、数据链路层、网络层是通信子网。 传输层&#xff1a;它属于面向通信部分的最高层&#xff0c;同时也是用户功能的最低层 为应用层提供通信服务使用网络层的服务 网络层提供主机之间的逻辑通信。 1、传输…

SpringMVC之JSR303与拦截器

目录 一.JSR303 1.什么是JSR303 2.为什么使用JSR303 3.JSR303常用注解 4.快速入门 4.1导入Maven依赖 4.2 配置校验规则 4.3 对服务端数据添加进行校验 4.4 结果测试 二.拦截器 1.什么是拦截器 2.拦截器与过滤器 3.应用场景 4.基本拦截器配置 5 案例演示&#xff0…

区块链实验室(23) - FISCO中PBFT耗时与流量特征

前面的实验(区块链实验室(11) - PBFT耗时与流量特征)用仿真的PBFT观察耗时。现在用真实的Fisco网络再次观察其特征。同样地&#xff0c;用相同的网络&#xff0c;即100个节点构成的无标度网络。在每个节点上发起10次交易&#xff0c;记录每次交易的耗时。结果见下图所示。 前半…

VSCode『SSH』连接服务器『GUI界面』传输

前言 最近需要使用实验室的服务器训练带有 GUI 画面的 AI 算法模型&#xff08;pygame&#xff09;&#xff0c;但是我是使用 SSH 连接的&#xff0c;不能很好的显示模型训练的效果画面&#xff0c;所以下面将会讲解如何实现 SSH 连接传输 Linux GUI 画面的 注&#xff1a;我们…

Postman —— HTTP请求基础组成部分

一般来说&#xff0c;所有的HTTP Request都有最基础的4个部分组成&#xff1a;URL、 Method、 Headers和body。 &#xff08;1&#xff09;Method 要选择Request的Method是很简单的&#xff0c;Postman支持所有的请求方式。 &#xff08;2&#xff09;URL 要组装一条Request…

华为HCIA(五)

Vlan id 在802.1Q中 高级ACL不能匹配用户名和源MAC 2.4G频段被分为14个交叠的&#xff0c;错列的20MHz信道&#xff0c;信道编码从1到14&#xff0c;邻近的信道之间存在一定的重叠范围 STA通过Probe获取SSID信息 Snmp报文 网络管理设备异常发生时会发送trap报文 D类地址是…

基于Java网络书店商城设计实现(源码+lw+部署文档+讲解等)

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

亚马逊云科技 Amazon Lightsail :一种在云服务器上运行容器的简单方法

当向开发人员介绍亚马逊云科技云服务时&#xff0c;通常会花一点时间来介绍并演示 Amazon Lightsail 。它是迄今为止开始使用亚马逊云科技的最简单方法。使用它&#xff0c;您在几分钟内即可在自己的虚拟服务器上运行您的应用程序。而后增加了在 Amazon Lightsail 上部署基于容…

C语言字符函数和字符串函数(1)

大家好&#xff0c;我们又见面了&#xff0c;让大家久等了&#xff0c;我们今天就来学习字符函数和字符串函数。 在开启今天的学习之前呢&#xff0c;我来解决一下一些小伙伴平时找不到库函数使用的烦恼&#xff0c;因为我们cplusplus.com最新版本不能够查询函数&#xff0c;我…

排查disabled问题之谷歌新版本特性

问题复现 最近我突然接手一个后台的bug&#xff0c;这个后台很久没有迭代更新了&#xff0c;我也不熟悉业务&#xff0c;所以只能看一下源码&#xff0c;问题很快就复现&#xff0c;测试的修复操作也很正确&#xff0c;就是因为渲染的input标签中存在disableddisabled’属性导…

英国留学生务必谨慎使用ChatGPT!!!

ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;是OpenAI研发的聊天机器人程序&#xff0c;于2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够基于在预训练阶段所见的模式和统计规律…

1.IAR-8051安装

新版安装教程&#xff1a;IAR EW for 8051 简介与安装 新版软件zhuce&#xff1a;IAR EW for 8051 软件注册 - 知乎 这个新版的我也放到网盘里面了&#xff0c;自己自行选择安装 一、下载IAR-8051 链接&#xff1a;https://pan.baidu.com/s/1mYwSQvSjAiSzltrEbK3yAw?pwd43cd …

【产品经理】深入B端SaaS产品设计核心理念

这几年各企业的B端业务都在做SaaS平台&#xff0c;但对SaaS的了解还不是完全全面&#xff0c;对于一些产品的定位以及设计还在探索中 本文讨论“为什么采用SaaS模式”、“SaaS产品有哪些”以及“如何做好SaaS产品设计”三个话题&#xff0c;核心是产品设计&#xff0c;主要从需…

LabVIEW开发航天器模拟器的姿态控制和反作用轮动量管理

LabVIEW开发航天器模拟器的姿态控制和反作用轮动量管理 在过去十年中&#xff0c;航天器一直是现代技术进步的先决条件。迄今为止&#xff0c;为了更好地完成各种实际任务&#xff0c;已经在航天器姿态控制领域进行了大量研究。航天器一旦进入太空&#xff0c;就容易出现不确定…