计算机毕业设计 基于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实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
友思特案例|友思特 Ensenso 3D相机:汽车工业自动化的革命性力量
01 内容摘要 在竞争激烈的汽车行业,自动化生产至关重要。友思特 Ensenso 3D相机为汽车制造商提供了可靠的工具和技术支持,助力多个关键环节。它在汽车座位泡棉切割中提高精确度,降低浪费,提高生产效率;在汽车压铸零部…...
【5G PHY】物理层逻辑和物理天线的映射
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...
MySQL如何优雅处理批量新增和更新?ON DUPLICATE KEY UPDATE用它!
场景:一张用户表user,此时我需要批量新增用户,如果用户已经存在了,则更新该条记录;如果用户不存在,则插入一条数据。 痛点:常规做法新增更新各写一个接口。而且是批量操作,比较繁琐&…...
网络安全(加密, Hashing, 证书, SSL/TLS等)学习小结
网上看到的一些关于网络安全的学习资料小结。 对称加密: 通信双方共享同一个密钥。发送方用它来加密,接收方用它来解密。 非对称加密: 有公钥和私钥。 现在的做法一般是用非对称加密生成?钥(公钥还是私钥?)用于传输?࿰…...
缓冲技术在嵌入式中的应用
引言 在嵌入式中,不可避免地会遇到数据的收发。 其实,数据的收发有很多情况。 总体上,分为数据的收和发: 其中,数据发送是一个主动的行为,我们对要发送数据的数量特点等都是知道的,比如我们通过…...
vscode交叉编译cmake工程,toolchains设置
在 Visual Studio Code 中编译 CMake 项目时,使用自定义工具链(toolchains)可以很有用,特别是当你需要交叉编译或使用不同的编译器时。以下是在 Visual Studio Code 中使用自定义工具链的一般步骤,以aarch64的嵌入式为…...
MATLAB算法实战应用案例精讲-【优化算法】季节优化算法(SOA)(附MATLAB代码实现)
前言 世界上许多地方一年有四个季节:春、夏、秋、冬。每个季节的天气都不一样。随着天气的变化,生物,尤其是树木会改变它们的行为来适应天气。森林中的每一个个体都被称为一棵树。在满足终止条件之前,森林中的树木通过类似于自然界树木生命周期的四种操作:更新、竞争、播种…...
DevOps持续集成与交付
概述 Jenkins是一个支持容器化部署的、使用Java运行环境的开源软件,使用Jenkins平台可以定制化不同的流程与任务、以自动化的机制支持DevOps领域中的CI与CD,在软件开发与运维的流程中自动化地执行软件工程项目的编译、构建、打包、测试、发布以及部署&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技术可行性:技术背景 5 3.2.2经济可行性 6 3.2.3操作可行性: 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模块连接并操作数据库,本文学习并记录项目中使用SqlSugar的方式和方法。 首先,数据库连接信息放在了App.Hosting项目的appsettings.json中DbConfig节,支持在DbConfig节配置多个数据库连接信息,以…...
QT--Opencv下报错Mat/imwrite/imread找不到文件
像file not found这类错误 原因是编程系统找不到所指库文件,以此为例,排查自己的每个位置是否有误 1. .pro文件 添加opencv动态库 INCLUDEPATH /usr/include \/usr/include/opencv4 \/usr/include/opencv4/opencv2LIBS /usr/lib/aarch64-linux-gnu…...
风光储一体化能源中心 | 数字孪生智慧能源
自“双碳”目标提出以来,我国能源产业不断朝着清洁低碳化、绿色化的方向发展。其中,风能、太阳能等可再生能源在促进全球能源可持续发展、共建清洁美丽世界中被寄予厚望。风能、太阳能具有波动性、间歇性、随机性等特点,主要通过转化为电能再…...
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
问题: IEEE PDF eXpress系统报错:Errors: Font TimesNewRomanPS-BoldMT, TimesNewRomanPS-ItalicMT, TimesNewRomanPSMT is not embedded (137x on pages 2-6) 答案: 主要原因是PDF的字体嵌入问题,可以看到下图中没有报错中的字体…...
【MATLAB源码-第40期】基于matlab的D*(Dstar)算法栅格路径规划仿真。
1、算法描述 D*算法路径规划 D*算法(Dynamic A*)是A*算法的一种变种,主要用于在地图中的障碍物信息发生变化时重新计算路径,而不需要从头开始。该算法适用于那些只有部分信息已知的环境中。 工作原理: 1. D*算法首先…...
Pikachu-xxe (xml外部实体注入漏洞)过关笔记
Pikachu-xxe过关笔记 有回显探测是否有回显file:///协议查看本地系统文件php://协议查看php源代码(无法查看当前网页代码,只能看别的)http://协议爆破开放端口(两者的加载时间不同) 无回显第一步第二步第三步 运行结果…...
Unity实现设计模式——责任链模式
Unity实现设计模式——责任链模式 责任链模式定义:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。 在职责链模式中&…...
Java中String转换为double类型
这次的java作业是写一个数字转换的小项目,其中从输入框中获取的是String类型,但是要进行数字操作,此时要用到很多操作String类型数据的方法了。 从javafx输入框中获取到String类型后,首先是要判断是否能转换为数字或者小数形式&a…...
不同埋深地下管线的地质雷达响应特征分析
不同埋深地下管线的地质雷达响应特征分析 前言 以混凝土管线为例,建立了不同埋深(70cm、100cm、130cm)地下管线的二维模型,进行二维地质雷达正演模拟,分析不同材质管线的地质雷达响应特征。 文章目录 不同埋深地下管…...
重新认识mysql
title: “重新认识mysql” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” 文章目录 title: "重新认识mysql" createTime: 2022-03-06T15:…...
系统集成|第十九章(笔记)
目录 第十九章 风险管理19.1 风险管理的概述及相关概念19.2 主要过程19.2.1 规划风险管理19.2.2 识别风险19.2.3 实施定性风险分析19.2.4 实施定量风险分析19.2.5 规划风险应对19.2.6 控制风险 上篇:第十八章、安全管理 下篇:第二十章、收尾管理 第十九…...
【Linux】Linux远程访问Windows下的MySQL数据库
1.建立Windows防火墙规则 首先需要开放windows防火墙,针对3306端口单独创建一条规则,允许访问。 打开windows安全中心防火墙与保护,点击高级设置 进入之后,点击入站规则,新建一条规则 新建端口入站规则 端口填写330…...
android安卓core tombstone .pb
Tombstone原理分析_内核工匠的博客-CSDN博客 android tombstone分析_tombstone 分析_良知犹存的博客-CSDN博客 Tombstone简介 当一个native程序开始执行时,系统会注册一些连接到debuggerd的signal handlers。针对进程出现的不同的异常状态,Linux kernel…...
C++简单实现红黑树
目录 一、概念 二、红黑树的性质 三、红黑树的定义 四、红黑树的插入操作 情况一(叔叔节点存在且为红色)——变色向上调整: 情况二(叔叔节点不存在或为黑色)——旋转变色: 2.1叔叔节点不存在 2.2叔叔…...
国庆加速度!新增功能点锁定功能,敏捷开发新增估算功能,助力项目快速突破!
大家好,CoCode开发云旗下Co-Project V3.6智能项目管理平台正式发布,平台新增功能点锁定功能、敏捷开发模式新增估算板块和两种估算方式。 功能点锁定功能进一步提高了项目估算的灵活性和准确性,有利于提高项目估算效率;而敏捷开发…...
uniapp 如何动态切换应用图标、名称
有时候我们需要实现类似百度网盘、淘宝APP这种可以动态切换 但是呢这种需求平常非常少见 很多人不知道如何操作 今天就教大家如何实现 这里我们需要用到一款插件Ba-ChangeIcon Ba-ChangeIcon 是一款uniapp动态切换应用图标、名称的插件。可实现过年、过节动态切换应用图标的效…...
CUDA学习笔记0929
一、GPU缓存和变量作用域 1. 缓存类型 (1)GPU缓存是非可编程存储区域 (2)GPU包含4类缓存: L1缓存,每个流处理器一个 L2缓存,全部流处理器共享一个 L1和L2都可用于存储本地和全局内存中的数…...
XML-Based Configuration Beans for Ioc Container
XML-Based Configuration XML-based configuration is the traditional way of configuring beans in Spring. <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"h…...
莱山做网站的公司/一键优化免费下载
文/ IT创事记 祁萌人工智能变现的速度和能力超乎了传统行业的想象。即便在计算机视觉这样的“市场显学”中,一个独特的切入点就可以让一家创业公司在市场中崭露头角。华为北京城市峰会中,生态伙伴对云与AI格外关注。小视科技(Minivision&…...
网站流量查询网站统计查询/网站维护中是什么意思
字典 ~~不定时更新🎃,上次更新:2023/02/28 🗡常用函数(方法) 1. dic.get(key) --> 判断字典 dic 是否有 key,有返回其对应的值,没有返回 None 举个栗子🌰 dic …...
如何查看网站点击量/查询网站流量的网址
1.触发器 这是一个非常简单直接的解决方案,我们只需要将DTS引擎驻留在比如windows服务中,该引擎通过数据库的触发器事件获取源表数据更新的所有情况,即增量,然后相应的更新目的表。然而,由谁来创建触发器了…...
wordpress 删除图片/重庆网络推广外包
简单的来说就是为了方便查找和导航代码用的。 下面举例如何快速的定位到我已经标识过的代码。#pragma mark 播放节拍器- (void) Run:(NSNumber *)tick{ //... } OK,那么如何查找呢,点击代码编辑器上面的导航栏即可:接着我修改一下代码:#pragm…...
本地江苏网站建设/24小时自助下单平台网站便宜
更新(Update) 在ThinkPHP中使用save方法更新数据库,并且也支持连贯操作的使用。 save 更新数据到数据库用法 save($data,$optionsarray())参数 data:要保存的数据,如果为空,则取当前的数据对象。 option…...
工程信息网站谁做/百度新闻客户端
Introduction 参考链接:2014斯坦福大学机器学习视频 本篇是针对当凭直觉做完一个Baseline以后,如何提高现有的识别率?依然凭直觉有以下几种方法: 1、增加训练数据集 2、挑选出更少的特征 3、增加其他特征 4、增加多项式x1*x2 5、减少…...