diff --git a/pom.xml b/pom.xml index 2c86e01..98f8d7d 100644 --- a/pom.xml +++ b/pom.xml @@ -155,6 +155,12 @@ spring-boot-starter-data-redis + + + cn.afterturn + easypoi-spring-boot-starter + 4.1.3 + diff --git a/sql/teaching_db2.0.sql b/sql/teaching_db2.0.sql deleted file mode 100644 index 701c1b6..0000000 --- a/sql/teaching_db2.0.sql +++ /dev/null @@ -1,564 +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:31:07 -*/ - -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 utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '内部编号', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建日期', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新日期', - `pid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '父级节点 默认0没有', - `has_child` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '是否有子节点 添加子节点变1,默认0没有', - `name` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '目标名称', - `type` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '目标类型', - `course_id` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '课程id', - `requireid` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '毕业要求id', - `temp` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '毕业要求', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_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 utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '内部编号', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `img` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '课程封面', - `category` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '课程类别', - `nature` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '课程性质', - `name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '课程名称', - `code` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '课程编码', - `semester` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_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 utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '考核类型', - `assessmentway` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '考核方式', - `teacher` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '负责教师', - `teachermethod` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '教学方法', - `teacherway` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '教学方式', - `description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '课程简介', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_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 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 --- ---------------------------- -DROP TABLE IF EXISTS `objective_contents`; -CREATE TABLE `objective_contents` ( - `id` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, - `objective_id` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '对应的目标id', - `content` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '内容', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_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 utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, - `type_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型名称', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE INDEX `type_name`(`type_name` ASC) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_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 = 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; diff --git a/src/main/java/com/teaching/backend/common/ErrorCode.java b/src/main/java/com/teaching/backend/common/ErrorCode.java index 55fefe0..99341f2 100644 --- a/src/main/java/com/teaching/backend/common/ErrorCode.java +++ b/src/main/java/com/teaching/backend/common/ErrorCode.java @@ -10,6 +10,14 @@ public enum ErrorCode { SUCCESS(200, "ok"), PARAMS_ERROR(40000, "请求参数错误"), + OBJECTIVE_OR_CONTENT_NOT_EXIT(40001, "目标或内容id不存在"), + KONWID_NOT_EXIT(40002, "没有选择知识点"), + OBJECTIVE_OR_CONTENT_EXIT(40003, "该记录已存在"), + KNOW_NOT_EXIT(40004, "知识点不存在"), + TEACHER_NOT_EXIT(40005, "缺少教师信息"), + STUDENT_NOT_EXIT(40006, "缺少学生信息"), + COURSES_NOT_EXIT(40007, "缺少课程信息"), + NOT_LOGIN_ERROR(40100, "未登录"), NO_AUTH_ERROR(40101, "无权限"), NOT_FOUND_ERROR(40400, "请求数据不存在"), diff --git a/src/main/java/com/teaching/backend/controller/courses/CourseObjectivesController.java b/src/main/java/com/teaching/backend/controller/courses/CourseObjectivesController.java index 9e72bf0..777e7b6 100644 --- a/src/main/java/com/teaching/backend/controller/courses/CourseObjectivesController.java +++ b/src/main/java/com/teaching/backend/controller/courses/CourseObjectivesController.java @@ -7,7 +7,7 @@ import com.teaching.backend.common.ResultUtils; import com.teaching.backend.mapper.courses.CourseObjectivesMapper; import com.teaching.backend.model.dto.courses.CourseObjectivesDTO; import com.teaching.backend.model.entity.courses.CourseObjectives; -import com.teaching.backend.model.vo.CourseObjectivesTreeVO; +import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO; import com.teaching.backend.service.courses.ICourseObjectivesService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -43,7 +43,7 @@ public class CourseObjectivesController { return ResultUtils.success(data); } - @ApiOperation("删除分项目标-只能最后一个删除思政目标") + @ApiOperation("删除分项目标-只能最后一个删除思政目标-总目标只需删除关联的内容") @DeleteMapping("/{id}") public BaseResponse deleteCourseObjectivesByIds(@PathVariable String id){ String data = courseObjectivesService.deleteObjectives(id); diff --git a/src/main/java/com/teaching/backend/controller/courses/CoursesController.java b/src/main/java/com/teaching/backend/controller/courses/CoursesController.java index 1bc19ce..078809c 100644 --- a/src/main/java/com/teaching/backend/controller/courses/CoursesController.java +++ b/src/main/java/com/teaching/backend/controller/courses/CoursesController.java @@ -1,17 +1,17 @@ package com.teaching.backend.controller.courses; -import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; import com.teaching.backend.model.entity.courses.Courses; import com.teaching.backend.model.query.CourseQuery; -import com.teaching.backend.model.vo.CoursesVO; +import com.teaching.backend.model.vo.courses.CoursesVO; import com.teaching.backend.service.courses.ICoursesService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -19,6 +19,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.util.*; /** @@ -44,6 +45,7 @@ public class CoursesController { @GetMapping("/index") public BaseResponse> getData(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize) { List coursesVo = coursesService.getPagePageSize(page, pageSize); +// System.out.println(coursesVo); long totalcount = coursesService.count(); long toatlPages = (int) Math.ceil((double)totalcount / pageSize); Map objectMap = new HashMap<>(); @@ -62,16 +64,20 @@ public class CoursesController { } + //TODO:此处需要调整前端的接口 @ApiOperation("查询课程列表") @GetMapping("/page") - public BaseResponse> getCourses(CourseQuery courseQuery, @RequestParam String teacherId){ - PageDTO coursesList = coursesService.queryCourses(courseQuery,teacherId); + public BaseResponse> getCourses(CourseQuery courseQuery){ + PageDTO coursesList = coursesService.queryCourses(courseQuery); return ResultUtils.success(coursesList); } @ApiOperation("根据id查询课程") @GetMapping("/{id}") public BaseResponse getByIdCourse(@PathVariable String id){ + if(id==null){ + throw new BusinessException(ErrorCode.PARAMS_ERROR,"课程id为空"); + } Courses course = coursesService.getById(id); CoursesDTO coursesDTO = new CoursesDTO(); BeanUtils.copyProperties(course,coursesDTO); @@ -89,11 +95,22 @@ public class CoursesController { @ApiOperation("根据id删除课程") @DeleteMapping("/{id}") public BaseResponse deleteCourses(@PathVariable String id){ - System.out.println(id); + coursesService.deleteBatchByIds(id); // coursesService.removeBatchByIds(ids); return ResultUtils.success("删除成功"); } - + /** + * 导出word + * @param response + * @throws Exception + */ + @ApiOperation("导出word") + @GetMapping(value = "/down") + public void test( HttpServletResponse response) throws Exception{ + //-------------------------查询课程通过课程id查 + String id = "de3100cad98f76be3176dd39aa748a9e"; + coursesService.down(response, id); + } } diff --git a/src/main/java/com/teaching/backend/controller/courses/ObjectiveContentKnowController.java b/src/main/java/com/teaching/backend/controller/courses/ObjectiveContentKnowController.java new file mode 100644 index 0000000..5b12e02 --- /dev/null +++ b/src/main/java/com/teaching/backend/controller/courses/ObjectiveContentKnowController.java @@ -0,0 +1,47 @@ +package com.teaching.backend.controller.courses; + + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.model.dto.courses.CoursesDTO; +import com.teaching.backend.model.dto.courses.ObjectiveContentKnowDTO; +import com.teaching.backend.model.vo.courses.ObjectiveContentKnowVO; +import com.teaching.backend.service.courses.IObjectiveContentKnowService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Api(tags = "目标-内容 关联的知识点接口") +@RestController +@RequestMapping("/objective_content_know") +public class ObjectiveContentKnowController { + @Autowired + IObjectiveContentKnowService objectiveContentKnowService; + + + @ApiOperation("给分项目标或者是内容添加知识点") + @PostMapping("/addknows") + public BaseResponse saveKnowsWithObjectiveOrContent(@RequestBody ObjectiveContentKnowDTO objectiveContentKnowDTO){ + String data = objectiveContentKnowService.saveKnowsWithObjectiveOrContent(objectiveContentKnowDTO); + return ResultUtils.success(data); + } + + @ApiOperation("针对分项目标统计,支撑分项目标知识点的个数、学时合计、占比") + @GetMapping("/{objectiveId}") + public BaseResponse getCountData(@PathVariable String objectiveId){ + ObjectiveContentKnowVO objectiveContentKnowVO= objectiveContentKnowService.getCountData(objectiveId); + return ResultUtils.success(objectiveContentKnowVO); + } + +} diff --git a/src/main/java/com/teaching/backend/controller/courses/ObjectivesTypeController.java b/src/main/java/com/teaching/backend/controller/courses/ObjectivesTypeController.java index 26a79d3..a44ccd0 100644 --- a/src/main/java/com/teaching/backend/controller/courses/ObjectivesTypeController.java +++ b/src/main/java/com/teaching/backend/controller/courses/ObjectivesTypeController.java @@ -1,20 +1,12 @@ package com.teaching.backend.controller.courses; -import cn.hutool.core.bean.BeanUtil; import com.teaching.backend.common.BaseResponse; import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.model.dto.courses.CoursesDTO; -import com.teaching.backend.model.dto.courses.PageDTO; -import com.teaching.backend.model.entity.courses.Courses; import com.teaching.backend.model.entity.courses.ObjectivesType; -import com.teaching.backend.model.query.CourseQuery; -import com.teaching.backend.model.vo.CoursesVO; -import com.teaching.backend.service.courses.ICoursesService; import com.teaching.backend.service.courses.IObjectivesTypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/com/teaching/backend/controller/courses/StudentCoursesController.java b/src/main/java/com/teaching/backend/controller/courses/StudentCoursesController.java new file mode 100644 index 0000000..a59d349 --- /dev/null +++ b/src/main/java/com/teaching/backend/controller/courses/StudentCoursesController.java @@ -0,0 +1,49 @@ +package com.teaching.backend.controller.courses; + + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.model.dto.courses.ObjectiveContentKnowDTO; +import com.teaching.backend.model.dto.courses.PageDTO; +import com.teaching.backend.model.dto.courses.StudentCoursesDTO; +import com.teaching.backend.model.query.CourseQuery; +import com.teaching.backend.model.vo.courses.CoursesVO; +import com.teaching.backend.service.courses.IStudentCoursesService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Api(tags = "学生课程接口") +@RestController +@RequestMapping("/student_courses") +public class StudentCoursesController { + + @Autowired + IStudentCoursesService studentCoursesService; + + @ApiOperation("给学生添加课程") + @PostMapping("/addcoursess") + public BaseResponse saveCoursesToStudents(@RequestBody StudentCoursesDTO studentCoursesDTO){ + String data = studentCoursesService.saveCoursesToStudents(studentCoursesDTO); + return ResultUtils.success(data); + } + + @ApiOperation("查询课程列表") + @GetMapping("/page") + public BaseResponse> getCourses(CourseQuery courseQuery){ + PageDTO coursesList = studentCoursesService.queryCourses(courseQuery); + return ResultUtils.success(coursesList); + } + +} diff --git a/src/main/java/com/teaching/backend/entity/Chapter.java b/src/main/java/com/teaching/backend/entity/Chapter.java new file mode 100644 index 0000000..7f74db7 --- /dev/null +++ b/src/main/java/com/teaching/backend/entity/Chapter.java @@ -0,0 +1,117 @@ +package com.teaching.backend.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author author + * @since 2024-06-07 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("chapter") +@ApiModel(value="Chapter对象", description="") +public class Chapter implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId(value = "id", type = IdType.AUTO) + private String id; + + @ApiModelProperty(value = "创建人") + @TableField("create_by") + private String createBy; + + @ApiModelProperty(value = "创建日期") + @TableField("create_time") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新人") + @TableField("update_by") + private String updateBy; + + @ApiModelProperty(value = "更新日期") + @TableField("update_time") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "所属部门") + @TableField("sys_org_code") + private String sysOrgCode; + + @ApiModelProperty(value = "序号") + @TableField("num") + private Integer num; + + @ApiModelProperty(value = "名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "简介") + @TableField("content") + private String content; + + @ApiModelProperty(value = "父级节点") + @TableField("pid") + private String pid; + + @ApiModelProperty(value = "是否有子节点") + @TableField("has_child") + private String hasChild; + + @ApiModelProperty(value = "课程") + @TableField("courseid") + private String courseid; + + @ApiModelProperty(value = "课程目标") + @TableField("courseobjectivesid") + private String courseobjectivesid; + + @ApiModelProperty(value = "总学时") + @TableField("totalclasshours") + private String totalclasshours; + + @ApiModelProperty(value = "要求") + @TableField("requirement") + private String requirement; + + @ApiModelProperty(value = "线上学时") + @TableField("onlinclasshours") + private String onlinclasshours; + + @ApiModelProperty(value = "知识点") + @TableField("knowid") + private String knowid; + + @ApiModelProperty(value = "周次") + @TableField("zc") + private String zc; + + @ApiModelProperty(value = "资源") + @TableField("ziyuan") + private String ziyuan; + + @ApiModelProperty(value = "知识点") + @TableField("know") + private String know; + + @ApiModelProperty(value = "内部序号显示") + @TableField("numshow") + private String numshow; + + +} diff --git a/src/main/java/com/teaching/backend/mapper/courses/CourseObjectivesMapper.java b/src/main/java/com/teaching/backend/mapper/courses/CourseObjectivesMapper.java index ec60635..7de5035 100644 --- a/src/main/java/com/teaching/backend/mapper/courses/CourseObjectivesMapper.java +++ b/src/main/java/com/teaching/backend/mapper/courses/CourseObjectivesMapper.java @@ -2,7 +2,7 @@ package com.teaching.backend.mapper.courses; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.teaching.backend.model.entity.courses.CourseObjectives; -import com.teaching.backend.model.vo.CourseObjectivesTreeVO; +import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO; import java.util.List; diff --git a/src/main/java/com/teaching/backend/mapper/courses/ObjectiveContentKnowMapper.java b/src/main/java/com/teaching/backend/mapper/courses/ObjectiveContentKnowMapper.java new file mode 100644 index 0000000..98d2b90 --- /dev/null +++ b/src/main/java/com/teaching/backend/mapper/courses/ObjectiveContentKnowMapper.java @@ -0,0 +1,16 @@ +package com.teaching.backend.mapper.courses; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.teaching.backend.model.entity.courses.ObjectiveContentKnow; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +public interface ObjectiveContentKnowMapper extends BaseMapper { + +} diff --git a/src/main/java/com/teaching/backend/mapper/courses/StudentCoursesMapper.java b/src/main/java/com/teaching/backend/mapper/courses/StudentCoursesMapper.java new file mode 100644 index 0000000..ea9cb28 --- /dev/null +++ b/src/main/java/com/teaching/backend/mapper/courses/StudentCoursesMapper.java @@ -0,0 +1,16 @@ +package com.teaching.backend.mapper.courses; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.teaching.backend.model.entity.courses.StudentCourses; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +public interface StudentCoursesMapper extends BaseMapper { + +} diff --git a/src/main/java/com/teaching/backend/model/dto/courses/CoursesDTO.java b/src/main/java/com/teaching/backend/model/dto/courses/CoursesDTO.java index d590709..c038cf1 100644 --- a/src/main/java/com/teaching/backend/model/dto/courses/CoursesDTO.java +++ b/src/main/java/com/teaching/backend/model/dto/courses/CoursesDTO.java @@ -18,7 +18,7 @@ public class CoursesDTO { /** * 创建人 教师id */ - @ApiModelProperty("负责教师") + @ApiModelProperty(value = "负责教师",required = true) private String teacher; /** * 创建日期 diff --git a/src/main/java/com/teaching/backend/model/dto/courses/ObjectiveContentKnowDTO.java b/src/main/java/com/teaching/backend/model/dto/courses/ObjectiveContentKnowDTO.java new file mode 100644 index 0000000..f0eb4ef --- /dev/null +++ b/src/main/java/com/teaching/backend/model/dto/courses/ObjectiveContentKnowDTO.java @@ -0,0 +1,26 @@ +package com.teaching.backend.model.dto.courses; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.teaching.backend.model.entity.courses.ObjectiveContentKnow; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Data +@ApiModel(description = "分项目标或内容添加知识点") +public class ObjectiveContentKnowDTO extends ObjectiveContentKnow { + +} diff --git a/src/main/java/com/teaching/backend/model/dto/courses/StudentCoursesDTO.java b/src/main/java/com/teaching/backend/model/dto/courses/StudentCoursesDTO.java new file mode 100644 index 0000000..67264a8 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/dto/courses/StudentCoursesDTO.java @@ -0,0 +1,20 @@ +package com.teaching.backend.model.dto.courses; + +import com.teaching.backend.model.entity.courses.ObjectiveContentKnow; +import com.teaching.backend.model.entity.courses.StudentCourses; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + *

+ * + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Data +@ApiModel(description = "学生课程") +public class StudentCoursesDTO extends StudentCourses { + +} diff --git a/src/main/java/com/teaching/backend/model/entity/courses/ObjectiveContentKnow.java b/src/main/java/com/teaching/backend/model/entity/courses/ObjectiveContentKnow.java new file mode 100644 index 0000000..b49a21c --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/courses/ObjectiveContentKnow.java @@ -0,0 +1,41 @@ +package com.teaching.backend.model.entity.courses; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("objective_content_know") +public class ObjectiveContentKnow implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 分项目标或内容 的 id + */ + private String objectiveOrContent; + + /** + * 关联的知识点 + */ + private String know; + + +} diff --git a/src/main/java/com/teaching/backend/model/entity/courses/StudentCourses.java b/src/main/java/com/teaching/backend/model/entity/courses/StudentCourses.java new file mode 100644 index 0000000..acc0c54 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/courses/StudentCourses.java @@ -0,0 +1,41 @@ +package com.teaching.backend.model.entity.courses; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("student_courses") +public class StudentCourses implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 学生的username + */ + private String student; + + /** + * 课程id + */ + private String course; + + +} diff --git a/src/main/java/com/teaching/backend/model/entity/know/Know.java b/src/main/java/com/teaching/backend/model/entity/know/Know.java index b2e580f..9d2fbf5 100644 --- a/src/main/java/com/teaching/backend/model/entity/know/Know.java +++ b/src/main/java/com/teaching/backend/model/entity/know/Know.java @@ -1,48 +1,64 @@ package com.teaching.backend.model.entity.know; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import java.io.Serializable; +import java.math.BigDecimal; import java.time.LocalDateTime; @Data -public class Know { - - - //内部编号 - private Long id ; - - //知识点名称 +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("know") +public class Know implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 知识点名称 + */ private String name; - //知识点代码 - private String code; - - //简介 + /** + * 简介 + */ private String info; - //定义 - private String miaoshu; - - //添加人真实姓名 - private String inrealname; + /** + * 知识点内容 + */ + private String content; - //创建人 - private String createBy; + /** + * 知识点图片 + */ + private String img; - //创建时间 - private LocalDateTime createTime; + /** + * 知识点学时 + */ + private BigDecimal hour; - //修改人 - private String updateBy; + /** + * 知识点类型 + */ + private String type; - //修改时间 - private LocalDateTime updateTime; - //所属部门 - private String sysOrgCode; } + diff --git a/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java b/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java index be7d920..69842e1 100644 --- a/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java +++ b/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java @@ -53,11 +53,11 @@ public class LearningRecords { /** * 学习方式:打开; 1,打开过,2未打开 */ - private String learningMethod1; + private String open; /** * 学习方式:下载; 1下载过, 2未下载 */ - private String learningMethod2; + private String download; /** *视频学习时长 */ diff --git a/src/main/java/com/teaching/backend/model/query/CourseQuery.java b/src/main/java/com/teaching/backend/model/query/CourseQuery.java index 095a095..d091993 100644 --- a/src/main/java/com/teaching/backend/model/query/CourseQuery.java +++ b/src/main/java/com/teaching/backend/model/query/CourseQuery.java @@ -11,4 +11,7 @@ import lombok.EqualsAndHashCode; public class CourseQuery extends PageQuery { @ApiModelProperty("课程名称关键字") private String name; + + @ApiModelProperty(value = "用户的username",required = true) + private String username; } diff --git a/src/main/java/com/teaching/backend/model/vo/CourseObjectivesTreeVO.java b/src/main/java/com/teaching/backend/model/vo/courses/CourseObjectivesTreeVO.java similarity index 73% rename from src/main/java/com/teaching/backend/model/vo/CourseObjectivesTreeVO.java rename to src/main/java/com/teaching/backend/model/vo/courses/CourseObjectivesTreeVO.java index d4b75c3..21ee381 100644 --- a/src/main/java/com/teaching/backend/model/vo/CourseObjectivesTreeVO.java +++ b/src/main/java/com/teaching/backend/model/vo/courses/CourseObjectivesTreeVO.java @@ -1,8 +1,5 @@ -package com.teaching.backend.model.vo; +package com.teaching.backend.model.vo.courses; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.teaching.backend.model.dto.courses.CourseObjectivesDTO; import com.teaching.backend.model.entity.courses.CourseObjectives; import com.teaching.backend.model.entity.courses.ObjectiveContents; import io.swagger.annotations.ApiModel; @@ -10,7 +7,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; -import java.time.LocalDateTime; import java.util.List; @Data diff --git a/src/main/java/com/teaching/backend/model/vo/CoursesVO.java b/src/main/java/com/teaching/backend/model/vo/courses/CoursesVO.java similarity index 96% rename from src/main/java/com/teaching/backend/model/vo/CoursesVO.java rename to src/main/java/com/teaching/backend/model/vo/courses/CoursesVO.java index 42fbe75..7f5b618 100644 --- a/src/main/java/com/teaching/backend/model/vo/CoursesVO.java +++ b/src/main/java/com/teaching/backend/model/vo/courses/CoursesVO.java @@ -1,4 +1,4 @@ -package com.teaching.backend.model.vo; +package com.teaching.backend.model.vo.courses; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/src/main/java/com/teaching/backend/model/vo/courses/ObjectiveContentKnowVO.java b/src/main/java/com/teaching/backend/model/vo/courses/ObjectiveContentKnowVO.java new file mode 100644 index 0000000..d3b6a35 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/vo/courses/ObjectiveContentKnowVO.java @@ -0,0 +1,42 @@ +package com.teaching.backend.model.vo.courses; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@ApiModel(description = "分项目标,内容关联的知识点VO实体") +public class ObjectiveContentKnowVO { + + /** + * 分项目标或内容 的 id + */ + private String objectiveOrContent; + + /** + * 关联的知识点个数 + */ + @ApiModelProperty(value = "关联的知识点个数") + private Integer knowsNumber; + + /** + * 关联的知识点学时合计 + */ + @ApiModelProperty(value = "关联的知识点学时合计") + private BigDecimal knowsTime; + + /** + * 关联的知识点学时占比 + */ + @ApiModelProperty(value = "关联的知识点学时占比") + private String persent; + + /** + * 分项目标下面的内容对应的知识点数据 + */ + List contentKnowsData; + +} diff --git a/src/main/java/com/teaching/backend/service/courses/ICourseObjectivesService.java b/src/main/java/com/teaching/backend/service/courses/ICourseObjectivesService.java index bd78048..3d3c753 100644 --- a/src/main/java/com/teaching/backend/service/courses/ICourseObjectivesService.java +++ b/src/main/java/com/teaching/backend/service/courses/ICourseObjectivesService.java @@ -3,7 +3,7 @@ package com.teaching.backend.service.courses; import com.baomidou.mybatisplus.extension.service.IService; import com.teaching.backend.model.dto.courses.CourseObjectivesDTO; import com.teaching.backend.model.entity.courses.CourseObjectives; -import com.teaching.backend.model.vo.CourseObjectivesTreeVO; +import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO; import java.util.List; diff --git a/src/main/java/com/teaching/backend/service/courses/ICoursesService.java b/src/main/java/com/teaching/backend/service/courses/ICoursesService.java index 08d48a6..c69b060 100644 --- a/src/main/java/com/teaching/backend/service/courses/ICoursesService.java +++ b/src/main/java/com/teaching/backend/service/courses/ICoursesService.java @@ -6,8 +6,9 @@ import com.teaching.backend.model.dto.courses.CoursesDTO; import com.teaching.backend.model.dto.courses.PageDTO; import com.teaching.backend.model.entity.courses.Courses; import com.teaching.backend.model.query.CourseQuery; -import com.teaching.backend.model.vo.CoursesVO; +import com.teaching.backend.model.vo.courses.CoursesVO; +import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -23,7 +24,7 @@ public interface ICoursesService extends IService { String saveCourseWithObjective(CoursesDTO coursesDTO); - PageDTO queryCourses(CourseQuery courseQuery, String teacherId); + PageDTO queryCourses(CourseQuery courseQuery); void deleteBatchByIds(String id); @@ -33,4 +34,6 @@ public interface ICoursesService extends IService { List getPagePageSize(int page, int pageSize); void updateCourse(CoursesDTO coursesDTO); + + void down(HttpServletResponse response, String id) throws Exception; } diff --git a/src/main/java/com/teaching/backend/service/courses/IObjectiveContentKnowService.java b/src/main/java/com/teaching/backend/service/courses/IObjectiveContentKnowService.java new file mode 100644 index 0000000..18c2809 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/courses/IObjectiveContentKnowService.java @@ -0,0 +1,21 @@ +package com.teaching.backend.service.courses; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.model.dto.courses.ObjectiveContentKnowDTO; +import com.teaching.backend.model.entity.courses.ObjectiveContentKnow; +import com.teaching.backend.model.vo.courses.ObjectiveContentKnowVO; + +/** + *

+ * 服务类 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +public interface IObjectiveContentKnowService extends IService { + + String saveKnowsWithObjectiveOrContent(ObjectiveContentKnowDTO objectiveContentKnowDTO); + + ObjectiveContentKnowVO getCountData(String objectiveId); +} diff --git a/src/main/java/com/teaching/backend/service/courses/IObjectiveContentsService.java b/src/main/java/com/teaching/backend/service/courses/IObjectiveContentsService.java index 02d08f2..c3a75d1 100644 --- a/src/main/java/com/teaching/backend/service/courses/IObjectiveContentsService.java +++ b/src/main/java/com/teaching/backend/service/courses/IObjectiveContentsService.java @@ -3,7 +3,6 @@ package com.teaching.backend.service.courses; import com.baomidou.mybatisplus.extension.service.IService; import com.teaching.backend.model.entity.courses.ObjectiveContents; -import com.teaching.backend.model.vo.CourseObjectivesTreeVO; /** *

diff --git a/src/main/java/com/teaching/backend/service/courses/IStudentCoursesService.java b/src/main/java/com/teaching/backend/service/courses/IStudentCoursesService.java new file mode 100644 index 0000000..34873e4 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/courses/IStudentCoursesService.java @@ -0,0 +1,23 @@ +package com.teaching.backend.service.courses; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.model.dto.courses.PageDTO; +import com.teaching.backend.model.dto.courses.StudentCoursesDTO; +import com.teaching.backend.model.entity.courses.StudentCourses; +import com.teaching.backend.model.query.CourseQuery; +import com.teaching.backend.model.vo.courses.CoursesVO; + +/** + *

+ * 服务类 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +public interface IStudentCoursesService extends IService { + + String saveCoursesToStudents(StudentCoursesDTO studentCoursesDTO); + + PageDTO queryCourses(CourseQuery courseQuery); +} diff --git a/src/main/java/com/teaching/backend/service/impl/courses/CourseObjectivesServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/courses/CourseObjectivesServiceImpl.java index ac0a01e..88c4816 100644 --- a/src/main/java/com/teaching/backend/service/impl/courses/CourseObjectivesServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/courses/CourseObjectivesServiceImpl.java @@ -10,15 +10,13 @@ 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.ObjectiveContents; -import com.teaching.backend.model.vo.CourseObjectivesTreeVO; +import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO; import com.teaching.backend.service.courses.ICourseObjectivesService; import com.teaching.backend.utils.CourseCode; -import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -101,7 +99,7 @@ public class CourseObjectivesServiceImpl extends ServiceImpl impl @Override @Transactional public String saveCourseWithObjective(CoursesDTO coursesDTO) { + String teacher = coursesDTO.getTeacher(); + if (teacher == null || teacher.equals("")) { + throw new BusinessException(ErrorCode.TEACHER_NOT_EXIT); + } Courses courses = new Courses(); CourseObjectives courseObjectives = new CourseObjectives(); BeanUtils.copyProperties(coursesDTO, courses); @@ -109,7 +116,11 @@ public class CoursesServiceImpl extends ServiceImpl impl } @Override - public PageDTO queryCourses(CourseQuery courseQuery, String teacherId) { + public PageDTO queryCourses(CourseQuery courseQuery) { + String username = courseQuery.getUsername(); + if (username==null || username.equals("")){ + throw new BusinessException(ErrorCode.TEACHER_NOT_EXIT); + } //要搜索的课程名字 String name = courseQuery.getName(); // 1.1构建分页条件 @@ -119,7 +130,7 @@ public class CoursesServiceImpl extends ServiceImpl impl .like(name != null, Courses::getName, name) // .eq(Courses::getTeacher,teacherId) // .apply("JSON_CONTAINS(teacher, JSON_QUOTE({0}))", teacherId) - .apply("FIND_IN_SET({0}, teacher)", teacherId) + .apply("FIND_IN_SET({0}, teacher)", username) .page(page); PageDTO coursesVOPageDTO = PageDTO.of(p, CoursesVO.class); List pageDTOList = coursesVOPageDTO.getList(); @@ -147,6 +158,9 @@ public class CoursesServiceImpl extends ServiceImpl impl @Override public void deleteBatchByIds(String id) { + if(id==null){ + throw new BusinessException(ErrorCode.PARAMS_ERROR,"课程id为空"); + } CourseObjectives courseObjectives= courseObjectivesMapper.selectOne (new LambdaQueryWrapper().eq(CourseObjectives::getCourseId, id)); if(courseObjectives == null){ @@ -226,6 +240,7 @@ public class CoursesServiceImpl extends ServiceImpl impl return total; } + /** * 修改课程信息 * @param coursesDTO @@ -244,5 +259,34 @@ public class CoursesServiceImpl extends ServiceImpl impl coursesMapper.updateById(course); } + @Override + public void down(HttpServletResponse response, String id) throws Exception { + File rootPath = new File(ResourceUtils.getURL("classpath:").getPath()); //SpringBoot项目获取根目录的方式 + File templatePath = new File(rootPath.getAbsolutePath(),"/templates/courses.docx");//------------------需要模板的地址 + //准备导出数据 + //查询课程通过课程id查--课程简介 + Courses courses = this.getById(id); + System.out.println("课程:"+courses); + Map params = new HashMap(); + 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()); + //查询课程目标 + + //根据模板+数据 导出文档 + XWPFDocument xwpfDocument = WordExportUtil.exportWord07(templatePath.getPath(), params); + + + //文件名=课程名+课程标准 + String filename= courses.getName()+"课程标准.docx"; + //设置文件的打开方式和mime类型 + ServletOutputStream outputStream = response.getOutputStream(); + response.setHeader( "Content-Disposition", "attachment;filename=" + new String(filename.getBytes(),"ISO8859-1")); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + xwpfDocument.write(outputStream); + } } diff --git a/src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java new file mode 100644 index 0000000..6b42b66 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java @@ -0,0 +1,169 @@ +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.CourseObjectivesMapper; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.courses.ObjectiveContentKnowMapper; +import com.teaching.backend.mapper.courses.ObjectiveContentsMapper; +import com.teaching.backend.mapper.know.KnowMapper; +import com.teaching.backend.model.dto.courses.ObjectiveContentKnowDTO; +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.entity.know.Know; +import com.teaching.backend.model.vo.courses.ObjectiveContentKnowVO; +import com.teaching.backend.service.courses.IObjectiveContentKnowService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.sql.SQLIntegrityConstraintViolationException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Service +public class ObjectiveContentKnowServiceImpl extends ServiceImpl implements IObjectiveContentKnowService { + + @Autowired + ObjectiveContentKnowMapper objectiveContentKnowMapper; + @Autowired + KnowMapper knowMapper; + @Autowired + CourseObjectivesMapper courseObjectivesMapper; + @Autowired + CoursesMapper coursesMapper; + @Autowired + ObjectiveContentsMapper objectiveContentsMapper; + + @Override + @Transactional + public String saveKnowsWithObjectiveOrContent(ObjectiveContentKnowDTO objectiveContentKnowDTO) { + String objectiveOrContent = objectiveContentKnowDTO.getObjectiveOrContent(); + if (objectiveOrContent == null || objectiveOrContent.equals("")){ + throw new BusinessException(ErrorCode.OBJECTIVE_OR_CONTENT_NOT_EXIT); + } + //暂时约定前端传过来的的knows是“1,2,3” 用 , 隔开的 + String knows = objectiveContentKnowDTO.getKnow(); + if (knows == null || knows.equals("")){ + throw new BusinessException(ErrorCode.KONWID_NOT_EXIT); + } + List knowIds = new ArrayList<>(Arrays.asList(knows.split(","))); + ObjectiveContentKnow objectiveContentKnow = null; + try { + for (String knowId : knowIds) { + objectiveContentKnow = new ObjectiveContentKnow(); + objectiveContentKnow.setObjectiveOrContent(objectiveOrContent); + objectiveContentKnow.setKnow(knowId); + objectiveContentKnowMapper.insert(objectiveContentKnow); + } + } catch (Exception e) { + e.printStackTrace(); + throw new BusinessException(ErrorCode.OBJECTIVE_OR_CONTENT_EXIT); + } + return "添加成功"; + } + + @Override + public ObjectiveContentKnowVO getCountData(String objectiveOrContentId) { + // 检查objectiveOrContentId是否为空,如果为空则抛出异常 + if (objectiveOrContentId == null) { + throw new BusinessException(ErrorCode.OBJECTIVE_OR_CONTENT_NOT_EXIT); + } + + // 查询分项目标关联的知识点数据 + List objectiveContentKnows = objectiveContentKnowMapper.selectList( + new LambdaQueryWrapper() + .eq(ObjectiveContentKnow::getObjectiveOrContent, objectiveOrContentId)); + + // 创建ObjectiveContentKnowVO对象,并计算相关数据 + ObjectiveContentKnowVO objectiveContentKnowVO = createObjectiveContentKnowVO(objectiveOrContentId, objectiveContentKnows); + + // 根据分项目标找到课程id + String pid = courseObjectivesMapper.selectOne(new LambdaQueryWrapper() + .eq(CourseObjectives::getId, objectiveOrContentId)).getPid(); + String courseId = courseObjectivesMapper.selectOne(new LambdaQueryWrapper() + .eq(CourseObjectives::getId, pid)).getCourseId(); + Integer classhours = coursesMapper.selectById(courseId).getClasshours(); + + // 计算并设置比例(百分比) + BigDecimal percentage = calculatePercentage(objectiveContentKnowVO.getKnowsTime(), classhours); + objectiveContentKnowVO.setPersent(percentage + "%"); + + // 查找分项目标下的内容 + List objectiveContents = objectiveContentsMapper.selectList( + new LambdaQueryWrapper() + .eq(ObjectiveContents::getObjectiveId, objectiveOrContentId)); + + // 如果存在分项目标内容,处理并计算每个内容的相关数据 + if (objectiveContents != null && !objectiveContents.isEmpty()) { + List contentKnowVOs = objectiveContents.stream() + .map(content -> createObjectiveContentKnowVO(content.getId(), objectiveContentKnowMapper.selectList( + new LambdaQueryWrapper() + .eq(ObjectiveContentKnow::getObjectiveOrContent, content.getId()) + ))) + .collect(Collectors.toList()); + + // 计算每个内容的比例(百分比) + contentKnowVOs.forEach(contentKnowVO -> { + BigDecimal contentPercentage = calculatePercentage(contentKnowVO.getKnowsTime(), classhours); + contentKnowVO.setPersent(contentPercentage + "%"); + }); + + // 设置内容的知识点数据 + objectiveContentKnowVO.setContentKnowsData(contentKnowVOs); + } + + // 返回计算结果 + return objectiveContentKnowVO; + } + + // 创建ObjectiveContentKnowVO对象,并计算知识点数量和总时间 + private ObjectiveContentKnowVO createObjectiveContentKnowVO(String objectiveOrContentId, List objectiveContentKnows) { + ObjectiveContentKnowVO vo = new ObjectiveContentKnowVO(); + vo.setObjectiveOrContent(objectiveOrContentId); + vo.setKnowsNumber(objectiveContentKnows.size()); + + // 计算知识点的总时间 + BigDecimal knowsTime = objectiveContentKnows.stream() + .map(contentKnow -> { + Know know = knowMapper.selectOne(new LambdaQueryWrapper() + .eq(Know::getId, contentKnow.getKnow())); + if (know == null) { + throw new BusinessException(ErrorCode.KNOW_NOT_EXIT); + } + return know.getHour(); + }) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + vo.setKnowsTime(knowsTime); + return vo; + } + + // 计算知识点时间占总学时的比例,并转换为百分比 + private BigDecimal calculatePercentage(BigDecimal knowsTime, Integer classhours) { + if (classhours == null || classhours == 0) { + return BigDecimal.ZERO; + } + // 将classhours转换为BigDecimal类型,以便进行精确计算 + BigDecimal classHoursBigDecimal = new BigDecimal(classhours); + // 计算knowsTime占classhours的比例,保留两位小数,并四舍五入 + return knowsTime.divide(classHoursBigDecimal, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); + } + + +} diff --git a/src/main/java/com/teaching/backend/service/impl/courses/StudentCoursesServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/courses/StudentCoursesServiceImpl.java new file mode 100644 index 0000000..63e6b64 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/impl/courses/StudentCoursesServiceImpl.java @@ -0,0 +1,124 @@ +package com.teaching.backend.service.impl.courses; + + +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.common.ErrorCode; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.courses.StudentCoursesMapper; +import com.teaching.backend.mapper.umsAdmin.UmsAdminMapper; +import com.teaching.backend.mapper.umsAdmin.UmsTeacherMapper; +import com.teaching.backend.model.dto.courses.ObjectiveContentKnowDTO; +import com.teaching.backend.model.dto.courses.PageDTO; +import com.teaching.backend.model.dto.courses.StudentCoursesDTO; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.courses.ObjectiveContentKnow; +import com.teaching.backend.model.entity.courses.StudentCourses; +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.IStudentCoursesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author zjh + * @since 2024-06-13 + */ +@Service +public class StudentCoursesServiceImpl extends ServiceImpl implements IStudentCoursesService { + + @Autowired + StudentCoursesMapper studentCoursesMapper; + @Autowired + UmsAdminMapper umsAdminMapper; + @Autowired + UmsTeacherMapper umsTeacherMapper; + @Autowired + CoursesMapper coursesMapper; + @Override + public String saveCoursesToStudents(StudentCoursesDTO studentCoursesDTO) { + String studentId = studentCoursesDTO.getStudent(); + if (studentId == null || studentId.equals("")) { + throw new BusinessException(ErrorCode.STUDENT_NOT_EXIT); + } + //暂时约定前端传过来的的knows是“1,2,3” 用 , 隔开的 + String courses = studentCoursesDTO.getCourse(); + if (courses == null || courses.equals("")) { + throw new BusinessException(ErrorCode.COURSES_NOT_EXIT); + } + List coursesIds = new ArrayList<>(Arrays.asList(courses.split(","))); + StudentCourses studentCourses = null; + try { + for (String course : coursesIds) { + studentCourses = new StudentCourses(); + studentCourses.setStudent(studentId); + studentCourses.setCourse(course); + studentCoursesMapper.insert(studentCourses); + } + } catch (Exception e) { + e.printStackTrace(); + throw new BusinessException(ErrorCode.OBJECTIVE_OR_CONTENT_EXIT); + } + return "添加成功"; + } + + @Override + public PageDTO queryCourses(CourseQuery courseQuery) { + String username = courseQuery.getUsername(); + if (username==null || username.equals("")){ + throw new BusinessException(ErrorCode.STUDENT_NOT_EXIT); + } + List studentCourses = studentCoursesMapper.selectList(new LambdaQueryWrapper() + .eq(StudentCourses::getStudent, username)); + List coursesList = studentCourses.stream() + .map(StudentCourses::getCourse) + .collect(Collectors.toList()); + //要搜索的课程名字 + String name = courseQuery.getName(); + // 1.1构建分页条件 + Page page = courseQuery.toMpPageDefaultSortByCreateTime(); + // 2.分页查询 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .like(name != null, Courses::getName, name) + .in(Courses::getId, coursesList); + // 3. 执行分页查询 + Page p = this.coursesMapper.selectPage(page, queryWrapper); + + PageDTO coursesVOPageDTO = PageDTO.of(p, CoursesVO.class); + List pageDTOList = coursesVOPageDTO.getList(); + List teachers = null; + + for (CoursesVO coursesVO : pageDTOList) { + List teacherNameList = new ArrayList<>(); + String teacherIds = coursesVO.getTeacher(); + teachers = new ArrayList<>(Arrays.asList(teacherIds.split(","))); + for (String teacher : teachers) { + UmsAdmin umsAdmin = umsAdminMapper.selectOne(new LambdaQueryWrapper(). + eq(UmsAdmin::getUsername, teacher)); + if (umsAdmin==null){ + throw new BusinessException(ErrorCode.OPERATION_ERROR); + } + Long adminId = umsAdmin.getId(); + UmsTeacher umsTeacher = umsTeacherMapper.selectOne(new LambdaQueryWrapper() + .eq(UmsTeacher::getUserId, adminId)); + teacherNameList.add(umsTeacher.getName()); + } + coursesVO.setTeacher(String.join(",", teacherNameList)); + } + return coursesVOPageDTO; + } +} diff --git a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java index e27a638..52da01f 100644 --- a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java @@ -170,11 +170,11 @@ public class LearningRecordsServiceImpl extends ServiceImpl + + + + diff --git a/src/main/resources/mapper/CourseObjectivesMapper.xml b/src/main/resources/mapper/CourseObjectivesMapper.xml index 347ebec..1204030 100644 --- a/src/main/resources/mapper/CourseObjectivesMapper.xml +++ b/src/main/resources/mapper/CourseObjectivesMapper.xml @@ -2,7 +2,7 @@ -