当前位置: 首页 > news >正文

计算机毕业设计 基于SSM的垃圾分类管理系统(以医疗垃圾为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌

🍅文末获取源码联系🍅

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

计算机毕业设计题目《1000套》✌

目录

一.前言介绍及开发技术

二.功能设计

三.功能截图

四.数据库表结构设计

五.关键代码

六.论文目录参考

七.源码获取


一.前言介绍及开发技术

 垃圾分类管理系统首先可以大幅提高医药垃圾分类管理信息系统检索,只需输入相关信息就能在数秒内反馈想要的结果;其次可存储大量的医药垃圾分类信息,同时医药垃圾分类管理系统安全性有更高的保障;相比纸质文档来管理医药垃圾分类信息,医药垃圾分类管理系统更节省空间人力资源。这些优点大大提高管理效率并节省运营成本。本系统为了数据库结构的灵活性所以打算采用MySQL来设计数据库,而java技术, B/S架构则保证了较高的平台适应性。

二.功能设计

 管理员登入使用本系统涉到的功能主要有个人中心、公告信息管理、用户管理、垃圾分类管理、医院垃圾信息管理、留言反馈管理、管理员管理等功能。用户登入使用本系统涉到的功能主要有个人中心、医院垃圾信息管理、留言反馈管理等功能。

 

三.功能截图

系统登录,管理员和用在登录页面选择需要登录的角色,在正确输入账号和密码后,进入操作系统进行操作。

 管理员进入主页面,主要功能包括对个人中心、公告信息管理、用户管理、垃圾分类管理、医院垃圾信息管理、留言反馈管理、管理员管理等进行操作。

 管理员点击公告信息管理。进入公告信息页面输入公告标题和选择公告类型可以查询,新增或删除公告信息列表,并根据需要对公告详细信息进行查看详情,修改或删除操作。

 管理员点击用户管理。进入用户页面输入用户名和姓名可以查询,新增或删除用户列表,并根据需要对用户详细信息进行查看详情,修改或删除操作。

 管理员点击垃圾分类管理。进入垃圾分类页面输入垃圾分类可以查询,新增或删除垃圾分类列表,并根据需要对垃圾分类详细信息进行查看详情,修改或删除操作。

 管理员点击医院垃圾信息管理。进入医院垃圾信息页面输入垃圾名称和选择分类可以查询,删除或分类统计医院垃圾信息列表,并根据需要对医院垃圾详细信息进行查看详情,修改或删除操作。

 管理员点击留言反馈管理。进入留言反馈页面输入反馈日期可以查询或删除留言反馈列表,并根据需要对留言反馈详细信息进行查看详情,修改或删除操作。

 管理员点击管理员管理。进入管理员页面输入用户名可以查询,新增或删除管理员列表,并根据需要对管理员详细信息进行查看详情,修改或删除操作。

 用户进入主页面,主要功能包括对个人中心、医院垃圾信息管理、留言反馈管理等进行操作。

 用户点击医院垃圾信息管理。进入医院垃圾信息页面输入垃圾名称和选择分类可以查询或新增医院垃圾信息列表,并根据需要对医院垃圾详细信息进行查看详情操作。

 用户点击留言反馈管理。进入留言反馈页面输入反馈日期可以查询或新增留言反馈列表,并根据需要对留言反馈详细信息进行查看详情操作。

四.数据库表结构设计

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ssmwlz6j` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `ssmwlz6j`;--
-- 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 `gonggaoxinxi`
--DROP TABLE IF EXISTS `gonggaoxinxi`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `gonggaoxinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gonggaobiaoti` varchar(200) NOT NULL COMMENT '公告标题',`gonggaoleixing` varchar(200) NOT NULL COMMENT '公告类型',`gonggaotupian` longtext COMMENT '公告图片',`gonggaoneirong` longtext COMMENT '公告内容',`faburiqi` date DEFAULT NULL COMMENT '发布日期',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='公告信息';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `gonggaoxinxi`
--LOCK TABLES `gonggaoxinxi` WRITE;
/*!40000 ALTER TABLE `gonggaoxinxi` DISABLE KEYS */;
INSERT INTO `gonggaoxinxi` VALUES (11,'2023-05-06 03:13:11','公告标题1','资讯','upload/gonggaoxinxi_gonggaotupian1.jpg,upload/gonggaoxinxi_gonggaotupian2.jpg,upload/gonggaoxinxi_gonggaotupian3.jpg','公告内容1','2023-05-06'),(12,'2023-05-06 03:13:11','公告标题2','资讯','upload/gonggaoxinxi_gonggaotupian2.jpg,upload/gonggaoxinxi_gonggaotupian3.jpg,upload/gonggaoxinxi_gonggaotupian4.jpg','公告内容2','2023-05-06'),(13,'2023-05-06 03:13:11','公告标题3','资讯','upload/gonggaoxinxi_gonggaotupian3.jpg,upload/gonggaoxinxi_gonggaotupian4.jpg,upload/gonggaoxinxi_gonggaotupian5.jpg','公告内容3','2023-05-06'),(14,'2023-05-06 03:13:11','公告标题4','资讯','upload/gonggaoxinxi_gonggaotupian4.jpg,upload/gonggaoxinxi_gonggaotupian5.jpg,upload/gonggaoxinxi_gonggaotupian6.jpg','公告内容4','2023-05-06'),(15,'2023-05-06 03:13:11','公告标题5','资讯','upload/gonggaoxinxi_gonggaotupian5.jpg,upload/gonggaoxinxi_gonggaotupian6.jpg,upload/gonggaoxinxi_gonggaotupian7.jpg','公告内容5','2023-05-06'),(16,'2023-05-06 03:13:11','公告标题6','资讯','upload/gonggaoxinxi_gonggaotupian6.jpg,upload/gonggaoxinxi_gonggaotupian7.jpg,upload/gonggaoxinxi_gonggaotupian8.jpg','公告内容6','2023-05-06'),(17,'2023-05-06 03:13:11','公告标题7','资讯','upload/gonggaoxinxi_gonggaotupian7.jpg,upload/gonggaoxinxi_gonggaotupian8.jpg,upload/gonggaoxinxi_gonggaotupian9.jpg','公告内容7','2023-05-06'),(18,'2023-05-06 03:13:11','公告标题8','资讯','upload/gonggaoxinxi_gonggaotupian8.jpg,upload/gonggaoxinxi_gonggaotupian9.jpg,upload/gonggaoxinxi_gonggaotupian10.jpg','公告内容8','2023-05-06');
/*!40000 ALTER TABLE `gonggaoxinxi` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `lajifenlei`
--DROP TABLE IF EXISTS `lajifenlei`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `lajifenlei` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`lajifenlei` varchar(200) NOT NULL COMMENT '垃圾分类',`chulifangshi` varchar(200) DEFAULT NULL COMMENT '处理方式',`lajishuoming` varchar(200) DEFAULT NULL COMMENT '垃圾说明',PRIMARY KEY (`id`),UNIQUE KEY `lajifenlei` (`lajifenlei`)
) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COMMENT='垃圾分类';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `lajifenlei`
--LOCK TABLES `lajifenlei` WRITE;
/*!40000 ALTER TABLE `lajifenlei` DISABLE KEYS */;
INSERT INTO `lajifenlei` VALUES (31,'2023-05-06 03:13:11','垃圾分类1','处理方式1','垃圾说明1'),(32,'2023-05-06 03:13:11','垃圾分类2','处理方式2','垃圾说明2'),(33,'2023-05-06 03:13:11','垃圾分类3','处理方式3','垃圾说明3'),(34,'2023-05-06 03:13:11','垃圾分类4','处理方式4','垃圾说明4'),(35,'2023-05-06 03:13:11','垃圾分类5','处理方式5','垃圾说明5'),(36,'2023-05-06 03:13:11','垃圾分类6','处理方式6','垃圾说明6'),(37,'2023-05-06 03:13:11','垃圾分类7','处理方式7','垃圾说明7'),(38,'2023-05-06 03:13:11','垃圾分类8','处理方式8','垃圾说明8');
/*!40000 ALTER TABLE `lajifenlei` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `liuyanfankui`
--DROP TABLE IF EXISTS `liuyanfankui`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `liuyanfankui` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`fankuitupian` longtext COMMENT '反馈图片',`fankuineirong` longtext COMMENT '反馈内容',`fankuiriqi` date DEFAULT NULL COMMENT '反馈日期',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`shhf` longtext COMMENT '回复内容',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1683343099900 DEFAULT CHARSET=utf8 COMMENT='留言反馈';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `liuyanfankui`
--LOCK TABLES `liuyanfankui` WRITE;
/*!40000 ALTER TABLE `liuyanfankui` DISABLE KEYS */;
INSERT INTO `liuyanfankui` VALUES (51,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian1.jpg,upload/liuyanfankui_fankuitupian2.jpg,upload/liuyanfankui_fankuitupian3.jpg','反馈内容1','2023-05-06','用户名1',''),(52,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian2.jpg,upload/liuyanfankui_fankuitupian3.jpg,upload/liuyanfankui_fankuitupian4.jpg','反馈内容2','2023-05-06','用户名2',''),(53,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian3.jpg,upload/liuyanfankui_fankuitupian4.jpg,upload/liuyanfankui_fankuitupian5.jpg','反馈内容3','2023-05-06','用户名3',''),(54,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian4.jpg,upload/liuyanfankui_fankuitupian5.jpg,upload/liuyanfankui_fankuitupian6.jpg','反馈内容4','2023-05-06','用户名4',''),(55,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian5.jpg,upload/liuyanfankui_fankuitupian6.jpg,upload/liuyanfankui_fankuitupian7.jpg','反馈内容5','2023-05-06','用户名5',''),(56,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian6.jpg,upload/liuyanfankui_fankuitupian7.jpg,upload/liuyanfankui_fankuitupian8.jpg','反馈内容6','2023-05-06','用户名6',''),(57,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian7.jpg,upload/liuyanfankui_fankuitupian8.jpg,upload/liuyanfankui_fankuitupian9.jpg','反馈内容7','2023-05-06','用户名7',''),(58,'2023-05-06 03:13:11','upload/liuyanfankui_fankuitupian8.jpg,upload/liuyanfankui_fankuitupian9.jpg,upload/liuyanfankui_fankuitupian10.jpg','反馈内容8','2023-05-06','用户名8',''),(1683343099899,'2023-05-06 03:18:19','upload/1683343098576.jpeg','22','2023-05-06','用户名1','');
/*!40000 ALTER TABLE `liuyanfankui` 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=7 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,21,'用户名1','yonghu','用户','nbd642c4hbzehb6elds2x28mn3ettwd6','2023-05-06 03:17:59','2023-05-06 04:18:00'),(2,1,'admin','users','管理员','9jpi685misk7itn7jg80fic8rrpzexfr','2023-05-06 03:18:43','2023-05-06 04:18:47'),(3,1,'admin','users','管理员','eqf10uwfw5m0bdbtprr1o2kzjk8tmtrd','2023-05-06 03:18:43','2023-05-06 04:18:43'),(4,1,'admin','users','管理员','838h9copz88147s9uo04yhv62cmfldar','2023-05-06 03:18:43','2023-05-06 04:18:43'),(5,1,'admin','users','管理员','7bals8izuceapkqkq9mvu5vl9ngs5gp5','2023-05-06 03:18:43','2023-05-06 04:18:43'),(6,1,'admin','users','管理员','sssaitdl52kytq2xqw1v117av2i7xp2v','2023-05-06 03:18:43','2023-05-06 04:18:43');
/*!40000 ALTER TABLE `token` 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 */;--
-- Dumping data for table `users`
--LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` VALUES (1,'admin','admin','管理员','2023-05-06 03:13:11');
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `yiyuanlajixinxi`
--DROP TABLE IF EXISTS `yiyuanlajixinxi`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `yiyuanlajixinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`lajimingcheng` varchar(200) NOT NULL COMMENT '垃圾名称',`lajifenlei` varchar(200) DEFAULT NULL COMMENT '垃圾分类',`lajishuoming` longtext COMMENT '垃圾说明',`chulifangshi` longtext COMMENT '处理方式',`tianjiariqi` date DEFAULT NULL COMMENT '添加日期',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`shhf` longtext COMMENT '回复内容',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1683343094004 DEFAULT CHARSET=utf8 COMMENT='医院垃圾信息';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `yiyuanlajixinxi`
--LOCK TABLES `yiyuanlajixinxi` WRITE;
/*!40000 ALTER TABLE `yiyuanlajixinxi` DISABLE KEYS */;
INSERT INTO `yiyuanlajixinxi` VALUES (41,'2023-05-06 03:13:11','垃圾名称1','垃圾分类1','垃圾说明1','处理方式1','2023-05-06','用户名1',''),(42,'2023-05-06 03:13:11','垃圾名称2','垃圾分类2','垃圾说明2','处理方式2','2023-05-06','用户名2',''),(43,'2023-05-06 03:13:11','垃圾名称3','垃圾分类3','垃圾说明3','处理方式3','2023-05-06','用户名3',''),(44,'2023-05-06 03:13:11','垃圾名称4','垃圾分类4','垃圾说明4','处理方式4','2023-05-06','用户名4',''),(45,'2023-05-06 03:13:11','垃圾名称5','垃圾分类5','垃圾说明5','处理方式5','2023-05-06','用户名5',''),(46,'2023-05-06 03:13:11','垃圾名称6','垃圾分类6','垃圾说明6','处理方式6','2023-05-06','用户名6',''),(47,'2023-05-06 03:13:11','垃圾名称7','垃圾分类7','垃圾说明7','处理方式7','2023-05-06','用户名7',''),(48,'2023-05-06 03:13:11','垃圾名称8','垃圾分类8','垃圾说明8','处理方式8','2023-05-06','用户名8',''),(1683343094003,'2023-05-06 03:18:13','12','垃圾分类2','1','1','2023-05-06','用户名1','');
/*!40000 ALTER TABLE `yiyuanlajixinxi` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `yonghu`
--DROP TABLE IF EXISTS `yonghu`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `yonghu` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`yonghuming` varchar(200) NOT NULL COMMENT '用户名',`mima` varchar(200) NOT NULL COMMENT '密码',`xingming` varchar(200) NOT NULL COMMENT '姓名',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`touxiang` longtext COMMENT '头像',`shouji` varchar(200) DEFAULT NULL COMMENT '手机',PRIMARY KEY (`id`),UNIQUE KEY `yonghuming` (`yonghuming`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='用户';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `yonghu`
--LOCK TABLES `yonghu` WRITE;
/*!40000 ALTER TABLE `yonghu` DISABLE KEYS */;
INSERT INTO `yonghu` VALUES (21,'2023-05-06 03:13:11','用户名1','e10adc3949ba59abbe56e057f20f883e','姓名1','男','upload/yonghu_touxiang1.jpg','13823888881'),(22,'2023-05-06 03:13:11','用户名2','e10adc3949ba59abbe56e057f20f883e','姓名2','男','upload/yonghu_touxiang2.jpg','13823888882'),(23,'2023-05-06 03:13:11','用户名3','e10adc3949ba59abbe56e057f20f883e','姓名3','男','upload/yonghu_touxiang3.jpg','13823888883'),(24,'2023-05-06 03:13:11','用户名4','e10adc3949ba59abbe56e057f20f883e','姓名4','男','upload/yonghu_touxiang4.jpg','13823888884'),(25,'2023-05-06 03:13:11','用户名5','e10adc3949ba59abbe56e057f20f883e','姓名5','男','upload/yonghu_touxiang5.jpg','13823888885'),(26,'2023-05-06 03:13:11','用户名6','e10adc3949ba59abbe56e057f20f883e','姓名6','男','upload/yonghu_touxiang6.jpg','13823888886'),(27,'2023-05-06 03:13:11','用户名7','e10adc3949ba59abbe56e057f20f883e','姓名7','男','upload/yonghu_touxiang7.jpg','13823888887'),(28,'2023-05-06 03:13:11','用户名8','e10adc3949ba59abbe56e057f20f883e','姓名8','男','upload/yonghu_touxiang8.jpg','13823888888');
/*!40000 ALTER TABLE `yonghu` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on 2023-05-11 11:24:14

五.关键代码

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.MD5Util;
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();}
}

六.论文目录参考

七.源码获取

感谢大家的阅读,如有不懂的问题可以评论区交流或私聊!

喜欢文章可以点赞、收藏、关注、评论啦 、👇🏻获取源码+V:jsjbysj88👇🏻

相关文章:

计算机毕业设计 基于SSM的垃圾分类管理系统(以医疗垃圾为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…...

友思特案例|友思特 Ensenso 3D相机:汽车工业自动化的革命性力量

01 内容摘要 在竞争激烈的汽车行业&#xff0c;自动化生产至关重要。友思特 Ensenso 3D相机为汽车制造商提供了可靠的工具和技术支持&#xff0c;助力多个关键环节。它在汽车座位泡棉切割中提高精确度&#xff0c;降低浪费&#xff0c;提高生产效率&#xff1b;在汽车压铸零部…...

【5G PHY】物理层逻辑和物理天线的映射

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…...

MySQL如何优雅处理批量新增和更新?ON DUPLICATE KEY UPDATE用它!

场景&#xff1a;一张用户表user&#xff0c;此时我需要批量新增用户&#xff0c;如果用户已经存在了&#xff0c;则更新该条记录&#xff1b;如果用户不存在&#xff0c;则插入一条数据。 痛点&#xff1a;常规做法新增更新各写一个接口。而且是批量操作&#xff0c;比较繁琐&…...

网络安全(加密, Hashing, 证书, SSL/TLS等)学习小结

网上看到的一些关于网络安全的学习资料小结。 对称加密: 通信双方共享同一个密钥。发送方用它来加密&#xff0c;接收方用它来解密。 非对称加密: 有公钥和私钥。 现在的做法一般是用非对称加密生成&#xff1f;钥(公钥还是私钥?&#xff09;用于传输&#xff1f;&#xff0…...

缓冲技术在嵌入式中的应用

引言 在嵌入式中&#xff0c;不可避免地会遇到数据的收发。 其实&#xff0c;数据的收发有很多情况。 总体上&#xff0c;分为数据的收和发&#xff1a; 其中&#xff0c;数据发送是一个主动的行为&#xff0c;我们对要发送数据的数量特点等都是知道的&#xff0c;比如我们通过…...

vscode交叉编译cmake工程,toolchains设置

在 Visual Studio Code 中编译 CMake 项目时&#xff0c;使用自定义工具链&#xff08;toolchains&#xff09;可以很有用&#xff0c;特别是当你需要交叉编译或使用不同的编译器时。以下是在 Visual Studio Code 中使用自定义工具链的一般步骤&#xff0c;以aarch64的嵌入式为…...

MATLAB算法实战应用案例精讲-【优化算法】季节优化算法(SOA)(附MATLAB代码实现)

前言 世界上许多地方一年有四个季节:春、夏、秋、冬。每个季节的天气都不一样。随着天气的变化,生物,尤其是树木会改变它们的行为来适应天气。森林中的每一个个体都被称为一棵树。在满足终止条件之前,森林中的树木通过类似于自然界树木生命周期的四种操作:更新、竞争、播种…...

DevOps持续集成与交付

概述 Jenkins是一个支持容器化部署的、使用Java运行环境的开源软件&#xff0c;使用Jenkins平台可以定制化不同的流程与任务、以自动化的机制支持DevOps领域中的CI与CD&#xff0c;在软件开发与运维的流程中自动化地执行软件工程项目的编译、构建、打包、测试、发布以及部署&a…...

lambda的使用案例(1)

lambda的使用案例 1、分组转换为map Map<String, List<IdaasUserInfoVO>> map userWithOrgVOS1.stream().collect(Collectors.groupingBy(IdaasUserInfoVO::getOrgId));2、map循环 map.forEach(this::saveOrUpdateUser); private void saveOrUpdateUser(String …...

nodejs+vue装修公司CRM系统设计elementui

第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;技术背景 5 3.2.2经济可行性 6 3.2.3操作可行性&#xff1a; 6 3.3 项目设计目标与原则 6 3.4系统流程分析 7 3.4.1操作流程 7 3.4.2添加信息流程 8 3.4.3删除信息流程 9 第4章 系统设计 11 …...

开源博客项目Blog .NET Core源码学习(3:数据库操作方式)

开源博客项目Blog采用SqlSugar模块连接并操作数据库&#xff0c;本文学习并记录项目中使用SqlSugar的方式和方法。   首先&#xff0c;数据库连接信息放在了App.Hosting项目的appsettings.json中DbConfig节&#xff0c;支持在DbConfig节配置多个数据库连接信息&#xff0c;以…...

QT--Opencv下报错Mat/imwrite/imread找不到文件

像file not found这类错误 原因是编程系统找不到所指库文件&#xff0c;以此为例&#xff0c;排查自己的每个位置是否有误 1. .pro文件 添加opencv动态库 INCLUDEPATH /usr/include \/usr/include/opencv4 \/usr/include/opencv4/opencv2LIBS /usr/lib/aarch64-linux-gnu…...

风光储一体化能源中心 | 数字孪生智慧能源

自“双碳”目标提出以来&#xff0c;我国能源产业不断朝着清洁低碳化、绿色化的方向发展。其中&#xff0c;风能、太阳能等可再生能源在促进全球能源可持续发展、共建清洁美丽世界中被寄予厚望。风能、太阳能具有波动性、间歇性、随机性等特点&#xff0c;主要通过转化为电能再…...

JavaScript数组分组

数组分组: 含义: 数据按照某个特性归类 1. reducefn(cur, index)作为对象的key,值为按照fn筛选出来的数据 // 利用reduce分组 function group(arr, fn) {// 不是数组if (!Array.isArray(arr)) {return arr}// 不是函数if (typeof fn ! function) {throw new TypeError(fn…...

IEEE PDF eXpress系统报错:TimesNewRoman PS-BoldMT, ItalicMT, PSM

问题&#xff1a; IEEE PDF eXpress系统报错&#xff1a;Errors: Font TimesNewRomanPS-BoldMT, TimesNewRomanPS-ItalicMT, TimesNewRomanPSMT is not embedded (137x on pages 2-6) 答案&#xff1a; 主要原因是PDF的字体嵌入问题&#xff0c;可以看到下图中没有报错中的字体…...

【MATLAB源码-第40期】基于matlab的D*(Dstar)算法栅格路径规划仿真。

1、算法描述 D*算法路径规划 D*算法&#xff08;Dynamic A*&#xff09;是A*算法的一种变种&#xff0c;主要用于在地图中的障碍物信息发生变化时重新计算路径&#xff0c;而不需要从头开始。该算法适用于那些只有部分信息已知的环境中。 工作原理&#xff1a; 1. D*算法首先…...

Pikachu-xxe (xml外部实体注入漏洞)过关笔记

Pikachu-xxe过关笔记 有回显探测是否有回显file:///协议查看本地系统文件php://协议查看php源代码&#xff08;无法查看当前网页代码&#xff0c;只能看别的&#xff09;http://协议爆破开放端口&#xff08;两者的加载时间不同&#xff09; 无回显第一步第二步第三步 运行结果…...

Unity实现设计模式——责任链模式

Unity实现设计模式——责任链模式 责任链模式定义&#xff1a;将请求的发送和接收解耦&#xff0c;让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链&#xff0c;并沿着这条链传递这个请求&#xff0c;直到链上的某个接收对象能够处理它为止。 在职责链模式中&…...

Java中String转换为double类型

这次的java作业是写一个数字转换的小项目&#xff0c;其中从输入框中获取的是String类型&#xff0c;但是要进行数字操作&#xff0c;此时要用到很多操作String类型数据的方法了。 从javafx输入框中获取到String类型后&#xff0c;首先是要判断是否能转换为数字或者小数形式&a…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...