计算机毕业设计 基于SpringBoot的线上教育培训办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解

news2024/11/16 0:53:48

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
————————————————
计算机毕业设计《1000套》✌

目录

1、项目介绍及开发技术

1.1 项目介绍

1.2 开发技术

2、系统功能设计结构图

3、功能截图

4、数据库表结构设计

5、关键代码

5.1 备课信息Controller模块 

5.2 备课信息Service模块 

5.3 备课信息ServiceImpl模块

5.4 备课信息Dao模块

6、论文目录结构

7、源码获取


1、项目介绍及开发技术

1.1 项目介绍

传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装线上教育培训办公系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,线上教育培训办公系统的有效运用可以帮助管理人员准确快速地处理信息。

线上教育培训办公系统在对开发工具的选择上也很慎重,为了便于开发实现,选择的开发工具为Eclipse,选择的数据库工具为Mysql。以此搭建开发环境实现线上教育培训办公系统的功能。其中管理员管理用户,新闻公告。

线上教育培训办公系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计,以及数据查询等处理要求,线上教育培训办公系统都可以轻松应对。

1.2 开发技术

Java开发语言、SpringBoot、MyBatisPlus、MySQL数据库、Maven、IDEA开发工具、JDK1.8+、Vue、HTML、CSS、JS。

2、系统功能设计结构图

3、功能截图

学生信息管理:学生信息的查询管理,可以删除学生信息、修改学生信息、新增学生信息,还进行了对用户名称的模糊查询的条件。

教师信息管理: 查看已发布的教师信息数据,修改教师信息,教师信息作废,即可删除,还进行了对教师信息名称的模糊查询 教师信息信息的类型查询等等一些条件。

公告类型管理:根据公告类型进行条件查询,还可以对公告类型进行新增、修改、查询操作等等.

公告信息管理:根据公告信息进行新增、修改、查询操作等等。

4、数据库表结构设计

CREATE DATABASE /*!32312 IF NOT EXISTS*/`xianshangjiaoyupeuxunbangong` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `xianshangjiaoyupeuxunbangong`;

/*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 `dianfnag` */

DROP TABLE IF EXISTS `dianfnag`;

CREATE TABLE `dianfnag` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `dianfnag_name` varchar(200) DEFAULT NULL COMMENT '标题 Search111',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '学生',
  `jiaoshi_id` int(11) DEFAULT NULL COMMENT '教师',
  `dianfnag_cishu` int(11) DEFAULT NULL COMMENT '本周电访次数',
  `dianfnag_shijian` int(11) DEFAULT NULL COMMENT '本周电访时间',
  `dianfnag_text` text COMMENT '备注',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='电访信息';

/*Data for the table `dianfnag` */

insert  into `dianfnag`(`id`,`dianfnag_name`,`yonghu_id`,`jiaoshi_id`,`dianfnag_cishu`,`dianfnag_shijian`,`dianfnag_text`,`insert_time`,`create_time`) values (1,'标题1',2,1,235,279,'备注1','2023-02-22 15:25:21','2023-02-22 15:25:21'),(2,'标题2',2,1,279,331,'备注2','2023-02-22 15:25:21','2023-02-22 15:25:21'),(3,'标题3',3,2,219,130,'备注3','2023-02-22 15:25:21','2023-02-22 15:25:21'),(4,'标题4',3,3,48,13,'备注4','2023-02-22 15:25:21','2023-02-22 15:25:21'),(5,'标题5',1,3,6,501,'备注5','2023-02-22 15:25:21','2023-02-22 15:25:21'),(6,'123',3,1,123,123,'123','2023-02-22 16:04:26','2023-02-22 16:04:26');

/*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=31 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,'kecheng_types','课程类型',1,'课程类型1',NULL,NULL,'2023-02-22 15:25:10'),(2,'kecheng_types','课程类型',2,'课程类型2',NULL,NULL,'2023-02-22 15:25:10'),(3,'kecheng_types','课程类型',3,'课程类型3',NULL,NULL,'2023-02-22 15:25:10'),(4,'jiaoxueshipin_types','备课类型',1,'备课类型1',NULL,NULL,'2023-02-22 15:25:10'),(5,'jiaoxueshipin_types','备课类型',2,'备课类型2',NULL,NULL,'2023-02-22 15:25:10'),(6,'jiaoxueshipin_types','备课类型',3,'备课类型3',NULL,NULL,'2023-02-22 15:25:10'),(7,'yunyingshijian_types','运营事件类型',1,'运营事件类型1',NULL,NULL,'2023-02-22 15:25:10'),(8,'yunyingshijian_types','运营事件类型',2,'运营事件类型2',NULL,NULL,'2023-02-22 15:25:10'),(9,'yunyingshijian_types','运营事件类型',3,'运营事件类型3',NULL,NULL,'2023-02-22 15:25:10'),(10,'kaihuitongzhi_types','会议类型',1,'会议类型1',NULL,NULL,'2023-02-22 15:25:11'),(11,'kaihuitongzhi_types','会议类型',2,'会议类型2',NULL,NULL,'2023-02-22 15:25:11'),(12,'kaihuitongzhi_types','会议类型',3,'会议类型3',NULL,NULL,'2023-02-22 15:25:11'),(13,'jiaoshiqingjia_types','请假类型',1,'生病',NULL,NULL,'2023-02-22 15:25:11'),(14,'jiaoshiqingjia_types','请假类型',2,'有事',NULL,NULL,'2023-02-22 15:25:11'),(15,'jiaoshiqingjia_types','请假类型',3,'其他',NULL,NULL,'2023-02-22 15:25:11'),(16,'jiaoshiqingjia_yesno_types','申请状态',1,'待审核',NULL,NULL,'2023-02-22 15:25:11'),(17,'jiaoshiqingjia_yesno_types','申请状态',2,'同意',NULL,NULL,'2023-02-22 15:25:11'),(18,'jiaoshiqingjia_yesno_types','申请状态',3,'拒绝',NULL,NULL,'2023-02-22 15:25:11'),(19,'zuoye_types','作业类型',1,'作业类型1',NULL,NULL,'2023-02-22 15:25:11'),(20,'zuoye_types','作业类型',2,'作业类型2',NULL,NULL,'2023-02-22 15:25:11'),(21,'zuoye_types','作业类型',3,'作业类型3',NULL,NULL,'2023-02-22 15:25:11'),(22,'news_types','公告类型',1,'公告类型1',NULL,NULL,'2023-02-22 15:25:11'),(23,'news_types','公告类型',2,'公告类型2',NULL,NULL,'2023-02-22 15:25:11'),(24,'news_types','公告类型',3,'公告类型3',NULL,NULL,'2023-02-22 15:25:11'),(25,'sex_types','性别',1,'男',NULL,NULL,'2023-02-22 15:25:11'),(26,'sex_types','性别',2,'女',NULL,NULL,'2023-02-22 15:25:11'),(27,'banji_types','班级',1,'班级1',NULL,NULL,'2023-02-22 15:25:11'),(28,'banji_types','班级',2,'班级2',NULL,NULL,'2023-02-22 15:25:11'),(29,'forum_state_types','帖子状态',1,'发帖',NULL,NULL,'2023-02-22 15:25:11'),(30,'forum_state_types','帖子状态',2,'回帖',NULL,NULL,'2023-02-22 15:25:11');

/*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 '学生',
  `jiaoshi_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=11 DEFAULT CHARSET=utf8 COMMENT='交流平台';

/*Data for the table `forum` */

insert  into `forum`(`id`,`forum_name`,`yonghu_id`,`jiaoshi_id`,`users_id`,`forum_content`,`super_ids`,`forum_state_types`,`insert_time`,`update_time`,`create_time`) values (1,'帖子标题1',1,NULL,NULL,'发布内容1',364,1,'2023-02-22 15:25:21','2023-02-22 15:25:21','2023-02-22 15:25:21'),(2,'帖子标题2',3,NULL,NULL,'发布内容2',62,1,'2023-02-22 15:25:21','2023-02-22 15:25:21','2023-02-22 15:25:21'),(3,'帖子标题3',3,NULL,NULL,'发布内容3',500,1,'2023-02-22 15:25:21','2023-02-22 15:25:21','2023-02-22 15:25:21'),(4,'帖子标题4',2,NULL,NULL,'发布内容4',178,1,'2023-02-22 15:25:21','2023-02-22 15:25:21','2023-02-22 15:25:21'),(5,'帖子标题5',3,NULL,NULL,'发布内容5',444,1,'2023-02-22 15:25:21','2023-02-22 15:25:21','2023-02-22 15:25:21'),(8,NULL,1,NULL,NULL,'123333',5,2,'2023-02-22 16:03:52',NULL,'2023-02-22 16:03:52'),(9,NULL,NULL,1,NULL,'333333333',5,2,'2023-02-22 16:05:10',NULL,'2023-02-22 16:05:10'),(10,NULL,NULL,NULL,1,'123312132',5,2,'2023-02-22 16:06:39',NULL,'2023-02-22 16:06:39');

/*Table structure for table `jiaoshi` */

DROP TABLE IF EXISTS `jiaoshi`;

CREATE TABLE `jiaoshi` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(200) DEFAULT NULL COMMENT '账户',
  `password` varchar(200) DEFAULT NULL COMMENT '密码',
  `jiaoshi_name` varchar(200) DEFAULT NULL COMMENT '教师姓名 Search111 ',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
  `jiaoshi_photo` varchar(200) DEFAULT NULL COMMENT '教师头像',
  `jiaoshi_id_number` varchar(200) DEFAULT NULL COMMENT '身份证号',
  `jiaoshi_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',
  `jiaoshi_email` varchar(200) DEFAULT NULL COMMENT '电子邮箱',
  `jiaoshi_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='教师';

/*Data for the table `jiaoshi` */

insert  into `jiaoshi`(`id`,`username`,`password`,`jiaoshi_name`,`sex_types`,`jiaoshi_photo`,`jiaoshi_id_number`,`jiaoshi_phone`,`jiaoshi_email`,`jiaoshi_delete`,`create_time`) values (1,'a1','123456','教师姓名1',2,'upload/jiaoshi1.jpg','410224199010102001','17703786901','1@qq.com',1,'2023-02-22 15:25:21'),(2,'a2','123456','教师姓名2',2,'upload/jiaoshi2.jpg','410224199010102002','17703786902','2@qq.com',1,'2023-02-22 15:25:21'),(3,'a3','123456','教师姓名3',1,'upload/jiaoshi3.jpg','410224199010102003','17703786903','3@qq.com',1,'2023-02-22 15:25:21');

/*Table structure for table `jiaoshiqingjia` */

DROP TABLE IF EXISTS `jiaoshiqingjia`;

CREATE TABLE `jiaoshiqingjia` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `jiaoshi_id` int(200) DEFAULT NULL COMMENT '教师',
  `jiaoshiqingjia_name` varchar(200) DEFAULT NULL COMMENT '请假标题 Search111 ',
  `jiaoshiqingjia_text` text COMMENT '请假缘由',
  `jiaoshiqingjia_types` int(11) DEFAULT NULL COMMENT '请假类型 Search111',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '申请时间',
  `jiaoshiqingjia_time` timestamp NULL DEFAULT NULL COMMENT '请假时间',
  `jiaoshiqingjia_number` int(200) DEFAULT NULL COMMENT '请假天数',
  `jiaoshiqingjia_yesno_types` int(11) DEFAULT NULL COMMENT '申请状态 Search111 ',
  `jiaoshiqingjia_yesno_text` text COMMENT '处理意见',
  `jiaoshiqingjia_shenhe_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='教师请假';

/*Data for the table `jiaoshiqingjia` */

insert  into `jiaoshiqingjia`(`id`,`jiaoshi_id`,`jiaoshiqingjia_name`,`jiaoshiqingjia_text`,`jiaoshiqingjia_types`,`insert_time`,`jiaoshiqingjia_time`,`jiaoshiqingjia_number`,`jiaoshiqingjia_yesno_types`,`jiaoshiqingjia_yesno_text`,`jiaoshiqingjia_shenhe_time`,`create_time`) values (1,1,'请假标题1','请假缘由1',1,'2023-02-22 15:25:21','2023-02-22 15:25:21',327,1,NULL,NULL,'2023-02-22 15:25:21'),(2,3,'请假标题2','请假缘由2',3,'2023-02-22 15:25:21','2023-02-22 15:25:21',211,1,NULL,NULL,'2023-02-22 15:25:21'),(3,1,'请假标题3','请假缘由3',3,'2023-02-22 15:25:21','2023-02-22 15:25:21',254,1,NULL,NULL,'2023-02-22 15:25:21'),(4,1,'请假标题4','请假缘由4',3,'2023-02-22 15:25:21','2023-02-22 15:25:21',485,1,NULL,NULL,'2023-02-22 15:25:21'),(5,3,'请假标题5','请假缘由5',1,'2023-02-22 15:25:21','2023-02-22 15:25:21',449,3,'123123123','2023-02-22 16:06:12','2023-02-22 15:25:21'),(10,1,'123','123',2,'2023-02-22 16:04:43','2023-02-23 00:00:00',10,2,'123','2023-02-22 16:06:06','2023-02-22 16:04:43');

/*Table structure for table `jiaoxueshipin` */

DROP TABLE IF EXISTS `jiaoxueshipin`;

CREATE TABLE `jiaoxueshipin` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `jiaoxueshipin_name` varchar(200) DEFAULT NULL COMMENT '备课信息标题 Search111',
  `jiaoxueshipin_photo` varchar(200) DEFAULT NULL COMMENT '备课信息照片',
  `jiaoxueshipin_file` varchar(200) DEFAULT NULL COMMENT '备课资料',
  `jiaoxueshipin_types` int(11) DEFAULT NULL COMMENT '备课类型 Search111',
  `jiaoshi_id` int(11) DEFAULT NULL COMMENT '教师',
  `jiaoxueshipin_time` timestamp NULL DEFAULT NULL COMMENT '上课时间',
  `jiaoxueshipin_content` text COMMENT '备课详情',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
  `jiaoxueshipin_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='备课信息';

/*Data for the table `jiaoxueshipin` */

insert  into 
/*Table structure for table `kaihuitongzhi` */

DROP TABLE IF EXISTS `kaihuitongzhi`;

CREATE TABLE `kaihuitongzhi` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `kaihuitongzhi_name` varchar(200) DEFAULT NULL COMMENT '会议标题 Search111',
  `kaihuitongzhi_types` int(11) DEFAULT NULL COMMENT '会议类型 Search111',
  `kaihuitongzhi_content` text COMMENT '会议详情',
  `kaihuitongzhi_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='会议';

/*Data for the table `kaihuitongzhi` */

insert  into 
/*Table structure for table `kecheng` */

DROP TABLE IF EXISTS `kecheng`;

CREATE TABLE `kecheng` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `kecheng_name` varchar(200) DEFAULT NULL COMMENT '课程标题 Search111',
  `kecheng_photo` varchar(200) DEFAULT NULL COMMENT '课程照片',
  `kecheng_types` int(11) DEFAULT NULL COMMENT '课程类型 Search111',
  `kecheng_shichang` int(11) DEFAULT NULL COMMENT '课程时长',
  `kecheng_time` timestamp NULL DEFAULT NULL COMMENT '开始时间',
  `banji_types` int(11) DEFAULT NULL COMMENT '班级 Search111',
  `jiaoshi_id` int(11) DEFAULT NULL COMMENT '教师',
  `kecheng_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `kecheng_content` text COMMENT '课程详情',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='课程信息';

/*Data for the table `kecheng` */

insert  into 

/*Table structure for table `news` */

DROP TABLE IF EXISTS `news`;

CREATE TABLE `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `news_name` varchar(200) DEFAULT NULL COMMENT '公告标题  Search111 ',
  `news_types` int(11) DEFAULT NULL COMMENT '公告类型  Search111 ',
  `news_photo` varchar(200) DEFAULT NULL COMMENT '公告图片',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
  `news_content` text COMMENT '公告详情',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='通知公告';

/*Data for the table `news` */

insert  into `news`(`id`,`news_name`,`news_types`,`news_photo`,`insert_time`,`news_content`,`create_time`) values (1,'公告标题1',3,'upload/news1.jpg','2023-02-22 15:25:21','公告详情1','2023-02-22 15:25:21'),(2,'公告标题2',2,'upload/news2.jpg','2023-02-22 15:25:21','公告详情2','2023-02-22 15:25:21'),(3,'公告标题3',3,'upload/news3.jpg','2023-02-22 15:25:21','公告详情3','2023-02-22 15:25:21'),(4,'公告标题4',2,'upload/news4.jpg','2023-02-22 15:25:21','公告详情4','2023-02-22 15:25:21'),(5,'公告标题5',1,'upload/news5.jpg','2023-02-22 15:25:21','公告详情5','2023-02-22 15:25:21');

/*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=4 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','学生','5zutfpy0cwt48pi661myivu0x3wd0dv7','2023-02-22 15:39:47','2023-02-22 17:03:29'),(2,1,'a1','jiaoshi','教师','7eq89rw9u03v0sf93nspa2g0gv903hhd','2023-02-22 16:04:10','2023-02-22 17:04:10'),(3,1,'admin','users','管理员','wl9qnbsac7kbjv2dw26xiv45n99ybg67','2023-02-22 16:05:20','2023-02-22 17:07:54');

/*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','管理员','2022-05-01 00:00:00');

/*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 ',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
  `yonghu_photo` varchar(200) DEFAULT NULL COMMENT '学生头像',
  `yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '身份证号',
  `yonghu_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',
  `yonghu_email` varchar(200) DEFAULT NULL COMMENT '电子邮箱',
  `banji_types` int(11) DEFAULT NULL COMMENT '班级 Search111',
  `yonghu_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='学生';

/*Data for the table `yonghu` */

insert  into `yonghu`(`id`,`username`,`password`,`yonghu_name`,`sex_types`,`yonghu_photo`,`yonghu_id_number`,`yonghu_phone`,`yonghu_email`,`banji_types`,`yonghu_delete`,`create_time`) values (1,'a1','123456','学生姓名1',1,'upload/yonghu1.jpg','410224199010102001','17703786901','1@qq.com',2,1,'2023-02-22 15:25:21'),(2,'a2','123456','学生姓名2',2,'upload/yonghu2.jpg','410224199010102002','17703786902','2@qq.com',2,1,'2023-02-22 15:25:21'),(3,'a3','123456','学生姓名3',1,'upload/yonghu3.jpg','410224199010102003','17703786903','3@qq.com',2,1,'2023-02-22 15:25:21');

/*Table structure for table `yunyingshijian` */

DROP TABLE IF EXISTS `yunyingshijian`;

CREATE TABLE `yunyingshijian` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `yunyingshijian_name` varchar(200) DEFAULT NULL COMMENT '运营事件标题 Search111',
  `yunyingshijian_types` int(11) DEFAULT NULL COMMENT '运营事件类型 Search111',
  `yunyingshijian_content` text COMMENT '运营事件详情',
  `yunyingshijian_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='运营事件';

/*Data for the table `yunyingshijian` */

insert  into `yunyingshijian`(`id`,`yunyingshijian_name`,`yunyingshijian_types`,`yunyingshijian_content`,`yunyingshijian_delete`,`insert_time`,`create_time`) values (1,'运营事件标题1',2,'运营事件详情1',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(2,'运营事件标题2',2,'运营事件详情2',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(3,'运营事件标题3',3,'运营事件详情3',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(4,'运营事件标题4',2,'运营事件详情4',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(5,'运营事件标题5',2,'运营事件详情5',1,'2023-02-22 15:25:21','2023-02-22 15:25:21');

/*Table structure for table `zuoye` */

DROP TABLE IF EXISTS `zuoye`;

CREATE TABLE `zuoye` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `zuoye_name` varchar(200) DEFAULT NULL COMMENT '作业标题 Search111',
  `zuoye_photo` varchar(200) DEFAULT NULL COMMENT '作业照片',
  `zuoye_types` int(11) DEFAULT NULL COMMENT '作业类型 Search111',
  `zuoye_file` varchar(200) DEFAULT NULL COMMENT '作业',
  `jiaoshi_id` int(11) DEFAULT NULL COMMENT '教师',
  `zuoye_content` text COMMENT '作业详情',
  `zuoye_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=6 DEFAULT CHARSET=utf8 COMMENT='作业';

/*Data for the table `zuoye` */

insert  into `zuoye`(`id`,`zuoye_name`,`zuoye_photo`,`zuoye_types`,`zuoye_file`,`jiaoshi_id`,`zuoye_content`,`zuoye_delete`,`insert_time`,`create_time`) values (1,'作业标题1','upload/zuoye1.jpg',2,'upload/file.rar',1,'作业详情1',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(2,'作业标题2','upload/zuoye2.jpg',1,'upload/file.rar',1,'作业详情2',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(3,'作业标题3','upload/zuoye3.jpg',2,'upload/file.rar',3,'作业详情3',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(4,'作业标题4','upload/zuoye4.jpg',3,'upload/file.rar',2,'作业详情4',1,'2023-02-22 15:25:21','2023-02-22 15:25:21'),(5,'作业标题5','upload/zuoye5.jpg',2,'upload/file.rar',3,'作业详情5',1,'2023-02-22 15:25:21','2023-02-22 15:25:21');

/*!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 */;

5、关键代码

5.1 备课信息Controller模块 

/**
 * 备课信息
 * 后端接口
 * @author 学长编程
 * @email
 * WeChat jsjbysj88 
*/
@RestController
@Controller
@RequestMapping("/jiaoxueshipin")
public class JiaoxueshipinController {
    private static final Logger logger = LoggerFactory.getLogger(JiaoxueshipinController.class);

    private static final String TABLE_NAME = "jiaoxueshipin";

    @Autowired
    private JiaoxueshipinService jiaoxueshipinService;

    @Autowired
    private TokenService tokenService;
    @Autowired
    private DictionaryService dictionaryService;

    //级联表非注册的service
    //注册表service
    @Autowired
    private YonghuService yonghuService;
    @Autowired
    private JiaoshiService jiaoshiService;

    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("学生".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        else if("教师".equals(role))
            params.put("jiaoshiId",request.getSession().getAttribute("userId"));
        params.put("jiaoxueshipinDeleteStart",1);params.put("jiaoxueshipinDeleteEnd",1);
        CommonUtil.checkMap(params);
        PageUtils page = jiaoxueshipinService.queryPage(params);

        //字典表数据转换
        List<JiaoxueshipinView> list =(List<JiaoxueshipinView>)page.getList();
        for(JiaoxueshipinView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        JiaoxueshipinEntity jiaoxueshipin = jiaoxueshipinService.selectById(id);
        if(jiaoxueshipin !=null){
            //entity转view
            JiaoxueshipinView view = new JiaoxueshipinView();
            BeanUtils.copyProperties( jiaoxueshipin , view );//把实体数据重构到view中
            //级联表 教师
            //级联表
            JiaoshiEntity jiaoshi = jiaoshiService.selectById(jiaoxueshipin.getJiaoshiId());
            if(jiaoshi != null){
            BeanUtils.copyProperties( jiaoshi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "jiaoshiId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setJiaoshiId(jiaoshi.getId());
            }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,jiaoxueshipin:{}",this.getClass().getName(),jiaoxueshipin.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("教师".equals(role))
            jiaoxueshipin.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<JiaoxueshipinEntity> queryWrapper = new EntityWrapper<JiaoxueshipinEntity>()
            .eq("jiaoxueshipin_name", jiaoxueshipin.getJiaoxueshipinName())
            .eq("jiaoxueshipin_types", jiaoxueshipin.getJiaoxueshipinTypes())
            .eq("jiaoshi_id", jiaoxueshipin.getJiaoshiId())
            .eq("jiaoxueshipin_delete", jiaoxueshipin.getJiaoxueshipinDelete())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        JiaoxueshipinEntity jiaoxueshipinEntity = jiaoxueshipinService.selectOne(queryWrapper);
        if(jiaoxueshipinEntity==null){
            jiaoxueshipin.setInsertTime(new Date());
            jiaoxueshipin.setJiaoxueshipinDelete(1);
            jiaoxueshipin.setCreateTime(new Date());
            jiaoxueshipinService.insert(jiaoxueshipin);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,jiaoxueshipin:{}",this.getClass().getName(),jiaoxueshipin.toString());
        JiaoxueshipinEntity oldJiaoxueshipinEntity = jiaoxueshipinService.selectById(jiaoxueshipin.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("教师".equals(role))
//            jiaoxueshipin.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        //根据字段查询是否有相同数据
        Wrapper<JiaoxueshipinEntity> queryWrapper = new EntityWrapper<JiaoxueshipinEntity>()
            .notIn("id",jiaoxueshipin.getId())
            .andNew()
            .eq("jiaoxueshipin_name", jiaoxueshipin.getJiaoxueshipinName())
            .eq("jiaoxueshipin_types", jiaoxueshipin.getJiaoxueshipinTypes())
            .eq("jiaoshi_id", jiaoxueshipin.getJiaoshiId())
            .eq("jiaoxueshipin_delete", jiaoxueshipin.getJiaoxueshipinDelete())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        JiaoxueshipinEntity jiaoxueshipinEntity = jiaoxueshipinService.selectOne(queryWrapper);
        if("".equals(jiaoxueshipin.getJiaoxueshipinPhoto()) || "null".equals(jiaoxueshipin.getJiaoxueshipinPhoto())){
                jiaoxueshipin.setJiaoxueshipinPhoto(null);
        }
        if("".equals(jiaoxueshipin.getJiaoxueshipinFile()) || "null".equals(jiaoxueshipin.getJiaoxueshipinFile())){
                jiaoxueshipin.setJiaoxueshipinFile(null);
        }
        if(jiaoxueshipinEntity==null){
            jiaoxueshipinService.updateById(jiaoxueshipin);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<JiaoxueshipinEntity> oldJiaoxueshipinList =jiaoxueshipinService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        ArrayList<JiaoxueshipinEntity> list = new ArrayList<>();
        for(Integer id:ids){
            JiaoxueshipinEntity jiaoxueshipinEntity = new JiaoxueshipinEntity();
            jiaoxueshipinEntity.setId(id);
            jiaoxueshipinEntity.setJiaoxueshipinDelete(2);
            list.add(jiaoxueshipinEntity);
        }
        if(list != null && list.size() >0){
            jiaoxueshipinService.updateBatchById(list);
        }

        return R.ok();
    }

    /**
     * 批量上传
     */
    @RequestMapping("/batchInsert")
    public R save( String fileName, HttpServletRequest request){
        logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
        Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            List<JiaoxueshipinEntity> jiaoxueshipinList = new ArrayList<>();//上传的东西
            Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
            Date date = new Date();
            int lastIndexOf = fileName.lastIndexOf(".");
            if(lastIndexOf == -1){
                return R.error(511,"该文件没有后缀");
            }else{
                String suffix = fileName.substring(lastIndexOf);
                if(!".xls".equals(suffix)){
                    return R.error(511,"只支持后缀为xls的excel文件");
                }else{
                    URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                    File file = new File(resource.getFile());
                    if(!file.exists()){
                        return R.error(511,"找不到上传文件,请联系管理员");
                    }else{
                        List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                        dataList.remove(0);//删除第一行,因为第一行是提示
                        for(List<String> data:dataList){
                            //循环
                            JiaoxueshipinEntity jiaoxueshipinEntity = new JiaoxueshipinEntity();
//                            jiaoxueshipinEntity.setJiaoxueshipinName(data.get(0));                    //备课信息标题 要改的
//                            jiaoxueshipinEntity.setJiaoxueshipinPhoto("");//详情和图片
//                            jiaoxueshipinEntity.setJiaoxueshipinFile(data.get(0));                    //备课资料 要改的
//                            jiaoxueshipinEntity.setJiaoxueshipinTypes(Integer.valueOf(data.get(0)));   //备课类型 要改的
//                            jiaoxueshipinEntity.setJiaoshiId(Integer.valueOf(data.get(0)));   //教师 要改的
//                            jiaoxueshipinEntity.setJiaoxueshipinTime(sdf.parse(data.get(0)));          //上课时间 要改的
//                            jiaoxueshipinEntity.setJiaoxueshipinContent("");//详情和图片
//                            jiaoxueshipinEntity.setInsertTime(date);//时间
//                            jiaoxueshipinEntity.setJiaoxueshipinDelete(1);//逻辑删除字段
//                            jiaoxueshipinEntity.setCreateTime(date);//时间
                            jiaoxueshipinList.add(jiaoxueshipinEntity);

                            //把要查询是否重复的字段放入map中
                        }

                        //查询是否重复
                        jiaoxueshipinService.insertBatch(jiaoxueshipinList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }

    /**
    * 前端列表
    */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

        CommonUtil.checkMap(params);
        PageUtils page = jiaoxueshipinService.queryPage(params);

        //字典表数据转换
        List<JiaoxueshipinView> list =(List<JiaoxueshipinView>)page.getList();
        for(JiaoxueshipinView c:list)
            dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段

        return R.ok().put("data", page);
    }

    /**
    * 前端详情
    */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        JiaoxueshipinEntity jiaoxueshipin = jiaoxueshipinService.selectById(id);
            if(jiaoxueshipin !=null){

                //entity转view
                JiaoxueshipinView view = new JiaoxueshipinView();
                BeanUtils.copyProperties( jiaoxueshipin , view );//把实体数据重构到view中

                //级联表
                    JiaoshiEntity jiaoshi = jiaoshiService.selectById(jiaoxueshipin.getJiaoshiId());
                if(jiaoshi != null){
                    BeanUtils.copyProperties( jiaoshi , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setJiaoshiId(jiaoshi.getId());
                }
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }

    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,jiaoxueshipin:{}",this.getClass().getName(),jiaoxueshipin.toString());
        Wrapper<JiaoxueshipinEntity> queryWrapper = new EntityWrapper<JiaoxueshipinEntity>()
            .eq("jiaoxueshipin_name", jiaoxueshipin.getJiaoxueshipinName())
            .eq("jiaoxueshipin_types", jiaoxueshipin.getJiaoxueshipinTypes())
            .eq("jiaoshi_id", jiaoxueshipin.getJiaoshiId())
            .eq("jiaoxueshipin_delete", jiaoxueshipin.getJiaoxueshipinDelete())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        JiaoxueshipinEntity jiaoxueshipinEntity = jiaoxueshipinService.selectOne(queryWrapper);
        if(jiaoxueshipinEntity==null){
            jiaoxueshipin.setInsertTime(new Date());
            jiaoxueshipin.setJiaoxueshipinDelete(1);
            jiaoxueshipin.setCreateTime(new Date());
        jiaoxueshipinService.insert(jiaoxueshipin);

            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

}

5.2 备课信息Service模块 

package com.service;

import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.JiaoxueshipinEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;

/**
 * 备课信息 服务类
 */
public interface JiaoxueshipinService extends IService<JiaoxueshipinEntity> {

    /**
    * @param params 查询参数
    * @return 带分页的查询出来的数据
    */
     PageUtils queryPage(Map<String, Object> params);

}

5.3 备课信息ServiceImpl模块

package com.service.impl;

import com.utils.StringUtil;
import com.service.DictionaryService;
import com.utils.ClazzDiff;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import com.dao.JiaoxueshipinDao;
import com.entity.JiaoxueshipinEntity;
import com.service.JiaoxueshipinService;
import com.entity.view.JiaoxueshipinView;

/**
 * 备课信息 服务实现类
 */
@Service("jiaoxueshipinService")
@Transactional
public class JiaoxueshipinServiceImpl extends ServiceImpl<JiaoxueshipinDao, JiaoxueshipinEntity> implements JiaoxueshipinService {

    @Override
    public PageUtils queryPage(Map<String,Object> params) {
        Page<JiaoxueshipinView> page =new Query<JiaoxueshipinView>(params).getPage();
        page.setRecords(baseMapper.selectListView(page,params));
        return new PageUtils(page);
    }

}

5.4 备课信息Dao模块

package com.dao;

import com.entity.JiaoxueshipinEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;

import org.apache.ibatis.annotations.Param;
import com.entity.view.JiaoxueshipinView;

/**
 * 备课信息 Dao 接口
 *
 * @author 
 */
public interface JiaoxueshipinDao extends BaseMapper<JiaoxueshipinEntity> {

   List<JiaoxueshipinView> selectListView(Pagination page,@Param("params")Map<String,Object> params);

}

6、论文目录结构

7、源码获取

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

喜欢文章可以点赞、收藏、关注、评论

获取源码请私信

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

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

相关文章

centos7的git使用方法

下载git yum install git git克隆 git clone https...(图片中复制的内容) git提交到远程仓库 git add filename git commit -m "提交日志" git push git首次使用要配置邮箱和用户名 查看提交日志 git log 查看当前提交状态 git status

74HC154D-LED

一、引脚说明 1-11 13-17 &#xff1a;输出端。&#xff08;outputs (active LOW)&#xff09; 12&#xff1a;Gnd电源地 &#xff08;ground (0 V)&#xff09; 18-19&#xff1a;使能输入端、低电平有效 (enable inputs (active LOW)) 20-23&#xff1a;地址输入端 (addr…

ctfshow-web1~10-WP

web1 右键查看源码就能看到flag web2 打开网页提示无法查看源代码,右键也使用不了,那我们就在url前面加上view-source: view-source:http://83a83588-671e-4a94-9c6f-6857f9e20c2f.chall.ctf.show/ 访问后即可获得flag web3 右键源码也没看到信息,去查看一下请求头和响应…

私募证券基金动态-24年1月报

成交量&#xff1a;1月日均7,280.98亿元 2024年1月A股两市日均成交7,280.98亿元&#xff0c;环比下降5.40%、同比下降7.85%。1月整体22个交易日&#xff0c;无单日交易日成交金额过万亿&#xff0c;单日交易日最低成交金额为6,120.22亿元&#xff08;1月15日&#xff09;&…

【动态规划】【图论】【C++算法】1928规定时间内到达终点的最小花费

作者推荐 【动态规划】【状态压缩】【2次选择】【广度搜索】1494. 并行课程 II 本文涉及知识点 动态规划汇总 LeetCode1928. 规定时间内到达终点的最小花费 一个国家有 n 个城市&#xff0c;城市编号为 0 到 n - 1 &#xff0c;题目保证 所有城市 都由双向道路 连接在一起…

问题:淘宝网禁止出售保护动植物及其制品,以下哪种饰品可不以在淘宝上出售?() #学习方法#其他

问题&#xff1a;淘宝网禁止出售保护动植物及其制品,以下哪种饰品可不以在淘宝上出售&#xff1f;() A&#xff0e;钻石 B&#xff0e;玳瑁饰品 C&#xff0e;象牙饰品 D&#xff0e;犀牛角饰品 参考答案如图所示

vue3(笔记)

组合式Api setup-----相当于beforeCreate, create生命周期 reactive–定义状态 对象形式 响应式原理 toRefs— Pinia &#xff08;只有state、getters和actions&#xff09; 更加简洁的语法&#xff0c;完美支持Vue3的Composition api 和 对TypesCcript的完美支持

Vue3入门到实战笔记05--路由

使用路由需要做的事情&#xff1a; 1.确定好导航区、展示区 2.请来路由器 3. 制定路由的具体规则&#xff08;什么路径、对应着什么组件&#xff09; 4. 形成一个一个的.vue 1、 基本使用步骤 在cmd窗口安装: npm i vue-router在src当中创建一个router文件夹&#xff0c;并在…

docker之程序镜像的制作

目录 一、每种资源的预安装&#xff08;基础&#xff09; 安装 nginx安装 redis 二、dockerfile文件制作&#xff08;基础&#xff09; 打包 redis 镜像 创建镜像制作空间制作dockerfile 打包 nginx 镜像 三、创建组合镜像&#xff08;方式一&#xff09; 生成centos容器并…

苹果证书过期有什么影响

引言 苹果证书是一种数字签名&#xff0c;用于验证应用程序的身份和完整性。然而&#xff0c;若该证书过期&#xff0c;将会对用户和开发者带来一定的影响。在本文中&#xff0c;我们将详细介绍苹果证书过期的原理和影响&#xff0c;并提供一些解决方法。 苹果证书的原理 苹…

CleanMyMacX4.14.6如何清理mac垃圾内存

一直以来&#xff0c;苹果电脑的运行流畅度都很好&#xff0c;但是垃圾内存多了磁盘空间慢慢变少&#xff0c;还是会造成卡顿的。这篇文章就告诉大家电脑如何清理垃圾内存&#xff0c;电脑如何清理磁盘空间。 一、电脑如何清理垃圾内存 垃圾内存指的是各种缓存文件和系统垃圾…

C语言之找单身狗

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a; 我要学编程(ಥ_ಥ)-CSDN博客 题目&#xff1a; 在一个整型数组中&#xff0c;只有一个数字出现一次&#xff0c;其他数组都是成对出现的&#xff0c;请找出那个只出现一次的数字。…

IF=82.9!高分文献解读|吉西他滨联合顺铂化疗激活肿瘤免疫新机制

鼻咽癌&#xff08;nasopharyngeal carcinoma, NPC&#xff09;是一种发生于鼻咽部上皮细胞的恶性肿瘤&#xff0c;且高发于中国。吉西他滨联合顺铂&#xff08;GP&#xff09;化疗作为鼻咽癌的一种全球标准治疗方案&#xff0c;然而治疗的具体机制目前尚不清楚。中山大学肿瘤防…

摘录笔记——2024年2月5日

美团三年&#xff0c;总结的10条血泪教训在美团的三年多时光&#xff0c;如同一部悠长的交响曲&#xff0c;高高低低&#xff0c;而今离开已有一段时间。闲暇之余&#xff0c;梳理了三年多的收获与感慨&#xff0c;既是对过去一段时光的的一个深情回眸&#xff0c;也是对未来之…

旭华智能水文遥测终端机RTU

SV-RT8588低功耗测控终端&#xff0c;可采集、存储监测点传感器/仪表数据&#xff0c;通过4G/网口等通讯方式上传至监管平台&#xff0c;产品采用高性能32位处理器和工业级无线模块&#xff0c;接口类型丰富配置灵活&#xff0c;能满足不同场景下的各种需求&#xff1b;低功耗设…

北斗NTP同步时间服务器在五华县人民医院的应用、授时服务器、校时服务器

同步时间服务器,是针对自动化系统中的计算机、医疗仪器仪表、控制装置等进行校时的高科技产品&#xff0c;北斗时间服务器,从卫星上获取到时间信息&#xff0c;北斗时间服务器,内部将这些时间信息进行高科技的处理及转换&#xff0c;为医院的数字化管理提供精确时间保证。各办公…

idea2023创建spring项目无法选择Java8

idea2023创建spring项目无法选择Java8 今天下载了新版的idea 2023.3.2&#xff0c;但是在创建springboot项目的时候只能选择Java17和Java21&#xff0c;没法选择其他的版本。 使用下面阿里云的地址替换Server URL中的start.spring.io的地址即可 https://start.aliyun.com/替…

力扣● 62.不同路径 ● 63. 不同路径 II

● 62.不同路径 单解这道题的话&#xff0c;发现第一行或者第一列的这些位置&#xff0c;都只有一条路径走到&#xff0c;所以路径条数都是1。这就是初始化。坐标大于第一行第一列的这些位置&#xff0c;因为机器人只能向下/向右走&#xff0c;所以只能从上个位置向下走和从左…

文心一言4.0API接入指南

概述 文心一言是百度打造出来的人工智能大语言模型&#xff0c;具备跨模态、跨语言的深度语义理解与生成能力&#xff0c;文心一言有五大能力&#xff0c;文学创作、商业文案创作、数理逻辑推算、中文理解、多模态生成&#xff0c;其在搜索问答、内容创作生成、智能办公等众多…