master
you hang 8 months ago committed by youhang
commit 9789bdbfde
  1. 40
      pom.xml
  2. 566
      sql/teaching_db.sql
  3. 607
      sql/teaching_db5.0.sql
  4. 7
      src/main/java/com/teaching/TeachingBackendApplication.java
  5. 5
      src/main/java/com/teaching/backend/common/ErrorCode.java
  6. 56
      src/main/java/com/teaching/backend/controller/CommonController.java
  7. 53
      src/main/java/com/teaching/backend/controller/FavourInformation/FavourInformationController.java
  8. 132
      src/main/java/com/teaching/backend/controller/WordController2.java
  9. 1
      src/main/java/com/teaching/backend/controller/courses/CourseObjectivesController.java
  10. 9
      src/main/java/com/teaching/backend/controller/courses/CoursesController.java
  11. 5
      src/main/java/com/teaching/backend/controller/courses/ObjectiveContentsController.java
  12. 6
      src/main/java/com/teaching/backend/controller/courses/StudentCoursesController.java
  13. 23
      src/main/java/com/teaching/backend/controller/favour/SeResourceFavourController.java
  14. 39
      src/main/java/com/teaching/backend/controller/umsAdmin/UmsAdminController.java
  15. 4
      src/main/java/com/teaching/backend/mapper/CourseResourcesMapper.java
  16. 19
      src/main/java/com/teaching/backend/mapper/ResourcesRelationshipMapper.java
  17. 18
      src/main/java/com/teaching/backend/mapper/UserMapper.java
  18. 3
      src/main/java/com/teaching/backend/mapper/courses/CourseObjectivesMapper.java
  19. 3
      src/main/java/com/teaching/backend/mapper/courses/ObjectiveContentKnowMapper.java
  20. 4
      src/main/java/com/teaching/backend/mapper/courses/StudentCoursesMapper.java
  21. 11
      src/main/java/com/teaching/backend/mapper/umsAdmin/UmsAdminMapper.java
  22. 8
      src/main/java/com/teaching/backend/mapper/umsAdmin/UmsAdminRoleRelationMapper.java
  23. 1
      src/main/java/com/teaching/backend/mapper/umsAdmin/UmsStudentMapper.java
  24. 1
      src/main/java/com/teaching/backend/mapper/umsAdmin/UmsTeacherMapper.java
  25. 2
      src/main/java/com/teaching/backend/model/dto/favour/resourceFavour/ResourceFavourAddRequest.java
  26. 28
      src/main/java/com/teaching/backend/model/dto/favour/resourceFavour/ResourceFavourQueryRequest.java
  27. 121
      src/main/java/com/teaching/backend/model/dto/umsAdmin/UmsStudentAndTeacherDTO.java
  28. 16
      src/main/java/com/teaching/backend/model/entity/CourseResources.java
  29. 17
      src/main/java/com/teaching/backend/model/entity/ResourceRelationship.java
  30. 12
      src/main/java/com/teaching/backend/model/entity/courses/ObjectiveContentKnow.java
  31. 7
      src/main/java/com/teaching/backend/model/entity/courses/StudentCourses.java
  32. 2
      src/main/java/com/teaching/backend/model/entity/favour/SeResourceFavour.java
  33. 12
      src/main/java/com/teaching/backend/model/query/CourseQuery.java
  34. 22
      src/main/java/com/teaching/backend/model/vo/courses/TeacherInfVO.java
  35. 88
      src/main/java/com/teaching/backend/model/vo/umsAdmin/UmsStudentVO.java
  36. 87
      src/main/java/com/teaching/backend/model/vo/umsAdmin/UmsTeacherVO.java
  37. 27
      src/main/java/com/teaching/backend/service/CourseResourcesService.java
  38. 23
      src/main/java/com/teaching/backend/service/FileTableService.java
  39. 17
      src/main/java/com/teaching/backend/service/ResourcesRelationshipService.java
  40. 16
      src/main/java/com/teaching/backend/service/UserService.java
  41. 1
      src/main/java/com/teaching/backend/service/courses/ICoursesService.java
  42. 2
      src/main/java/com/teaching/backend/service/courses/IObjectiveContentsService.java
  43. 16
      src/main/java/com/teaching/backend/service/favour/SeResourceFavourService.java
  44. 121
      src/main/java/com/teaching/backend/service/impl/CourseResourcesServiceImpl.java
  45. 97
      src/main/java/com/teaching/backend/service/impl/FileTableServiceImpl.java
  46. 21
      src/main/java/com/teaching/backend/service/impl/ResourcesRelationshipServiceImpl.java
  47. 24
      src/main/java/com/teaching/backend/service/impl/UserServiceImpl.java
  48. 11
      src/main/java/com/teaching/backend/service/impl/courses/CourseObjectivesServiceImpl.java
  49. 199
      src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java
  50. 22
      src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java
  51. 25
      src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentsServiceImpl.java
  52. 38
      src/main/java/com/teaching/backend/service/impl/courses/StudentCoursesServiceImpl.java
  53. 20
      src/main/java/com/teaching/backend/service/impl/favour/SeResourceFavourServiceImpl.java
  54. 14
      src/main/java/com/teaching/backend/service/umsAdmin/UmsAdminService.java
  55. 134
      src/main/java/com/teaching/backend/service/umsAdmin/impl/UmsAdminServiceImpl.java
  56. 2
      src/main/java/com/teaching/backend/utils/CourseCode.java
  57. 59
      src/main/java/com/teaching/backend/utils/WordUtil.java
  58. 0
      src/main/java/com/teaching/backend/utils/textceshi.java
  59. 2
      src/main/resources/application.properties
  60. 26
      src/main/resources/application.yml
  61. 9
      src/main/resources/mapper/CourseObjectivesMapper.xml
  62. 8
      src/main/resources/mapper/ObjectiveContentKnowMapper.xml
  63. 7
      src/main/resources/mapper/StudentCoursesMapper.xml
  64. 77
      src/main/resources/mapper/UmsAdminMapper.xml
  65. 12
      src/main/resources/mapper/UmsAdminRoleRelationMapper.xml
  66. 36
      src/main/resources/mapper/UmsStudentMapper.xml
  67. 36
      src/main/resources/mapper/UmsTeacherMapper.xml
  68. 34
      src/main/resources/static/hello2.html
  69. BIN
      src/main/resources/templates/courses.docx
  70. BIN
      src/main/resources/word_template/ceshi.docx
  71. BIN
      src/main/resources/word_template/ceshi2.docx
  72. BIN
      src/main/resources/word_template/ceshi3.docx
  73. 5
      src/test/java/com/teaching/TeachingBackendApplicationTests.java
  74. 3
      template.ftl

@ -57,6 +57,28 @@
</dependency>
<!-- Apache POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
@ -154,6 +176,13 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.5</version>
<scope>compile</scope>
</dependency>
<!--easypoi-->
<dependency>
@ -181,6 +210,17 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</build>

@ -1,566 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 80037
Source Host : localhost:3306
Source Schema : teaching_db
Target Server Type : MySQL
Target Server Version : 80037
File Encoding : 65001
Date: 12/06/2024 15:14:04
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for course_objectives
-- ----------------------------
CREATE TABLE `course_objectives` (
`id` varchar(36) NOT NULL COMMENT '内部编号',
`pid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '父级节点 默认0没有',
`has_child` int(1) DEFAULT '0' COMMENT '是否有子节点 添加子节点变1,默认0没有',
`name` varchar(200) DEFAULT NULL COMMENT '目标名称',
`type` int(5) DEFAULT NULL COMMENT '目标类型',
`course_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '课程id',
`requireid` varchar(32) DEFAULT NULL COMMENT '毕业要求id',
`temp` text COMMENT '毕业要求',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of course_objectives
-- ----------------------------
INSERT INTO `course_objectives` VALUES ('3e42492c201d2a9378be5af2edc92b47', '2024-06-06 16:17:39', NULL, '0', '0', '近代史纲要课程总体目标', NULL, 'd8d7bb93f100164659cac44ef2c4f55a', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('43f2c4b4a10a47784e50e772b9d10457', '2024-05-31 17:39:13', NULL, '0', '0', '测试课程课程总体目标', NULL, '6f5de6dd8c8d5d9d02a63c8444b9d5bb', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('503dc084653ffd003cb404b62266dc7c', '2024-06-06 15:58:43', NULL, 'da6e7283befa8965dae0f0f39ea7f24e', '0', '知识目标', 'c126ef1a66733ab7a4ba12aba0eb7f82', NULL, NULL, NULL);
INSERT INTO `course_objectives` VALUES ('53b27c94fe8af02ac8b23d9be9a2e329', '2024-06-03 11:32:19', NULL, 'da6e7283befa8965dae0f0f39ea7f24e', '0', '思政目标', '71f73bd999f678bcbbdb101e23277feb', NULL, NULL, NULL);
INSERT INTO `course_objectives` VALUES ('7a302cd72d653647778840b42f4e076a', '2024-06-03 10:43:13', NULL, '0', '0', '软件构造课程总体目标', NULL, 'ee2447b4463a5ad3f47e1744d912a824', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('aa839ff1345a04f95b4efcca02494cab', '2024-06-06 16:45:22', NULL, '0', '0', '毛概课程总体目标', NULL, '72e1ad71bb855ba328f8c17964697354', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('b41fa8332f39cca11d35635bd9fac720', '2024-05-31 11:24:33', NULL, '0', '0', '计算机导论课程总体目标', NULL, '2fa0fd63262230639d2c45a3acd9045c', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('c84dc451086f7938c28a4f757957f415', '2024-06-06 15:58:19', NULL, 'da6e7283befa8965dae0f0f39ea7f24e', '0', '价值目标', '410fc58cd757cd248941af1bea6888e5', NULL, NULL, NULL);
INSERT INTO `course_objectives` VALUES ('d452f583115465d067a1719458690b95', '2024-05-31 11:16:37', NULL, '0', '0', '计算机组成原理总体目标', NULL, '36c34a4225526dd20ee3840da61d3701', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('da6e7283befa8965dae0f0f39ea7f24e', '2024-05-31 20:49:52', '2024-06-06 15:58:43', '0', '1', '离散数学及其应用课程总体目标', NULL, 'de3100cad98f76be3176dd39aa748a9e', NULL, NULL);
-- ----------------------------
-- Table structure for courses
-- ----------------------------
DROP TABLE IF EXISTS `courses`;
CREATE TABLE `courses` (
`id` varchar(36) NOT NULL COMMENT '内部编号',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`img` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '课程封面',
`category` varchar(50) DEFAULT NULL COMMENT '课程类别',
`nature` varchar(50) DEFAULT NULL COMMENT '课程性质',
`name` varchar(100) DEFAULT NULL COMMENT '课程名称',
`code` varchar(50) DEFAULT NULL COMMENT '课程编码',
`semester` varchar(50) DEFAULT NULL COMMENT '开课学期',
`credit` decimal(4,2) DEFAULT NULL COMMENT '课程学分',
`classhours` int(5) DEFAULT NULL COMMENT '课程学时',
`theoryhours` int(5) DEFAULT NULL COMMENT '理论学时',
`practicehours` int(5) DEFAULT NULL COMMENT '实践学时',
`experimenthours` int(5) DEFAULT NULL COMMENT '实验学时',
`otherhours` int(5) DEFAULT NULL COMMENT '其他学时',
`weeks` int(11) DEFAULT NULL COMMENT '上课周数',
`assessmenttype` varchar(32) DEFAULT NULL COMMENT '考核类型',
`assessmentway` varchar(32) DEFAULT NULL COMMENT '考核方式',
`teacher` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '负责教师',
`teachermethod` text COMMENT '教学方法',
`teacherway` text COMMENT '教学方式',
`description` text COMMENT '课程简介',
`status` int(1) DEFAULT '0' COMMENT '课程状态 0未在修改 1在修改中',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of courses
-- ----------------------------
insert into `courses`(`id`,`create_time`,`update_time`,`img`,`category`,`nature`,`name`,`code`,`semester`,`credit`,`classhours`,`theoryhours`,`practicehours`,`experimenthours`,`otherhours`,`weeks`,`assessmenttype`,`assessmentway`,`teacher`,`teachermethod`,`teacherway`,`description`,`status`) values ('2fa0fd63262230639d2c45a3acd9045c','2024-05-30 20:58:34',NULL,'','1','1','计算机导论1.0','111007',NULL,'4.60',64,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334,2140110339','暂定','线下授课',NULL,0),
('36c34a4225526dd20ee3840da61d3701','2024-05-28 20:58:36',NULL,'','1','1','计算机组成原理','111006',NULL,'4.00',64,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334,2140110339','暂定','线下授课',NULL,0),
('51d973f1cf0bad437da57d31f83a3232','2024-06-07 18:42:08',NULL,'','1','1','Test课程2','111014',NULL,'3.50',48,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334','暂定','线下授课',NULL,0),
('6f5de6dd8c8d5d9d02a63c8444b9d5bb','2024-05-26 20:58:40',NULL,'','1','1','测试课程','111008',NULL,'4.00',64,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334,2140110339','暂定','线下授课',NULL,0),
('72e1ad71bb855ba328f8c17964697354','2024-06-06 16:45:22',NULL,'http://teaching-edu123.oss-cn-beijing.aliyuncs.com/KdxGCt8rKbruw3zEDTdkA.jpg','1','1','毛概','111012',NULL,'3.70',48,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334','暂定','线下授课',NULL,0),
('8721e6864387eb99b04692f125ac0a9f','2024-05-27 20:58:43',NULL,'','1','1','SQLServer数据库教程','111004',NULL,'4.00',0,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334,2140110327','暂定111','线下机房授课',NULL,0),
('90ce365ae4e362f616776550e04ae0b4','2024-05-24 20:58:48',NULL,'','1','1','JavaEE','111002',NULL,'4.00',0,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334,2140110327','暂定','线下机房授课',NULL,0),
('a2ba84374d86e85208c5906a96ea8205','2024-05-24 20:58:48',NULL,'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg','1','1','JavaWeb','111003',NULL,'4.00',0,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334,2140110327','暂定','线下机房授课',NULL,0),
('d511d26df8de551bc85ce765089771b4','2024-05-24 20:58:48',NULL,'','1','1','高级编程','111001',NULL,'4.00',0,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334,2140110327','暂定','线下机房授课',NULL,0),
('d8d7bb93f100164659cac44ef2c4f55a','2024-06-06 16:17:39',NULL,'','1','1','近代史纲要','111011',NULL,'2.60',48,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334','暂定','线下授课',NULL,0),
('de3100cad98f76be3176dd39aa748a9e','2024-05-31 20:49:52',NULL,'http://teaching-edu123.oss-cn-beijing.aliyuncs.com/E96JlmbPeqvzVcPvg43Lb.jpg','1','1','离散数学及其应用','111009',NULL,'2.00',64,NULL,NULL,NULL,NULL,NULL,'1','1','2140110334','暂定','线下授课',NULL,0);
-- ----------------------------
-- Table structure for know
-- ----------------------------
DROP TABLE IF EXISTS `know`;
CREATE TABLE `know` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点名称',
`info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '简介',
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点内容',
`img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点图片',
`hour` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点学时',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of know
-- ----------------------------
-- ----------------------------
-- Table structure for know_relationship
-- ----------------------------
DROP TABLE IF EXISTS `know_relationship`;
CREATE TABLE `know_relationship` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键id',
`chapterId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '章节id',
`courseId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程id',
`knowId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of know_relationship
-- ----------------------------
-- ----------------------------
-- Table structure for learning_records
-- ----------------------------
DROP TABLE IF EXISTS `learning_records`;
CREATE TABLE `learning_records` (
`id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '学习记录id',
`user_id` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '用户id',
`courses_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '课程id',
`chapter_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '章节id',
`knowledge_point_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '知识点id',
`resource_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '资源id',
`access_time` datetime NULL DEFAULT NULL COMMENT '访问时间',
`learning_method1` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT '0' COMMENT '学习方式:打开; 1,打开过,2未打开',
`learning_method2` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT '0' COMMENT '学习方式:下载; 1下载过, 2未下载',
`video_duration` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '视频学习时长',
`is_completed` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '是否完成观看:1,已完成,0未完成',
`content` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '记录封面图片',
`address` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '资源地址',
`status` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT '1' COMMENT '是否存在: 1存在;0不存在;',
`parent_node` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '父节点',
`type` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '类型, 如:1,课程; 2,章节; 3,知识点; 4,学习资源',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of learning_records
-- ----------------------------
INSERT INTO `learning_records` VALUES ('1', '1', '290bf0217c6a1569abf225289c7e11ea', NULL, NULL, NULL, '2024-05-31 21:35:11', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('2', '2', 'd511d26df8de551bc85ce765089771b4', NULL, NULL, NULL, '2024-05-31 00:00:00', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('3', '1', 'd511d26df8de551bc85ce765089771b4', NULL, NULL, NULL, '2024-05-31 00:00:00', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('4', '1', '1', '', '', '', '2024-06-07 10:49:42', '1', '0', '', '', 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '0', '', '2');
INSERT INTO `learning_records` VALUES ('5', '1', '2', NULL, NULL, NULL, '2024-05-02 00:00:00', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('6', '1', '3', NULL, NULL, NULL, '2024-06-04 10:10:49', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('7', '1', '4', NULL, NULL, NULL, '2024-06-04 10:12:01', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '0', NULL, '1');
INSERT INTO `learning_records` VALUES ('96', '1', '5', NULL, NULL, NULL, '2024-05-30 20:46:21', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('8', '2', '3', NULL, NULL, NULL, '2024-06-04 10:15:01', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.taobao.com/', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('75', '2', '4', NULL, NULL, NULL, '2024-06-04 10:17:16', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.taobao.com/', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('71', '2', '5', NULL, NULL, NULL, '2024-06-04 12:01:48', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.taobao.com/', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('1797841286352658434', '3', '5', '', '', '', '2024-06-06 16:59:38', '1', '1', '', '', '', '/portal', '1', '', '1');
INSERT INTO `learning_records` VALUES ('1798911495222161409', '1', '1', '', '', '', '2024-06-07 10:54:57', '1', '0', '', '', 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '0', '', '1');
INSERT INTO `learning_records` VALUES ('1797984330104299521', '3', '1', NULL, NULL, NULL, '2024-06-04 21:30:44', NULL, '1', '1', '1', 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.baidu.com/', '1', NULL, '1');
-- ----------------------------
-- Table structure for objective_contents
-- ----------------------------
CREATE TABLE `objective_contents` (
`id` varchar(32) NOT NULL,
`objective_id` varchar(32) DEFAULT NULL COMMENT '对应的目标id',
`content` text COMMENT '内容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `objective_contents` */
insert into `objective_contents`(`id`,`objective_id`,`content`) values ('056b889ceb437abc96c759c2c9d61393','09f36bd3e0e65016f95281eb3d4f48a7','价值目标1'),
('3f85eb79c29be4a15c729d98b17676a5','c84dc451086f7938c28a4f757957f415','价值目标3'),
('406c85c99bd2d4b9f624ca3a67c3ce66','53b27c94fe8af02ac8b23d9be9a2e329','思政目标2'),
('4ad5a1f0f584e35e7af6ef5142773990','503dc084653ffd003cb404b62266dc7c','知识目标1'),
('4b4458cd64b0a1e21b54191a89e9f83d','c84dc451086f7938c28a4f757957f415','价值目标2'),
('53d9d78b41051696314c0b1c0efa5313','503dc084653ffd003cb404b62266dc7c','知识目标3'),
('6689ed187bcbd36309510a21ea492225','da6e7283befa8965dae0f0f39ea7f24e','总目标3'),
('93cc64742c6ae993b6c8d8e0e6784758','09f36bd3e0e65016f95281eb3d4f48a7','价值目标2'),
('979e59083e81f28145e1162069ffebb8','c84dc451086f7938c28a4f757957f415','价值目标1'),
('9efcc83089e6de9945499876d1a6235a','da6e7283befa8965dae0f0f39ea7f24e','总目标1'),
('bdacef102860e3dd3c1c3dcd3c3ef395','8d87cbacd499ad8b171e72a3aeeb7cab','思政目标2'),
('c6b3fc522a5479e28cd3f0c9b971a871','53b27c94fe8af02ac8b23d9be9a2e329','思政目标3'),
('dc31075d57f371970c5af09fd534a9af','da6e7283befa8965dae0f0f39ea7f24e','总目标2'),
('eca937e6f047e3b6b06d67c5b4a9beff','53b27c94fe8af02ac8b23d9be9a2e329','思政目标1'),
('f71f70ff7f6a83cf7be889eccd7015e1','8d87cbacd499ad8b171e72a3aeeb7cab','思政目标3'),
('f890c64ee471b8a22db79e33d622ee79','8d87cbacd499ad8b171e72a3aeeb7cab','思政目标1'),
('ffde482fac55e6dec5b60f6c6208d42c','503dc084653ffd003cb404b62266dc7c','知识目标2');
-- ----------------------------
-- Table structure for objectives_type
-- ----------------------------
DROP TABLE IF EXISTS `objectives_type`;
CREATE TABLE `objectives_type` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`type_name` varchar(50) DEFAULT NULL COMMENT '类型名称',
PRIMARY KEY (`id`),
UNIQUE KEY `type_name` (`type_name`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
/*Data for the table `objectives_type` */
insert into `objectives_type`(`id`,`type_name`) values (4,'价值目标'),
(1,'思政目标'),
(2,'知识目标'),
(3,'素质目标');
-- ----------------------------
-- Table structure for resource
-- ----------------------------
DROP TABLE IF EXISTS `resource`;
CREATE TABLE `resource` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源名称',
`type` int NULL DEFAULT NULL COMMENT '资源类型',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源路径',
`status` int NULL DEFAULT NULL COMMENT '资源状态',
`tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标签',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of resource
-- ----------------------------
-- ----------------------------
-- Table structure for resource_relationship
-- ----------------------------
DROP TABLE IF EXISTS `resource_relationship`;
CREATE TABLE `resource_relationship` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键',
`courseId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程id',
`chapterId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '章节id',
`knowId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点id',
`resourceId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of resource_relationship
-- ----------------------------
-- ----------------------------
-- Table structure for se_course_favour
-- ----------------------------
DROP TABLE IF EXISTS `se_course_favour`;
CREATE TABLE `se_course_favour` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程id',
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_course_favour
-- ----------------------------
INSERT INTO `se_course_favour` VALUES ('1796378327262564353', 'a2ba84374d86e85208c5906a96ea8205', '2');
INSERT INTO `se_course_favour` VALUES ('1796454599099658242', '36c34a4225526dd20ee3840da61d3701', '2');
INSERT INTO `se_course_favour` VALUES ('1796789887730647041', '2fa0fd63262230639d2c45a3acd9045c', '2');
INSERT INTO `se_course_favour` VALUES ('1797497056650289154', 'd511d26df8de551bc85ce765089771b4', '1');
INSERT INTO `se_course_favour` VALUES ('1797499380101767170', 'd511d26df8de551bc85ce765089771b4', '2');
INSERT INTO `se_course_favour` VALUES ('1798221492412149761', 'd511d26df8de551bc85ce765089771b4', '5');
INSERT INTO `se_course_favour` VALUES ('1798621775654993922', 'd511d26df8de551bc85ce765089771b4', '8');
INSERT INTO `se_course_favour` VALUES ('1798632199670714369', 'de3100cad98f76be3176dd39aa748a9e', '2');
-- ----------------------------
-- Table structure for se_course_thumb
-- ----------------------------
DROP TABLE IF EXISTS `se_course_thumb`;
CREATE TABLE `se_course_thumb` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_course_thumb
-- ----------------------------
INSERT INTO `se_course_thumb` VALUES ('1796343958854623233', '2', '1');
INSERT INTO `se_course_thumb` VALUES ('1796344002215337985', '2', '2');
INSERT INTO `se_course_thumb` VALUES ('1796362250491191298', '1', '2');
INSERT INTO `se_course_thumb` VALUES ('1796437673614974977', '6', '2');
INSERT INTO `se_course_thumb` VALUES ('1796445964822847489', '7', '4');
-- ----------------------------
-- Table structure for se_know_favour
-- ----------------------------
DROP TABLE IF EXISTS `se_know_favour`;
CREATE TABLE `se_know_favour` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`know_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_know_favour
-- ----------------------------
INSERT INTO `se_know_favour` VALUES ('1796378889450295297', '1', '2', '3');
-- ----------------------------
-- Table structure for se_know_thumb
-- ----------------------------
DROP TABLE IF EXISTS `se_know_thumb`;
CREATE TABLE `se_know_thumb` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`know_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_know_thumb
-- ----------------------------
INSERT INTO `se_know_thumb` VALUES ('1796347057337982977', '1', '2', '2');
INSERT INTO `se_know_thumb` VALUES ('1796347303317135361', '2', '2', '3');
INSERT INTO `se_know_thumb` VALUES ('1796347343968329730', '2', '3', '3');
INSERT INTO `se_know_thumb` VALUES ('1796347380697849857', '1', '3', '3');
-- ----------------------------
-- Table structure for se_resource_favour
-- ----------------------------
DROP TABLE IF EXISTS `se_resource_favour`;
CREATE TABLE `se_resource_favour` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`resource_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_resource_favour
-- ----------------------------
INSERT INTO `se_resource_favour` VALUES ('1796379012112715778', '1', '2', '3');
-- ----------------------------
-- Table structure for se_resource_thumb
-- ----------------------------
DROP TABLE IF EXISTS `se_resource_thumb`;
CREATE TABLE `se_resource_thumb` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`resource_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_resource_thumb
-- ----------------------------
INSERT INTO `se_resource_thumb` VALUES ('1796366535710904322', '2', '1', '1');
-- ----------------------------
-- Table structure for ums_admin
-- ----------------------------
DROP TABLE IF EXISTS `ums_admin`;
CREATE TABLE `ums_admin` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`nick_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称',
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
`create_time` datetime NULL DEFAULT NULL COMMENT '注册时间',
`status` int NULL DEFAULT 1 COMMENT '帐号启用状态:0->禁用;1->启用',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_admin
-- ----------------------------
INSERT INTO `ums_admin` VALUES (1, 'xiao1111', '', '', '', '1111', '2024-06-03 13:30:29', 0);
INSERT INTO `ums_admin` VALUES (2, '123', '$2a$10$ACn80kN2ZEREGH3yOce9mui/KoWQllCHjNVXzXzrTI3gKJi/LB/YK', '123456789', '', '', '2024-06-05 23:23:45', 1);
INSERT INTO `ums_admin` VALUES (3, 'youhang', '$2a$10$TYJcMWBdDmmYfV/Kxi771ee7krjYJCLzI8O6MyjCofty9Y0OPLEna', '13547534472', 'yy', '', '2024-06-12 15:09:10', 1);
-- ----------------------------
-- Table structure for ums_admin_role_relation
-- ----------------------------
DROP TABLE IF EXISTS `ums_admin_role_relation`;
CREATE TABLE `ums_admin_role_relation` (
`id` int NOT NULL AUTO_INCREMENT,
`admin_id` int NULL DEFAULT NULL,
`role_id` int NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_admin_role_relation
-- ----------------------------
INSERT INTO `ums_admin_role_relation` VALUES (1, 1, 2);
-- ----------------------------
-- Table structure for ums_menu
-- ----------------------------
DROP TABLE IF EXISTS `ums_menu`;
CREATE TABLE `ums_menu` (
`id` int NOT NULL AUTO_INCREMENT,
`parent_id` int NULL DEFAULT NULL COMMENT '父级ID',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '菜单名称',
`level` int NULL DEFAULT NULL COMMENT '菜单级数',
`sort` int NULL DEFAULT NULL COMMENT '菜单排序',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '前端名称',
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '前端图标',
`hidden` int NULL DEFAULT NULL COMMENT '前端隐藏',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_menu
-- ----------------------------
-- ----------------------------
-- Table structure for ums_resource
-- ----------------------------
DROP TABLE IF EXISTS `ums_resource`;
CREATE TABLE `ums_resource` (
`id` int NOT NULL AUTO_INCREMENT,
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源名称',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源URL',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
`category_id` int NULL DEFAULT NULL COMMENT '资源分类ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_resource
-- ----------------------------
INSERT INTO `ums_resource` VALUES (1, '2024-06-04 09:56:19', '首页', '/home/advertise/**', NULL, 1);
-- ----------------------------
-- Table structure for ums_resource_category
-- ----------------------------
DROP TABLE IF EXISTS `ums_resource_category`;
CREATE TABLE `ums_resource_category` (
`id` int NOT NULL AUTO_INCREMENT,
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类名称',
`sort` int NULL DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_resource_category
-- ----------------------------
INSERT INTO `ums_resource_category` VALUES (1, '2024-06-04 09:57:23', '首页模块', 0);
-- ----------------------------
-- Table structure for ums_role
-- ----------------------------
DROP TABLE IF EXISTS `ums_role`;
CREATE TABLE `ums_role` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
`admin_count` int NULL DEFAULT NULL COMMENT '后台用户数量',
`create_time` datetime NOT NULL COMMENT '创建时间',
`status` int NULL DEFAULT 1 COMMENT '启用状态:0->禁用;1->启用',
`sort` int NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_role
-- ----------------------------
INSERT INTO `ums_role` VALUES (1, '老师', '能查看自己和所有学生的信息', 0, '2024-06-04 09:59:47', 1, 0);
INSERT INTO `ums_role` VALUES (2, '学生', '只能查看自己信息', 0, '2024-06-04 10:02:15', 1, 0);
-- ----------------------------
-- Table structure for ums_role_menu_relation
-- ----------------------------
DROP TABLE IF EXISTS `ums_role_menu_relation`;
CREATE TABLE `ums_role_menu_relation` (
`id` int NOT NULL AUTO_INCREMENT,
`role_id` int NULL DEFAULT NULL COMMENT '角色ID',
`menu_id` int NULL DEFAULT NULL COMMENT '菜单ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_role_menu_relation
-- ----------------------------
-- ----------------------------
-- Table structure for ums_role_resource_relation
-- ----------------------------
DROP TABLE IF EXISTS `ums_role_resource_relation`;
CREATE TABLE `ums_role_resource_relation` (
`id` int NOT NULL AUTO_INCREMENT,
`role_id` int NULL DEFAULT NULL COMMENT '角色ID',
`resource_id` int NULL DEFAULT NULL COMMENT '资源ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_role_resource_relation
-- ----------------------------
INSERT INTO `ums_role_resource_relation` VALUES (1, 1, 1);
INSERT INTO `ums_role_resource_relation` VALUES (2, 2, 1);
-- ----------------------------
-- Table structure for ums_student
-- ----------------------------
DROP TABLE IF EXISTS `ums_student`;
CREATE TABLE `ums_student` (
`id` int NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
`nationality` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '民族',
`number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学号',
`birthday` datetime NULL DEFAULT NULL COMMENT '生日',
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`faculty` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '院系',
`major` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业',
`year` date NULL DEFAULT NULL COMMENT '入学年份',
`class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级',
`user_id` int NULL DEFAULT NULL COMMENT 'user_id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_student
-- ----------------------------
-- ----------------------------
-- Table structure for ums_teacher
-- ----------------------------
DROP TABLE IF EXISTS `ums_teacher`;
CREATE TABLE `ums_teacher` (
`id` int NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
`nationality` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '民族',
`profession` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业',
`education` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学历',
`degree` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学位',
`professional_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职称',
`emergency_contact` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`join_work_time` datetime NULL DEFAULT NULL COMMENT '参加工作时间',
`political_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '政治面貌',
`user_id` int NULL DEFAULT NULL COMMENT 'user_id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_teacher
-- ----------------------------
SET FOREIGN_KEY_CHECKS = 1;

@ -1,607 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 80026 (8.0.26)
Source Host : localhost:3306
Source Schema : teaching_db
Target Server Type : MySQL
Target Server Version : 80026 (8.0.26)
File Encoding : 65001
Date: 12/06/2024 16:15:18
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for course_objectives
-- ----------------------------
DROP TABLE IF EXISTS `course_objectives`;
CREATE TABLE `course_objectives` (
`id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '内部编号',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
`pid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '父级节点 默认0没有',
`has_child` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '是否有子节点 添加子节点变1,默认0没有',
`name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '目标名称',
`type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '目标类型',
`course_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程id',
`requireid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '毕业要求id',
`temp` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '毕业要求',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of course_objectives
-- ----------------------------
INSERT INTO `course_objectives` VALUES ('3e42492c201d2a9378be5af2edc92b47', '2024-06-06 16:17:39', NULL, '0', '0', '近代史纲要课程总体目标', NULL, 'd8d7bb93f100164659cac44ef2c4f55a', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('43f2c4b4a10a47784e50e772b9d10457', '2024-05-31 17:39:13', NULL, '0', '0', '测试课程课程总体目标', NULL, '6f5de6dd8c8d5d9d02a63c8444b9d5bb', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('503dc084653ffd003cb404b62266dc7c', '2024-06-06 15:58:43', NULL, 'da6e7283befa8965dae0f0f39ea7f24e', '0', '知识目标', 'c126ef1a66733ab7a4ba12aba0eb7f82', NULL, NULL, NULL);
INSERT INTO `course_objectives` VALUES ('53b27c94fe8af02ac8b23d9be9a2e329', '2024-06-03 11:32:19', NULL, 'da6e7283befa8965dae0f0f39ea7f24e', '0', '思政目标', '71f73bd999f678bcbbdb101e23277feb', NULL, NULL, NULL);
INSERT INTO `course_objectives` VALUES ('7a302cd72d653647778840b42f4e076a', '2024-06-03 10:43:13', NULL, '0', '0', '软件构造课程总体目标', NULL, 'ee2447b4463a5ad3f47e1744d912a824', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('aa839ff1345a04f95b4efcca02494cab', '2024-06-06 16:45:22', NULL, '0', '0', '毛概课程总体目标', NULL, '72e1ad71bb855ba328f8c17964697354', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('b41fa8332f39cca11d35635bd9fac720', '2024-05-31 11:24:33', NULL, '0', '0', '计算机导论课程总体目标', NULL, '2fa0fd63262230639d2c45a3acd9045c', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('c84dc451086f7938c28a4f757957f415', '2024-06-06 15:58:19', NULL, 'da6e7283befa8965dae0f0f39ea7f24e', '0', '价值目标', '410fc58cd757cd248941af1bea6888e5', NULL, NULL, NULL);
INSERT INTO `course_objectives` VALUES ('d452f583115465d067a1719458690b95', '2024-05-31 11:16:37', NULL, '0', '0', '计算机组成原理总体目标', NULL, '36c34a4225526dd20ee3840da61d3701', NULL, NULL);
INSERT INTO `course_objectives` VALUES ('da6e7283befa8965dae0f0f39ea7f24e', '2024-05-31 20:49:52', '2024-06-06 15:58:43', '0', '1', '离散数学及其应用课程总体目标', NULL, 'de3100cad98f76be3176dd39aa748a9e', NULL, NULL);
-- ----------------------------
-- Table structure for courses
-- ----------------------------
DROP TABLE IF EXISTS `courses`;
CREATE TABLE `courses` (
`id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '内部编号',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`img` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程封面',
`category` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程类别',
`nature` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程性质',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程名称',
`code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程编码',
`semester` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开课学期',
`credit` decimal(5, 2) NULL DEFAULT NULL COMMENT '课程学分',
`classhours` int NULL DEFAULT NULL COMMENT '课程学时',
`theoryhours` int NULL DEFAULT NULL COMMENT '理论学时',
`practicehours` int NULL DEFAULT NULL COMMENT '实践学时',
`experimenthours` int NULL DEFAULT NULL COMMENT '实验学时',
`otherhours` int NULL DEFAULT NULL COMMENT '其他学时',
`weeks` int NULL DEFAULT NULL COMMENT '上课周数',
`assessmenttype` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '考核类型',
`assessmentway` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '考核方式',
`teacher` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责教师',
`teachermethod` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '教学方法',
`teacherway` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '教学方式',
`description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '课程简介',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of courses
-- ----------------------------
INSERT INTO `courses` VALUES ('2fa0fd63262230639d2c45a3acd9045c', '2024-05-30 20:58:34', NULL, '', '1', '1', '计算机导论12', '111007', NULL, 4.50, 64, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334,2140110339', '暂定', '线下授课', NULL);
INSERT INTO `courses` VALUES ('36c34a4225526dd20ee3840da61d3701', '2024-05-28 20:58:36', NULL, '', '1', '1', '计算机组成原理', '111006', NULL, 4.00, 64, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334,2140110339', '暂定', '线下授课', NULL);
INSERT INTO `courses` VALUES ('6f5de6dd8c8d5d9d02a63c8444b9d5bb', '2024-05-26 20:58:40', NULL, '', '1', '1', '测试课程', '111008', NULL, 4.00, 64, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334,2140110339', '暂定', '线下授课', NULL);
INSERT INTO `courses` VALUES ('72e1ad71bb855ba328f8c17964697354', '2024-06-06 16:45:22', NULL, 'http://teaching-edu123.oss-cn-beijing.aliyuncs.com/KdxGCt8rKbruw3zEDTdkA.jpg', '1', '1', '毛概', '111012', NULL, 3.60, 48, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334', '暂定', '线下授课', NULL);
INSERT INTO `courses` VALUES ('8721e6864387eb99b04692f125ac0a9f', '2024-05-27 20:58:43', NULL, '', '1', '1', 'SQLServer数据库教程', '111004', NULL, 4.00, 0, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334,2140110327', '暂定111', '线下机房授课', NULL);
INSERT INTO `courses` VALUES ('90ce365ae4e362f616776550e04ae0b4', '2024-05-24 20:58:48', NULL, '', '1', '1', 'JavaEE', '111002', NULL, 4.00, 0, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334,2140110327', '暂定', '线下机房授课', NULL);
INSERT INTO `courses` VALUES ('a2ba84374d86e85208c5906a96ea8205', '2024-05-24 20:58:48', NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '1', '1', 'JavaWeb', '111003', NULL, 4.00, 0, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334,2140110327', '暂定', '线下机房授课', NULL);
INSERT INTO `courses` VALUES ('d511d26df8de551bc85ce765089771b4', '2024-05-24 20:58:48', NULL, '', '1', '1', '高级编程', '111001', NULL, 4.00, 0, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334,2140110327', '暂定', '线下机房授课', NULL);
INSERT INTO `courses` VALUES ('d8d7bb93f100164659cac44ef2c4f55a', '2024-06-06 16:17:39', NULL, '', '1', '1', '近代史纲要', '111011', NULL, 2.60, 48, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334', '暂定', '线下授课', NULL);
INSERT INTO `courses` VALUES ('de3100cad98f76be3176dd39aa748a9e', '2024-05-31 20:49:52', NULL, 'http://teaching-edu123.oss-cn-beijing.aliyuncs.com/E96JlmbPeqvzVcPvg43Lb.jpg', '1', '1', '离散数学及其应用', '111009', NULL, 2.00, 64, NULL, NULL, NULL, NULL, NULL, '1', '1', '2140110334', '暂定', '线下授课', NULL);
-- ----------------------------
-- Table structure for know
-- ----------------------------
DROP TABLE IF EXISTS `know`;
CREATE TABLE `know` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点名称',
`info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '简介',
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点内容',
`img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点图片',
`hour` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点学时',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of know
-- ----------------------------
-- ----------------------------
-- Table structure for know_relationship
-- ----------------------------
DROP TABLE IF EXISTS `know_relationship`;
CREATE TABLE `know_relationship` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键id',
`chapterId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '章节id',
`courseId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程id',
`knowId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of know_relationship
-- ----------------------------
-- ----------------------------
-- Table structure for learning_records
-- ----------------------------
DROP TABLE IF EXISTS `learning_records`;
CREATE TABLE `learning_records` (
`id` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '学习记录id',
`user_id` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '用户id',
`courses_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '课程id',
`chapter_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '章节id',
`knowledge_point_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '知识点id',
`resource_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '资源id',
`access_time` datetime NULL DEFAULT NULL COMMENT '访问时间',
`learning_method1` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT '0' COMMENT '学习方式:打开; 1,打开过,2未打开',
`learning_method2` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT '0' COMMENT '学习方式:下载; 1下载过, 2未下载',
`video_duration` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '视频学习时长',
`is_completed` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '是否完成观看:1,已完成,0未完成',
`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '记录封面图片',
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '资源地址',
`status` varchar(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT '1' COMMENT '是否存在: 1存在;0不存在;',
`parent_node` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '父节点',
`type` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '类型, 如:1,课程; 2,章节; 3,知识点; 4,学习资源',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of learning_records
-- ----------------------------
INSERT INTO `learning_records` VALUES ('1', '1', '290bf0217c6a1569abf225289c7e11ea', NULL, NULL, NULL, '2024-05-31 21:35:11', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('2', '2', 'd511d26df8de551bc85ce765089771b4', NULL, NULL, NULL, '2024-05-31 00:00:00', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('3', '1', 'd511d26df8de551bc85ce765089771b4', NULL, NULL, NULL, '2024-05-31 00:00:00', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('4', '1', '1', '', '', '', '2024-06-07 10:49:42', '1', '0', '', '', 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '0', '', '2');
INSERT INTO `learning_records` VALUES ('5', '1', '2', NULL, NULL, NULL, '2024-05-02 00:00:00', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('6', '1', '3', NULL, NULL, NULL, '2024-06-04 10:10:49', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('7', '1', '4', NULL, NULL, NULL, '2024-06-04 10:12:01', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '0', NULL, '1');
INSERT INTO `learning_records` VALUES ('96', '1', '5', NULL, NULL, NULL, '2024-05-30 20:46:21', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('8', '2', '3', NULL, NULL, NULL, '2024-06-04 10:15:01', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.taobao.com/', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('75', '2', '4', NULL, NULL, NULL, '2024-06-04 10:17:16', NULL, '0', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.taobao.com/', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('71', '2', '5', NULL, NULL, NULL, '2024-06-04 12:01:48', NULL, '1', NULL, NULL, 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.taobao.com/', '1', NULL, '1');
INSERT INTO `learning_records` VALUES ('1797841286352658434', '3', '5', '', '', '', '2024-06-06 16:59:38', '1', '1', '', '', '', '/portal', '1', '', '1');
INSERT INTO `learning_records` VALUES ('1798911495222161409', '1', '1', '', '', '', '2024-06-07 10:54:57', '1', '0', '', '', 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', '/portal', '0', '', '1');
INSERT INTO `learning_records` VALUES ('1797984330104299521', '3', '1', NULL, NULL, NULL, '2024-06-04 21:30:44', NULL, '1', '1', '1', 'https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg', 'https://www.baidu.com/', '1', NULL, '1');
-- ----------------------------
-- Table structure for objective_contents
-- ----------------------------
DROP TABLE IF EXISTS `objective_contents`;
CREATE TABLE `objective_contents` (
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`objective_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '对应的目标id',
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '内容',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of objective_contents
-- ----------------------------
INSERT INTO `objective_contents` VALUES ('3f85eb79c29be4a15c729d98b17676a5', 'c84dc451086f7938c28a4f757957f415', '价值目标3');
INSERT INTO `objective_contents` VALUES ('406c85c99bd2d4b9f624ca3a67c3ce66', '53b27c94fe8af02ac8b23d9be9a2e329', '思政目标2');
INSERT INTO `objective_contents` VALUES ('4ad5a1f0f584e35e7af6ef5142773990', '503dc084653ffd003cb404b62266dc7c', '知识目标1');
INSERT INTO `objective_contents` VALUES ('4b4458cd64b0a1e21b54191a89e9f83d', 'c84dc451086f7938c28a4f757957f415', '价值目标2');
INSERT INTO `objective_contents` VALUES ('53d9d78b41051696314c0b1c0efa5313', '503dc084653ffd003cb404b62266dc7c', '知识目标3');
INSERT INTO `objective_contents` VALUES ('6689ed187bcbd36309510a21ea492225', 'da6e7283befa8965dae0f0f39ea7f24e', '总目标3');
INSERT INTO `objective_contents` VALUES ('979e59083e81f28145e1162069ffebb8', 'c84dc451086f7938c28a4f757957f415', '价值目标1');
INSERT INTO `objective_contents` VALUES ('9efcc83089e6de9945499876d1a6235a', 'da6e7283befa8965dae0f0f39ea7f24e', '总目标1');
INSERT INTO `objective_contents` VALUES ('c6b3fc522a5479e28cd3f0c9b971a871', '53b27c94fe8af02ac8b23d9be9a2e329', '思政目标3');
INSERT INTO `objective_contents` VALUES ('dc31075d57f371970c5af09fd534a9af', 'da6e7283befa8965dae0f0f39ea7f24e', '总目标2');
INSERT INTO `objective_contents` VALUES ('eca937e6f047e3b6b06d67c5b4a9beff', '53b27c94fe8af02ac8b23d9be9a2e329', '思政目标1');
INSERT INTO `objective_contents` VALUES ('ffde482fac55e6dec5b60f6c6208d42c', '503dc084653ffd003cb404b62266dc7c', '知识目标2');
-- ----------------------------
-- Table structure for objectives_type
-- ----------------------------
DROP TABLE IF EXISTS `objectives_type`;
CREATE TABLE `objectives_type` (
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`type_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '类型名称',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `type_name`(`type_name` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of objectives_type
-- ----------------------------
INSERT INTO `objectives_type` VALUES ('410fc58cd757cd248941af1bea6888e5', '价值目标');
INSERT INTO `objectives_type` VALUES ('71f73bd999f678bcbbdb101e23277feb', '思政目标');
INSERT INTO `objectives_type` VALUES ('c126ef1a66733ab7a4ba12aba0eb7f82', '知识目标');
INSERT INTO `objectives_type` VALUES ('2350f69ef928cd2949e7fc05b05bd0c3', '素质目标');
-- ----------------------------
-- Table structure for resource
-- ----------------------------
DROP TABLE IF EXISTS `resource`;
CREATE TABLE `resource` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源名称',
`type` int NULL DEFAULT NULL COMMENT '资源类型',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源路径',
`status` int NULL DEFAULT NULL COMMENT '资源状态',
`tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标签',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of resource
-- ----------------------------
-- ----------------------------
-- Table structure for resource_relationship
-- ----------------------------
DROP TABLE IF EXISTS `resource_relationship`;
CREATE TABLE `resource_relationship` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键',
`courseId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程id',
`chapterId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '章节id',
`knowId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识点id',
`resourceId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of resource_relationship
-- ----------------------------
-- ----------------------------
-- Table structure for se_course_favour
-- ----------------------------
DROP TABLE IF EXISTS `se_course_favour`;
CREATE TABLE `se_course_favour` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程id',
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_course_favour
-- ----------------------------
INSERT INTO `se_course_favour` VALUES ('1796378327262564353', 'a2ba84374d86e85208c5906a96ea8205', '2');
INSERT INTO `se_course_favour` VALUES ('1796454599099658242', '36c34a4225526dd20ee3840da61d3701', '2');
INSERT INTO `se_course_favour` VALUES ('1796789887730647041', '2fa0fd63262230639d2c45a3acd9045c', '2');
INSERT INTO `se_course_favour` VALUES ('1797497056650289154', 'd511d26df8de551bc85ce765089771b4', '1');
INSERT INTO `se_course_favour` VALUES ('1797499380101767170', 'd511d26df8de551bc85ce765089771b4', '2');
INSERT INTO `se_course_favour` VALUES ('1798221492412149761', 'd511d26df8de551bc85ce765089771b4', '5');
INSERT INTO `se_course_favour` VALUES ('1798621775654993922', 'd511d26df8de551bc85ce765089771b4', '8');
INSERT INTO `se_course_favour` VALUES ('1798632199670714369', 'de3100cad98f76be3176dd39aa748a9e', '2');
-- ----------------------------
-- Table structure for se_course_thumb
-- ----------------------------
DROP TABLE IF EXISTS `se_course_thumb`;
CREATE TABLE `se_course_thumb` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_course_thumb
-- ----------------------------
INSERT INTO `se_course_thumb` VALUES ('1796343958854623233', '2', '1');
INSERT INTO `se_course_thumb` VALUES ('1796344002215337985', '2', '2');
INSERT INTO `se_course_thumb` VALUES ('1796362250491191298', '1', '2');
INSERT INTO `se_course_thumb` VALUES ('1796437673614974977', '6', '2');
INSERT INTO `se_course_thumb` VALUES ('1796445964822847489', '7', '4');
-- ----------------------------
-- Table structure for se_know_favour
-- ----------------------------
DROP TABLE IF EXISTS `se_know_favour`;
CREATE TABLE `se_know_favour` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`know_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_know_favour
-- ----------------------------
INSERT INTO `se_know_favour` VALUES ('1796378889450295297', '1', '2', '3');
-- ----------------------------
-- Table structure for se_know_thumb
-- ----------------------------
DROP TABLE IF EXISTS `se_know_thumb`;
CREATE TABLE `se_know_thumb` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`know_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_know_thumb
-- ----------------------------
INSERT INTO `se_know_thumb` VALUES ('1796347057337982977', '1', '2', '2');
INSERT INTO `se_know_thumb` VALUES ('1796347303317135361', '2', '2', '3');
INSERT INTO `se_know_thumb` VALUES ('1796347343968329730', '2', '3', '3');
INSERT INTO `se_know_thumb` VALUES ('1796347380697849857', '1', '3', '3');
-- ----------------------------
-- Table structure for se_resource_favour
-- ----------------------------
DROP TABLE IF EXISTS `se_resource_favour`;
CREATE TABLE `se_resource_favour` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`resource_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_resource_favour
-- ----------------------------
INSERT INTO `se_resource_favour` VALUES ('1796379012112715778', '1', '2', '3');
-- ----------------------------
-- Table structure for se_resource_thumb
-- ----------------------------
DROP TABLE IF EXISTS `se_resource_thumb`;
CREATE TABLE `se_resource_thumb` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`course_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`resource_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of se_resource_thumb
-- ----------------------------
INSERT INTO `se_resource_thumb` VALUES ('1796366535710904322', '2', '1', '1');
-- ----------------------------
-- Table structure for ums_admin
-- ----------------------------
DROP TABLE IF EXISTS `ums_admin`;
CREATE TABLE `ums_admin` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`nick_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称',
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
`create_time` datetime NULL DEFAULT NULL COMMENT '注册时间',
`status` int NULL DEFAULT 1 COMMENT '帐号启用状态:0->禁用;1->启用',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_admin
-- ----------------------------
INSERT INTO `ums_admin` VALUES (2, '123', '$2a$10$ACn80kN2ZEREGH3yOce9mui/KoWQllCHjNVXzXzrTI3gKJi/LB/YK', '123456789', '', '', '2024-06-05 23:23:45', 1);
INSERT INTO `ums_admin` VALUES (3, 'youhang', '$2a$10$TYJcMWBdDmmYfV/Kxi771ee7krjYJCLzI8O6MyjCofty9Y0OPLEna', '13547534472', 'yy', '', '2024-06-12 15:09:10', 1);
INSERT INTO `ums_admin` VALUES (4, 'xiao1111', '$2a$10$lDwfuRcOuNNdSXhmcwV9w.2SUblbwlS4ipxHXmqzTpw54CvxTwtU.', '', '', '', '2024-06-12 16:13:34', 1);
-- ----------------------------
-- Table structure for ums_admin_role_relation
-- ----------------------------
DROP TABLE IF EXISTS `ums_admin_role_relation`;
CREATE TABLE `ums_admin_role_relation` (
`id` int NOT NULL AUTO_INCREMENT,
`admin_id` int NULL DEFAULT NULL,
`role_id` int NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_admin_role_relation
-- ----------------------------
INSERT INTO `ums_admin_role_relation` VALUES (1, 3, 2);
INSERT INTO `ums_admin_role_relation` VALUES (2, 4, 1);
-- ----------------------------
-- Table structure for ums_menu
-- ----------------------------
DROP TABLE IF EXISTS `ums_menu`;
CREATE TABLE `ums_menu` (
`id` int NOT NULL AUTO_INCREMENT,
`parent_id` int NULL DEFAULT NULL COMMENT '父级ID',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '菜单名称',
`level` int NULL DEFAULT NULL COMMENT '菜单级数',
`sort` int NULL DEFAULT NULL COMMENT '菜单排序',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '前端名称',
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '前端图标',
`hidden` int NULL DEFAULT NULL COMMENT '前端隐藏',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_menu
-- ----------------------------
INSERT INTO `ums_menu` VALUES (1, NULL, '2024-06-12 15:44:52', '个人中心', NULL, NULL, 'Home', NULL, NULL);
INSERT INTO `ums_menu` VALUES (2, NULL, '2024-06-12 15:45:19', '课程', NULL, NULL, 'Course', NULL, NULL);
INSERT INTO `ums_menu` VALUES (3, NULL, '2024-06-12 15:45:26', '学生', NULL, NULL, 'Student', NULL, NULL);
INSERT INTO `ums_menu` VALUES (4, NULL, '2024-06-12 15:45:34', '分组', NULL, NULL, 'Group', NULL, NULL);
INSERT INTO `ums_menu` VALUES (5, NULL, '2024-06-12 15:45:38', '消息', NULL, NULL, 'Message', NULL, NULL);
INSERT INTO `ums_menu` VALUES (6, NULL, '2024-06-12 15:45:44', '课程基本信息', NULL, NULL, 'BasicCourseInformation', NULL, NULL);
INSERT INTO `ums_menu` VALUES (7, NULL, '2024-06-12 15:46:48', '课程目标', NULL, NULL, 'CourseObjectives', NULL, NULL);
INSERT INTO `ums_menu` VALUES (8, NULL, '2024-06-12 15:46:53', '课程章节', NULL, NULL, 'CourseChapters', NULL, NULL);
INSERT INTO `ums_menu` VALUES (9, NULL, '2024-06-12 15:46:59', '知识点', NULL, NULL, 'KnowledgePoints', NULL, NULL);
INSERT INTO `ums_menu` VALUES (10, NULL, '2024-06-12 15:47:04', '课程图谱', NULL, NULL, 'CurriculumMap', NULL, NULL);
INSERT INTO `ums_menu` VALUES (11, NULL, '2024-06-12 15:47:10', '课程资源', NULL, NULL, 'CourseResources', NULL, NULL);
INSERT INTO `ums_menu` VALUES (12, NULL, '2024-06-12 15:47:16', '课程学习记录', NULL, NULL, 'LearningProcess', NULL, NULL);
INSERT INTO `ums_menu` VALUES (13, NULL, '2024-06-12 15:49:09', '课程收藏', NULL, NULL, 'CourseCollections', NULL, NULL);
INSERT INTO `ums_menu` VALUES (14, NULL, '2024-06-12 15:49:17', '课程点赞', NULL, NULL, 'Courselikes', NULL, NULL);
INSERT INTO `ums_menu` VALUES (15, NULL, '2024-06-12 15:50:03', '网站首页', NULL, NULL, 'WebHome', NULL, NULL);
INSERT INTO `ums_menu` VALUES (16, NULL, '2024-06-12 15:50:09', '课程首页', NULL, NULL, 'CourseHome', NULL, NULL);
INSERT INTO `ums_menu` VALUES (17, NULL, '2024-06-12 15:50:15', '学习路径推荐', NULL, NULL, 'LearningPathRecommendations', NULL, NULL);
INSERT INTO `ums_menu` VALUES (18, NULL, '2024-06-12 15:51:24', '知识点学习', NULL, NULL, 'KnowledgePointLearning', NULL, NULL);
INSERT INTO `ums_menu` VALUES (19, NULL, '2024-06-12 15:51:31', '课程报告', NULL, NULL, 'CourseReports', NULL, NULL);
INSERT INTO `ums_menu` VALUES (20, NULL, '2024-06-12 15:53:15', '学习过程', NULL, NULL, 'MyCourseStudyManagement', NULL, NULL);
-- ----------------------------
-- Table structure for ums_resource
-- ----------------------------
DROP TABLE IF EXISTS `ums_resource`;
CREATE TABLE `ums_resource` (
`id` int NOT NULL AUTO_INCREMENT,
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源名称',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源URL',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
`category_id` int NULL DEFAULT NULL COMMENT '资源分类ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_resource
-- ----------------------------
INSERT INTO `ums_resource` VALUES (1, '2024-06-04 09:56:19', '首页', '/home/advertise/**', NULL, 1);
-- ----------------------------
-- Table structure for ums_resource_category
-- ----------------------------
DROP TABLE IF EXISTS `ums_resource_category`;
CREATE TABLE `ums_resource_category` (
`id` int NOT NULL AUTO_INCREMENT,
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类名称',
`sort` int NULL DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_resource_category
-- ----------------------------
INSERT INTO `ums_resource_category` VALUES (1, '2024-06-04 09:57:23', '首页模块', 0);
-- ----------------------------
-- Table structure for ums_role
-- ----------------------------
DROP TABLE IF EXISTS `ums_role`;
CREATE TABLE `ums_role` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
`admin_count` int NULL DEFAULT NULL COMMENT '后台用户数量',
`create_time` datetime NOT NULL COMMENT '创建时间',
`status` int NULL DEFAULT 1 COMMENT '启用状态:0->禁用;1->启用',
`sort` int NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_role
-- ----------------------------
INSERT INTO `ums_role` VALUES (1, '老师', '能查看自己和所有学生的信息', 0, '2024-06-04 09:59:47', 1, 0);
INSERT INTO `ums_role` VALUES (2, '学生', '只能查看自己信息', 0, '2024-06-04 10:02:15', 1, 0);
-- ----------------------------
-- Table structure for ums_role_menu_relation
-- ----------------------------
DROP TABLE IF EXISTS `ums_role_menu_relation`;
CREATE TABLE `ums_role_menu_relation` (
`id` int NOT NULL AUTO_INCREMENT,
`role_id` int NULL DEFAULT NULL COMMENT '角色ID',
`menu_id` int NULL DEFAULT NULL COMMENT '菜单ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_role_menu_relation
-- ----------------------------
INSERT INTO `ums_role_menu_relation` VALUES (1, 1, 1);
INSERT INTO `ums_role_menu_relation` VALUES (2, 1, 2);
INSERT INTO `ums_role_menu_relation` VALUES (3, 1, 3);
INSERT INTO `ums_role_menu_relation` VALUES (4, 1, 4);
INSERT INTO `ums_role_menu_relation` VALUES (5, 1, 5);
INSERT INTO `ums_role_menu_relation` VALUES (6, 1, 6);
INSERT INTO `ums_role_menu_relation` VALUES (7, 1, 7);
INSERT INTO `ums_role_menu_relation` VALUES (8, 1, 8);
INSERT INTO `ums_role_menu_relation` VALUES (9, 1, 9);
INSERT INTO `ums_role_menu_relation` VALUES (10, 1, 10);
INSERT INTO `ums_role_menu_relation` VALUES (11, 2, 1);
INSERT INTO `ums_role_menu_relation` VALUES (12, 2, 5);
INSERT INTO `ums_role_menu_relation` VALUES (13, 2, 11);
INSERT INTO `ums_role_menu_relation` VALUES (14, 2, 12);
INSERT INTO `ums_role_menu_relation` VALUES (15, 2, 13);
INSERT INTO `ums_role_menu_relation` VALUES (16, 2, 14);
INSERT INTO `ums_role_menu_relation` VALUES (17, 2, 15);
INSERT INTO `ums_role_menu_relation` VALUES (18, 2, 16);
INSERT INTO `ums_role_menu_relation` VALUES (19, 2, 17);
INSERT INTO `ums_role_menu_relation` VALUES (20, 2, 18);
INSERT INTO `ums_role_menu_relation` VALUES (21, 2, 19);
INSERT INTO `ums_role_menu_relation` VALUES (22, 2, 20);
-- ----------------------------
-- Table structure for ums_role_resource_relation
-- ----------------------------
DROP TABLE IF EXISTS `ums_role_resource_relation`;
CREATE TABLE `ums_role_resource_relation` (
`id` int NOT NULL AUTO_INCREMENT,
`role_id` int NULL DEFAULT NULL COMMENT '角色ID',
`resource_id` int NULL DEFAULT NULL COMMENT '资源ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_role_resource_relation
-- ----------------------------
INSERT INTO `ums_role_resource_relation` VALUES (1, 1, 1);
INSERT INTO `ums_role_resource_relation` VALUES (2, 2, 1);
-- ----------------------------
-- Table structure for ums_student
-- ----------------------------
DROP TABLE IF EXISTS `ums_student`;
CREATE TABLE `ums_student` (
`id` int NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
`nationality` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '民族',
`number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学号',
`birthday` datetime NULL DEFAULT NULL COMMENT '生日',
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`faculty` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '院系',
`major` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业',
`year` date NULL DEFAULT NULL COMMENT '入学年份',
`class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级',
`user_id` int NULL DEFAULT NULL COMMENT 'user_id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_student
-- ----------------------------
-- ----------------------------
-- Table structure for ums_teacher
-- ----------------------------
DROP TABLE IF EXISTS `ums_teacher`;
CREATE TABLE `ums_teacher` (
`id` int NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
`nationality` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '民族',
`profession` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业',
`education` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学历',
`degree` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学位',
`professional_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职称',
`emergency_contact` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`join_work_time` datetime NULL DEFAULT NULL COMMENT '参加工作时间',
`political_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '政治面貌',
`user_id` int NULL DEFAULT NULL COMMENT 'user_id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of ums_teacher
-- ----------------------------
SET FOREIGN_KEY_CHECKS = 1;

@ -1,8 +1,10 @@
package com.teaching;
import cn.hutool.core.lang.generator.SnowflakeGenerator;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
@MapperScan("com.teaching.backend.mapper")
@ -11,8 +13,11 @@ public class TeachingBackendApplication {
public static void main(String[] args) {
SpringApplication.run(TeachingBackendApplication.class, args);
}
@Bean
SnowflakeGenerator snowflakeGenerator(){
return new SnowflakeGenerator(1,0);
}
}

@ -14,9 +14,12 @@ public enum ErrorCode {
KONWID_NOT_EXIT(40002, "没有选择知识点"),
OBJECTIVE_OR_CONTENT_EXIT(40003, "该记录已存在"),
KNOW_NOT_EXIT(40004, "知识点不存在"),
TEACHER_NOT_EXIT(40005, "缺少教师信息"),
USERNAME_NOT_EXIT(40005, "缺少用户信息"),
STUDENT_NOT_EXIT(40006, "缺少学生信息"),
COURSES_NOT_EXIT(40007, "缺少课程信息"),
CONTENT_NOT_EXIT(40008, "内容id不存在"),
KNOWS_EXIT(40009, "该项下面存在关联的知识点"),
INVALID_ROLE(400010, "角色不存在"),
NOT_LOGIN_ERROR(40100, "未登录"),
NO_AUTH_ERROR(40101, "无权限"),

@ -2,19 +2,19 @@ package com.teaching.backend.controller;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.OSSObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.model.entity.FileTable;
import com.teaching.backend.service.FileTableService;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import com.teaching.backend.model.entity.CourseResources;
import com.teaching.backend.service.CourseResourcesService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -22,9 +22,8 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.io.*;
import java.nio.file.Paths;
import java.util.Date;
@ -44,7 +43,7 @@ public class CommonController {
@Resource
private FileTableService fileTableService;
private CourseResourcesService courseResourcesService;
@Value("${aliyun.oss.endpoint}")
private String endpoint;
@ -60,21 +59,30 @@ public class CommonController {
@PostMapping("/upload")
public BaseResponse<String> upload(@RequestParam("courseId") String courseId, MultipartFile file) throws IOException {
public BaseResponse<String> upload(MultipartFile file) throws IOException {
// if (file.getSize() > (10)) {
// return ResultUtils.error(690,"内容太大啦!");
// }
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String originalFilename = file.getOriginalFilename();
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
Integer Filetype;
String subDir;
if (suffix.equalsIgnoreCase(".jpg") || suffix.equalsIgnoreCase(".jpeg") || suffix.equalsIgnoreCase(".png")) {
subDir = "img/";
Filetype=1 ;
} else if (suffix.equalsIgnoreCase(".mp4") || suffix.equalsIgnoreCase(".avi") || suffix.equalsIgnoreCase(".mov")) {
subDir = "video/";
} else {
Filetype=2 ;
} else if (suffix.equalsIgnoreCase(".mp3") || suffix.equalsIgnoreCase(".wav") || suffix.equalsIgnoreCase(".flac")) {
subDir = "video/";
Filetype = 3;
}else {
subDir = "others/";
Filetype=4;
}
@ -84,9 +92,11 @@ public class CommonController {
ossClient.putObject(bucketName, subDir + fileName, file.getInputStream());
String objectUrl = ossClient.generatePresignedUrl(bucketName, subDir + fileName, new Date(System.currentTimeMillis() + 3600 * 1000)).toString();
// String objectUrl = ossClient.generatePresignedUrl(bucketName, subDir + fileName, new Date(System.currentTimeMillis() + 3600 * 1000)).toString();
fileTableService.updateFile(courseId, fileName, objectUrl); // 更新文件路径为OSS生成的URL
String objectUrl = "https://" + bucketName + "." + endpoint + "/" + subDir + fileName;
Integer type=Filetype;
courseResourcesService.updateFile(type, fileName, objectUrl); // 更新文件路径为OSS生成的URL
ossClient.shutdown();
@ -97,23 +107,25 @@ public class CommonController {
//文件下载
@GetMapping("/download")
public BaseResponse<String> download(@RequestParam String courseId, @RequestParam String path, HttpServletResponse response) throws IOException {
public BaseResponse<String> download(@RequestParam String Id, @RequestParam String path, HttpServletResponse response) throws IOException {
System.out.println("执行了下载的方法");
fileTableService.download(courseId,path,response,endpoint,accessKeyId,accessKeySecret,bucketName);
courseResourcesService.download(Id,path,response,endpoint,accessKeyId,accessKeySecret,bucketName);
return ResultUtils.success("成功");
}
@GetMapping("/get/record")
public BaseResponse<Page<FileTable>> pageBaseResponse(int page,int pageSize){
public BaseResponse<Page<CourseResources>> pageBaseResponse(@RequestParam Integer type, Integer page,Integer pageSize){
Page<FileTable> pageInfo=new Page<>(page,pageSize);
Page<CourseResources> pageInfo=new Page<>(page,pageSize);
LambdaQueryWrapper<FileTable> lambdaQueryWrapper=new LambdaQueryWrapper<>();
LambdaQueryWrapper<CourseResources> lambdaQueryWrapper=new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(type!=null,CourseResources::getType,type);
fileTableService.page(pageInfo, lambdaQueryWrapper);
courseResourcesService.page(pageInfo, lambdaQueryWrapper);
return ResultUtils.success(pageInfo);

@ -0,0 +1,53 @@
package com.teaching.backend.controller.FavourInformation;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.common.PageRequest;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourAddRequest;
import com.teaching.backend.model.entity.CourseResources;
import com.teaching.backend.model.entity.favour.SeCourseFavour;
import com.teaching.backend.model.entity.favour.SeResourceFavour;
import com.teaching.backend.service.CourseResourcesService;
import com.teaching.backend.service.favour.SeResourceFavourService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* ClassName: Get
* Package: com.teaching.backend.controller.FavourInformation
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/13 18:15
* @Version 1.0
*/
@RestController
public class FavourInformationController{
@Resource
CourseResourcesService courseResourcesService;
@GetMapping("/Favour/get")
public BaseResponse<Page<CourseResources>> getInformation2(@RequestParam List<Integer> resourceIdList , @RequestParam Integer type, PageRequest pageRequest) {
int page=pageRequest.getCurrent();
int pageSize=pageRequest.getPageSize();
Page<CourseResources> resourcesPage=courseResourcesService.getresourceRecords(type,resourceIdList,page,pageSize);
return ResultUtils.success(resourcesPage);
}
}

@ -0,0 +1,132 @@
package com.teaching.backend.controller;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.OSSObject;
import com.teaching.backend.utils.WordUtil;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.*;
@RestController
public class WordController2 {
@Value("${aliyun.oss.endpoint}")
private String endpoint;
@Value("${aliyun.oss.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.oss.accessKeySecret}")
private String accessKeySecret;
@Value("${aliyun.oss.bucketName}")
private String bucketName;
@Value("${filename}")
private String templateFileName; // 模板文件名
@PostMapping("/Word/get")
public ResponseEntity<byte[]> createWord(@RequestParam("outputPath") String outputPath) {
String filename = "generatedWord.docx";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
InputStream templateStream = null;
//获取模版
OSSObject ossObject = ossClient.getObject(new GetObjectRequest(bucketName, templateFileName));
templateStream = ossObject.getObjectContent();
WordUtil wordUtil = new WordUtil();
wordUtil.setTemplateInputStream(templateStream); // 设置模板文件输入流
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("username1", "姜钧瀚");
dataMap.put("img", "src/main/resources/static/3823.png");
// 设置 Word 生成的输出目录
wordUtil.setOutputDir(outputPath);
String generatedFilePath = wordUtil.createWord(dataMap);
if (generatedFilePath.equals("操作失败")) {
System.out.println("操作失败");
return ResponseEntity.badRequest().body("操作失败".getBytes());
}
File file = new File(generatedFilePath);
byte[] fileContent;
try {
fileContent = Files.readAllBytes(file.toPath());
} catch (IOException e) {
e.printStackTrace();
return ResponseEntity.badRequest().body("文件读取失败".getBytes());
}
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", filename);
//返回文件内容
return new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
}
@PostMapping("/Word/get2")
private void downWord(HttpServletResponse response) throws IOException {
// 读取模板文件并创建XWPFDocument对象
File rootFile = new File(ResourceUtils.getURL("classpath:").getPath());
File templateFile = new File(rootFile, "/word_template/ceshi2.docx");
try (FileInputStream fileInputStream = new FileInputStream(templateFile)) {
XWPFDocument word = new XWPFDocument(fileInputStream);
// 填充数据等后续处理代码
Map<String, String> params = new HashMap<>();
params.put("username", "姜钧瀚");
//处理正文
List<XWPFParagraph> paragraphs = word.getParagraphs();
for (XWPFParagraph paragraph : paragraphs) {
List<XWPFRun> runs = paragraph.getRuns();
for (XWPFRun run : runs) {
String text = run.getText(0);
for (String key : params.keySet()) {
if (text.contains(key)) {
run.setText(text.replaceAll(key, params.get(key)), 0);
}
}
}
}
// 导出Word
String fileName = "123123123.docx";
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
word.write(response.getOutputStream());
}
}
}

@ -51,7 +51,6 @@ public class CourseObjectivesController {
}
/**
* 禁止修改课程编码和名称
* @param courseObjectivesDTO
* @return
*/

@ -5,7 +5,7 @@ import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.mapper.UserMapper;
import com.teaching.backend.model.dto.courses.CoursesDTO;
import com.teaching.backend.model.dto.courses.PageDTO;
@ -30,7 +30,7 @@ import java.util.*;
* @author zjh
* @since 2024-05-30
*/
@Api(tags = "教师管理课程接口")
@Api(tags = "课程管理接口")
@RestController
@RequestMapping("/coursesteacher")
public class CoursesController {
@ -38,8 +38,7 @@ public class CoursesController {
@Autowired
ICoursesService coursesService;
@Autowired
UserMapper userMapper;
@ApiOperation("网站首页")
@GetMapping("/index")
@ -91,7 +90,7 @@ public class CoursesController {
return ResultUtils.success("编辑成功");
}
//TODO:删除功能暂未完善,数据缺失
//TODO:删除功能暂未完善,数据缺失
@ApiOperation("根据id删除课程")
@DeleteMapping("/{id}")
public BaseResponse deleteCourses(@PathVariable String id){

@ -36,8 +36,9 @@ public class ObjectiveContentsController {
@ApiOperation("删除目标内容")
@DeleteMapping("/{id}")
public BaseResponse<String> deleteContent(@PathVariable String id){
objectiveContentsService.removeById(id);
return ResultUtils.success("删除成功");
// objectiveContentsService.removeById(id);
String data = objectiveContentsService.deleteById(id);
return ResultUtils.success(data);
}
@ApiOperation("修改目标内容")

@ -39,11 +39,5 @@ public class StudentCoursesController {
return ResultUtils.success(data);
}
@ApiOperation("查询课程列表")
@GetMapping("/page")
public BaseResponse<PageDTO<CoursesVO>> getCourses(CourseQuery courseQuery){
PageDTO<CoursesVO> coursesList = studentCoursesService.queryCourses(courseQuery);
return ResultUtils.success(coursesList);
}
}

@ -1,9 +1,13 @@
package com.teaching.backend.controller.favour;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourAddRequest;
import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourQueryRequest;
import com.teaching.backend.model.entity.CourseResources;
import com.teaching.backend.service.favour.SeResourceFavourService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -37,7 +41,7 @@ public class SeResourceFavourController {
@PostMapping("/add")
// 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
public BaseResponse<Boolean> doFavour(@RequestBody ResourceFavourAddRequest resourceFavourAddRequest) {
if (StringUtils.isAnyBlank(resourceFavourAddRequest.getCourseId(), resourceFavourAddRequest.getResourceId(), resourceFavourAddRequest.getUserId())) {
if (StringUtils.isAnyBlank(resourceFavourAddRequest.getCourseId(),resourceFavourAddRequest.getUserId())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
@ -45,4 +49,21 @@ public class SeResourceFavourController {
}
/**
* 分页获取资源列表
*
* @return
*/
@PostMapping("/list/page")
public BaseResponse<Page<CourseResources>> listPostByPage(@RequestBody ResourceFavourQueryRequest resourceFavourQueryRequest) {
Integer current = resourceFavourQueryRequest.getCurrent();
Integer size = resourceFavourQueryRequest.getPageSize();
String userId = resourceFavourQueryRequest.getUserId();
Integer type = resourceFavourQueryRequest.getType();
return ResultUtils.success(seResourceFavourService.listCourseFavourByPage(userId,type,current,size));
}
}

@ -2,15 +2,24 @@ package com.teaching.backend.controller.umsAdmin;
import cn.hutool.core.collection.CollUtil;
import com.teaching.backend.api.CommonResult;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.model.dto.UmsAdminParam;
import com.teaching.backend.model.dto.UpdateAdminPasswordParam;
import com.teaching.backend.model.dto.courses.CoursesDTO;
import com.teaching.backend.model.dto.umsAdmin.UmsStudentAndTeacherDTO;
import com.teaching.backend.model.entity.courses.Courses;
import com.teaching.backend.model.entity.umsAdmin.UmsAdmin;
import com.teaching.backend.model.entity.umsAdmin.UmsRole;
import com.teaching.backend.model.vo.courses.TeacherInfVO;
import com.teaching.backend.service.umsAdmin.UmsAdminService;
import com.teaching.backend.service.umsAdmin.UmsRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
@ -166,4 +175,34 @@ public class UmsAdminController {
}
}
@ApiOperation("获取指定个人信息")
@PostMapping("/personal/info")
public CommonResult getByIdPersonalInfo(@RequestParam String id) {
if (id == null){
return CommonResult.failed("参数为空");
}
Object count = umsAdminService.getByIdPersonalInfo(id);
if (count == null) {
return CommonResult.failed();
}
return CommonResult.success(count);
}
@ApiOperation("修改指定个人信息")
@PostMapping("/update/PersonalInfo")
public CommonResult updatePersonalInfo(@RequestBody UmsStudentAndTeacherDTO umsStudentAndTeacherDTO) {
boolean count = umsAdminService.updatePersonalInfo(umsStudentAndTeacherDTO);
if (count == true) {
return CommonResult.success("修改成功");
}
return CommonResult.failed();
}
@ApiOperation("获取教师信息列表,关联教师的username和name")
@GetMapping("/get_teacherinf_list")
public BaseResponse<List<TeacherInfVO>> getTeacherInfList(){
List<TeacherInfVO> teacherInfVO = umsAdminService.getTeacherInfList();
return ResultUtils.success(teacherInfVO);
}
}

@ -1,7 +1,7 @@
package com.teaching.backend.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.FileTable;
import com.teaching.backend.model.entity.CourseResources;
import org.apache.ibatis.annotations.Mapper;
/**
@ -14,5 +14,5 @@ import org.apache.ibatis.annotations.Mapper;
* @Version 1.0
*/
@Mapper
public interface FileTableMapper extends BaseMapper<FileTable> {
public interface CourseResourcesMapper extends BaseMapper<CourseResources> {
}

@ -0,0 +1,19 @@
package com.teaching.backend.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.ResourceRelationship;
import org.apache.ibatis.annotations.Mapper;
import org.apache.tomcat.websocket.BackgroundProcess;
/**
* ClassName: ResourcesRelationshipMapper
* Package: com.teaching.backend.mapper
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/12 21:07
* @Version 1.0
*/
@Mapper
public interface ResourcesRelationshipMapper extends BaseMapper<ResourceRelationship> {
}

@ -1,18 +0,0 @@
package com.teaching.backend.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.User;
import org.apache.ibatis.annotations.Mapper;
/**
* ClassName: UserMapper
* Package: com.teaching.backend.mapper
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/3 17:47
* @Version 1.0
*/
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.courses.CourseObjectives;
import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO;
import java.util.ArrayList;
import java.util.List;
/**
@ -17,4 +18,6 @@ import java.util.List;
public interface CourseObjectivesMapper extends BaseMapper<CourseObjectives> {
List<CourseObjectivesTreeVO> selectTreeNodes(String courseObjectivesId);
void insertBatch(ArrayList<CourseObjectives> courseObjectivesFList);
}

@ -3,6 +3,8 @@ package com.teaching.backend.mapper.courses;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.courses.ObjectiveContentKnow;
import java.util.List;
/**
* <p>
* Mapper 接口
@ -13,4 +15,5 @@ import com.teaching.backend.model.entity.courses.ObjectiveContentKnow;
*/
public interface ObjectiveContentKnowMapper extends BaseMapper<ObjectiveContentKnow> {
void insertBatchSomeColumn(List<ObjectiveContentKnow> objectiveContentKnowList);
}

@ -1,8 +1,11 @@
package com.teaching.backend.mapper.courses;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.courses.ObjectiveContentKnow;
import com.teaching.backend.model.entity.courses.StudentCourses;
import java.util.List;
/**
* <p>
* Mapper 接口
@ -13,4 +16,5 @@ import com.teaching.backend.model.entity.courses.StudentCourses;
*/
public interface StudentCoursesMapper extends BaseMapper<StudentCourses> {
void insertBatchSomeColumn(List<StudentCourses> studentCoursesList);
}

@ -2,8 +2,19 @@ package com.teaching.backend.mapper.umsAdmin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.umsAdmin.UmsAdmin;
import com.teaching.backend.model.entity.umsAdmin.UmsRole;
import com.teaching.backend.model.entity.umsAdmin.UmsTeacher;
import com.teaching.backend.model.vo.umsAdmin.UmsStudentVO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UmsAdminMapper extends BaseMapper<UmsAdmin> {
boolean updateUserInformation(UmsAdmin umsadmin);
UmsRole getByIdRoleInfo(String id);
UmsTeacher getByIdTeacher(String id);
UmsStudentVO getByIdStudent(String id);
}

@ -15,10 +15,10 @@ import java.util.List;
*/
@Mapper
public interface UmsAdminRoleRelationMapper extends BaseMapper<UmsAdminRoleRelation> {
// /**
// * 批量插入用户角色关系
// */
// int insertList(@Param("list") List<UmsAdminRoleRelation> adminRoleRelationList);
/**
* 插入用户角色关系
*/
boolean insert(@Param("adminId") Long adminId, @Param("roleId") Long roleId);
/**
* 获取用于所有角色

@ -12,5 +12,6 @@ import com.teaching.backend.model.entity.umsAdmin.UmsStudent;
* @since 2024-06-12
*/
public interface UmsStudentMapper extends BaseMapper<UmsStudent> {
boolean updateStudentInfo(UmsStudent umsStudent);
}

@ -12,5 +12,6 @@ import com.teaching.backend.model.entity.umsAdmin.UmsTeacher;
* @since 2024-06-12
*/
public interface UmsTeacherMapper extends BaseMapper<UmsTeacher> {
boolean updateTeacherInfo(UmsTeacher umsTeacher);
}

@ -18,7 +18,7 @@ public class ResourceFavourAddRequest implements Serializable {
/**
* 知识点 id
*/
private String resourceId;
private Integer resourceId;
/**
* user id

@ -0,0 +1,28 @@
package com.teaching.backend.model.dto.favour.resourceFavour;
import com.teaching.backend.common.PageRequest;
import lombok.Data;
import java.io.Serializable;
/**
* 资源收藏请求
*/
@Data
public class ResourceFavourQueryRequest extends PageRequest implements Serializable {
/**
* 用户 id
*/
private String userId;
/**
* type
*/
private Integer type;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,121 @@
package com.teaching.backend.model.dto.umsAdmin;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author zjh
* @since 2024-06-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class UmsStudentAndTeacherDTO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Integer id;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
/**
* 民族
*/
private String nationality;
/**
* 学号
*/
private String number;
/**
* 生日
*/
private LocalDateTime birthday;
/**
* 手机号
*/
private String phone;
/**
* 院系
*/
private String faculty;
/**
* 专业
*/
private String major;
/**
* 入学年份
*/
private LocalDate yearAge;
/**
* 班级
*/
private String className;
/**
* 专业
*/
private String profession;
/**
* 学历
*/
private String education;
/**
* 学位
*/
private String degree;
/**
* 职称
*/
private String professionalTitle;
/**
* 手机号
*/
private String emergencyContact;
/**
* 参加工作时间
*/
private LocalDateTime joinWorkTime;
/**
* 政治面貌
*/
private String politicalStatus;
/**
* role_id
*/
private Integer roleId;
}

@ -1,5 +1,7 @@
package com.teaching.backend.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -21,12 +23,14 @@ import java.util.stream.Stream;
@ToString
@NoArgsConstructor
@AllArgsConstructor
@TableName("filetable")
public class FileTable {
@TableName("Resource")
public class CourseResources {
@TableId(value = "id", type = IdType.AUTO)
private int id;
private String courseId;
private String fileName;
private String filePath;
private String name;
private int type;
private int status;
private String tags;
private String path;
}

@ -6,21 +6,24 @@ import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* ClassName: User
* ClassName: ResourcesRelationship
* Package: com.teaching.backend.model.entity
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/3 17:42
* @Create 2024/6/12 21:03
* @Version 1.0
*/
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class User {
private int id;
private int userid;
private int bokeid;
private int type;
public class ResourceRelationship {
private String Id;
private String courseid;
private String chapterid;
private String knowid;
private String resourceid;
}

@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@ -24,8 +27,13 @@ public class ObjectiveContentKnow implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
@ApiModelProperty(value = "雪花算法生成的主键")
@JsonFormat(shape = JsonFormat.Shape.STRING)//此句为问题关键相当于吧Long转换为String
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
// @TableId(value = "id", type = IdType.NONE)
// private Long id;
/**
* 分项目标或内容 id

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@ -24,8 +26,9 @@ public class StudentCourses implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
@TableId(value = "id", type = IdType.ASSIGN_ID)
@JsonFormat(shape = JsonFormat.Shape.STRING)//此句为问题关键相当于吧Long转换为String
private Long id;
/**
* 学生的username

@ -28,7 +28,7 @@ public class SeResourceFavour implements Serializable {
/**
* 创建知识点 id
*/
private String resourceId;
private Integer resourceId;
/**
* 创建用户 id

@ -14,4 +14,16 @@ public class CourseQuery extends PageQuery {
@ApiModelProperty(value = "用户的username",required = true)
private String username;
@ApiModelProperty("课程任课教师")
private String teacher;
@ApiModelProperty("课程类别")
private String category;
@ApiModelProperty("课程性质")
private String nature;
@ApiModelProperty("课程考核类型")
private String assessmenttype;
}

@ -0,0 +1,22 @@
package com.teaching.backend.model.vo.courses;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "教师具体信息VO实体")
public class TeacherInfVO {
/**
* 教师username
*/
@ApiModelProperty("教师username")
private String username;
/**
* 课程封面
*/
@ApiModelProperty("教师name")
private String name;
}

@ -0,0 +1,88 @@
package com.teaching.backend.model.vo.umsAdmin;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author zjh
* @since 2024-06-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ums_student")
public class UmsStudentVO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Integer id;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
/**
* 民族
*/
private String nationality;
/**
* 学号
*/
private String number;
/**
* 生日
*/
private LocalDateTime birthday;
/**
* 手机号
*/
private String phone;
/**
* 院系
*/
private String faculty;
/**
* 专业
*/
private String major;
/**
* 入学年份
*/
private LocalDate yearAge;
/**
* 班级
*/
private String className;
/**
* role_id
*/
private Integer roleId;
}

@ -0,0 +1,87 @@
package com.teaching.backend.model.vo.umsAdmin;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author zjh
* @since 2024-06-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ums_teacher")
public class UmsTeacherVO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
/**
* 民族
*/
private String nationality;
/**
* 专业
*/
private String profession;
/**
* 学历
*/
private String education;
/**
* 学位
*/
private String degree;
/**
* 职称
*/
private String professionalTitle;
/**
* 手机号
*/
private String emergencyContact;
/**
* 参加工作时间
*/
private LocalDateTime joinWorkTime;
/**
* 政治面貌
*/
private String politicalStatus;
/**
* role_id
*/
private Integer roleId;
}

@ -0,0 +1,27 @@
package com.teaching.backend.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.model.entity.CourseResources;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* ClassName: FileTableService
* Package: com.teaching.backend.service
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/4 11:49
* @Version 1.0
*/
public interface CourseResourcesService extends IService<CourseResources> {
void updateFile(Integer type, String fileName, String filePath);
void download(String id, String path, HttpServletResponse response, String endpoint, String accessKeyId, String accessKeySecret, String bucketName) throws IOException;
Page<CourseResources> getresourceRecords(Integer type, List<Integer> resourceIdList, int page, int pageSize);
}

@ -1,23 +0,0 @@
package com.teaching.backend.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.model.entity.FileTable;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* ClassName: FileTableService
* Package: com.teaching.backend.service
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/4 11:49
* @Version 1.0
*/
public interface FileTableService extends IService<FileTable> {
void updateFile(String courseId, String fileName, String filePath);
void download(String courseId, String path, HttpServletResponse response, String endpoint, String accessKeyId, String accessKeySecret, String bucketName) throws IOException;
}

@ -0,0 +1,17 @@
package com.teaching.backend.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.model.entity.ResourceRelationship;
/**
* ClassName: ResourcesRelationshipService
* Package: com.teaching.backend.service
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/12 21:04
* @Version 1.0
*/
public interface ResourcesRelationshipService extends IService<ResourceRelationship> {
}

@ -1,16 +0,0 @@
package com.teaching.backend.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.model.entity.User;
/**
* ClassName: UserService
* Package: com.teaching.backend.service
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/3 17:48
* @Version 1.0
*/
public interface UserService extends IService<User> {
}

@ -36,4 +36,5 @@ public interface ICoursesService extends IService<Courses> {
void updateCourse(CoursesDTO coursesDTO);
void down(HttpServletResponse response, String id) throws Exception;
}

@ -14,4 +14,6 @@ import com.teaching.backend.model.entity.courses.ObjectiveContents;
*/
public interface IObjectiveContentsService extends IService<ObjectiveContents> {
String deleteById(String id);
}

@ -1,12 +1,10 @@
package com.teaching.backend.service.favour;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.model.entity.courses.Courses;
import com.teaching.backend.model.entity.CourseResources;
import com.teaching.backend.model.entity.favour.SeResourceFavour;
import com.teaching.backend.model.vo.favour.CourseFavourDetailVO;
/**
* @Author:youhang
@ -22,16 +20,10 @@ public interface SeResourceFavourService extends IService<SeResourceFavour> {
* @param userId
* @return
*/
BaseResponse<Boolean> doResourceFavour(String courseId, String resourceId, String userId);
BaseResponse<Boolean> doResourceFavour(String courseId, Integer resourceId, String userId);
/**
* 某个用户资源列表全部信息
*
* @param page
* @param queryWrapper
* @return
*/
public Page<CourseFavourDetailVO> listCourseFavourByPage(Page<Courses> page, Wrapper<Courses> queryWrapper);
public Page<CourseResources> listCourseFavourByPage(String userId, Integer type, Integer page, Integer pageSize);
}

@ -0,0 +1,121 @@
package com.teaching.backend.service.impl;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.OSSObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.mapper.CourseResourcesMapper;
import com.teaching.backend.model.entity.CourseResources;
import com.teaching.backend.model.entity.ResourceRelationship;
import com.teaching.backend.service.CourseResourcesService;
import com.teaching.backend.service.ResourcesRelationshipService;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* ClassName: FileTableImpl
* Package: com.teaching.backend.service.impl
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/4 11:50
* @Version 1.0
*/
@Service
public class CourseResourcesServiceImpl extends ServiceImpl<CourseResourcesMapper, CourseResources> implements CourseResourcesService {
@Resource
ResourcesRelationshipService resourcesRelationshipService;
@Override
public void updateFile(Integer type, String fileName, String filePath) {
CourseResources courseResources = new CourseResources();
courseResources.setName(fileName);
courseResources.setPath(filePath);
courseResources.setType(type);
this.save(courseResources);
int resourceId=courseResources.getId();
System.out.println(resourceId);
ResourceRelationship resourcesRelationship=new ResourceRelationship();
resourcesRelationship.setResourceid(String.valueOf(resourceId));
resourcesRelationshipService.save(resourcesRelationship);
}
@Override
public void download(String Id, String path, HttpServletResponse response, String endpoint, String accessKeyId, String accessKeySecret, String bucketName) throws IOException {
CourseResources courseResources=getById(Id);
System.out.println(courseResources);
// 创建OSS客户端
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String key = extractKeyFromFullPath(courseResources.getPath());
OSSObject object = ossClient.getObject(bucketName, key);
String fileName = courseResources.getName();
// 设置保存文件的路径
String savePath = path + "/" + fileName;
// 获取文件的输入流
InputStream inputStream = object.getObjectContent();
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
// 创建保存文件
File saveFile = new File(savePath);
// 将文件内容复制到保存文件中
FileUtils.copyInputStreamToFile(inputStream, saveFile);
// 关闭输入流和OSS客户端
inputStream.close();
ossClient.shutdown();
}
@Override
public Page<CourseResources> getresourceRecords(Integer type, List<Integer> resourceIdList, int page, int pageSize) {
Page <CourseResources> pageInfo=new Page<>(page,pageSize);
LambdaQueryWrapper<CourseResources>lambdaQueryWrapper=new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CourseResources::getId,resourceIdList);
lambdaQueryWrapper.eq(CourseResources::getType,type);
return this.page(pageInfo,lambdaQueryWrapper);
}
private String extractKeyFromFullPath(String filePath) {
// 提取存储桶名称
String key = filePath.substring(filePath.indexOf("com") + 4, filePath.indexOf("?"));
return key;
}
}

@ -1,97 +0,0 @@
package com.teaching.backend.service.impl;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.OSSObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.mapper.FileTableMapper;
import com.teaching.backend.model.entity.FileTable;
import com.teaching.backend.service.FileTableService;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
/**
* ClassName: FileTableImpl
* Package: com.teaching.backend.service.impl
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/4 11:50
* @Version 1.0
*/
@Service
public class FileTableServiceImpl extends ServiceImpl<FileTableMapper,FileTable> implements FileTableService {
@Override
public void updateFile(String courseId, String fileName, String filePath) {
System.out.println("执行了service中的方法");
System.out.println(courseId);
System.out.println(fileName);
System.out.println(filePath);
FileTable fileTable = new FileTable();
fileTable.setFileName(fileName);
fileTable.setFilePath(filePath);
// fileTable.setCourseId(courseId); // 设置主键值
//
// this.save(fileTable); // 使用save方法来添加新的记录
UpdateWrapper<FileTable> fileTableUpdateWrapper = new UpdateWrapper<>();
fileTableUpdateWrapper.eq("course_id", courseId);
this.update(fileTable, fileTableUpdateWrapper);
}
@Override
public void download(String courseId, String path, HttpServletResponse response, String endpoint, String accessKeyId, String accessKeySecret, String bucketName) throws IOException {
FileTable fileTable = this.getById(courseId);
System.out.println(fileTable);
// 创建OSS客户端
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String key = extractKeyFromFullPath(fileTable.getFilePath());
OSSObject object = ossClient.getObject(bucketName, key);
String fileName = fileTable.getFileName();
// 设置保存文件的路径
String savePath = path + "/" + fileName;
// 获取文件的输入流
InputStream inputStream = object.getObjectContent();
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
// 创建保存文件
File saveFile = new File(savePath);
// 将文件内容复制到保存文件中
FileUtils.copyInputStreamToFile(inputStream, saveFile);
// 关闭输入流和OSS客户端
inputStream.close();
ossClient.shutdown();
}
private String extractKeyFromFullPath(String filePath) {
// 提取存储桶名称
String key = filePath.substring(filePath.indexOf("com") + 4, filePath.indexOf("?"));
return key;
}
}

@ -0,0 +1,21 @@
package com.teaching.backend.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.mapper.ResourcesRelationshipMapper;
import com.teaching.backend.model.entity.ResourceRelationship;
import com.teaching.backend.service.ResourcesRelationshipService;
import org.springframework.stereotype.Service;
/**
* ClassName: ResourcesRelationshipServiceImpl
* Package: com.teaching.backend.service.impl
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/12 21:05
* @Version 1.0
*/
@Service
public class ResourcesRelationshipServiceImpl extends ServiceImpl<ResourcesRelationshipMapper, ResourceRelationship> implements ResourcesRelationshipService {
}

@ -1,24 +0,0 @@
package com.teaching.backend.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.mapper.UserMapper;
import com.teaching.backend.model.entity.User;
import com.teaching.backend.service.UserService;
import org.springframework.stereotype.Service;
/**
* ClassName: UserServiceImpl
* Package: com.teaching.backend.service.impl
* Description:
*
* @Author 姜钧瀚
* @Create 2024/6/3 17:48
* @Version 1.0
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.mapper.courses.CourseObjectivesMapper;
import com.teaching.backend.mapper.courses.ObjectiveContentKnowMapper;
import com.teaching.backend.mapper.courses.ObjectiveContentsMapper;
import com.teaching.backend.model.dto.courses.CourseObjectivesDTO;
import com.teaching.backend.model.entity.courses.CourseObjectives;
import com.teaching.backend.model.entity.courses.ObjectiveContentKnow;
import com.teaching.backend.model.entity.courses.ObjectiveContents;
import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO;
import com.teaching.backend.service.courses.ICourseObjectivesService;
@ -39,6 +41,8 @@ public class CourseObjectivesServiceImpl extends ServiceImpl<CourseObjectivesMap
@Autowired
ObjectiveContentsMapper objectiveContentsMapper;
@Autowired
ObjectiveContentKnowMapper objectiveContentKnowMapper;
@Override
@Transactional
@ -88,6 +92,7 @@ public class CourseObjectivesServiceImpl extends ServiceImpl<CourseObjectivesMap
* 首先检查是不是思政目标如果是思政目标就要看此时的总目标下面有没有别的分项目标了如果有不准删除
* 如果此时只有分项目标检查分项目标下面有没有内容如果有禁止删除
* 删除分项目标也要检查下面有没有内容
* 内容还有关联的知识点也不能删在内容管理删除那边已实现
* @param id
* @return
*/
@ -102,6 +107,12 @@ public class CourseObjectivesServiceImpl extends ServiceImpl<CourseObjectivesMap
if (type == CourseCode.Total_EXIT.getValue()){
throw new BusinessException(ErrorCode.OPERATION_ERROR,"课程总目标只需清除所列内容即可!");
}
//TODO:等到删完内容后判断还是上来就判断?
Long count = objectiveContentKnowMapper.selectCount(new LambdaQueryWrapper<ObjectiveContentKnow>()
.eq(ObjectiveContentKnow::getObjectiveOrContent, id));
if(count > CourseCode.KNOWS_EXIT.getValue()){
throw new BusinessException(ErrorCode.KNOWS_EXIT);
}
String pid = courseObjectives.getPid();
if (type.equals(CourseCode.SI_ZHENG_TYPE.getValue())){
LambdaQueryWrapper<CourseObjectives> queryWrapper = new LambdaQueryWrapper<>();

@ -3,25 +3,22 @@ package com.teaching.backend.service.impl.courses;
import cn.afterturn.easypoi.word.WordExportUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.mapper.courses.CourseObjectivesMapper;
import com.teaching.backend.mapper.courses.CoursesMapper;
import com.teaching.backend.mapper.courses.ObjectiveContentsMapper;
import com.teaching.backend.mapper.courses.ObjectivesTypeMapper;
import com.teaching.backend.mapper.courses.*;
import com.teaching.backend.mapper.umsAdmin.UmsAdminMapper;
import com.teaching.backend.mapper.umsAdmin.UmsAdminRoleRelationMapper;
import com.teaching.backend.mapper.umsAdmin.UmsTeacherMapper;
import com.teaching.backend.model.dto.courses.CoursesDTO;
import com.teaching.backend.model.dto.courses.PageDTO;
import com.teaching.backend.model.entity.courses.CourseObjectives;
import com.teaching.backend.model.entity.courses.Courses;
import com.teaching.backend.model.entity.courses.ObjectiveContents;
import com.teaching.backend.model.entity.courses.ObjectivesType;
import com.teaching.backend.model.entity.courses.*;
import com.teaching.backend.model.entity.umsAdmin.UmsAdmin;
import com.teaching.backend.model.entity.umsAdmin.UmsAdminRoleRelation;
import com.teaching.backend.model.entity.umsAdmin.UmsTeacher;
import com.teaching.backend.model.query.CourseQuery;
import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO;
@ -38,6 +35,7 @@ import org.springframework.util.ResourceUtils;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -53,6 +51,9 @@ import java.util.stream.Collectors;
@Service
public class CoursesServiceImpl extends ServiceImpl<CoursesMapper, Courses> implements ICoursesService {
@Autowired
private CourseObjectivesServiceImpl objectivesService;
@Autowired
CoursesMapper coursesMapper;
@ -66,6 +67,10 @@ public class CoursesServiceImpl extends ServiceImpl<CoursesMapper, Courses> impl
UmsAdminMapper umsAdminMapper;
@Autowired
UmsTeacherMapper umsTeacherMapper;
@Autowired
UmsAdminRoleRelationMapper umsAdminRoleRelationMapper;
@Autowired
StudentCoursesMapper studentCoursesMapper;
@Override
@ -73,12 +78,15 @@ public class CoursesServiceImpl extends ServiceImpl<CoursesMapper, Courses> impl
public String saveCourseWithObjective(CoursesDTO coursesDTO) {
String teacher = coursesDTO.getTeacher();
if (teacher == null || teacher.equals("")) {
throw new BusinessException(ErrorCode.TEACHER_NOT_EXIT);
throw new BusinessException(ErrorCode.USERNAME_NOT_EXIT);
}
Courses courses = new Courses();
String courseId = UUID.randomUUID().toString().replace("-", "");
CourseObjectives courseObjectives = new CourseObjectives();
BeanUtils.copyProperties(coursesDTO, courses);
courses.setCreateTime(LocalDateTime.now());
courses.setId(courseId);
String code = coursesDTO.getCode();
QueryWrapper<Courses> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code", code);
@ -86,24 +94,27 @@ public class CoursesServiceImpl extends ServiceImpl<CoursesMapper, Courses> impl
if (count == 0) {
int insert = coursesMapper.insert(courses);
if (insert > 0) {
Courses coursesNew = coursesMapper.selectOne(queryWrapper);
courseObjectives.setCourseId(coursesNew.getId());
Courses coursesNew = coursesMapper.selectById(courseId);
courseObjectives.setCourseId(courseId);
courseObjectives.setName(coursesNew.getName() + "课程总体目标");
int insertTotal = courseObjectivesMapper.insert(courseObjectives);
if (insertTotal>0){
CourseObjectives courseTotalObjectives = courseObjectivesMapper.selectOne
(new LambdaQueryWrapper<CourseObjectives>().eq(CourseObjectives::getCourseId, coursesNew.getId()));
(new LambdaQueryWrapper<CourseObjectives>().eq(CourseObjectives::getCourseId, courseId));
String courseTotalObjectivesId = courseTotalObjectives.getId();
List<ObjectivesType> objectivesTypes = objectivesTypeMapper.selectList(new LambdaQueryWrapper<ObjectivesType>());
ArrayList<CourseObjectives> courseObjectivesFList = new ArrayList<>();
CourseObjectives courseObjectivesF = null;
for (ObjectivesType objectivesType : objectivesTypes) {
Integer typeId = objectivesType.getId();
String typeName = objectivesType.getTypeName();
CourseObjectives courseObjectivesF = new CourseObjectives();
courseObjectivesF = new CourseObjectives();
courseObjectivesF.setType(typeId);
courseObjectivesF.setName(typeName);
courseObjectivesF.setPid(courseTotalObjectivesId);
courseObjectivesMapper.insert(courseObjectivesF);
courseObjectivesFList.add(courseObjectivesF);
}
courseObjectivesMapper.insertBatch(courseObjectivesFList);
courseTotalObjectives.setHasChild(1);
courseObjectivesMapper.updateById(courseTotalObjectives);
}
@ -118,44 +129,91 @@ public class CoursesServiceImpl extends ServiceImpl<CoursesMapper, Courses> impl
@Override
public PageDTO<CoursesVO> queryCourses(CourseQuery courseQuery) {
String username = courseQuery.getUsername();
if (username==null || username.equals("")){
throw new BusinessException(ErrorCode.TEACHER_NOT_EXIT);
if (username == null || username.isEmpty()) {
throw new BusinessException(ErrorCode.USERNAME_NOT_EXIT);
}
//要搜索的课程名字
String name = courseQuery.getName();
// 1.1构建分页条件
UmsAdmin umsAdmin = umsAdminMapper.selectOne(new LambdaQueryWrapper<UmsAdmin>()
.eq(UmsAdmin::getUsername, username));
UmsAdminRoleRelation umsAdminRoleRelation = umsAdminRoleRelationMapper.selectOne(new LambdaQueryWrapper<UmsAdminRoleRelation>()
.eq(UmsAdminRoleRelation::getAdminId, umsAdmin.getId()));
int roleId = Math.toIntExact(umsAdminRoleRelation.getRoleId());
PageDTO<CoursesVO> coursesVOPageDTO;
switch (roleId) {
case 1:
coursesVOPageDTO = queryForTeacher(courseQuery, username);
break;
case 2:
coursesVOPageDTO = queryForStudent(courseQuery, username);
break;
case 3:
coursesVOPageDTO = queryForAdmin(courseQuery);
break;
default:
throw new BusinessException(ErrorCode.INVALID_ROLE);
}
populateTeacherNames(coursesVOPageDTO.getList());
return coursesVOPageDTO;
}
private PageDTO<CoursesVO> queryForTeacher(CourseQuery courseQuery, String username) {
Page<Courses> page = courseQuery.toMpPageDefaultSortByCreateTime();
// 2.分页查询
Page<Courses> p = lambdaQuery()
.like(name != null, Courses::getName, name)
// .eq(Courses::getTeacher,teacherId)
// .apply("JSON_CONTAINS(teacher, JSON_QUOTE({0}))", teacherId)
.like(courseQuery.getName() != null, Courses::getName, courseQuery.getName())
.apply("FIND_IN_SET({0}, teacher)", username)
.page(page);
PageDTO<CoursesVO> coursesVOPageDTO = PageDTO.of(p, CoursesVO.class);
List<CoursesVO> pageDTOList = coursesVOPageDTO.getList();
List<String> teachers = null;
return PageDTO.of(p, CoursesVO.class);
}
private PageDTO<CoursesVO> queryForStudent(CourseQuery courseQuery, String username) {
List<StudentCourses> studentCourses = studentCoursesMapper.selectList(new LambdaQueryWrapper<StudentCourses>()
.eq(StudentCourses::getStudent, username));
List<String> coursesList = studentCourses.stream()
.map(StudentCourses::getCourse)
.collect(Collectors.toList());
Page<Courses> page = courseQuery.toMpPageDefaultSortByCreateTime();
Page<Courses> p = lambdaQuery()
.like(courseQuery.getName() != null, Courses::getName, courseQuery.getName())
.in(Courses::getId, coursesList)
.page(page);
return PageDTO.of(p, CoursesVO.class);
}
private PageDTO<CoursesVO> queryForAdmin(CourseQuery courseQuery) {
Page<Courses> page = courseQuery.toMpPageDefaultSortByCreateTime();
Page<Courses> p = lambdaQuery()
.like(courseQuery.getName() != null && !courseQuery.getName().isEmpty(), Courses::getName, courseQuery.getName())
.eq(courseQuery.getCategory() != null && !courseQuery.getCategory().isEmpty(), Courses::getCategory, courseQuery.getCategory())
.eq(courseQuery.getNature() != null && !courseQuery.getNature().isEmpty(), Courses::getNature, courseQuery.getNature())
.eq(courseQuery.getAssessmenttype() != null &&!courseQuery.getAssessmenttype().isEmpty(), Courses::getAssessmenttype, courseQuery.getAssessmenttype())
.apply(courseQuery.getTeacher() != null && !courseQuery.getTeacher().isEmpty(), "FIND_IN_SET({0}, teacher)", courseQuery.getTeacher())
.page(page);
return PageDTO.of(p, CoursesVO.class);
}
for (CoursesVO coursesVO : pageDTOList) {
private void populateTeacherNames(List<CoursesVO> courseList) {
for (CoursesVO coursesVO : courseList) {
List<String> teacherNameList = new ArrayList<>();
String teacherIds = coursesVO.getTeacher();
teachers = new ArrayList<>(Arrays.asList(teacherIds.split(",")));
for (String teacher : teachers) {
UmsAdmin umsAdmin = umsAdminMapper.selectOne(new LambdaQueryWrapper<UmsAdmin>().
eq(UmsAdmin::getUsername, teacher));
if (umsAdmin==null){
String[] teacherIds = coursesVO.getTeacher().split(",");
for (String teacherId : teacherIds) {
UmsAdmin umsAdminTea = umsAdminMapper.selectOne(new LambdaQueryWrapper<UmsAdmin>()
.eq(UmsAdmin::getUsername, teacherId));
if (umsAdminTea == null) {
throw new BusinessException(ErrorCode.OPERATION_ERROR);
}
Long adminId = umsAdmin.getId();
UmsTeacher umsTeacher = umsTeacherMapper.selectOne(new LambdaQueryWrapper<UmsTeacher>()
.eq(UmsTeacher::getUserId, adminId));
.eq(UmsTeacher::getUserId, umsAdminTea.getId()));
teacherNameList.add(umsTeacher.getName());
}
coursesVO.setTeacher(String.join(",", teacherNameList));
}
return coursesVOPageDTO;
}
@Override
public void deleteBatchByIds(String id) {
if(id==null){
@ -267,15 +325,70 @@ public class CoursesServiceImpl extends ServiceImpl<CoursesMapper, Courses> impl
//查询课程通过课程id查--课程简介
Courses courses = this.getById(id);
System.out.println("课程:"+courses);
Map<String,Object> params = new HashMap<String,Object>();
params.put("name",courses.getName());
params.put("code",courses.getCode());
params.put("nature",courses.getNature());
params.put("credit",courses.getCredit());
params.put("classhour",courses.getClasshours());
params.put("description",courses.getDescription());
//准备数据
String course_name = courses.getName();
String course_code = courses.getCode();
String course_nature = courses.getNature();
BigDecimal course_credit = courses.getCredit();
Integer course_classhour = courses.getClasshours();
String course_description = courses.getDescription();
//查询课程目标
List<CourseObjectivesTreeVO> courseObjectivesTreeVO = objectivesService.queryCourseObjectivesTree(id);
System.out.println("课程目标:"+courseObjectivesTreeVO);
//准备数据
//总目标
StringBuilder overall_goal = new StringBuilder();
for (ObjectiveContents content : courseObjectivesTreeVO.get(0).getContents()) {
overall_goal.append(content.getContent());
}
System.out.println(overall_goal);
//分项目标
//知识目标
StringBuilder knowledge_goals = new StringBuilder();
StringBuilder political_goals = new StringBuilder();
StringBuilder value_goals = new StringBuilder();
for (int i = 0; i < courseObjectivesTreeVO.get(0).getCourseObjectivesTrees().size(); i++){
CourseObjectivesTreeVO content = courseObjectivesTreeVO.get(0).getCourseObjectivesTrees().get(i);
//知识目标
if (i == 0){
for (ObjectiveContents c : content.getContents()) {
knowledge_goals.append(c.getContent()).append("\n");
}
}
//思政目标
if (i == 1){
for (ObjectiveContents c : content.getContents()) {
political_goals.append(c.getContent()).append("\n");
}
}
//价值目标
if (i == 2){
for (ObjectiveContents c : content.getContents()) {
value_goals.append(c.getContent()).append("\n");
}
}
}
System.out.println("知识目标:"+knowledge_goals);
System.out.println("思政目标:"+political_goals);
System.out.println("价值目标:"+value_goals);
Map<String,Object> params = new HashMap<String,Object>();
params.put("course_name",course_name);
params.put("course_code",course_code);
params.put("course_nature",course_nature);
params.put("course_credit",course_credit);
params.put("course_classhour",course_classhour);
params.put("course_description",course_description);
//课程目标
params.put("overall_goal", overall_goal);
params.put("knowledge_goals", knowledge_goals);
params.put("political_goals", political_goals);
params.put("value_goals", value_goals);
//根据模板+数据 导出文档
XWPFDocument xwpfDocument = WordExportUtil.exportWord07(templatePath.getPath(), params);

@ -1,5 +1,6 @@
package com.teaching.backend.service.impl.courses;
import cn.hutool.core.lang.generator.SnowflakeGenerator;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.common.ErrorCode;
@ -26,6 +27,7 @@ import java.sql.SQLIntegrityConstraintViolationException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@ -49,6 +51,8 @@ public class ObjectiveContentKnowServiceImpl extends ServiceImpl<ObjectiveConten
CoursesMapper coursesMapper;
@Autowired
ObjectiveContentsMapper objectiveContentsMapper;
@Autowired
SnowflakeGenerator snowflakeGenerator;
@Override
@Transactional
@ -63,18 +67,22 @@ public class ObjectiveContentKnowServiceImpl extends ServiceImpl<ObjectiveConten
throw new BusinessException(ErrorCode.KONWID_NOT_EXIT);
}
List<String> knowIds = new ArrayList<>(Arrays.asList(knows.split(",")));
ObjectiveContentKnow objectiveContentKnow = null;
try {
List<ObjectiveContentKnow> objectiveContentKnowList = new ArrayList<>();
for (String knowId : knowIds) {
objectiveContentKnow = new ObjectiveContentKnow();
ObjectiveContentKnow objectiveContentKnow = new ObjectiveContentKnow();
// objectiveContentKnow.setId(snowflakeGenerator.next());
objectiveContentKnow.setObjectiveOrContent(objectiveOrContent);
objectiveContentKnow.setKnow(knowId);
objectiveContentKnowMapper.insert(objectiveContentKnow);
objectiveContentKnowList.add(objectiveContentKnow);
}
try {
objectiveContentKnowMapper.insertBatchSomeColumn(objectiveContentKnowList);
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException(ErrorCode.OBJECTIVE_OR_CONTENT_EXIT);
}
return "添加成功";
}
@ -118,7 +126,7 @@ public class ObjectiveContentKnowServiceImpl extends ServiceImpl<ObjectiveConten
)))
.collect(Collectors.toList());
// 计算每个内容的比例(百分比)
// 计算每个内容的知识点总学时的比例(百分比)
contentKnowVOs.forEach(contentKnowVO -> {
BigDecimal contentPercentage = calculatePercentage(contentKnowVO.getKnowsTime(), classhours);
contentKnowVO.setPersent(contentPercentage + "%");
@ -161,8 +169,8 @@ public class ObjectiveContentKnowServiceImpl extends ServiceImpl<ObjectiveConten
}
// 将classhours转换为BigDecimal类型,以便进行精确计算
BigDecimal classHoursBigDecimal = new BigDecimal(classhours);
// 计算knowsTime占classhours的比例,保留两位小数,并四舍五入
return knowsTime.divide(classHoursBigDecimal, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
// 计算knowsTime占classhours的比例,先除以classhours再乘以100,保留两位小数,并四舍五入
return knowsTime.divide(classHoursBigDecimal, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
}

@ -1,10 +1,18 @@
package com.teaching.backend.service.impl.courses;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.mapper.courses.ObjectiveContentKnowMapper;
import com.teaching.backend.mapper.courses.ObjectiveContentsMapper;
import com.teaching.backend.model.entity.courses.ObjectiveContentKnow;
import com.teaching.backend.model.entity.courses.ObjectiveContents;
import com.teaching.backend.service.courses.IObjectiveContentsService;
import com.teaching.backend.utils.CourseCode;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -18,4 +26,21 @@ import org.springframework.stereotype.Service;
@Service
public class ObjectiveContentsServiceImpl extends ServiceImpl<ObjectiveContentsMapper, ObjectiveContents> implements IObjectiveContentsService {
@Autowired
ObjectiveContentKnowMapper objectiveContentKnowMapper;
@Autowired
ObjectiveContentsMapper objectiveContentsMapper;
@Override
public String deleteById(String id) {
if (id == null){
throw new BusinessException(ErrorCode.CONTENT_NOT_EXIT);
}
Long count = objectiveContentKnowMapper.selectCount(new LambdaQueryWrapper<ObjectiveContentKnow>()
.eq(ObjectiveContentKnow::getObjectiveOrContent, id));
if(count > CourseCode.KNOWS_EXIT.getValue()){
throw new BusinessException(ErrorCode.KNOWS_EXIT);
}
int delete = objectiveContentsMapper.deleteById(id);
return delete>0 ? "删除成功!" : "删除失败!";
}
}

@ -1,6 +1,7 @@
package com.teaching.backend.service.impl.courses;
import cn.hutool.core.lang.generator.SnowflakeGenerator;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -20,6 +21,7 @@ import com.teaching.backend.model.entity.umsAdmin.UmsAdmin;
import com.teaching.backend.model.entity.umsAdmin.UmsTeacher;
import com.teaching.backend.model.query.CourseQuery;
import com.teaching.backend.model.vo.courses.CoursesVO;
import com.teaching.backend.service.courses.ICoursesService;
import com.teaching.backend.service.courses.IStudentCoursesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -49,6 +51,11 @@ public class StudentCoursesServiceImpl extends ServiceImpl<StudentCoursesMapper,
UmsTeacherMapper umsTeacherMapper;
@Autowired
CoursesMapper coursesMapper;
@Autowired
SnowflakeGenerator snowflakeGenerator;
@Autowired
ICoursesService coursesService;
@Override
public String saveCoursesToStudents(StudentCoursesDTO studentCoursesDTO) {
String studentId = studentCoursesDTO.getStudent();
@ -61,14 +68,17 @@ public class StudentCoursesServiceImpl extends ServiceImpl<StudentCoursesMapper,
throw new BusinessException(ErrorCode.COURSES_NOT_EXIT);
}
List<String> coursesIds = new ArrayList<>(Arrays.asList(courses.split(",")));
List<StudentCourses> studentCoursesList = new ArrayList<>();
StudentCourses studentCourses = null;
try {
for (String course : coursesIds) {
studentCourses = new StudentCourses();
studentCourses.setStudent(studentId);
studentCourses.setCourse(course);
studentCoursesMapper.insert(studentCourses);
studentCoursesList.add(studentCourses);
}
try {
studentCoursesMapper.insertBatchSomeColumn(studentCoursesList);
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException(ErrorCode.OBJECTIVE_OR_CONTENT_EXIT);
@ -76,10 +86,11 @@ public class StudentCoursesServiceImpl extends ServiceImpl<StudentCoursesMapper,
return "添加成功";
}
//TODO:学生这个课程要不要整合到教师那边???
@Override
public PageDTO<CoursesVO> queryCourses(CourseQuery courseQuery) {
String username = courseQuery.getUsername();
if (username==null || username.equals("")){
if (username == null || username.equals("")) {
throw new BusinessException(ErrorCode.STUDENT_NOT_EXIT);
}
List<StudentCourses> studentCourses = studentCoursesMapper.selectList(new LambdaQueryWrapper<StudentCourses>()
@ -99,26 +110,9 @@ public class StudentCoursesServiceImpl extends ServiceImpl<StudentCoursesMapper,
Page<Courses> p = this.coursesMapper.selectPage(page, queryWrapper);
PageDTO<CoursesVO> coursesVOPageDTO = PageDTO.of(p, CoursesVO.class);
List<CoursesVO> pageDTOList = coursesVOPageDTO.getList();
List<String> teachers = null;
for (CoursesVO coursesVO : pageDTOList) {
List<String> teacherNameList = new ArrayList<>();
String teacherIds = coursesVO.getTeacher();
teachers = new ArrayList<>(Arrays.asList(teacherIds.split(",")));
for (String teacher : teachers) {
UmsAdmin umsAdmin = umsAdminMapper.selectOne(new LambdaQueryWrapper<UmsAdmin>().
eq(UmsAdmin::getUsername, teacher));
if (umsAdmin==null){
throw new BusinessException(ErrorCode.OPERATION_ERROR);
}
Long adminId = umsAdmin.getId();
UmsTeacher umsTeacher = umsTeacherMapper.selectOne(new LambdaQueryWrapper<UmsTeacher>()
.eq(UmsTeacher::getUserId, adminId));
teacherNameList.add(umsTeacher.getName());
}
coursesVO.setTeacher(String.join(",", teacherNameList));
}
// coursesService.populateTeacherNames(coursesVOPageDTO.getList());
return coursesVOPageDTO;
}
}

@ -1,6 +1,7 @@
package com.teaching.backend.service.impl.favour;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ErrorCode;
@ -8,14 +9,18 @@ import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.mapper.courses.CoursesMapper;
import com.teaching.backend.mapper.favour.SeResourceFavourMapper;
import com.teaching.backend.model.entity.CourseResources;
import com.teaching.backend.model.entity.courses.Courses;
import com.teaching.backend.model.entity.favour.SeResourceFavour;
import com.teaching.backend.service.CourseResourcesService;
import com.teaching.backend.service.favour.SeResourceFavourService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors;
/**
@ -30,8 +35,11 @@ public class SeResourceFavourServiceImpl extends ServiceImpl<SeResourceFavourMap
@Autowired
CoursesMapper coursesMapper;
@Autowired
private CourseResourcesService courseResourcesService;
@Override
public BaseResponse<Boolean> doResourceFavour(String courseId, String resourceId, String userId) {
public BaseResponse<Boolean> doResourceFavour(String courseId, Integer resourceId, String userId) {
//从数据库中校验是否存在courseid
Courses courses = coursesMapper.selectById(courseId);
@ -76,5 +84,15 @@ public class SeResourceFavourServiceImpl extends ServiceImpl<SeResourceFavourMap
}
}
@Override
public Page<CourseResources> listCourseFavourByPage(String userId, Integer type, Integer page, Integer pageSize) {
QueryWrapper<SeResourceFavour> resourceQueryWrapper = new QueryWrapper<>();
resourceQueryWrapper.eq("user_id",userId);
List<Integer> ids = this.list(resourceQueryWrapper).stream().map(SeResourceFavour::getResourceId).collect(Collectors.toList());
return courseResourcesService.getresourceRecords(type,ids,page,pageSize);
}
}

@ -3,9 +3,11 @@ package com.teaching.backend.service.umsAdmin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.model.dto.UmsAdminParam;
import com.teaching.backend.model.dto.UpdateAdminPasswordParam;
import com.teaching.backend.model.dto.umsAdmin.UmsStudentAndTeacherDTO;
import com.teaching.backend.model.entity.umsAdmin.UmsAdmin;
import com.teaching.backend.model.entity.umsAdmin.UmsResource;
import com.teaching.backend.model.entity.umsAdmin.UmsRole;
import com.teaching.backend.model.vo.courses.TeacherInfVO;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.List;
@ -76,4 +78,16 @@ public interface UmsAdminService extends IService<UmsAdmin> {
* 手机号登录
*/
String phoneLogin(String phone);
/**
* 获取指定个人信息
*/
Object getByIdPersonalInfo(String id);
/**
* 修改指定个人信息
*/
boolean updatePersonalInfo(UmsStudentAndTeacherDTO umsStudentAndTeacherDTO);
List<TeacherInfVO> getTeacherInfList();
}

@ -4,18 +4,23 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson;
import com.teaching.backend.exception.Asserts;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.exception.LyException;
import com.teaching.backend.mapper.umsAdmin.UmsAdminMapper;
import com.teaching.backend.mapper.umsAdmin.UmsAdminRoleRelationMapper;
import com.teaching.backend.mapper.umsAdmin.UmsStudentMapper;
import com.teaching.backend.mapper.umsAdmin.UmsTeacherMapper;
import com.teaching.backend.model.dto.UmsAdminParam;
import com.teaching.backend.model.dto.UpdateAdminPasswordParam;
import com.teaching.backend.model.entity.umsAdmin.AdminUserDetails;
import com.teaching.backend.model.entity.umsAdmin.UmsAdmin;
import com.teaching.backend.model.entity.umsAdmin.UmsResource;
import com.teaching.backend.model.entity.umsAdmin.UmsRole;
import com.teaching.backend.model.dto.umsAdmin.UmsStudentAndTeacherDTO;
import com.teaching.backend.model.entity.umsAdmin.*;
import com.teaching.backend.model.vo.courses.TeacherInfVO;
import com.teaching.backend.model.vo.umsAdmin.UmsStudentVO;
import com.teaching.backend.model.vo.umsAdmin.UmsTeacherVO;
import com.teaching.backend.service.umsAdmin.UmsAdminService;
import com.teaching.backend.utils.JwtTokenUtil;
import com.teaching.backend.utils.RegexUtils;
@ -40,6 +45,7 @@ import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@ -55,9 +61,11 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
@Autowired
private UmsAdminRoleRelationMapper adminRoleRelation;
@Autowired
private AmqpTemplate amqpTemplate;
private UmsStudentMapper umsStudentMapper;
@Autowired
private StringRedisTemplate redisTemplate;
UmsTeacherMapper umsTeacherMapper;
@Autowired
UmsAdminMapper umsAdminMapper;
@Override
@ -71,12 +79,22 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
.eq(UmsAdmin::getUsername, umsAdmin.getUsername())
.list();
if (umsAdminList.size() > 0) {
return null;
throw new BusinessException(500,"用户已存在");
}
//将密码进行加密操作
String encodePassword = passwordEncoder.encode(umsAdmin.getPassword());
umsAdmin.setPassword(encodePassword);
save(umsAdmin);
//创建学生信息(默认是学生)
UmsAdmin byUsername = lambdaQuery().eq(UmsAdmin::getUsername, umsAdmin.getUsername())
.one();
UmsStudent umsStudent = new UmsStudent();
umsStudent.setUserId(Math.toIntExact(byUsername.getId()));
umsStudentMapper.insert(umsStudent);
//分配角色(学生)
adminRoleRelation.insert(byUsername.getId(), 2L);
return umsAdmin;
}
@ -87,10 +105,10 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
try {
UserDetails userDetails = loadUserByUsername(username);
if(!passwordEncoder.matches(password,userDetails.getPassword())){
Asserts.fail("密码不正确");
throw new BusinessException(400,"密码错误");
}
if(!userDetails.isEnabled()){
Asserts.fail("帐号已被禁用");
throw new BusinessException(400,"帐号已被禁用");
}
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
@ -104,7 +122,7 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
@Override
public String phoneLogin(String phone) {
if (phone == null){
return null;
throw new BusinessException(400,"手机号为空");
}
String token = null;
//密码需要客户端加密后传递
@ -112,12 +130,12 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
UmsAdmin phoneAdmin = lambdaQuery().eq(UmsAdmin::getPhone, phone)
.one();
if (phoneAdmin == null){
return null;
throw new BusinessException(400,"手机号未注册");
}
UserDetails userDetails = loadUserByUsername(phoneAdmin.getUsername());
if(!userDetails.isEnabled()){
Asserts.fail("帐号已被禁用");
throw new BusinessException(400,"帐号已被禁用");
}
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
@ -128,15 +146,61 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
return token;
}
@Override
public Object getByIdPersonalInfo(String id) {
UmsRole umsRole = umsAdminMapper.getByIdRoleInfo(id);
if (umsRole == null){
throw new BusinessException(500,"用户未分配角色");
}
if(umsRole.getStatus()==0){
throw new BusinessException(500,"角色被禁用");
}
if (umsRole.getId() == 1){
UmsTeacher teacher = umsAdminMapper.getByIdTeacher(id);
UmsTeacherVO umsTeacherVO = new UmsTeacherVO();
BeanUtils.copyProperties(teacher,umsTeacherVO);
umsTeacherVO.setRoleId(Math.toIntExact(umsRole.getId()));
return umsTeacherVO;
}else if (umsRole.getId() == 2){
UmsStudentVO student = umsAdminMapper.getByIdStudent(id);
UmsStudentVO umsStudentVO = new UmsStudentVO();
BeanUtils.copyProperties(student,umsStudentVO);
umsStudentVO.setRoleId(Math.toIntExact(umsRole.getId()));
return umsStudentVO;
}
return null;
}
@Override
public boolean updatePersonalInfo(UmsStudentAndTeacherDTO umsStudentAndTeacherDTO) {
if (umsStudentAndTeacherDTO.getRoleId() == 1){
UmsTeacher umsTeacher = new UmsTeacher();
BeanUtils.copyProperties(umsStudentAndTeacherDTO,umsTeacher);
System.out.println(umsTeacher);
return umsTeacherMapper.updateTeacherInfo(umsTeacher);
} else if (umsStudentAndTeacherDTO.getRoleId() == 2) {
UmsStudent umsStudent = new UmsStudent();
BeanUtils.copyProperties(umsStudentAndTeacherDTO,umsStudent);
return umsStudentMapper.updateStudentInfo(umsStudent);
}
return false;
}
@Override
public boolean updateUms(UmsAdmin umsadmin) {
if (umsadmin.getPassword().length() > 0){
Asserts.fail("修改操作错误1");
List<UmsAdmin> adminList = lambdaQuery().eq(UmsAdmin::getUsername, umsadmin.getUsername())
.list();
if (adminList.size() > 0){
throw new BusinessException(400,"用户名已存在");
}
if (!StrUtil.isEmpty(umsadmin.getPassword())){
throw new BusinessException(400,"修改操作错误1");
}
if (umsadmin.getCreateTime() != null){
Asserts.fail("修改操作错误2");
throw new BusinessException(400,"修改操作错误2");
}
return updateById(umsadmin);
return umsAdminMapper.updateUserInformation(umsadmin);
}
@Override
@ -144,17 +208,17 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
if(StrUtil.isEmpty(param.getUsername())
||StrUtil.isEmpty(param.getOldPassword())
||StrUtil.isEmpty(param.getNewPassword())){
return -1;
throw new BusinessException(400,"修改密码操作错误");
}
List<UmsAdmin> adminList = lambdaQuery()
.eq(UmsAdmin::getUsername, param.getUsername())
.list();
if(CollUtil.isEmpty(adminList)){
return -2;
throw new BusinessException(400,"用户名不存在");
}
UmsAdmin umsAdmin = adminList.get(0);
if(!passwordEncoder.matches(param.getOldPassword(),umsAdmin.getPassword())){
return -3;
throw new BusinessException(400,"密码重复");
}
umsAdmin.setPassword(passwordEncoder.encode(param.getNewPassword()));
updateById(umsAdmin);
@ -164,7 +228,7 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
@Override
public String sendVerifyCode(String phone) {
if (!RegexUtils.isPhone(phone)) {
throw new LyException(400, "手机号格式错误");
throw new BusinessException(400, "手机号格式错误");
}
// UmsAdmin admin = lambdaQuery()
@ -199,8 +263,6 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
// //存入,redis,存5min
// this.redisTemplate.opsForValue().set(KEY_PREFIX + phone, code, 5, TimeUnit.MINUTES);
return code;
}
@ -215,13 +277,23 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
.eq(UmsAdmin::getPhone,umsAdminParam.getPhone())
.list();
if (umsAdminList.size() > 0 ) {
return null;
throw new BusinessException(400,"手机号已存在");
}
//将密码进行加密操作
String encodePassword = passwordEncoder.encode(umsAdmin.getPassword());
umsAdmin.setUsername(randomUsername());
umsAdmin.setPassword(encodePassword);
save(umsAdmin);
//创建学生信息(默认是学生)
UmsAdmin byUsername = lambdaQuery().eq(UmsAdmin::getPhone, umsAdmin.getPhone())
.one();
UmsStudent umsStudent = new UmsStudent();
umsStudent.setUserId(Math.toIntExact(byUsername.getId()));
umsStudentMapper.insert(umsStudent);
//分配角色(学生)
adminRoleRelation.insert(byUsername.getId(), 2L);
return umsAdmin;
}
@ -280,4 +352,20 @@ public class UmsAdminServiceImpl extends ServiceImpl<UmsAdminMapper, UmsAdmin> i
throw new UsernameNotFoundException("用户名或密码错误");
}
@Override
public List<TeacherInfVO> getTeacherInfList() {
List<UmsTeacher> umsTeachers = umsTeacherMapper.selectList(new LambdaQueryWrapper<UmsTeacher>());
TeacherInfVO teacherInfVO = null;
List<TeacherInfVO> teacherInfList = new ArrayList<>();;
for (UmsTeacher umsTeacher : umsTeachers) {
teacherInfVO = new TeacherInfVO();
UmsAdmin umsAdmin = umsAdminMapper.selectOne(new LambdaQueryWrapper<UmsAdmin>()
.eq(UmsAdmin::getId, umsTeacher.getUserId()));
teacherInfVO.setName(umsTeacher.getName());
teacherInfVO.setUsername(umsAdmin.getUsername());
teacherInfList.add(teacherInfVO);
}
return teacherInfList;
}
}

@ -7,6 +7,8 @@ public enum CourseCode {
CONTENT_EXIT(1, "存在内容"),
SI_ZHENG_TYPE(1, "思政目标类型"),
SI_ZHENG_EXIT(1, "思政目标存在"),
KNOWS_EXIT(0, "存在关联的知识点"),
TEACHER_ROLE_ID(1, "教师的角色id是1"),
Total_EXIT(0, "课程总目标"),
COURSE_UODATING(1, "课程正在修改中");

@ -7,7 +7,6 @@ import lombok.Data;
import java.io.*;
import java.net.URLDecoder;
import java.util.Map;
import java.util.Random;
@ -20,65 +19,53 @@ import java.util.Random;
public class WordUtil {
private Configuration configuration = null;
/*
* 模板文件存放的目录
*/
private String baseDir;
/*
* 模板文件名称
*/
private String templateFile;
/*
* word生成的输出目录
*/
private String outputDir;
private InputStream templateInputStream; // 模板文件输入流
public WordUtil(){
public WordUtil() {
configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");
}
/*
* <p>转换成word<br>
*/
public String createWord(Map<String,Object> dataMap){
public void setTemplateInputStream(InputStream templateStream) {
this.templateInputStream = templateStream;
}
configuration.setClassForTemplateLoading(this.getClass(), "");//模板文件所在路径
public String createWord(Map<String,Object> dataMap) {
configuration.setClassForTemplateLoading(this.getClass(), "");
Template t = null;
try {
//得到模板文件
configuration.setDirectoryForTemplateLoading(new File(baseDir));
t = configuration.getTemplate(templateFile);
t = new Template(templateFile, new InputStreamReader(templateInputStream, "UTF-8"), configuration);
} catch (IOException e) {
e.printStackTrace();
}
//随机生成
Random random=new Random();
File outFile = new File(outputDir+ random.nextInt(200) + ".docx"); //导出文件
Random random = new Random();
File outFile = new File(outputDir + random.nextInt(200) + ".docx");
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
t.process(dataMap, out); //将填充数据填入模板文件并输出到目标文件
t.process(dataMap, out);
return outFile.getPath();
} catch (TemplateException e) {
} catch (TemplateException | IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return "文档生成失败";
}
}
return "文档生成失败";
}
}

@ -2,4 +2,4 @@ aliyun.oss.endpoint=oss-cn-wuhan-lr.aliyuncs.com
aliyun.oss.accessKeyId=LTAI5tFkdu3y5WddxbjgaG2F
aliyun.oss.accessKeySecret=1xUchxUTlmUBoTV5JQIrKsVjSkmsLF
aliyun.oss.bucketName=ceshi132132
filename=123.ftl

@ -3,32 +3,36 @@ server:
spring:
application:
name: teaching-backend
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
mvc:
pathmatch:
matching-strategy: ant_path_matcher
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/teaching_db
username: root
password: root
url: jdbc:mysql://rm-bp189rd5595301145do.mysql.rds.aliyuncs.com:3306/teaching_db
username: root123
password: Zjh@111111
mybatis:
configuration:
map-underscore-to-camel-case: true
mapper-locations:
- classpath:mapper/*.xml
- classpath*:com/**/mapper/*.xml
# 自定义jwt key
jwt:
tokenHeader: Authorization #JWT存储的请求头
secret: mySecret #JWT加解密使用的密钥
expiration: 604800 #JWT的超期限时间(60*60*24)一天
tokenHead: Bearer #JWT负载中拿到开头
tokenHeader: Authorization
secret: mySecret
expiration: 604800
tokenHead: Bearer
knife4j:
enable: true
openapi:
title: 用户管理接口文档
description: "用户管理接口文档"
title: 111
description: "123"
concat: zjh
version: v1.0.0
group:
@ -39,7 +43,7 @@ knife4j:
- com.teaching.backend.controller
secure:
ignored:
urls: #安全路径白名单
urls:
#- /swagger-ui/
- /**
# - /swagger-resources/**

@ -12,4 +12,13 @@
select * from t1
order by t1.pid
</select>
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO course_objectives (id, type, name, pid)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id}, #{item.type}, #{item.name},#{item.pid})
</foreach>
</insert>
</mapper>

@ -2,4 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.teaching.backend.mapper.courses.ObjectiveContentKnowMapper">
<insert id="insertBatchSomeColumn" parameterType="java.util.List">
INSERT INTO objective_content_know (objective_or_content, know)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.objectiveOrContent}, #{item.know})
</foreach>
</insert>
</mapper>

@ -2,4 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.teaching.backend.mapper.courses.StudentCoursesMapper">
<insert id="insertBatchSomeColumn" parameterType="java.util.List">
INSERT INTO student_courses (student, course)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.student}, #{item.course})
</foreach>
</insert>
</mapper>

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.teaching.backend.mapper.umsAdmin.UmsAdminMapper">
<update id="updateUserInformation">
update ums_admin
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="password != null">
password = #{password},
</if>
<if test="phone != null">
phone = #{phone,jdbcType=VARCHAR},
</if>
<if test="nickName != null">
nick_name = #{nickName,jdbcType=VARCHAR},
</if>
<if test="icon != null">
icon = #{icon,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getByIdRoleInfo" resultType="com.teaching.backend.model.entity.umsAdmin.UmsRole" parameterType="java.lang.String">
SELECT
r.*
FROM
ums_admin_role_relation arr
LEFT JOIN ums_role r ON arr.role_id = r.id
WHERE
arr.admin_id = #{id}
</select>
<select id="getByIdTeacher" resultType="com.teaching.backend.model.entity.umsAdmin.UmsTeacher" parameterType="java.lang.String">
SELECT
t.id id,
t.name name,
t.sex sex,
t.nationality nationality,
t.profession profession,
t.education education,
t.degree degree,
t.professional_title professionalTitle,
t.emergency_contact emergencyContact,
t.join_work_time joinWorkTime,
t.political_status politicalStatus
FROM
ums_teacher t
WHERE
t.user_id = #{id}
</select>
<select id="getByIdStudent" resultType="com.teaching.backend.model.vo.umsAdmin.UmsStudentVO" parameterType="java.lang.String">
SELECT
s.id id,
s.name name,
s.sex sex,
s.nationality nationality,
s.number number,
s.birthday birthday,
s.phone phone,
s.faculty faculty,
s.major major,
s.year_age yearAge,
s.class_name className
FROM
ums_student s
WHERE
s.user_id = #{id}
</select>
</mapper>

@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.teaching.backend.mapper.umsAdmin.UmsAdminRoleRelationMapper">
<!-- &lt;!&ndash;批量新增回写主键支持&ndash;&gt;-->
<!-- <insert id="insertList">-->
<!-- INSERT INTO ums_admin_role_relation (admin_id, role_id) VALUES-->
<!-- <foreach collection="list" separator="," item="item" index="index">-->
<!-- (#{item.adminId,jdbcType=BIGINT},-->
<!-- #{item.roleId,jdbcType=BIGINT})-->
<!-- </foreach>-->
<!-- </insert>-->
<insert id="insert">
INSERT INTO ums_admin_role_relation (admin_id, role_id) VALUES (#{adminId,jdbcType=BIGINT},
#{roleId,jdbcType=BIGINT})
</insert>
<select id="getRoleList" resultType="com.teaching.backend.model.entity.umsAdmin.UmsRole">
select r.*
from ums_admin_role_relation ar left join ums_role r on ar.role_id = r.id

@ -2,4 +2,40 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.teaching.backend.mapper.umsAdmin.UmsStudentMapper">
<update id="updateStudentInfo" parameterType="com.teaching.backend.model.entity.umsAdmin.UmsStudent">
update ums_student
<set>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
</if>
<if test="sex != null">
sex = #{sex},
</if>
<if test="nationality != null">
nationality = #{nationality,jdbcType=VARCHAR},
</if>
<if test="number != null">
number = #{number,jdbcType=VARCHAR},
</if>
<if test="birthday != null">
birthday = #{birthday,jdbcType=VARCHAR},
</if>
<if test="phone != null">
phone = #{phone,jdbcType=TIMESTAMP},
</if>
<if test="faculty != null">
faculty = #{faculty,jdbcType=INTEGER},
</if>
<if test="major != null">
major = #{major,jdbcType=INTEGER},
</if>
<if test="yearAge != null">
year_age = #{yearAge,jdbcType=INTEGER},
</if>
<if test="className != null">
class_name = #{className,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

@ -2,4 +2,40 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.teaching.backend.mapper.umsAdmin.UmsTeacherMapper">
<update id="updateTeacherInfo" parameterType="com.teaching.backend.model.entity.umsAdmin.UmsTeacher">
update ums_teacher
<set>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
</if>
<if test="sex != null">
sex = #{sex},
</if>
<if test="nationality != null">
nationality = #{nationality,jdbcType=VARCHAR},
</if>
<if test="profession != null">
profession = #{profession,jdbcType=VARCHAR},
</if>
<if test="education != null">
education = #{education,jdbcType=VARCHAR},
</if>
<if test="degree != null">
degree = #{degree,jdbcType=TIMESTAMP},
</if>
<if test="professionalTitle != null">
professional_title = #{professionalTitle,jdbcType=INTEGER},
</if>
<if test="emergencyContact != null">
emergency_contact = #{emergencyContact,jdbcType=INTEGER},
</if>
<if test="joinWorkTime != null">
join_work_time = #{joinWorkTime,jdbcType=INTEGER},
</if>
<if test="politicalStatus != null">
political_status = #{politicalStatus,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

@ -19,30 +19,32 @@
<!-- 引入axios -->
<script src="../../plugins/axios/axios.min.js"></script>
<script>
new Vue({
el: '#app2',
el: '#app',
data: {
selectedFile:''
asd: []
},
methods: {
handleFileChange(event) {
this.selectedFile = event.target.files[0];
},
uploadFile() {
const formData = new FormData();
formData.append('file', this.selectedFile);
// 发送文件上传请求
axios.post('/video/upload', formData)
fetchList() {
const params = {
resourceIdList: [4], // 传递资源ID列表
type: 1 // 资源类型
};
axios.get('/Favour/get', {
params: params
})
.then(response => {
// 处理上传成功的响应
console.log(response.data);
this.asd = response.data.records; // 直接赋值给 asd
console.log( this.asd )
})
.catch(error => {
// 处理上传失败的错误
console.error(error);
console.error("出错了", error);
});
}
},
},
mounted() {
this.fetchList(); // 在组件挂载后立即调用fetchList方法获取资源记录
}
});

@ -1,9 +1,14 @@
package com.teaching;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.*;
@SpringBootTest
class TeachingBackendApplicationTests {
Map<String, List<String>> userLearningRecords = new HashMap<>();
}

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save