博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
————————————————计算机毕业设计题目《1000套》✌
目录
一.前言介绍及开发技术
二.功能设计
三.功能截图
四.数据库表结构设计
五.关键代码
六.论文目录参考
七.源码获取
一.前言介绍及开发技术
使用旧方法对校园订餐系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在校园订餐系统的管理上面,可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择B/S模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园订餐系统程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。
二.功能设计
这次开发的校园订餐系统对菜品管理、菜品收藏管理、菜品评价管理、菜品订单管理、字典管理、论坛管理、公告管理、用户管理、管理员管理等进行集中化处理。校园订餐系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理菜品管理信息,管理公告信息等内容。校园订餐系统针对用户设置的功能有:查看并修改个人信息,查看菜品管理信息,查看公告信息等内容。
三.功能截图
系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。
系统首页可以看到菜品展示和公告展示。
首页的菜品的进入后可以看到推荐的菜品以及菜品价格,还可以对该菜品进行购买下单和看到其他用户对该菜品的评论。
首页论坛可以发布帖子也可以查看其他用户发布的帖子。
个人中心可以对个人信息和进行更新和修改。
菜品管理页面提供的功能操作有:查看菜品管理,删除菜品管理操作,新增菜品管理操作,修改菜品管理操作。
公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。
公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。
四.数据库表结构设计
CREATE TABLE `caipin` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
`caipin_name` varchar(200) DEFAULT NULL COMMENT '菜品名称 Search111 ',
`caipin_uuid_number` varchar(200) DEFAULT NULL COMMENT '菜品编号',
`caipin_photo` varchar(200) DEFAULT NULL COMMENT '菜品照片',
`caipin_types` int(11) DEFAULT NULL COMMENT '菜品类型 Search111',
`caipin_kucun_number` int(11) DEFAULT NULL COMMENT '菜品库存',
`caipin_new_money` decimal(10,2) DEFAULT NULL COMMENT '金额',
`caipin_clicknum` int(11) DEFAULT NULL COMMENT '菜品热度',
`caipin_content` longtext COMMENT '菜品介绍 ',
`caipin_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='菜品';
/*Data for the table `caipin` */
insert into `caipin`(`id`,`caipin_name`,`caipin_uuid_number`,`caipin_photo`,`caipin_types`,`caipin_kucun_number`,`caipin_new_money`,`caipin_clicknum`,`caipin_content`,`caipin_delete`,`insert_time`,`create_time`) values (1,'菜品名称1','1679384221158','upload/caipin1.jpg',4,101,'225.26',452,'菜品介绍1',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(2,'菜品名称2','1679384221161','upload/caipin2.jpg',4,102,'23.70',134,'菜品介绍2',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(3,'菜品名称3','1679384221243','upload/caipin3.jpg',4,103,'16.51',239,'菜品介绍3',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(4,'菜品名称4','1679384221199','upload/caipin4.jpg',3,104,'98.06',33,'菜品介绍4',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(5,'菜品名称5','1679384221204','upload/caipin5.jpg',2,104,'210.52',402,'菜品介绍5',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(6,'菜品名称6','1679384221199','upload/caipin6.jpg',4,106,'304.78',293,'菜品介绍6',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(7,'菜品名称7','1679384221205','upload/caipin7.jpg',4,107,'91.19',313,'菜品介绍7',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(8,'菜品名称8','1679384221204','upload/caipin8.jpg',1,108,'362.03',33,'菜品介绍8',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(9,'菜品名称9','1679384221232','upload/caipin9.jpg',4,109,'476.64',39,'菜品介绍9',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(10,'菜品名称10','1679384221157','upload/caipin10.jpg',3,1010,'448.01',127,'菜品介绍10',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(11,'菜品名称11','1679384221180','upload/caipin11.jpg',1,1011,'266.65',261,'菜品介绍11',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(12,'菜品名称12','1679384221197','upload/caipin12.jpg',4,1012,'271.67',94,'菜品介绍12',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(13,'菜品名称13','1679384221245','upload/caipin13.jpg',4,1013,'106.38',54,'菜品介绍13',1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(14,'菜品名称14','1679384221154','upload/caipin14.jpg',2,1014,'219.71',146,'菜品介绍14',1,'2023-03-21 15:37:01','2023-03-21 15:37:01');
/*Table structure for table `caipin_collection` */
DROP TABLE IF EXISTS `caipin_collection`;
CREATE TABLE `caipin_collection` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`caipin_id` int(11) DEFAULT NULL COMMENT '菜品',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`caipin_collection_types` int(11) DEFAULT NULL COMMENT '类型',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='菜品收藏';
/*Data for the table `caipin_collection` */
insert into `caipin_collection`(`id`,`caipin_id`,`yonghu_id`,`caipin_collection_types`,`insert_time`,`create_time`) values (1,1,3,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(2,2,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(3,3,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(4,4,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(5,5,3,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(6,6,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(7,7,3,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(8,8,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(9,9,1,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(10,10,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(11,11,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(12,12,1,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(13,13,2,1,'2023-03-21 15:37:01','2023-03-21 15:37:01'),(14,14,1,1,'2023-03-21 15:37:01','2023-03-21 15:37:01');
/*Table structure for table `caipin_commentback` */
DROP TABLE IF EXISTS `caipin_commentback`;
CREATE TABLE `caipin_commentback` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`caipin_id` int(11) DEFAULT NULL COMMENT '菜品',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`caipin_commentback_text` longtext COMMENT '评价内容',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '评价时间',
`reply_text` longtext COMMENT '回复内容',
`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='菜品评价';
/*Data for the table `caipin_commentback` */
insert into `caipin_commentback`(`id`,`caipin_id`,`yonghu_id`,`caipin_commentback_text`,`insert_time`,`reply_text`,`update_time`,`create_time`) values (1,1,1,'评价内容1','2023-03-21 15:37:01','回复信息1','2023-03-21 15:37:01','2023-03-21 15:37:01'),(2,2,3,'评价内容2','2023-03-21 15:37:01','回复信息2','2023-03-21 15:37:01','2023-03-21 15:37:01'),(3,3,2,'评价内容3','2023-03-21 15:37:01','回复信息3','2023-03-21 15:37:01','2023-03-21 15:37:01'),(4,4,2,'评价内容4','2023-03-21 15:37:01','回复信息4','2023-03-21 15:37:01','2023-03-21 15:37:01'),(5,5,3,'评价内容5','2023-03-21 15:37:01','回复信息5','2023-03-21 15:37:01','2023-03-21 15:37:01'),(6,6,1,'评价内容6','2023-03-21 15:37:01','回复信息6','2023-03-21 15:37:01','2023-03-21 15:37:01'),(7,7,2,'评价内容7','2023-03-21 15:37:01','回复信息7','2023-03-21 15:37:01','2023-03-21 15:37:01'),(8,8,1,'评价内容8','2023-03-21 15:37:01','回复信息8','2023-03-21 15:37:01','2023-03-21 15:37:01'),(9,9,3,'评价内容9','2023-03-21 15:37:01','回复信息9','2023-03-21 15:37:01','2023-03-21 15:37:01'),(10,10,1,'评价内容10','2023-03-21 15:37:01','回复信息10','2023-03-21 15:37:01','2023-03-21 15:37:01'),(11,11,2,'评价内容11','2023-03-21 15:37:01','回复信息11','2023-03-21 15:37:01','2023-03-21 15:37:01'),(12,12,1,'评价内容12','2023-03-21 15:37:01','回复信息12','2023-03-21 15:37:01','2023-03-21 15:37:01'),(13,13,3,'评价内容13','2023-03-21 15:37:01','回复信息13','2023-03-21 15:37:01','2023-03-21 15:37:01'),(14,14,2,'评价内容14','2023-03-21 15:37:01','回复信息14','2023-03-21 15:37:01','2023-03-21 15:37:01'),(15,5,1,'16541','2023-03-21 16:21:55',NULL,NULL,'2023-03-21 16:21:55');
/*Table structure for table `caipin_order` */
DROP TABLE IF EXISTS `caipin_order`;
CREATE TABLE `caipin_order` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`caipin_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单编号 Search111 ',
`caipin_id` int(11) DEFAULT NULL COMMENT '菜品',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`buy_number` int(11) DEFAULT NULL COMMENT '购买数量',
`caipin_order_true_price` decimal(10,2) DEFAULT NULL COMMENT '实付价格',
`caipin_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='菜品订单';
/*Data for the table `caipin_order` */
insert into `caipin_order`(`id`,`caipin_order_uuid_number`,`caipin_id`,`yonghu_id`,`buy_number`,`caipin_order_true_price`,`caipin_order_types`,`insert_time`,`create_time`) values (1,'1679385426092',5,1,1,'210.52',102,'2023-03-21 15:57:06','2023-03-21 15:57:06'),(2,'1679386747291',5,1,1,'210.52',105,'2023-03-21 16:19:07','2023-03-21 16:19:07');
/*Table structure for table `config` */
DROP TABLE IF EXISTS `config`;
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='配置文件';
/*Data for the table `config` */
insert into `config`(`id`,`name`,`value`) values (1,'轮播图1','upload/config1.jpg'),(2,'轮播图2','upload/config2.jpg'),(3,'轮播图3','upload/config3.jpg');
/*Table structure for table `dictionary` */
DROP TABLE IF EXISTS `dictionary`;
CREATE TABLE `dictionary` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`dic_code` varchar(200) DEFAULT NULL COMMENT '字段',
`dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',
`code_index` int(11) DEFAULT NULL COMMENT '编码',
`index_name` varchar(200) DEFAULT NULL COMMENT '编码名字 Search111 ',
`super_id` int(11) DEFAULT NULL COMMENT '父字段id',
`beizhu` varchar(200) DEFAULT NULL COMMENT '备注',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='字典';
/*Data for the table `dictionary` */
insert into `dictionary`(`id`,`dic_code`,`dic_name`,`code_index`,`index_name`,`super_id`,`beizhu`,`create_time`) values (1,'sex_types','性别类型',1,'男',NULL,NULL,'2023-03-21 15:36:04'),(2,'sex_types','性别类型',2,'女',NULL,NULL,'2023-03-21 15:36:04'),(3,'gonggao_types','公告类型',1,'公告类型1',NULL,NULL,'2023-03-21 15:36:04'),(4,'gonggao_types','公告类型',2,'公告类型2',NULL,NULL,'2023-03-21 15:36:04'),(5,'forum_state_types','帖子状态',1,'发帖',NULL,NULL,'2023-03-21 15:36:04'),(6,'forum_state_types','帖子状态',2,'回帖',NULL,NULL,'2023-03-21 15:36:04'),(7,'caipin_types','菜品类型',1,'菜品类型1',NULL,NULL,'2023-03-21 15:36:04'),(8,'caipin_types','菜品类型',2,'菜品类型2',NULL,NULL,'2023-03-21 15:36:04'),(9,'caipin_types','菜品类型',3,'菜品类型3',NULL,NULL,'2023-03-21 15:36:04'),(10,'caipin_types','菜品类型',4,'菜品类型4',NULL,NULL,'2023-03-21 15:36:04'),(11,'caipin_collection_types','收藏表类型',1,'收藏',NULL,NULL,'2023-03-21 15:36:04'),(12,'caipin_order_types','订单类型',101,'已支付',NULL,NULL,'2023-03-21 15:36:05'),(13,'caipin_order_types','订单类型',102,'已退款',NULL,NULL,'2023-03-21 15:36:05'),(14,'caipin_order_types','订单类型',103,'已取餐',NULL,NULL,'2023-03-21 15:36:05'),(15,'caipin_order_types','订单类型',104,'已用餐',NULL,NULL,'2023-03-21 15:36:05'),(16,'caipin_order_types','订单类型',105,'已评价',NULL,NULL,'2023-03-21 15:36:05');
/*Table structure for table `forum` */
DROP TABLE IF EXISTS `forum`;
CREATE TABLE `forum` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`forum_name` varchar(200) DEFAULT NULL COMMENT '帖子标题 Search111 ',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`users_id` int(11) DEFAULT NULL COMMENT '管理员',
`forum_content` text COMMENT '发布内容',
`super_ids` int(11) DEFAULT NULL COMMENT '父id',
`forum_state_types` int(11) DEFAULT NULL COMMENT '帖子状态',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '发帖时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show2',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='论坛';
/*Data for the table `forum` */
insert into `forum`(`id`,`forum_name`,`yonghu_id`,`users_id`,`forum_content`,`super_ids`,`forum_state_types`,`insert_time`,`update_time`,`create_time`) values (1,'帖子标题1',2,NULL,'发布内容1',451,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(2,'帖子标题2',3,NULL,'发布内容2',315,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(3,'帖子标题3',3,NULL,'发布内容3',412,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(4,'帖子标题4',3,NULL,'发布内容4',25,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(5,'帖子标题5',1,NULL,'发布内容5',267,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(6,'帖子标题6',3,NULL,'发布内容6',417,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(7,'帖子标题7',3,NULL,'发布内容7',459,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(8,'帖子标题8',2,NULL,'发布内容8',387,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(9,'帖子标题9',3,NULL,'发布内容9',67,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(10,'帖子标题10',2,NULL,'发布内容10',192,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(11,'帖子标题11',2,NULL,'发布内容11',300,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(12,'帖子标题12',1,NULL,'发布内容12',447,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(13,'帖子标题13',2,NULL,'发布内容13',112,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(14,'帖子标题14',3,NULL,'发布内容14',50,1,'2023-03-21 15:37:01','2023-03-21 15:37:01','2023-03-21 15:37:01'),(15,'忒咋',1,NULL,'<p>帖子</p>',NULL,1,'2023-03-21 16:19:25',NULL,'2023-03-21 16:19:25'),(16,NULL,NULL,1,'12651',15,2,'2023-03-21 16:22:15',NULL,'2023-03-21 16:22:15');
/*Table structure for table `gonggao` */
DROP TABLE IF EXISTS `gonggao`;
CREATE TABLE `gonggao` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
`gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111 ',
`gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',
`gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '公告发布时间 ',
`gonggao_content` longtext COMMENT '公告详情 ',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告';
/*Data for the table `gonggao` */
insert into `gonggao`(`id`,`gonggao_name`,`gonggao_photo`,`gonggao_types`,`insert_time`,`gonggao_content`,`create_time`) values (1,'公告名称1','upload/gonggao1.jpg',2,'2023-03-21 15:37:01','公告详情1','2023-03-21 15:37:01'),(2,'公告名称2','upload/gonggao2.jpg',2,'2023-03-21 15:37:01','公告详情2','2023-03-21 15:37:01'),(3,'公告名称3','upload/gonggao3.jpg',2,'2023-03-21 15:37:01','公告详情3','2023-03-21 15:37:01'),(4,'公告名称4','upload/gonggao4.jpg',2,'2023-03-21 15:37:01','公告详情4','2023-03-21 15:37:01'),(5,'公告名称5','upload/gonggao5.jpg',2,'2023-03-21 15:37:01','公告详情5','2023-03-21 15:37:01'),(6,'公告名称6','upload/gonggao6.jpg',1,'2023-03-21 15:37:01','公告详情6','2023-03-21 15:37:01'),(7,'公告名称7','upload/gonggao7.jpg',2,'2023-03-21 15:37:01','公告详情7','2023-03-21 15:37:01'),(8,'公告名称8','upload/gonggao8.jpg',1,'2023-03-21 15:37:01','公告详情8','2023-03-21 15:37:01'),(9,'公告名称9','upload/gonggao9.jpg',2,'2023-03-21 15:37:01','公告详情9','2023-03-21 15:37:01'),(10,'公告名称10','upload/gonggao10.jpg',1,'2023-03-21 15:37:01','公告详情10','2023-03-21 15:37:01'),(11,'公告名称11','upload/gonggao11.jpg',1,'2023-03-21 15:37:01','公告详情11','2023-03-21 15:37:01'),(12,'公告名称12','upload/gonggao12.jpg',2,'2023-03-21 15:37:01','公告详情12','2023-03-21 15:37:01'),(13,'公告名称13','upload/gonggao13.jpg',1,'2023-03-21 15:37:01','公告详情13','2023-03-21 15:37:01'),(14,'公告名称14','upload/gonggao14.jpg',1,'2023-03-21 15:37:01','公告详情14','2023-03-21 15:37:01');
/*Table structure for table `token` */
DROP TABLE IF EXISTS `token`;
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=3 DEFAULT CHARSET=utf8 COMMENT='token表';
/*Data for the table `token` */
insert into `token`(`id`,`userid`,`username`,`tablename`,`role`,`token`,`addtime`,`expiratedtime`) values (1,1,'a1','yonghu','用户','lggbjcrb6jg2tbbbmneqbft3q38cpl4n','2023-03-21 15:43:27','2023-03-21 17:18:23'),(2,1,'admin','users','管理员','srf34ienjwwuol8weqrbfkokwk7xuarn','2023-03-21 15:58:27','2023-03-21 18:10:27');
/*Table structure for table `users` */
DROP TABLE IF EXISTS `users`;
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='管理员';
/*Data for the table `users` */
insert into `users`(`id`,`username`,`password`,`role`,`addtime`) values (1,'admin','admin','管理员','2023-03-21 15:36:04');
/*Table structure for table `yonghu` */
DROP TABLE IF EXISTS `yonghu`;
CREATE TABLE `yonghu` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(200) DEFAULT NULL COMMENT '账户',
`password` varchar(200) DEFAULT NULL COMMENT '密码',
`yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',
`yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',
`yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',
`yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',
`sex_types` int(11) DEFAULT NULL COMMENT '性别',
`new_money` decimal(10,2) DEFAULT NULL COMMENT '余额 ',
`yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户';
/*Data for the table `yonghu` */
insert into `yonghu`(`id`,`username`,`password`,`yonghu_name`,`yonghu_phone`,`yonghu_id_number`,`yonghu_photo`,`sex_types`,`new_money`,`yonghu_email`,`create_time`) values (1,'a1','123456','用户姓名1','17703786901','410224199010102001','upload/yonghu1.jpg',2,'623.51','1@qq.com','2023-03-21 15:37:01'),(2,'a2','123456','用户姓名2','17703786902','410224199010102002','upload/yonghu2.jpg',1,'527.35','2@qq.com','2023-03-21 15:37:01'),(3,'a3','123456','用户姓名3','17703786903','410224199010102003','upload/yonghu3.jpg',1,'696.15','3@qq.com','2023-03-21 15:37:01');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
五.关键代码
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{
@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);
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👇🏻