├── .gitignore ├── LICENSE ├── README.md ├── UI └── coursearrange │ ├── .babelrc │ ├── .editorconfig │ ├── .gitignore │ ├── .postcssrc.js │ ├── README.md │ ├── build │ ├── build.js │ ├── check-versions.js │ ├── logo.png │ ├── utils.js │ ├── vue-loader.conf.js │ ├── webpack.base.conf.js │ ├── webpack.dev.conf.js │ └── webpack.prod.conf.js │ ├── config │ ├── dev.env.js │ ├── index.js │ └── prod.env.js │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── App.vue │ ├── assets │ │ ├── css │ │ │ └── global.css │ │ ├── iconfonts │ │ │ └── fonts │ │ │ │ ├── demo.css │ │ │ │ ├── demo_index.html │ │ │ │ ├── iconfont.css │ │ │ │ ├── iconfont.eot │ │ │ │ ├── iconfont.js │ │ │ │ ├── iconfont.json │ │ │ │ ├── iconfont.svg │ │ │ │ ├── iconfont.ttf │ │ │ │ ├── iconfont.woff │ │ │ │ └── iconfont.woff2 │ │ ├── js │ │ │ └── pop.js │ │ └── logo.png │ ├── home │ │ ├── Home.vue │ │ ├── Index.vue │ │ ├── StudentMain.vue │ │ └── components │ │ │ ├── Center.vue │ │ │ ├── CourseTable.vue │ │ │ ├── EmptyClassroom.vue │ │ │ ├── HomeFooter.vue │ │ │ ├── HomeHeader.vue │ │ │ ├── Password.vue │ │ │ ├── StudentCenter.vue │ │ │ └── StudentDoc.vue │ ├── images │ │ ├── image1.jpg │ │ ├── image2.jpg │ │ └── image3.jpg │ ├── main.js │ ├── manager │ │ ├── ManagerMain.vue │ │ ├── SystemData.vue │ │ └── components │ │ │ ├── ClassManager.vue │ │ │ ├── ClassTaskList.vue │ │ │ ├── ClassroomList.vue │ │ │ ├── CourseInfoList.vue │ │ │ ├── CourseTable.vue │ │ │ ├── Exercise.vue │ │ │ ├── Help.vue │ │ │ ├── HomeWork.vue │ │ │ ├── ModifyTeacher.vue │ │ │ ├── OnlineCategory.vue │ │ │ ├── OnlineCourse.vue │ │ │ ├── StudentList.vue │ │ │ ├── StudyDocs.vue │ │ │ ├── TeachAreaSetting.vue │ │ │ ├── TeachBuildingList.vue │ │ │ └── TeacherList.vue │ ├── pages │ │ ├── Admin.vue │ │ ├── Login.vue │ │ ├── Register.vue │ │ └── components │ │ │ └── UpdatePass.vue │ └── router │ │ └── index.js │ └── static │ └── .gitkeep ├── doc ├── UML │ ├── 层次方框图 │ │ └── 系统层次方框图.vsdx │ ├── 数据库E-R图 │ │ ├── 习题习题类别.vsdx │ │ ├── 学习文档.vsdx │ │ ├── 学生讲师管理员.vsdx │ │ ├── 教学楼教室教学区域年级班级学生.vsdx │ │ ├── 系统架构图.vsdx │ │ ├── 课程任务课程上课计划.vsdx │ │ └── 轮播图.vsdx │ ├── 时序图 │ │ ├── 上传文档.vsdx │ │ ├── 下载模板.vsdx │ │ ├── 修改信息.vsdx │ │ ├── 修改密码.vsdx │ │ ├── 学生 │ │ │ └── 学生注册.vsdx │ │ ├── 导入排课任务.vsdx │ │ ├── 手动添加排课任务.vsdx │ │ ├── 排课.vsdx │ │ ├── 新增题目.vsdx │ │ ├── 查看课表.vsdx │ │ ├── 添加教学楼.vsdx │ │ ├── 添加教室.vsdx │ │ ├── 添加班级.vsdx │ │ ├── 添加编辑教材.vsdx │ │ ├── 用户注册.vsdx │ │ ├── 登录.vsdx │ │ └── 编辑学生.vsdx │ ├── 流程图 │ │ ├── 上传文档.vsdx │ │ ├── 上传视频.vsdx │ │ ├── 修改信息.vsdx │ │ ├── 修改密码.vsdx │ │ ├── 学生注册.vsdx │ │ ├── 导入任务.vsdx │ │ ├── 排课.vsdx │ │ ├── 排课流程图.vsdx │ │ ├── 查看课表.vsdx │ │ ├── 添加教材.vsdx │ │ ├── 添加班级.vsdx │ │ ├── 添加网课.vsdx │ │ ├── 添加讲师.vsdx │ │ ├── 添加题目.vsdx │ │ ├── 用户登录.vsdx │ │ ├── 编辑学生.vsdx │ │ └── 编辑讲师.vsdx │ └── 用例图 │ │ ├── 学生用例图.vsdx │ │ ├── 管理员(教务处)用例图.vsdx │ │ ├── 管理员讲师用例图.vsdx │ │ └── 讲师用例图.vsdx ├── 导入课程任务测试数据.xlsx ├── 导入课程任务测试数据高一12345班--高二1班-条编码 - 副本.xlsx ├── 导入课程任务测试数据高一12345班-108条编码.xlsx ├── 导入课程任务测试数据高一12345班-65条编码.xlsx ├── 导入课程任务测试数据高一12345班-67条编码.xlsx ├── 导入课程任务测试数据高一1234班-88条编码 .xlsx ├── 数据库备份 │ └── db_course_arrangement.sql ├── 课程任务导入模板.xls └── 遗传算法资料 │ └── JAVA 遗传算法编程.pdf ├── pom.xml ├── src ├── main │ ├── java │ │ └── com │ │ │ └── lyk │ │ │ └── coursearrange │ │ │ ├── CoursearrangeApplication.java │ │ │ ├── common │ │ │ ├── AuthenticationInterceptor.java │ │ │ ├── GlobalExceptionHandler.java │ │ │ ├── PassToken.java │ │ │ ├── ResponseCode.java │ │ │ ├── ServerResponse.java │ │ │ ├── TimerTask.java │ │ │ └── UserLoginToken.java │ │ │ ├── config │ │ │ ├── CrosConfig.java │ │ │ ├── InterceptorConfig.java │ │ │ ├── MyMetaObjectHandler.java │ │ │ ├── MybatisPlusConfig.java │ │ │ └── Swagger2Config.java │ │ │ ├── controller │ │ │ ├── AdminController.java │ │ │ ├── ClassInfoController.java │ │ │ ├── ClassTaskController.java │ │ │ ├── ClassroomController.java │ │ │ ├── CourseInfoController.java │ │ │ ├── CoursePlanController.java │ │ │ ├── DocController.java │ │ │ ├── ExerciseCategoryController.java │ │ │ ├── ExerciseController.java │ │ │ ├── GradeInfoController.java │ │ │ ├── LocationInfoController.java │ │ │ ├── LoginController.java │ │ │ ├── OSSController.java │ │ │ ├── OnlineCategoryController.java │ │ │ ├── OnlineCourseController.java │ │ │ ├── OnlineVideoController.java │ │ │ ├── StudentController.java │ │ │ ├── StudyLogsController.java │ │ │ ├── SystemController.java │ │ │ ├── TeachBuildInfoController.java │ │ │ ├── TeacherController.java │ │ │ └── UploadController.java │ │ │ ├── dao │ │ │ ├── AdminDao.java │ │ │ ├── ClassInfoDao.java │ │ │ ├── ClassTaskDao.java │ │ │ ├── ClassroomDao.java │ │ │ ├── CourseInfoDao.java │ │ │ ├── CoursePlanDao.java │ │ │ ├── DocDao.java │ │ │ ├── ExerciseCategoryDao.java │ │ │ ├── ExerciseDao.java │ │ │ ├── GradeInfoDao.java │ │ │ ├── LocationInfoDao.java │ │ │ ├── OnlineCategoryDao.java │ │ │ ├── OnlineCourseDao.java │ │ │ ├── OnlineVideoDao.java │ │ │ ├── StudentDao.java │ │ │ ├── StudyLogsDao.java │ │ │ ├── TeachBuildInfoDao.java │ │ │ └── TeacherDao.java │ │ │ ├── entity │ │ │ ├── Admin.java │ │ │ ├── ClassInfo.java │ │ │ ├── ClassTask.java │ │ │ ├── Classroom.java │ │ │ ├── CourseInfo.java │ │ │ ├── CoursePlan.java │ │ │ ├── Doc.java │ │ │ ├── Exercise.java │ │ │ ├── ExerciseCategory.java │ │ │ ├── GradeInfo.java │ │ │ ├── LocationInfo.java │ │ │ ├── OnlineCategory.java │ │ │ ├── OnlineCourse.java │ │ │ ├── OnlineVideo.java │ │ │ ├── Student.java │ │ │ ├── StudyLogs.java │ │ │ ├── TeachbuildInfo.java │ │ │ ├── Teacher.java │ │ │ ├── request │ │ │ │ ├── ClassAddVO.java │ │ │ │ ├── ClassTaskDTO.java │ │ │ │ ├── ClassroomAddRequest.java │ │ │ │ ├── ConstantInfo.java │ │ │ │ ├── CourseInfoAddRequest.java │ │ │ │ ├── DocsVO.java │ │ │ │ ├── ExerciseVO.java │ │ │ │ ├── LocationSetVO.java │ │ │ │ ├── OnlineCourseAddVO.java │ │ │ │ ├── PasswordVO.java │ │ │ │ ├── StudentLoginRequest.java │ │ │ │ ├── StudentRegisterRequest.java │ │ │ │ ├── TeachCoursePlan.java │ │ │ │ ├── TeachbuildAddRequest.java │ │ │ │ ├── TeacherAddRequest.java │ │ │ │ ├── UserInfoVO.java │ │ │ │ └── UserLoginRequest.java │ │ │ └── response │ │ │ │ ├── ClassInfoVO.java │ │ │ │ ├── CoursePlanVo.java │ │ │ │ └── LocationVO.java │ │ │ ├── mapper │ │ │ └── xml │ │ │ │ ├── AdminMapper.xml │ │ │ │ ├── ClassInfoMapper.xml │ │ │ │ ├── ClassTaskMapper.xml │ │ │ │ ├── ClassroomMapper.xml │ │ │ │ ├── CourseInfoMapper.xml │ │ │ │ ├── CoursePlanMapper.xml │ │ │ │ ├── DocMapper.xml │ │ │ │ ├── ExerciseCategoryMapper.xml │ │ │ │ ├── ExerciseMapper.xml │ │ │ │ ├── GradeInfoMapper.xml │ │ │ │ ├── LocationInfoMapper.xml │ │ │ │ ├── OnlineCategoryMapper.xml │ │ │ │ ├── OnlineCourseMapper.xml │ │ │ │ ├── OnlineVideoMapper.xml │ │ │ │ ├── StudentMapper.xml │ │ │ │ ├── StudyLogsMapper.xml │ │ │ │ ├── TeachBuildInfoDao.xml │ │ │ │ └── TeacherMapper.xml │ │ │ ├── service │ │ │ ├── AdminService.java │ │ │ ├── ClassInfoService.java │ │ │ ├── ClassTaskService.java │ │ │ ├── ClassroomService.java │ │ │ ├── CourseInfoService.java │ │ │ ├── CoursePlanService.java │ │ │ ├── DocService.java │ │ │ ├── ExerciseCategoryService.java │ │ │ ├── ExerciseService.java │ │ │ ├── GradeInfoService.java │ │ │ ├── LocationInfoService.java │ │ │ ├── OSSService.java │ │ │ ├── OnlineCategoryService.java │ │ │ ├── OnlineCourseService.java │ │ │ ├── OnlineVideoService.java │ │ │ ├── StudentService.java │ │ │ ├── StudyLogsService.java │ │ │ ├── TeachbuildInfoService.java │ │ │ ├── TeacherService.java │ │ │ ├── UploadService.java │ │ │ └── impl │ │ │ │ ├── AdminServiceImpl.java │ │ │ │ ├── ClassInfoServiceImpl.java │ │ │ │ ├── ClassTaskServiceImpl.java │ │ │ │ ├── ClassroomServiceImpl.java │ │ │ │ ├── CourseInfoServiceImpl.java │ │ │ │ ├── CoursePlanServiceImpl.java │ │ │ │ ├── DocServiceImpl.java │ │ │ │ ├── ExerciseCategoryServiceImpl.java │ │ │ │ ├── ExerciseServiceImpl.java │ │ │ │ ├── GradeInfoServiceImpl.java │ │ │ │ ├── LocationInfoServiceImpl.java │ │ │ │ ├── OSSServiceImpl.java │ │ │ │ ├── OnlineCategoryServiceImpl.java │ │ │ │ ├── OnlineCourseServiceImpl.java │ │ │ │ ├── OnlineVideoServiceImpl.java │ │ │ │ ├── StudentServiceImpl.java │ │ │ │ ├── StudyLogsServiceImpl.java │ │ │ │ ├── TeachbuildInfoServiceImpl.java │ │ │ │ ├── TeacherServiceImpl.java │ │ │ │ ├── TokenService.java │ │ │ │ └── UploadServiceImpl.java │ │ │ └── util │ │ │ ├── AliyunUtil.java │ │ │ ├── ClassUtil.java │ │ │ └── TokenUtil.java │ └── resources │ │ ├── application-dev.yml │ │ ├── application-pro.yml │ │ ├── application.yml │ │ └── log4j.properties └── test │ └── java │ └── com │ └── lyk │ └── coursearrange │ ├── CoursearrangeApplicationTests.java │ ├── MpGenerator.java │ ├── controller │ ├── AdminTest.java │ ├── CourseTest.java │ └── TeacherTest.java │ └── service │ └── impl │ └── ExcelTest.java └── 环境说明.txt /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | !.gitignore 8 | 9 | Mvnw 10 | Mvnm.cmd 11 | /logs 12 | **/logs/ 13 | 14 | 15 | ### STS ### 16 | .apt_generated 17 | .classpath 18 | .factorypath 19 | .project 20 | .settings 21 | .springBeans 22 | .sts4-cache 23 | 24 | ### IntelliJ IDEA ### 25 | .idea 26 | *.iws 27 | *.iml 28 | *.ipr 29 | 30 | ### NetBeans ### 31 | /nbproject/private/ 32 | /nbbuild/ 33 | /dist/ 34 | /nbdist/ 35 | /.nb-gradle/ 36 | 37 | ### VS Code ### 38 | .vscode/ 39 | node_modules/ 40 | **/node_modules/ 41 | .DS_Store 42 | **/.DS_Store 43 | **/.mvn/** -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CourseArrange 2 | 3 | ## 介绍 4 | 先给个Star再看嘛! 5 | 6 | # 注意!注意!注意! 7 | # 如果你是买的,那么你变成了大冤种哦~! 8 | **本人发现不少地方有倒卖我这个毕设的(可恶的叼毛!),B站也看到有,本项目完全开源,毫无保留。只要你懂一点环境配置就可以跑起来,排课算法的注释非常详尽,只要花时间琢磨几遍就可以看懂算法的(前提先建议了解一下遗传算法以及相关的概念)** 9 | 10 | 11 | 基于遗传算法的高中排课系统。 12 | 该项目是针对高校的教学生态,本人将其全部改版成了适用于高中阶段的教学生态, 13 | 当然了,节次数跟当前的高中肯定是不一样的,因为我当时的课题是为培训机构安排, 14 | 大家只需要更改时间片的数量即可实现不同节次课程的编排,照葫芦画瓢即可。 15 | 16 | 码云的地址:https://gitee.com/lequal/CourseArrange 17 | 别忘了给一个star哦! 18 | 19 | 20 | ## 软件技术栈 21 | 前端技术栈: 22 | Vue2.x + Element UI,使用npm包管理工具 23 | 24 | 后端技术栈: 25 | JDK1.8 + Spring Boot + MySQL8.0 + Mybatis-Plus,使用maven实现包管理,开发工具:IDEA 26 | 27 | 28 | 29 | ## 安装教程 30 | 31 | 1. 配置好JDK环境,node.js环境,安装好Vue脚手架工具以及maven环境 32 | 2. 前端项目在UI目录下的文件夹内,在CourseArrange目录下运行命令:npm install 安装完相关的前端依赖 33 | 3. 执行 npm run dev 命令将前端项目启动 34 | 4. 后端项目在配置好JDK环境之后,使用IDEA等IDE工具打开,将项目配置成自己本地的Maven(建议使用阿里云镜像) 35 | 5. 运行maven安装项目所需依赖,配置好数据库的连接,待依赖安装完成启动项目的Application启动类即可(不会的也不教了哈) 36 | 6. 用到文件上传功能时,需要配置好自己的阿里云key与密钥,在utils下面的AliyunUtil类下面 37 | 38 | ## 实现功能 39 | 40 | 1. 系统有管理员(教务处主任)、讲师、学生三种用户 41 | 2. 前端比较菜,应用启动后进入的引导页面如下,根据需求进入不同登录页面 42 | ![输入图片说明](https://images.gitee.com/uploads/images/2020/0708/111552_fafcb0e9_5505532.png "屏幕截图.png") 43 | 3. 这里主要放管理员的功能截图 44 | 1)管理员登录成功后进入到系统数据页面 45 | ![输入图片说明](https://images.gitee.com/uploads/images/2020/0708/111732_908e9b16_5505532.png "屏幕截图.png") 46 | 2)课程计划是某一个学期需要安排上的课程,应该一次性全部导入 47 | ![输入图片说明](https://images.gitee.com/uploads/images/2020/0708/111837_60f807d0_5505532.png "屏幕截图.png") 48 | 可以手动添加课程任务(课程编号,讲师编号等信息一定要与数据库对得上)、也可以使用Excel模板填写后导入Excel文件直接将课程任务导入(点击“导入”选择好文件之后,点上传到服务器即可),没有模板可以点击下载模板下载对应的Excel模板(模板文件也根据UploadController.java中的路径存放在自己本地),随后根据要求填写模板,点击“排课”按钮开始排课,排课完成跳转到课表页面 49 | ![输入图片说明](https://images.gitee.com/uploads/images/2020/0708/111952_de046c5a_5505532.png "屏幕截图.png") 50 | 3)课程表效果如下所示(选择对应的年级、对应的班级之后即可显示) 51 | ![输入图片说明](https://images.gitee.com/uploads/images/2020/0708/112342_b83b9f32_5505532.png "屏幕截图.png") 52 | 53 | 4. 其余的功能就不多介绍了,都是属于辅助功能 54 | 1)讲师管理(添加、删除、编辑讲师的信息) 55 | 2)网课管理(这个是后面加的,在线教育的前端部分单独做了一个项目放在Nginx中访问的,就没放出来了,这个模块本来是给学生课余时间在线学习用的) 56 | 3)班级管理 57 | 4)教材管理(就是排课任务中使用的哪些课程名称,排课任务的课程编号与这里的课程编号一样) 58 | 5)学生管理 59 | 6)教学资料管理(主要是讲师、管理员给某一个班级发布作业,学习文档用的,还有在线测试,这个在在线教育那个前端项目中,没做完,忽略这个) 60 | 7)教学设施管理(教学楼,教室管理,还有教学区域就是:比如我要高一年级在1号教学楼上课,也可以让它在1号、2号多个地方上课,后面排课算法找教室的时候就根据这个数据表去查询教学位置的安排) 61 | ![输入图片说明](https://images.gitee.com/uploads/images/2020/0708/113007_3e1321af_5505532.png "屏幕截图.png") 62 | 63 | 64 | 65 | ## 后面的话 66 | 67 | 1. 本人代码写得比较烂,所以大家就忽略我的那些你认为垃圾的东西 68 | 2. 开源出来只是给大家做排课方面的小项目有一个参考 69 | 3. 后面如果有时间我也希望去维护一下这个项目,有兴趣的小伙伴可以跟我一起搞搞 70 | 4. 希望项目可以帮助到广大小伙伴们 71 | 72 | # 如需协助,有偿解答,代码开源了就不要白嫖人力了,Q:1576070851 WX: imyikee 73 | 74 | 如果项目对你有帮助,可以请我喝喝奶茶哦~(码云这边有收款码哦:https://gitee.com/lequal/CourseArrange) 75 | -------------------------------------------------------------------------------- /UI/coursearrange/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["es2015", { "modules": false }]], 3 | "plugins": [ 4 | [ 5 | "component", 6 | { 7 | "libraryName": "element-ui", 8 | "styleLibraryName": "theme-chalk" 9 | } 10 | ] 11 | ] 12 | } -------------------------------------------------------------------------------- /UI/coursearrange/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /UI/coursearrange/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /UI/coursearrange/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | "autoprefixer": {} 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /UI/coursearrange/README.md: -------------------------------------------------------------------------------- 1 | # coursearrange 2 | 3 | > A Vue.js project 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | npm install 10 | 11 | # serve with hot reload at localhost:8080 12 | npm run dev 13 | 14 | # build for production with minification 15 | npm run build 16 | 17 | # build for production and view the bundle analyzer report 18 | npm run build --report 19 | ``` 20 | 21 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). 22 | -------------------------------------------------------------------------------- /UI/coursearrange/build/build.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | require('./check-versions')() 3 | 4 | process.env.NODE_ENV = 'production' 5 | 6 | const ora = require('ora') 7 | const rm = require('rimraf') 8 | const path = require('path') 9 | const chalk = require('chalk') 10 | const webpack = require('webpack') 11 | const config = require('../config') 12 | const webpackConfig = require('./webpack.prod.conf') 13 | 14 | const spinner = ora('building for production...') 15 | spinner.start() 16 | 17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { 18 | if (err) throw err 19 | webpack(webpackConfig, (err, stats) => { 20 | spinner.stop() 21 | if (err) throw err 22 | process.stdout.write(stats.toString({ 23 | colors: true, 24 | modules: false, 25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. 26 | chunks: false, 27 | chunkModules: false 28 | }) + '\n\n') 29 | 30 | if (stats.hasErrors()) { 31 | console.log(chalk.red(' Build failed with errors.\n')) 32 | process.exit(1) 33 | } 34 | 35 | console.log(chalk.cyan(' Build complete.\n')) 36 | console.log(chalk.yellow( 37 | ' Tip: built files are meant to be served over an HTTP server.\n' + 38 | ' Opening index.html over file:// won\'t work.\n' 39 | )) 40 | }) 41 | }) 42 | -------------------------------------------------------------------------------- /UI/coursearrange/build/check-versions.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const chalk = require('chalk') 3 | const semver = require('semver') 4 | const packageConfig = require('../package.json') 5 | const shell = require('shelljs') 6 | 7 | function exec (cmd) { 8 | return require('child_process').execSync(cmd).toString().trim() 9 | } 10 | 11 | const versionRequirements = [ 12 | { 13 | name: 'node', 14 | currentVersion: semver.clean(process.version), 15 | versionRequirement: packageConfig.engines.node 16 | } 17 | ] 18 | 19 | if (shell.which('npm')) { 20 | versionRequirements.push({ 21 | name: 'npm', 22 | currentVersion: exec('npm --version'), 23 | versionRequirement: packageConfig.engines.npm 24 | }) 25 | } 26 | 27 | module.exports = function () { 28 | const warnings = [] 29 | 30 | for (let i = 0; i < versionRequirements.length; i++) { 31 | const mod = versionRequirements[i] 32 | 33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { 34 | warnings.push(mod.name + ': ' + 35 | chalk.red(mod.currentVersion) + ' should be ' + 36 | chalk.green(mod.versionRequirement) 37 | ) 38 | } 39 | } 40 | 41 | if (warnings.length) { 42 | console.log('') 43 | console.log(chalk.yellow('To use this template, you must update following to modules:')) 44 | console.log() 45 | 46 | for (let i = 0; i < warnings.length; i++) { 47 | const warning = warnings[i] 48 | console.log(' ' + warning) 49 | } 50 | 51 | console.log() 52 | process.exit(1) 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /UI/coursearrange/build/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/build/logo.png -------------------------------------------------------------------------------- /UI/coursearrange/build/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const config = require('../config') 4 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 5 | const packageConfig = require('../package.json') 6 | 7 | exports.assetsPath = function (_path) { 8 | const assetsSubDirectory = process.env.NODE_ENV === 'production' 9 | ? config.build.assetsSubDirectory 10 | : config.dev.assetsSubDirectory 11 | 12 | return path.posix.join(assetsSubDirectory, _path) 13 | } 14 | 15 | exports.cssLoaders = function (options) { 16 | options = options || {} 17 | 18 | const cssLoader = { 19 | loader: 'css-loader', 20 | options: { 21 | sourceMap: options.sourceMap 22 | } 23 | } 24 | 25 | const postcssLoader = { 26 | loader: 'postcss-loader', 27 | options: { 28 | sourceMap: options.sourceMap 29 | } 30 | } 31 | 32 | // generate loader string to be used with extract text plugin 33 | function generateLoaders (loader, loaderOptions) { 34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] 35 | 36 | if (loader) { 37 | loaders.push({ 38 | loader: loader + '-loader', 39 | options: Object.assign({}, loaderOptions, { 40 | sourceMap: options.sourceMap 41 | }) 42 | }) 43 | } 44 | 45 | // Extract CSS when that option is specified 46 | // (which is the case during production build) 47 | if (options.extract) { 48 | return ExtractTextPlugin.extract({ 49 | use: loaders, 50 | fallback: 'vue-style-loader' 51 | }) 52 | } else { 53 | return ['vue-style-loader'].concat(loaders) 54 | } 55 | } 56 | 57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html 58 | return { 59 | css: generateLoaders(), 60 | postcss: generateLoaders(), 61 | less: generateLoaders('less'), 62 | sass: generateLoaders('sass', { indentedSyntax: true }), 63 | scss: generateLoaders('sass'), 64 | stylus: generateLoaders('stylus'), 65 | styl: generateLoaders('stylus') 66 | } 67 | } 68 | 69 | // Generate loaders for standalone style files (outside of .vue) 70 | exports.styleLoaders = function (options) { 71 | const output = [] 72 | const loaders = exports.cssLoaders(options) 73 | 74 | for (const extension in loaders) { 75 | const loader = loaders[extension] 76 | output.push({ 77 | test: new RegExp('\\.' + extension + '$'), 78 | use: loader 79 | }) 80 | } 81 | 82 | return output 83 | } 84 | 85 | exports.createNotifierCallback = () => { 86 | const notifier = require('node-notifier') 87 | 88 | return (severity, errors) => { 89 | if (severity !== 'error') return 90 | 91 | const error = errors[0] 92 | const filename = error.file && error.file.split('!').pop() 93 | 94 | notifier.notify({ 95 | title: packageConfig.name, 96 | message: severity + ': ' + error.name, 97 | subtitle: filename || '', 98 | icon: path.join(__dirname, 'logo.png') 99 | }) 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /UI/coursearrange/build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const config = require('../config') 4 | const isProduction = process.env.NODE_ENV === 'production' 5 | const sourceMapEnabled = isProduction 6 | ? config.build.productionSourceMap 7 | : config.dev.cssSourceMap 8 | 9 | module.exports = { 10 | loaders: utils.cssLoaders({ 11 | sourceMap: sourceMapEnabled, 12 | extract: isProduction 13 | }), 14 | cssSourceMap: sourceMapEnabled, 15 | cacheBusting: config.dev.cacheBusting, 16 | transformToRequire: { 17 | video: ['src', 'poster'], 18 | source: 'src', 19 | img: 'src', 20 | image: 'xlink:href' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /UI/coursearrange/build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const utils = require('./utils') 4 | const config = require('../config') 5 | const vueLoaderConfig = require('./vue-loader.conf') 6 | 7 | function resolve (dir) { 8 | return path.join(__dirname, '..', dir) 9 | } 10 | 11 | 12 | 13 | module.exports = { 14 | context: path.resolve(__dirname, '../'), 15 | entry: { 16 | app: './src/main.js' 17 | }, 18 | output: { 19 | path: config.build.assetsRoot, 20 | filename: '[name].js', 21 | publicPath: process.env.NODE_ENV === 'production' 22 | ? config.build.assetsPublicPath 23 | : config.dev.assetsPublicPath 24 | }, 25 | resolve: { 26 | extensions: ['.js', '.vue', '.json'], 27 | alias: { 28 | 'vue$': 'vue/dist/vue.esm.js', 29 | '@': resolve('src'), 30 | } 31 | }, 32 | module: { 33 | rules: [ 34 | { 35 | test: /\.vue$/, 36 | loader: 'vue-loader', 37 | options: vueLoaderConfig 38 | }, 39 | { 40 | test: /\.js$/, 41 | loader: 'babel-loader', 42 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] 43 | }, 44 | { 45 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 46 | loader: 'url-loader', 47 | options: { 48 | limit: 10000, 49 | name: utils.assetsPath('img/[name].[hash:7].[ext]') 50 | } 51 | }, 52 | { 53 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, 54 | loader: 'url-loader', 55 | options: { 56 | limit: 10000, 57 | name: utils.assetsPath('media/[name].[hash:7].[ext]') 58 | } 59 | }, 60 | { 61 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 62 | loader: 'url-loader', 63 | options: { 64 | limit: 10000, 65 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 66 | } 67 | } 68 | ] 69 | }, 70 | node: { 71 | // prevent webpack from injecting useless setImmediate polyfill because Vue 72 | // source contains it (although only uses it if it's native). 73 | setImmediate: false, 74 | // prevent webpack from injecting mocks to Node native modules 75 | // that does not make sense for the client 76 | dgram: 'empty', 77 | fs: 'empty', 78 | net: 'empty', 79 | tls: 'empty', 80 | child_process: 'empty' 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /UI/coursearrange/config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /UI/coursearrange/config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | // Template version: 1.3.1 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path') 6 | 7 | module.exports = { 8 | dev: { 9 | 10 | // Paths 11 | assetsSubDirectory: 'static', 12 | assetsPublicPath: '/', 13 | proxyTable: { 14 | 15 | }, 16 | 17 | // Various Dev Server settings 18 | host: 'localhost', // can be overwritten by process.env.HOST 19 | port: 8081, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 20 | autoOpenBrowser: true, 21 | errorOverlay: true, 22 | notifyOnErrors: true, 23 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 24 | 25 | 26 | /** 27 | * Source Maps 28 | */ 29 | 30 | // https://webpack.js.org/configuration/devtool/#development 31 | devtool: 'cheap-module-eval-source-map', 32 | 33 | // If you have problems debugging vue-files in devtools, 34 | // set this to false - it *may* help 35 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 36 | cacheBusting: true, 37 | 38 | cssSourceMap: true 39 | }, 40 | 41 | build: { 42 | // Template for index.html 43 | index: path.resolve(__dirname, '../dist/index.html'), 44 | 45 | // Paths 46 | assetsRoot: path.resolve(__dirname, '../dist'), 47 | assetsSubDirectory: 'static', 48 | assetsPublicPath: '/', 49 | 50 | /** 51 | * Source Maps 52 | */ 53 | 54 | productionSourceMap: true, 55 | // https://webpack.js.org/configuration/devtool/#production 56 | devtool: '#source-map', 57 | 58 | // Gzip off by default as many popular static hosts such as 59 | // Surge or Netlify already gzip all static assets for you. 60 | // Before setting to `true`, make sure to: 61 | // npm install --save-dev compression-webpack-plugin 62 | productionGzip: false, 63 | productionGzipExtensions: ['js', 'css'], 64 | 65 | // Run the build command with an extra argument to 66 | // View the bundle analyzer report after build finishes: 67 | // `npm run build --report` 68 | // Set to `true` or `false` to always turn it on or off 69 | bundleAnalyzerReport: process.env.npm_config_report 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /UI/coursearrange/config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /UI/coursearrange/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | coursearrange 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /UI/coursearrange/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coursearrange", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "lequal ", 6 | "private": true, 7 | "scripts": { 8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 | "start": "npm run dev", 10 | "build": "node build/build.js" 11 | }, 12 | "dependencies": { 13 | "axios": "^0.19.2", 14 | "echarts": "^4.7.0", 15 | "element-ui": "^2.13.0", 16 | "vue": "^2.5.2", 17 | "vue-router": "^3.0.1", 18 | "vuex": "^3.1.3" 19 | }, 20 | "devDependencies": { 21 | "autoprefixer": "^7.1.2", 22 | "babel-core": "^6.22.1", 23 | "babel-helper-vue-jsx-merge-props": "^2.0.3", 24 | "babel-loader": "^7.1.1", 25 | "babel-plugin-component": "^1.1.1", 26 | "babel-plugin-syntax-jsx": "^6.18.0", 27 | "babel-plugin-transform-runtime": "^6.22.0", 28 | "babel-plugin-transform-vue-jsx": "^3.5.0", 29 | "babel-preset-env": "^1.3.2", 30 | "babel-preset-es2015": "^6.24.1", 31 | "babel-preset-stage-2": "^6.22.0", 32 | "chalk": "^2.0.1", 33 | "copy-webpack-plugin": "^4.0.1", 34 | "css-loader": "^0.28.0", 35 | "extract-text-webpack-plugin": "^3.0.0", 36 | "file-loader": "^1.1.4", 37 | "friendly-errors-webpack-plugin": "^1.6.1", 38 | "html-webpack-plugin": "^2.30.1", 39 | "less": "^3.11.1", 40 | "less-loader": "^5.0.0", 41 | "node-notifier": "^5.1.2", 42 | "optimize-css-assets-webpack-plugin": "^3.2.0", 43 | "ora": "^1.2.0", 44 | "portfinder": "^1.0.13", 45 | "postcss-import": "^11.0.0", 46 | "postcss-loader": "^2.0.8", 47 | "postcss-url": "^7.2.1", 48 | "rimraf": "^2.6.0", 49 | "semver": "^5.3.0", 50 | "shelljs": "^0.7.6", 51 | "stylus-loader": "^3.0.2", 52 | "uglifyjs-webpack-plugin": "^1.1.1", 53 | "url-loader": "^0.5.8", 54 | "vue-loader": "^13.3.0", 55 | "vue-style-loader": "^3.0.1", 56 | "vue-template-compiler": "^2.5.2", 57 | "webpack": "^3.6.0", 58 | "webpack-bundle-analyzer": "^2.9.0", 59 | "webpack-dev-server": "^2.9.1", 60 | "webpack-merge": "^4.1.0" 61 | }, 62 | "engines": { 63 | "node": ">= 6.0.0", 64 | "npm": ">= 3.0.0" 65 | }, 66 | "browserslist": [ 67 | "> 1%", 68 | "last 2 versions", 69 | "not ie <= 8" 70 | ] 71 | } 72 | -------------------------------------------------------------------------------- /UI/coursearrange/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 23 | -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/css/global.css: -------------------------------------------------------------------------------- 1 | html,body,#app { 2 | height: 100%; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | .links { 8 | text-decoration:none; 9 | } -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.css: -------------------------------------------------------------------------------- 1 | @font-face {font-family: "iconfont"; 2 | src: url('iconfont.eot?t=1583675614373'); /* IE9 */ 3 | src: url('iconfont.eot?t=1583675614373#iefix') format('embedded-opentype'), /* IE6-IE8 */ 4 | url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAN8AAsAAAAAB3AAAAMuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgqCWII8ATYCJAMMCwgABCAFhG0HNRuBBsgekiSIQAEFFKiCUFimCL7Gfvvu7oshmtQiZK+WGBLNNCQyCVIjREKmMt1L+Ed1Vi3kzh68sntmJ8N0+uDJEX7RwevAn/BMAgM8/8/h0qYlMD9QLnMNjHoBxgEFtsYSvgM5Qb8HbAO8/VpOoGncRDa7JVVN4Kww2wXihmP7wTmjUBrSQ12oVgwt4hUc1NOz7WPgJfj9+JcQziSVzOx6eFY8BHlfyV9y7FSrqstDAHM6HfhRZKwChTipNByziwKr7DRVgX1zfFUR0lRua5eAofGq1j88kiCqzNQ2WKRg4ivZYSTCHGRddWoGVUy6AF6ZuCE7ZbnTiZkgP9ZiaTWbW4zGJpOpufWGcZk5J+H55GvazNx1M+XQyA2bgnZHGtcwG/NOGDWuF56HG5t3vkg2tV5+FWXo2xCwM1w9cunYrrDtu0Z7Vzh/fczBq2f3dN5dVrRsk81um/2W0jsmjRqhbrAmizbr19tKlm79OtGnEiOZbr1k83x4g3bsdG7sAT5NfQaGJzAQVb4mwPrHZjvsumhNXYPT+DC70lZtiW+h9+zEGU8dh5I0+5a4wpszrWV7/7O+uvcy5MxouNJxrIxO62PdHfKjlyamr63vx1v/D6NcFJ3qxrraTgeWltX1lZUEjrJ3OYU+gK4MvLwgdO6xy/hb/sbwVOqjXq+sv3W3Aj6Xh7xBe1eB7knqEjzzT2B2LCoa21TmojAchmHK9h5Il8C0JrqZlgFvhkuGHzQU6oYTSGrGIKubRRbsKlS0rEFV3QY0rSgd3TKIsBOlgWULAUKf05D0eIeszxNkwb6GihFfoaov7KDpKPymbJkPzrWQ4H6Kh9DAdMQNyhJjq6lrmN6A2clCP0mzA3wLJnrOjeJj4vLhUixhMkUP/RQ2gVIGMUQWUQmshgVBRgqRtXiQxgxTqmTExjJVD4oZlEVwtYPA+lHYEGTAdAhnkEzCeOUp18LPN8BYkwn6kYaCKmULjNDjqkfixYjrgCwVSJ0KbuUUvSlYCSiKgTAImQgpAR0mWAEZolQ30sIGUTGGB/gUGWKpFNNVELO8SHy/FdBk5udIkaMolx5vL3JiPwAAAA==') format('woff2'), 5 | url('iconfont.woff?t=1583675614373') format('woff'), 6 | url('iconfont.ttf?t=1583675614373') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ 7 | url('iconfont.svg?t=1583675614373#iconfont') format('svg'); /* iOS 4.1- */ 8 | } 9 | 10 | .iconfont { 11 | font-family: "iconfont" !important; 12 | font-size: 16px; 13 | font-style: normal; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | } 17 | 18 | .iconicon:before { 19 | content: "\e63e"; 20 | } 21 | 22 | .iconmima:before { 23 | content: "\e635"; 24 | } 25 | 26 | -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/assets/iconfonts/fonts/iconfont.eot -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.js: -------------------------------------------------------------------------------- 1 | !function(a){var e,d='',t=(e=document.getElementsByTagName("script"))[e.length-1].getAttribute("data-injectcss");if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(e){console&&console.log(e)}}!function(e){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(e,0);else{var t=function(){document.removeEventListener("DOMContentLoaded",t,!1),e()};document.addEventListener("DOMContentLoaded",t,!1)}else document.attachEvent&&(o=e,i=a.document,c=!1,(d=function(){try{i.documentElement.doScroll("left")}catch(e){return void setTimeout(d,50)}n()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,n())});function n(){c||(c=!0,o())}var o,i,c,d}(function(){var e,t,n,o,i,c;(e=document.createElement("div")).innerHTML=d,d=null,(t=e.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",n=t,(o=document.body).firstChild?(i=n,(c=o.firstChild).parentNode.insertBefore(i,c)):o.appendChild(n))})}(window); -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "1645753", 3 | "name": "travel", 4 | "font_family": "iconfont", 5 | "css_prefix_text": "icon", 6 | "description": "去哪儿", 7 | "glyphs": [ 8 | { 9 | "icon_id": "344459", 10 | "name": "用户名", 11 | "font_class": "icon", 12 | "unicode": "e63e", 13 | "unicode_decimal": 58942 14 | }, 15 | { 16 | "icon_id": "8765228", 17 | "name": "密码", 18 | "font_class": "mima", 19 | "unicode": "e635", 20 | "unicode_decimal": 58933 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | Created by iconfont 9 | 10 | 11 | 12 | 13 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/assets/iconfonts/fonts/iconfont.ttf -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/assets/iconfonts/fonts/iconfont.woff -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/iconfonts/fonts/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/assets/iconfonts/fonts/iconfont.woff2 -------------------------------------------------------------------------------- /UI/coursearrange/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/assets/logo.png -------------------------------------------------------------------------------- /UI/coursearrange/src/home/Home.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 31 | 32 | -------------------------------------------------------------------------------- /UI/coursearrange/src/home/Index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 21 | 22 | -------------------------------------------------------------------------------- /UI/coursearrange/src/home/components/HomeHeader.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 22 | 23 | -------------------------------------------------------------------------------- /UI/coursearrange/src/home/components/Password.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 72 | 73 | -------------------------------------------------------------------------------- /UI/coursearrange/src/home/components/StudentCenter.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 28 | 29 | -------------------------------------------------------------------------------- /UI/coursearrange/src/home/components/StudentDoc.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 95 | 96 | -------------------------------------------------------------------------------- /UI/coursearrange/src/images/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/images/image1.jpg -------------------------------------------------------------------------------- /UI/coursearrange/src/images/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/images/image2.jpg -------------------------------------------------------------------------------- /UI/coursearrange/src/images/image3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/src/images/image3.jpg -------------------------------------------------------------------------------- /UI/coursearrange/src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue'; 4 | import App from './App'; 5 | import router from './router'; 6 | // import ElementUI from 'element-ui'; 7 | import axios from 'axios'; 8 | import 'element-ui/lib/theme-chalk/index.css'; 9 | 10 | // 引入图标 11 | import '@/assets/iconfonts/fonts/iconfont.css'; 12 | 13 | // 引入echarts 14 | import echarts from 'echarts' 15 | 16 | // 引入全局样式 17 | import './assets/css/global.css'; 18 | import { 19 | Button, Select, Form, Radio, Table, Container, Message, Pagination, Dialog, Autocomplete, 20 | Submenu, Menu, MenuItem, MenuItemGroup, Input, Option, FormItem, TableColumn, Row, 21 | Icon, Dropdown, DropdownMenu, DropdownItem, Header, Aside, Main, Footer, Popover, Upload, 22 | MessageBox, Col, Cascader, Image, Link 23 | } from 'element-ui'; 24 | 25 | Vue.config.productionTip = false; 26 | Vue.prototype.$axios = axios; 27 | Vue.prototype.$message = Message; 28 | Vue.prototype.$echarts = echarts 29 | Vue.prototype.$confirm = MessageBox.confirm; 30 | Vue.prototype.$prompt = MessageBox.prompt; 31 | 32 | // Vue.use(ElementUI); 33 | Vue.use(Button); 34 | Vue.use(Col); 35 | Vue.use(Cascader); 36 | Vue.use(Popover); 37 | Vue.use(Footer); 38 | Vue.use(Main); 39 | Vue.use(Upload); 40 | Vue.use(Aside); 41 | Vue.use(Header); 42 | Vue.use(DropdownItem); 43 | Vue.use(DropdownMenu); 44 | Vue.use(Dropdown); 45 | Vue.use(Icon); 46 | Vue.use(Row); 47 | Vue.use(TableColumn); 48 | Vue.use(FormItem); 49 | Vue.use(Option); 50 | Vue.use(Select); 51 | Vue.use(Form); 52 | Vue.use(Radio); 53 | Vue.use(Table); 54 | Vue.use(Container); 55 | Vue.use(Pagination); 56 | Vue.use(Dialog); 57 | Vue.use(Autocomplete); 58 | Vue.use(Submenu); 59 | Vue.use(Menu); 60 | Vue.use(MenuItem); 61 | Vue.use(MenuItemGroup); 62 | Vue.use(Input); 63 | Vue.use(Image); 64 | Vue.use(Link); 65 | 66 | 67 | new Vue({ 68 | el: '#app', 69 | render: h => h(App), 70 | router, 71 | components: { App }, 72 | template: '' 73 | }); 74 | -------------------------------------------------------------------------------- /UI/coursearrange/src/manager/SystemData.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 101 | 102 | -------------------------------------------------------------------------------- /UI/coursearrange/src/manager/components/Help.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 24 | 25 | -------------------------------------------------------------------------------- /UI/coursearrange/src/manager/components/HomeWork.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 23 | 24 | -------------------------------------------------------------------------------- /UI/coursearrange/src/manager/components/ModifyTeacher.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 18 | 19 | -------------------------------------------------------------------------------- /UI/coursearrange/static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/UI/coursearrange/static/.gitkeep -------------------------------------------------------------------------------- /doc/UML/层次方框图/系统层次方框图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/层次方框图/系统层次方框图.vsdx -------------------------------------------------------------------------------- /doc/UML/数据库E-R图/习题习题类别.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/数据库E-R图/习题习题类别.vsdx -------------------------------------------------------------------------------- /doc/UML/数据库E-R图/学习文档.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/数据库E-R图/学习文档.vsdx -------------------------------------------------------------------------------- /doc/UML/数据库E-R图/学生讲师管理员.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/数据库E-R图/学生讲师管理员.vsdx -------------------------------------------------------------------------------- /doc/UML/数据库E-R图/教学楼教室教学区域年级班级学生.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/数据库E-R图/教学楼教室教学区域年级班级学生.vsdx -------------------------------------------------------------------------------- /doc/UML/数据库E-R图/系统架构图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/数据库E-R图/系统架构图.vsdx -------------------------------------------------------------------------------- /doc/UML/数据库E-R图/课程任务课程上课计划.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/数据库E-R图/课程任务课程上课计划.vsdx -------------------------------------------------------------------------------- /doc/UML/数据库E-R图/轮播图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/数据库E-R图/轮播图.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/上传文档.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/上传文档.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/下载模板.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/下载模板.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/修改信息.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/修改信息.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/修改密码.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/修改密码.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/学生/学生注册.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/学生/学生注册.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/导入排课任务.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/导入排课任务.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/手动添加排课任务.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/手动添加排课任务.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/排课.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/排课.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/新增题目.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/新增题目.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/查看课表.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/查看课表.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/添加教学楼.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/添加教学楼.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/添加教室.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/添加教室.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/添加班级.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/添加班级.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/添加编辑教材.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/添加编辑教材.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/用户注册.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/用户注册.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/登录.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/登录.vsdx -------------------------------------------------------------------------------- /doc/UML/时序图/编辑学生.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/时序图/编辑学生.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/上传文档.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/上传文档.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/上传视频.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/上传视频.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/修改信息.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/修改信息.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/修改密码.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/修改密码.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/学生注册.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/学生注册.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/导入任务.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/导入任务.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/排课.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/排课.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/排课流程图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/排课流程图.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/查看课表.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/查看课表.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/添加教材.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/添加教材.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/添加班级.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/添加班级.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/添加网课.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/添加网课.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/添加讲师.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/添加讲师.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/添加题目.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/添加题目.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/用户登录.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/用户登录.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/编辑学生.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/编辑学生.vsdx -------------------------------------------------------------------------------- /doc/UML/流程图/编辑讲师.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/流程图/编辑讲师.vsdx -------------------------------------------------------------------------------- /doc/UML/用例图/学生用例图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/用例图/学生用例图.vsdx -------------------------------------------------------------------------------- /doc/UML/用例图/管理员(教务处)用例图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/用例图/管理员(教务处)用例图.vsdx -------------------------------------------------------------------------------- /doc/UML/用例图/管理员讲师用例图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/用例图/管理员讲师用例图.vsdx -------------------------------------------------------------------------------- /doc/UML/用例图/讲师用例图.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/UML/用例图/讲师用例图.vsdx -------------------------------------------------------------------------------- /doc/导入课程任务测试数据.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/导入课程任务测试数据.xlsx -------------------------------------------------------------------------------- /doc/导入课程任务测试数据高一12345班--高二1班-条编码 - 副本.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/导入课程任务测试数据高一12345班--高二1班-条编码 - 副本.xlsx -------------------------------------------------------------------------------- /doc/导入课程任务测试数据高一12345班-108条编码.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/导入课程任务测试数据高一12345班-108条编码.xlsx -------------------------------------------------------------------------------- /doc/导入课程任务测试数据高一12345班-65条编码.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/导入课程任务测试数据高一12345班-65条编码.xlsx -------------------------------------------------------------------------------- /doc/导入课程任务测试数据高一12345班-67条编码.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/导入课程任务测试数据高一12345班-67条编码.xlsx -------------------------------------------------------------------------------- /doc/导入课程任务测试数据高一1234班-88条编码 .xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/导入课程任务测试数据高一1234班-88条编码 .xlsx -------------------------------------------------------------------------------- /doc/课程任务导入模板.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/课程任务导入模板.xls -------------------------------------------------------------------------------- /doc/遗传算法资料/JAVA 遗传算法编程.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/doc/遗传算法资料/JAVA 遗传算法编程.pdf -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/CoursearrangeApplication.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.scheduling.annotation.EnableScheduling; 6 | 7 | @SpringBootApplication 8 | @EnableScheduling 9 | public class CoursearrangeApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(CoursearrangeApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/common/GlobalExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.common; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | import org.springframework.web.bind.annotation.ControllerAdvice; 6 | import org.springframework.web.bind.annotation.ExceptionHandler; 7 | import org.springframework.web.bind.annotation.ResponseBody; 8 | 9 | /** 10 | * @author: 15760 11 | * @Date: 2020/3/17 12 | * @Descripe: 统一异常处理 13 | */ 14 | 15 | @ControllerAdvice 16 | public class GlobalExceptionHandler { 17 | 18 | Logger LOG = LoggerFactory.getLogger(GlobalExceptionHandler.class); 19 | 20 | // 对所有的异常进行相同的处理 21 | @ExceptionHandler(Exception.class) 22 | @ResponseBody 23 | public ServerResponse error(Exception e) { 24 | e.printStackTrace(); 25 | LOG.error("the error message is:" + " " + e.getMessage()); 26 | return ServerResponse.ofError("服务器出现异常"); 27 | } 28 | 29 | // 对特定异常进行处理,更改@ExceptionHandler()中异常的类型即可 30 | // 如@ExceptionHandler(IOException.class) 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/common/PassToken.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.common; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author: 15760 10 | * @Date: 2020/3/24 11 | * @Descripe: 12 | */ 13 | @Target({ElementType.METHOD, ElementType.TYPE}) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface PassToken { 16 | boolean required() default true; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/common/ResponseCode.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.common; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author: 15760 8 | * @Date: 2020/3/13 9 | * @Descripe: 响应状态 10 | */ 11 | 12 | @AllArgsConstructor 13 | @Getter 14 | public enum ResponseCode { 15 | 16 | SUCCESS(0, "success"), 17 | ERROR(1, "error"), 18 | VALIDATE_FAILED(404, "参数校验失败"), 19 | UNAUTHORIZED(401, "暂未登录或token已经过期"), 20 | FORBIDDEN(403, "没有相关权限"); 21 | 22 | // 响应状态码 23 | private int code; 24 | 25 | // 提示信息 26 | private String desc; 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/common/ServerResponse.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.common; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | 9 | /** 10 | * @author: 15760 11 | * @Date: 2020/3/13 12 | * @Descripe: 响应信息 13 | */ 14 | 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | public class ServerResponse { 19 | 20 | // 响应码 21 | private int code; 22 | 23 | // 信息 24 | private String message; 25 | 26 | // 数据 27 | private Object data; 28 | 29 | 30 | 31 | private ServerResponse(int code, String message) { 32 | this.code = code; 33 | this.message = message; 34 | } 35 | 36 | @JsonIgnore 37 | public boolean isSuccess() { 38 | // 0成功,1失败 39 | return this.code == ResponseCode.SUCCESS.getCode(); 40 | } 41 | 42 | 43 | public static ServerResponse ofSuccess() { 44 | return new ServerResponse(ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getDesc()); 45 | } 46 | 47 | 48 | public static ServerResponse ofSuccess(Object obj) { 49 | return new ServerResponse(ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getDesc(), obj); 50 | } 51 | 52 | 53 | public static ServerResponse ofSuccess(int code, String msg, Object obj) { 54 | return new ServerResponse(code, msg, obj); 55 | } 56 | 57 | 58 | public static ServerResponse ofSuccess(String msg) { 59 | return new ServerResponse(ResponseCode.SUCCESS.getCode(), msg); 60 | } 61 | 62 | 63 | public static ServerResponse ofSuccess(String msg, Object obj) { 64 | return new ServerResponse(ResponseCode.SUCCESS.getCode(), msg, obj); 65 | } 66 | 67 | 68 | public static ServerResponse ofError(int code, String msg, Object obj) { 69 | return new ServerResponse(code, msg, obj); 70 | } 71 | 72 | 73 | public static ServerResponse ofError() { 74 | return new ServerResponse(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc()); 75 | } 76 | 77 | 78 | public static ServerResponse ofError(String msg) { 79 | return new ServerResponse(ResponseCode.ERROR.getCode(), msg); 80 | } 81 | 82 | 83 | public static ServerResponse ofError(Object obj) { 84 | return new ServerResponse(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDesc(), obj); 85 | } 86 | 87 | 88 | 89 | public static ServerResponse ofError(String msg, Object obj) { 90 | return new ServerResponse(ResponseCode.ERROR.getCode(), msg, obj); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/common/TimerTask.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.common; 2 | 3 | import org.springframework.scheduling.annotation.Scheduled; 4 | import org.springframework.stereotype.Component; 5 | 6 | /** 7 | * @author: 15760 8 | * @Date: 2020/6/7 9 | * @Descripe: 定时任务 10 | */ 11 | @Component 12 | public class TimerTask { 13 | 14 | /** 15 | * 每3小时执行一次 16 | */ 17 | @Scheduled(cron = "0 0 0-3 * * ? ") 18 | public void task() { 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/common/UserLoginToken.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.common; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author: 15760 10 | * @Date: 2020/3/24 11 | * @Descripe: 12 | */ 13 | @Target({ElementType.METHOD, ElementType.TYPE}) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface UserLoginToken { 16 | boolean required() default true; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/config/CrosConfig.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.web.servlet.config.annotation.CorsRegistry; 6 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 7 | 8 | /** 9 | * @author: 15760 10 | * @Date: 2020/3/4 11 | * @Descripe: 解决跨域问题 12 | */ 13 | @Configuration 14 | public class CrosConfig { 15 | @Bean 16 | public WebMvcConfigurer crosConfigurer() { 17 | return new WebMvcConfigurer() { 18 | @Override 19 | // 重写父类提供的跨域请求处理的接口,解决跨域问题 20 | public void addCorsMappings(CorsRegistry registry) { 21 | // 添加映射路径 22 | registry.addMapping("/**") 23 | // 放行哪些原始域 24 | .allowedOrigins("*") 25 | // 是否发送Cookie信息 26 | .allowCredentials(true) 27 | // 放行哪些原始域(请求方式) 28 | .allowedMethods("GET", "POST", "PUT", "DELETE") 29 | // 放行哪些原始域(头部信息) 30 | .allowedHeaders("*") 31 | // 暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息) 32 | .exposedHeaders("Header1", "Header2"); 33 | } 34 | }; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/config/InterceptorConfig.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.config; 2 | 3 | import com.lyk.coursearrange.common.AuthenticationInterceptor; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 7 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 8 | 9 | /** 10 | * @author: 15760 11 | * @Date: 2020/3/24 12 | * @Descripe: 拦截请求 13 | */ 14 | @Configuration 15 | public class InterceptorConfig implements WebMvcConfigurer { 16 | 17 | @Override 18 | public void addInterceptors(InterceptorRegistry registry) { 19 | registry.addInterceptor(authenticationInterceptor()) 20 | .addPathPatterns("/**"); // 拦截所有请求,通过判断是否有 @LoginRequired 注解决定是否需要登录 21 | } 22 | 23 | @Bean 24 | public AuthenticationInterceptor authenticationInterceptor() { 25 | return new AuthenticationInterceptor(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/config/MyMetaObjectHandler.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.config; 2 | 3 | import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; 4 | import org.apache.ibatis.reflection.MetaObject; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | import java.time.LocalDateTime; 8 | 9 | /** 10 | * @author: 15760 11 | * @Date: 2020/3/4 12 | * @Descripe: 自动更新 13 | */ 14 | 15 | @Configuration 16 | public class MyMetaObjectHandler implements MetaObjectHandler { 17 | 18 | // 自动插入公公字段 19 | @Override 20 | public void insertFill(MetaObject metaObject) { 21 | if (metaObject.hasSetter("createTime")&&getFieldValByName("createTime",metaObject)==null) { 22 | setInsertFieldValByName("createTime", LocalDateTime.now(), metaObject); 23 | //setInsertFieldValByName("updateTime", LocalDateTime.now(), metaObject); 24 | } 25 | } 26 | 27 | // 自动更新公共字段 28 | @Override 29 | public void updateFill(MetaObject metaObject) { 30 | if (metaObject.hasSetter("updateTime")&&getFieldValByName("updateTime",metaObject)==null) { 31 | setUpdateFieldValByName("updateTime", LocalDateTime.now(), metaObject); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/config/MybatisPlusConfig.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.config; 2 | 3 | import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; 4 | import org.mybatis.spring.annotation.MapperScan; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | 9 | /** 10 | * @author: 15760 11 | * @Date: 2020/3/4 12 | * @Descripe: MybatisPlus配置类 13 | */ 14 | 15 | @Configuration 16 | @MapperScan("com.lyk.coursearrange.dao") 17 | public class MybatisPlusConfig { 18 | 19 | // 分页插件 20 | @Bean 21 | public PaginationInterceptor paginationInterceptor() { 22 | return new PaginationInterceptor(); 23 | } 24 | 25 | // 逻辑删除插件,MP3.1之后不需要配置 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/config/Swagger2Config.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import springfox.documentation.builders.ApiInfoBuilder; 6 | import springfox.documentation.builders.PathSelectors; 7 | import springfox.documentation.builders.RequestHandlerSelectors; 8 | import springfox.documentation.service.ApiInfo; 9 | import springfox.documentation.spi.DocumentationType; 10 | import springfox.documentation.spring.web.plugins.Docket; 11 | import springfox.documentation.swagger2.annotations.EnableSwagger2; 12 | 13 | /** 14 | * @author: 15760 15 | * @Date: 2020/3/14 16 | * @Descripe: 17 | */ 18 | @Configuration 19 | @EnableSwagger2 20 | public class Swagger2Config { 21 | 22 | /** 23 | * 创建API应用 24 | * apiInfo() 增加API相关信息 25 | * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现, 26 | * 本例采用指定扫描的包路径来定义指定要建立API的目录。 27 | * 28 | * @return 29 | */ 30 | @Bean 31 | public Docket createRestApi() { 32 | return new Docket(DocumentationType.SWAGGER_2) 33 | .apiInfo(apiInfo()) 34 | .select() 35 | .apis(RequestHandlerSelectors.basePackage("com.swaggerTest.controller")) 36 | .paths(PathSelectors.any()) 37 | .build(); 38 | } 39 | 40 | /** 41 | * 创建该API的基本信息(这些基本信息会展现在文档页面中) 42 | * 访问地址:http://项目实际地址/swagger-ui.html 43 | * @return 44 | */ 45 | private ApiInfo apiInfo() { 46 | return new ApiInfoBuilder() 47 | .title("排课系统API") 48 | .description("系统正在完善中....") 49 | .version("1.0") 50 | .build(); 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/CoursePlanController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | 4 | import com.alibaba.fastjson.JSON; 5 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 6 | import com.lyk.coursearrange.common.ServerResponse; 7 | import com.lyk.coursearrange.entity.CourseInfo; 8 | import com.lyk.coursearrange.entity.CoursePlan; 9 | import com.lyk.coursearrange.entity.Teacher; 10 | import com.lyk.coursearrange.entity.response.CoursePlanVo; 11 | import com.lyk.coursearrange.service.CourseInfoService; 12 | import com.lyk.coursearrange.service.CoursePlanService; 13 | import com.lyk.coursearrange.service.TeacherService; 14 | import org.springframework.beans.factory.annotation.Autowired; 15 | import org.springframework.web.bind.annotation.GetMapping; 16 | import org.springframework.web.bind.annotation.PathVariable; 17 | import org.springframework.web.bind.annotation.RestController; 18 | 19 | import java.util.LinkedList; 20 | import java.util.List; 21 | 22 | /** 23 | * @author lequal 24 | * @since 2020-04-15 25 | */ 26 | @RestController 27 | public class CoursePlanController { 28 | 29 | @Autowired 30 | private CourseInfoService courseInfoService; 31 | @Autowired 32 | private CoursePlanService coursePlanService; 33 | 34 | @Autowired 35 | private TeacherService teacherService; 36 | 37 | /** 38 | * 根据班级查询课程表 39 | * @param classNo 40 | * @return 41 | */ 42 | @GetMapping("/courseplan/{classno}") 43 | public ServerResponse queryCoursePlanByClassNo(@PathVariable("classno") String classNo) { 44 | QueryWrapper wrapper = new QueryWrapper().eq("class_no", classNo).orderByAsc("class_time"); 45 | List coursePlanList = coursePlanService.list(wrapper); 46 | List coursePlanVos = new LinkedList<>(); 47 | coursePlanList.forEach(v->{ 48 | CoursePlanVo coursePlanVo = JSON.parseObject(JSON.toJSONString(v), CoursePlanVo.class); 49 | coursePlanVo.setCourseInfo(courseInfoService.getOne(new QueryWrapper().eq("course_no",v.getCourseNo()))); 50 | coursePlanVo.setTeacher(teacherService.getOne(new QueryWrapper().eq("teacher_no",v.getTeacherNo()))); 51 | coursePlanVos.add(coursePlanVo); 52 | }); 53 | return ServerResponse.ofSuccess(coursePlanVos); 54 | } 55 | 56 | 57 | 58 | } 59 | 60 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/ExerciseCategoryController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | 4 | import com.lyk.coursearrange.common.ServerResponse; 5 | import com.lyk.coursearrange.entity.ExerciseCategory; 6 | import com.lyk.coursearrange.service.ExerciseCategoryService; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.*; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-05-21 15 | * 测试题类别 16 | */ 17 | @RestController 18 | @RequestMapping("/exercise") 19 | public class ExerciseCategoryController { 20 | 21 | @Autowired 22 | private ExerciseCategoryService ecs; 23 | 24 | /** 25 | * 查询所有题目类别 26 | * @return 27 | */ 28 | @GetMapping("/categories") 29 | public ServerResponse queryCategory() { 30 | // 查询所有类别 31 | List list = ecs.list(); 32 | return ServerResponse.ofSuccess(list); 33 | } 34 | 35 | 36 | /** 37 | * 添加题目类别 38 | * @param categoryName 39 | * @return 40 | */ 41 | @PostMapping("/add") 42 | public ServerResponse addCategory(@RequestParam() String categoryName) { 43 | System.out.println("categoryName = " + categoryName); 44 | ExerciseCategory e = new ExerciseCategory(); 45 | e.setCategoryName(categoryName); 46 | boolean b = ecs.save(e); 47 | if (b) { 48 | return ServerResponse.ofSuccess("添加类别成功"); 49 | } 50 | return ServerResponse.ofError("添加类别失败"); 51 | } 52 | } 53 | 54 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/GradeInfoController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | 6 | import org.springframework.stereotype.Controller; 7 | import org.springframework.web.bind.annotation.RestController; 8 | 9 | /** 10 | * @author lequal 11 | * @since 2020-03-20 12 | */ 13 | @RestController 14 | @RequestMapping("/grade") 15 | public class GradeInfoController { 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/LocationInfoController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.lyk.coursearrange.common.ServerResponse; 5 | import com.lyk.coursearrange.dao.LocationInfoDao; 6 | import com.lyk.coursearrange.entity.LocationInfo; 7 | import com.lyk.coursearrange.entity.request.LocationSetVO; 8 | import com.lyk.coursearrange.entity.response.LocationVO; 9 | import com.lyk.coursearrange.service.LocationInfoService; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.web.bind.annotation.*; 12 | import java.util.HashMap; 13 | import java.util.List; 14 | import java.util.Map; 15 | 16 | /** 17 | * @author lequal 18 | * @since 2020-03-20 19 | */ 20 | @RestController 21 | public class LocationInfoController { 22 | 23 | @Autowired 24 | private LocationInfoService lis; 25 | @Autowired 26 | private LocationInfoDao lid; 27 | 28 | /** 29 | * 新增教学区域 30 | * @return 31 | */ 32 | @PostMapping("/setteacharea") 33 | public ServerResponse setTeachArea(@RequestBody() LocationSetVO l) { 34 | QueryWrapper wrapper = new QueryWrapper(); 35 | wrapper.eq("teachbuild_no", l.getTeachBuildNo()); 36 | wrapper.eq("grade_no", l.getGradeNo()); 37 | LocationInfo locationInfo = new LocationInfo(); 38 | if (lis.getOne(wrapper) != null) { 39 | return ServerResponse.ofError("该教学区域已经设置过了!"); 40 | } 41 | locationInfo.setTeachbuildNo(l.getTeachBuildNo()); 42 | locationInfo.setGradeNo(l.getGradeNo()); 43 | boolean b = lis.save(locationInfo); 44 | if (b) { 45 | return ServerResponse.ofSuccess("设置教学区域成功"); 46 | } 47 | return ServerResponse.ofError("设置教学区域失败"); 48 | } 49 | 50 | /** 51 | * 查询所有的教学区域安排信息 52 | * @return 53 | */ 54 | @GetMapping("/locations/{page}") 55 | public ServerResponse queryLocationInfo(@PathVariable("page") Integer page, @RequestParam(defaultValue = "10") Integer limit) { 56 | Map map = new HashMap<>(); 57 | List list = lid.locations((page - 1) * limit, limit); 58 | int total = lid.count(); 59 | map.put("records", list); 60 | map.put("total", total); 61 | return ServerResponse.ofSuccess(map); 62 | } 63 | 64 | 65 | /** 66 | * 根据id删除教学区域信息 67 | * @param id 68 | * @return 69 | */ 70 | @DeleteMapping("/location/delete/{id}") 71 | public ServerResponse delete(@PathVariable("id") Integer id) { 72 | boolean b = lis.removeById(id); 73 | if (b) { 74 | return ServerResponse.ofSuccess("删除成功"); 75 | } 76 | return ServerResponse.ofError("删除失败"); 77 | } 78 | } 79 | 80 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/LoginController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | /** 7 | * @author: 15760 8 | * @Date: 2020/7/3 9 | * @Descripe: 第三方登录 10 | * 1、QQ登录 11 | * 2、微信登录 12 | * 3、微博登录 13 | */ 14 | @RestController 15 | public class LoginController { 16 | 17 | /** 18 | * QQ登录 19 | * @return 20 | */ 21 | public ServerResponse QQLogin() { 22 | return null; 23 | } 24 | 25 | /** 26 | * 微信登录 27 | * @return 28 | */ 29 | public ServerResponse WeChatLogin() { 30 | return null; 31 | } 32 | 33 | /** 34 | * 微博登录 35 | * @return 36 | */ 37 | public ServerResponse WeiboLogin() { 38 | return null; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/OSSController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import com.lyk.coursearrange.service.OSSService; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RestController; 9 | import org.springframework.web.multipart.MultipartFile; 10 | 11 | /** 12 | * @author: 15760 13 | * @Date: 2020/5/21 14 | * @Descripe: 15 | */ 16 | @RestController 17 | @RequestMapping("/aliyun") 18 | public class OSSController { 19 | 20 | @Autowired 21 | private OSSService ossService; 22 | 23 | /** 24 | * 上传头像 25 | * @param file 26 | * @param id 用户id 27 | * @param type 用户类型,1:管理员,2:讲师,3:学生 28 | * @return 29 | */ 30 | @PostMapping("/avatar") 31 | public ServerResponse uploadAvatar(MultipartFile file, Integer id, Integer type) { 32 | return ossService.uploadAvatar(file, id, type); 33 | } 34 | 35 | /** 36 | * 上传课程 37 | * @param file 38 | * @param id 用户id 39 | * @param type 用户类型,1:管理员,2:讲师 40 | * @return 41 | */ 42 | @PostMapping("/video") 43 | public ServerResponse uploadVideo(MultipartFile file, Integer id, Integer type) { 44 | return ossService.uploadVideo(file, id, type); 45 | } 46 | 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/OnlineVideoController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 5 | import com.lyk.coursearrange.common.ServerResponse; 6 | import com.lyk.coursearrange.entity.OnlineVideo; 7 | import com.lyk.coursearrange.entity.request.UserInfoVO; 8 | import com.lyk.coursearrange.service.OnlineVideoService; 9 | import com.lyk.coursearrange.util.AliyunUtil; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.web.bind.annotation.*; 12 | import org.springframework.web.multipart.MultipartFile; 13 | 14 | import java.util.HashMap; 15 | import java.util.Map; 16 | 17 | /** 18 | * @author lequal 19 | * @since 2020-06-04 20 | */ 21 | @RestController 22 | @RequestMapping("/onlinevideo") 23 | public class OnlineVideoController { 24 | 25 | @Autowired 26 | private OnlineVideoService ovs; 27 | 28 | /** 29 | * 根据课程id获取课程包含的视频 30 | * @param id 31 | * @return 32 | */ 33 | @GetMapping("/get/{id}") 34 | public ServerResponse getAllVideo(@PathVariable("id") Integer id) { 35 | return ServerResponse.ofSuccess(ovs.list( new QueryWrapper().eq("online_course_id", id))); 36 | } 37 | 38 | /** 39 | * 上传视频并返回url和文件名到前端 40 | * @return 41 | */ 42 | @PostMapping("/upload") 43 | public ServerResponse upload(MultipartFile file) { 44 | Map map = AliyunUtil.upload(file, null); 45 | if (map != null) { 46 | return ServerResponse.ofSuccess(map); 47 | } 48 | return ServerResponse.ofError("视频上传失败"); 49 | } 50 | 51 | /** 52 | * 上传新视频 53 | * @param 54 | * @return 55 | */ 56 | @PostMapping("/add") 57 | public ServerResponse addVideo(MultipartFile file, @RequestBody UserInfoVO u) { 58 | Map map = new HashMap(); 59 | // map = AliyunUtil.upload(file, null); 60 | OnlineVideo onlineVideo = new OnlineVideo(); 61 | // 所属课程的id 62 | onlineVideo.setOnlineCourseId(u.getCourseId()); 63 | onlineVideo.setVideoName(u.getVideoName()); 64 | onlineVideo.setVideoUrl(u.getVideoUrl()); 65 | onlineVideo.setCover(u.getCover()); 66 | 67 | // onlineVideo.setVideoUrl(map.get("url").toString()); 68 | // onlineVideo.setVideoName(map.get("name").toString()); 69 | onlineVideo.setVideoNo(u.getVideoNo()); // 视频编号 70 | onlineVideo.setFromUserType(u.getUserType()); 71 | onlineVideo.setFromUserId(u.getId()); 72 | onlineVideo.setFromUserName(u.getRealname()); 73 | 74 | boolean b = ovs.save(onlineVideo); 75 | if (b) { 76 | return ServerResponse.ofSuccess("添加视频成功"); 77 | } 78 | return ServerResponse.ofError("添加视频失败"); 79 | } 80 | 81 | /** 82 | * 根据id删除视频 83 | * @param id 84 | * @return 85 | */ 86 | @DeleteMapping("/delete/{id}") 87 | public ServerResponse deleteVideo(@PathVariable("id") Integer id) { 88 | 89 | boolean b = ovs.removeById(id); 90 | 91 | if (b) { 92 | return ServerResponse.ofSuccess("删除视频成功"); 93 | } 94 | return ServerResponse.ofError("删除视频失败"); 95 | } 96 | 97 | } 98 | 99 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/controller/StudyLogsController.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 5 | import com.lyk.coursearrange.common.ServerResponse; 6 | import com.lyk.coursearrange.entity.StudyLogs; 7 | import com.lyk.coursearrange.service.StudyLogsService; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.web.bind.annotation.*; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author lequal 15 | * @since 2020-06-04 16 | * 学习记录 17 | */ 18 | @RestController 19 | @RequestMapping("/studylogs") 20 | public class StudyLogsController { 21 | 22 | @Autowired 23 | private StudyLogsService sls; 24 | 25 | 26 | /** 27 | * 添加或更新学习进度 28 | * @param s 29 | * @return 30 | */ 31 | @PostMapping("/add") 32 | public ServerResponse addLogs(@RequestBody StudyLogs s) { 33 | boolean b = sls.saveOrUpdate(s); 34 | if (b) { 35 | return ServerResponse.ofSuccess(); 36 | } 37 | return ServerResponse.ofError(); 38 | } 39 | 40 | /** 41 | * 根据学生id获取学习记录,上次看到哪个视频了 42 | * @param id 43 | * @return 44 | */ 45 | @GetMapping("/get/{id}") 46 | public ServerResponse getLog(@PathVariable("id") Integer id) { 47 | List list = sls.list(new QueryWrapper().eq("student_id", id)); 48 | return ServerResponse.ofSuccess(list); 49 | } 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/AdminDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.Admin; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.apache.ibatis.annotations.Select; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author lequal 14 | * @since 2020-03-06 15 | */ 16 | public interface AdminDao extends BaseMapper { 17 | 18 | @Select("SELECT * FROM tb_admin WHERE admin_no=#{account} AND password=#{password}" + 19 | " UNION" + 20 | " SELECT * FROM tb_admin WHERE username=#{account} AND password=#{password}" + 21 | " UNION" + 22 | " SELECT * FROM tb_admin WHERE realname=#{account} AND password=#{password}") 23 | Admin adminLogin(@Param("account") String account, @Param("password") String password); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/ClassInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.ClassInfo; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import com.lyk.coursearrange.entity.response.ClassInfoVO; 6 | import org.apache.ibatis.annotations.Param; 7 | import org.apache.ibatis.annotations.Select; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | *

13 | * Mapper 接口 14 | *

15 | * 16 | * @author lequal 17 | * @since 2020-03-06 18 | */ 19 | public interface ClassInfoDao extends BaseMapper { 20 | 21 | // 获得班级的人数 22 | @Select("select num from tb_class_info where class_no = #{classNo}") 23 | int selectStuNum(@Param("classNo") String classNo); 24 | 25 | @Select("SELECT tci.id,tgi.grade_name,tci.class_no,tci.class_name,t.realname,tci.num FROM tb_class_info tci join tb_teacher t on tci.teacher = t.id join tb_grade_info tgi on tci.remark = tgi.grade_no where tgi.grade_no = ${gradeNo} limit ${page}, ${limit}") 26 | List queryClassInfo(Integer page, Integer limit, String gradeNo); 27 | 28 | @Select("SELECT tci.id,tgi.grade_name,tci.class_no,tci.class_name,t.realname,tci.num FROM tb_class_info tci join tb_teacher t on tci.teacher = t.id join tb_grade_info tgi on tci.remark = tgi.grade_no limit ${page}, ${limit}") 29 | List queryClassInfos(Integer page, Integer limit); 30 | 31 | @Select("SELECT count(tci.id) FROM tb_class_info tci join tb_teacher t on tci.teacher = t.id join tb_grade_info tgi on tci.remark = tgi.grade_no where tgi.grade_no = ${gradeNo}") 32 | int count1(String gradeNo); 33 | 34 | @Select("SELECT count(tci.id) FROM tb_class_info tci join tb_teacher t on tci.teacher = t.id join tb_grade_info tgi on tci.remark = tgi.grade_no") 35 | int count2(); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/ClassTaskDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.ClassTask; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.apache.ibatis.annotations.Param; 7 | import org.apache.ibatis.annotations.Select; 8 | import org.apache.ibatis.annotations.Update; 9 | import org.springframework.stereotype.Component; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author lequal 15 | * @since 2020-04-06 16 | */ 17 | @Component 18 | @Mapper 19 | public interface ClassTaskDao extends BaseMapper { 20 | 21 | // 查询指定学期的开课任务 22 | // @Select("SELECT * FROM tb_class_task where semester = #{semester}") 23 | List selectBySemester(ClassTask classTask); 24 | 25 | @Select("SELECT distinct class_no FROM tb_class_task") 26 | List selectClassNo(); 27 | 28 | // 可能这里是columnName没传进来 29 | @Select("select distinct ${columnName} from tb_class_task") 30 | List selectByColumnName(@Param("columnName") String columnName); 31 | 32 | @Select("select distinct grade_no from tb_class_task") 33 | List selectByGradeNo(); 34 | 35 | @Update("truncate tb_class_task") 36 | void clearClassTaskOld(); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/ClassroomDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.Classroom; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.apache.ibatis.annotations.Select; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author lequal 12 | * @since 2020-03-23 13 | */ 14 | public interface ClassroomDao extends BaseMapper { 15 | 16 | // 查询某个教学楼下的教室列表 17 | @Select("select * from tb_classroom where teachbuild_no = #{teachbuildNo}") 18 | List selectByTeachbuildNo(@Param("teachbuildNo") String teachbuildNo); 19 | 20 | // @Select("select * from tb_classroom where teachbuild_no in #{teachBuildNoList}") // 这里肯定需要优化的 21 | // List selectByTeachbuildNoList(List teachBuildNoList); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/CourseInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.CourseInfo; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-04-03 13 | */ 14 | public interface CourseInfoDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/CoursePlanDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.CoursePlan; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Insert; 6 | import org.apache.ibatis.annotations.Param; 7 | import org.apache.ibatis.annotations.Update; 8 | 9 | /** 10 | * @author lequal 11 | * @since 2020-04-15 12 | */ 13 | public interface CoursePlanDao extends BaseMapper { 14 | 15 | // 将上课计划插入上课计划的表中 16 | // @Insert("insert into tb_course_plan ") 17 | // void insertCoursePlan(CoursePlan coursePlan); 18 | 19 | // 插入课程计划 20 | 21 | @Insert("insert into tb_course_plan(grade_no, class_no, course_no, teacher_no, classroom_no, class_time, semester) values(#{grade_no}, #{class_no}, #{course_no}, #{teacher_no}, #{classroom_no}, #{class_time}, #{semester})") 22 | void insertCoursePlan(@Param("grade_no") String grade_no, @Param("class_no") String class_no, @Param("course_no") String course_no, 23 | @Param("teacher_no") String teacher_no, @Param("classroom_no") String classroom_no, @Param("class_time") String class_time, @Param("semester") String semester); 24 | 25 | @Update("truncate tb_course_plan") 26 | void deleteAllPlan(); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/DocDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.Doc; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-05-27 13 | */ 14 | public interface DocDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/ExerciseCategoryDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.ExerciseCategory; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-05-21 13 | */ 14 | public interface ExerciseCategoryDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/ExerciseDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.Exercise; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-05-21 13 | */ 14 | public interface ExerciseDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/GradeInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.GradeInfo; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-20 13 | */ 14 | public interface GradeInfoDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/LocationInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.LocationInfo; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import com.lyk.coursearrange.entity.response.LocationVO; 6 | import org.apache.ibatis.annotations.Select; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * Mapper 接口 13 | *

14 | * 15 | * @author lequal 16 | * @since 2020-03-20 17 | */ 18 | public interface LocationInfoDao extends BaseMapper { 19 | 20 | // @Select("select ttbi.teach_build_no, ttbi.teach_build_name, tgi.grade_no,tgi.grade_name from tb_teach_build_info ttbi join tb_location_info tli on tli.teachbuild_no = ttbi.teach_build_no join tb_grade_info tgi on tli.grade_no = tgi.grade_no limit ${page}, ${limit}") 21 | // List locations(Integer page, Integer limit); 22 | 23 | @Select("select tli.id, ttbi.teach_build_no, ttbi.teach_build_name, tgi.grade_no,tgi.grade_name from tb_teach_build_info ttbi join tb_location_info tli on tli.teachbuild_no = ttbi.teach_build_no join tb_grade_info tgi on tli.grade_no = tgi.grade_no where tli.deleted = 0 limit ${page}, ${limit}") 24 | List locations(Integer page, Integer limit); 25 | 26 | @Select("select count(*) from tb_teach_build_info ttbi join tb_location_info tli on tli.teachbuild_no = ttbi.teach_build_no join tb_grade_info tgi on tli.grade_no = tgi.grade_no") 27 | int count(); 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/OnlineCategoryDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.OnlineCategory; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface OnlineCategoryDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/OnlineCourseDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.OnlineCourse; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface OnlineCourseDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/OnlineVideoDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.OnlineVideo; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface OnlineVideoDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/StudentDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.Student; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.apache.ibatis.annotations.Select; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-03-13 16 | */ 17 | public interface StudentDao extends BaseMapper { 18 | 19 | @Select("SELECT * FROM tb_student WHERE student_no=#{account} AND password=#{password}" + 20 | " UNION" + 21 | " SELECT * FROM tb_student WHERE username=#{account} AND password=#{password}" + 22 | " UNION" + 23 | " SELECT * FROM tb_student WHERE realname=#{account} AND password=#{password}") 24 | Student studentLogin(@Param("account") String username, @Param("password") String password); 25 | 26 | @Select("select count(*) from tb_student where date(create_time) = #{yesday}") 27 | int studentReg(@Param("yesday") String yesday); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/StudyLogsDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.StudyLogs; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface StudyLogsDao extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/TeachBuildInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.TeachbuildInfo; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.apache.ibatis.annotations.Select; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author lequal 12 | * @since 2020-03-20 13 | */ 14 | public interface TeachBuildInfoDao extends BaseMapper { 15 | 16 | @Select("select teachbuild_no from tb_location_info where grade_no = #{gradeNo}") 17 | String selectBuildNo(@Param("gradeNo") String gradeNo); 18 | 19 | @Select("select teachbuild_no from tb_location_info where grade_no = #{gradeNo}") 20 | List selectTeachBuildList(@Param("gradeNo") String gradeNo); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/dao/TeacherDao.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.dao; 2 | 3 | import com.lyk.coursearrange.entity.Teacher; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.apache.ibatis.annotations.Select; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author lequal 14 | * @since 2020-03-13 15 | */ 16 | public interface TeacherDao extends BaseMapper { 17 | 18 | @Select("SELECT * FROM tb_teacher WHERE teacher_no=#{account} AND password=#{password}" + 19 | " UNION" + 20 | " SELECT * FROM tb_teacher WHERE username=#{account} AND password=#{password}" + 21 | " UNION" + 22 | " SELECT * FROM tb_teacher WHERE realname=#{account} AND password=#{password}") 23 | Teacher teacherLogin(@Param("account") String account, @Param("password") String password); 24 | 25 | @Select("select count(*) from tb_teacher where date(create_time) = #{yesday}") 26 | int teacherReg(@Param("yesday") String yesday); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/Admin.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.FieldFill; 4 | import com.baomidou.mybatisplus.annotation.TableField; 5 | import com.baomidou.mybatisplus.annotation.TableLogic; 6 | import com.baomidou.mybatisplus.annotation.TableName; 7 | import com.baomidou.mybatisplus.extension.activerecord.Model; 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.NoArgsConstructor; 11 | 12 | import java.time.LocalDateTime; 13 | import java.io.Serializable; 14 | 15 | /** 16 | * 17 | * @author lequal 18 | * @since 2020-03-06 19 | */ 20 | 21 | @TableName("tb_admin") 22 | @AllArgsConstructor 23 | @NoArgsConstructor 24 | @Data 25 | public class Admin extends Model { 26 | 27 | private static final long serialVersionUID=1L; 28 | 29 | /** 30 | * id 31 | */ 32 | private Integer id; 33 | 34 | /** 35 | * 管理员编号 36 | */ 37 | private String adminNo; 38 | 39 | /** 40 | * 用户名 41 | */ 42 | private String username; 43 | 44 | /** 45 | * 密码 46 | */ 47 | private String password; 48 | 49 | /** 50 | * 真实姓名 51 | */ 52 | private String realname; 53 | 54 | /** 55 | * 用户类型1 56 | */ 57 | private Integer userType; 58 | 59 | /** 60 | * 职称 61 | */ 62 | private String jobtitle; 63 | 64 | /** 65 | * 教授科目 66 | */ 67 | private String teach; 68 | 69 | /** 70 | * 联系电话 71 | */ 72 | private String telephone; 73 | 74 | /** 75 | * 电子邮件 76 | */ 77 | private String email; 78 | 79 | /** 80 | * 证件 81 | */ 82 | private String license; 83 | 84 | /** 85 | * 年龄 86 | */ 87 | private Integer age; 88 | 89 | /** 90 | * 头像 91 | */ 92 | private String avatar; 93 | 94 | /** 95 | * 地址 96 | */ 97 | private String address; 98 | 99 | /** 100 | * 签名 101 | */ 102 | private String description; 103 | 104 | /** 105 | * 备注 106 | */ 107 | private String remark; 108 | 109 | /** 110 | * 优先级 111 | */ 112 | private Integer piority; 113 | 114 | /** 115 | * 权限,默认为1(普通管理员) 0为超级管理员,登录的时候需要进行验证 116 | */ 117 | private Integer power; 118 | 119 | /** 120 | * 类型 121 | */ 122 | private Integer type; 123 | 124 | /** 125 | * 账号状态 126 | */ 127 | private Integer status; 128 | 129 | @TableLogic 130 | private Integer deleted; 131 | 132 | @TableField(fill = FieldFill.INSERT) 133 | private LocalDateTime createTime; 134 | 135 | @TableField(fill = FieldFill.INSERT_UPDATE) 136 | private LocalDateTime updateTime; 137 | 138 | @Override 139 | protected Serializable pkVal() { 140 | return this.id; 141 | } 142 | 143 | 144 | } 145 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/ClassInfo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | *

14 | * 15 | *

16 | * 17 | * @author lequal 18 | * @since 2020-03-06 19 | */ 20 | @TableName("tb_class_info") 21 | @AllArgsConstructor 22 | @NoArgsConstructor 23 | @Data 24 | public class ClassInfo extends Model { 25 | 26 | private static final long serialVersionUID=1L; 27 | 28 | /** 29 | * id,班级表 30 | */ 31 | @TableId(value = "id", type = IdType.AUTO) 32 | private Integer id; 33 | 34 | /** 35 | * 班级编号 36 | */ 37 | private String classNo; 38 | 39 | /** 40 | * 班级名称 41 | */ 42 | private String className; 43 | 44 | /** 45 | * 班级人数 46 | */ 47 | private Integer num; 48 | 49 | /** 50 | * 班主任id 51 | */ 52 | private Integer teacher; 53 | 54 | /** 55 | * 备注 56 | */ 57 | private String remark; 58 | 59 | @TableLogic 60 | private Integer deleted; 61 | 62 | @TableField(fill = FieldFill.INSERT) 63 | private LocalDateTime createTime; 64 | 65 | @TableField(fill = FieldFill.INSERT_UPDATE) 66 | private LocalDateTime updateTime; 67 | 68 | @Override 69 | protected Serializable pkVal() { 70 | return this.id; 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/Classroom.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | import java.io.Serializable; 9 | 10 | /** 11 | *

12 | * 13 | *

14 | * 15 | * @author lequal 16 | * @since 2020-03-23 17 | */ 18 | @TableName("tb_classroom") 19 | @Data 20 | public class Classroom extends Model { 21 | 22 | private static final long serialVersionUID=1L; 23 | 24 | /** 25 | * 教室id 26 | */ 27 | @TableId(value = "id", type = IdType.AUTO) 28 | private Integer id; 29 | 30 | /** 31 | * 教室编号 32 | */ 33 | private String classroomNo; 34 | 35 | /** 36 | * 教室名称 37 | */ 38 | private String classroomName; 39 | 40 | /** 41 | * 所在教学楼编号 42 | */ 43 | private String teachbuildNo; 44 | 45 | /** 46 | * 教室人数容量 47 | */ 48 | private Integer capacity; 49 | 50 | /** 51 | * 教室属性 52 | */ 53 | private String attr; 54 | 55 | /** 56 | * 备注 57 | */ 58 | private String remark; 59 | 60 | /** 61 | * 逻辑删除(默认0显示,1删除) 62 | */ 63 | @TableLogic 64 | @TableField("deleted") 65 | private Integer deleted; 66 | 67 | @TableField(fill = FieldFill.INSERT) 68 | private LocalDateTime createTime; 69 | 70 | @TableField(fill = FieldFill.INSERT_UPDATE) 71 | private LocalDateTime updateTime; 72 | 73 | 74 | 75 | @Override 76 | protected Serializable pkVal() { 77 | return this.id; 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/CourseInfo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * 14 | * @author lequal 15 | * @since 2020-04-03 16 | */ 17 | @TableName("tb_course_info") 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | public class CourseInfo extends Model { 22 | 23 | private static final long serialVersionUID=1L; 24 | 25 | /** 26 | * id 27 | */ 28 | @TableId(value = "id", type = IdType.AUTO) 29 | private Integer id; 30 | 31 | /** 32 | * 课程编号 33 | */ 34 | private String courseNo; 35 | 36 | /** 37 | * 课程名 38 | */ 39 | private String courseName; 40 | 41 | /** 42 | * 课程属性 43 | */ 44 | private String courseAttr; 45 | 46 | /** 47 | * 出版社 48 | */ 49 | private String publisher; 50 | 51 | /** 52 | * 课程状态 53 | */ 54 | private Integer status; 55 | 56 | /** 57 | * 优先级 58 | */ 59 | private Integer piority; 60 | 61 | /** 62 | * 备注 63 | */ 64 | private String remark; 65 | 66 | /** 67 | * 逻辑删除 68 | */ 69 | @TableLogic 70 | @TableField("deleted") 71 | private Integer deleted; 72 | 73 | @TableField(fill = FieldFill.INSERT) 74 | private LocalDateTime createTime; 75 | 76 | @TableField(fill = FieldFill.INSERT_UPDATE) 77 | private LocalDateTime updateTime; 78 | 79 | @Override 80 | protected Serializable pkVal() { 81 | return this.id; 82 | } 83 | 84 | } 85 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/CoursePlan.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import java.time.LocalDateTime; 9 | import java.io.Serializable; 10 | 11 | /** 12 | * @author lequal 13 | * @since 2020-04-15 14 | */ 15 | 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @TableName("tb_course_plan") 20 | public class CoursePlan extends Model { 21 | 22 | private static final long serialVersionUID=1L; 23 | 24 | /** 25 | * id 26 | */ 27 | @TableId(value = "id", type = IdType.AUTO) 28 | private Integer id; 29 | 30 | /** 31 | * 年级编号 32 | */ 33 | @TableField("grade_no") 34 | private String gradeNo; 35 | 36 | /** 37 | * 班级编号 38 | */ 39 | @TableField("class_no") 40 | private String classNo; 41 | 42 | /** 43 | * 课程编号 44 | */ 45 | @TableField("course_no") 46 | private String courseNo; 47 | 48 | /** 49 | * 讲师编号 50 | */ 51 | @TableField("teacher_no") 52 | private String teacherNo; 53 | 54 | /** 55 | * 教室编号 56 | */ 57 | @TableField("classroom_no") 58 | private String classroomNo; 59 | 60 | /** 61 | * 上课时间 62 | */ 63 | @TableField("class_time") 64 | private String classTime; 65 | 66 | /** 67 | * 周数 68 | */ 69 | @TableField("weeks_sum") 70 | private Integer weeksSum; 71 | 72 | /** 73 | * 学期 74 | */ 75 | @TableField("semester") 76 | private String semester; 77 | 78 | @TableLogic 79 | private Integer deleted; 80 | 81 | @TableField(fill = FieldFill.INSERT) 82 | private LocalDateTime createTime; 83 | 84 | @TableField(fill = FieldFill.INSERT_UPDATE) 85 | private LocalDateTime updateTime; 86 | 87 | 88 | 89 | 90 | @Override 91 | protected Serializable pkVal() { 92 | return this.id; 93 | } 94 | 95 | } 96 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/Doc.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | import java.io.Serializable; 9 | 10 | /** 11 | * @author lequal 12 | * @since 2020-05-27 13 | * 学习文档,作业(以文档形式下发,学生下载查看或者在线预览) 14 | */ 15 | @TableName("tb_doc") 16 | @Data 17 | public class Doc extends Model { 18 | 19 | private static final long serialVersionUID=1L; 20 | 21 | @TableId(value = "id", type = IdType.AUTO) 22 | private Integer id; 23 | 24 | /** 25 | * doc文件名 26 | */ 27 | private String docName; 28 | 29 | /** 30 | * 自定义的名字 31 | */ 32 | private String fileName; 33 | 34 | /** 35 | * 文件路径 36 | */ 37 | private String docUrl; 38 | 39 | /** 40 | * 文件描述 41 | */ 42 | private String description; 43 | 44 | /** 45 | * 目标班级 46 | */ 47 | private String toClassNo; 48 | 49 | /** 50 | * 发布者id 51 | */ 52 | private Integer fromUserId; 53 | 54 | /** 55 | * 发布者名字 56 | */ 57 | private String fromUserName; 58 | 59 | /** 60 | * 来自的用户类型 1:管理员。2:讲师 61 | */ 62 | private Integer fromUserType; 63 | 64 | /** 65 | * 备注 66 | */ 67 | private String remark; 68 | 69 | /** 70 | * 阅读次数 71 | */ 72 | private Long clicks; 73 | 74 | /** 75 | * 有效天数 76 | */ 77 | private Integer expire; 78 | 79 | @TableLogic 80 | private Integer deleted; 81 | 82 | @TableField(fill = FieldFill.INSERT) 83 | private LocalDateTime createTime; 84 | 85 | @TableField(fill = FieldFill.INSERT_UPDATE) 86 | private LocalDateTime updateTime; 87 | 88 | @Override 89 | protected Serializable pkVal() { 90 | return this.id; 91 | } 92 | 93 | 94 | } 95 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/Exercise.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | import java.io.Serializable; 9 | 10 | /** 11 | * @author lequal 12 | * @since 2020-05-21 13 | */ 14 | @TableName("tb_exercise") 15 | @Data 16 | public class Exercise extends Model { 17 | 18 | private static final long serialVersionUID=1L; 19 | 20 | /** 21 | * id 22 | */ 23 | @TableId(value = "id", type = IdType.AUTO) 24 | private Integer id; 25 | 26 | /** 27 | * 题目类别id 28 | */ 29 | private Integer categoryId; 30 | 31 | /** 32 | * 题目所属班级,编号 33 | */ 34 | private String classNo; 35 | 36 | /** 37 | * 题目名称 38 | */ 39 | private String exerciseTitle; 40 | 41 | /** 42 | * 是否多选,默认0单选,,1多选 43 | */ 44 | private Integer multiselect; 45 | 46 | /** 47 | * 选项 48 | */ 49 | private String answer; 50 | 51 | /** 52 | * 选项A的值 53 | */ 54 | private String optionA; 55 | 56 | private String optionB; 57 | 58 | private String optionC; 59 | 60 | private String optionD; 61 | 62 | private String optionE; 63 | 64 | private String optionF; 65 | 66 | /** 67 | * 分值 68 | */ 69 | private Integer fraction; 70 | 71 | @TableLogic 72 | private Integer deleted; 73 | 74 | @TableField(fill = FieldFill.INSERT) 75 | private LocalDateTime createTime; 76 | 77 | @TableField(fill = FieldFill.INSERT_UPDATE) 78 | private LocalDateTime updateTime; 79 | 80 | 81 | 82 | @Override 83 | protected Serializable pkVal() { 84 | return this.id; 85 | } 86 | 87 | } 88 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/ExerciseCategory.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | import java.io.Serializable; 9 | 10 | /** 11 | * @author lequal 12 | * @since 2020-05-21 13 | */ 14 | @TableName("tb_exercise_category") 15 | @Data 16 | public class ExerciseCategory extends Model { 17 | 18 | private static final long serialVersionUID=1L; 19 | 20 | /** 21 | * id 22 | */ 23 | @TableId(value = "id", type = IdType.AUTO) 24 | private Integer id; 25 | 26 | /** 27 | * 题目类别名称 28 | */ 29 | private String categoryName; 30 | 31 | @TableLogic 32 | private Integer deleted; 33 | 34 | @TableField(fill = FieldFill.INSERT) 35 | private LocalDateTime createTime; 36 | 37 | @TableField(fill = FieldFill.INSERT_UPDATE) 38 | private LocalDateTime updateTime; 39 | 40 | @Override 41 | protected Serializable pkVal() { 42 | return this.id; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/GradeInfo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import com.baomidou.mybatisplus.annotation.IdType; 5 | import com.baomidou.mybatisplus.extension.activerecord.Model; 6 | import com.baomidou.mybatisplus.annotation.TableId; 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | import java.io.Serializable; 12 | 13 | /** 14 | *

15 | * 16 | *

17 | * 18 | * @author lequal 19 | * @since 2020-03-20 20 | */ 21 | @TableName("tb_grade_info") 22 | @Data 23 | @AllArgsConstructor 24 | @NoArgsConstructor 25 | public class GradeInfo extends Model { 26 | 27 | private static final long serialVersionUID=1L; 28 | 29 | /** 30 | * id,年级表 31 | */ 32 | @TableId(value = "id", type = IdType.AUTO) 33 | private Integer id; 34 | 35 | /** 36 | * 年级编号 37 | */ 38 | private String gradeNo; 39 | 40 | /** 41 | * 年级名称 42 | */ 43 | private String gradeName; 44 | 45 | 46 | @Override 47 | protected Serializable pkVal() { 48 | return this.id; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/LocationInfo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * 14 | * @author lequal 15 | * @since 2020-03-20 16 | * 位置信息,例如高一的教学楼有哪些 17 | */ 18 | @TableName("tb_location_info") 19 | @Data 20 | @AllArgsConstructor 21 | @NoArgsConstructor 22 | public class LocationInfo extends Model { 23 | 24 | private static final long serialVersionUID=1L; 25 | 26 | /** 27 | * id,位置信息,高一在哪栋楼,高二在哪 28 | */ 29 | @TableId(value = "id", type = IdType.AUTO) 30 | private Integer id; 31 | 32 | /** 33 | * 教学楼编号,放教学楼表中编号 34 | */ 35 | private String teachbuildNo; 36 | 37 | /** 38 | * 年级编号,放年级表中的id 39 | */ 40 | private String gradeNo; 41 | 42 | /** 43 | * 逻辑删除 44 | */ 45 | @TableLogic 46 | private Integer deleted; 47 | 48 | @TableField(fill = FieldFill.INSERT) 49 | private LocalDateTime createTime; 50 | 51 | @TableField(fill = FieldFill.INSERT_UPDATE) 52 | private LocalDateTime updateTime; 53 | 54 | 55 | @Override 56 | protected Serializable pkVal() { 57 | return this.id; 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/OnlineCategory.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-06-04 15 | */ 16 | @TableName("tb_online_category") 17 | @Data 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | public class OnlineCategory extends Model { 21 | 22 | private static final long serialVersionUID=1L; 23 | 24 | /** 25 | * id 26 | */ 27 | @TableId(value = "id", type = IdType.AUTO) 28 | private Integer id; 29 | 30 | /** 31 | * 父类别id,默认为0表示该分类为一级分类 32 | */ 33 | private Integer parentId; 34 | 35 | /** 36 | * 类别编号 37 | */ 38 | private String categoryNo; 39 | 40 | /** 41 | * 网课类别名称 42 | */ 43 | private String categoryName; 44 | 45 | /** 46 | * 优先级 47 | */ 48 | private Integer piority; 49 | 50 | /** 51 | * 备注 52 | */ 53 | private String remark; 54 | 55 | private Integer deleted; 56 | 57 | @TableField(fill = FieldFill.INSERT) 58 | private LocalDateTime createTime; 59 | 60 | @TableField(fill = FieldFill.INSERT_UPDATE) 61 | private LocalDateTime updateTime; 62 | 63 | 64 | @Override 65 | protected Serializable pkVal() { 66 | return this.id; 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/OnlineCourse.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-06-04 15 | */ 16 | @TableName("tb_online_course") 17 | @Data 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | public class OnlineCourse extends Model { 21 | 22 | private static final long serialVersionUID=1L; 23 | 24 | @TableId(value = "id", type = IdType.AUTO) 25 | private Integer id; 26 | 27 | /** 28 | * 网课编号,100000,6位数 29 | */ 30 | private String onlineNo; 31 | 32 | /** 33 | * 网课课程名 34 | */ 35 | private String onlineName; 36 | 37 | /** 38 | * 课程简介 39 | */ 40 | private String description; 41 | 42 | /** 43 | * 封面 44 | */ 45 | private String cover; 46 | 47 | /** 48 | * 网课类型id 49 | */ 50 | private Integer onlineCategoryId; 51 | 52 | /** 53 | * 网课类别名称 54 | */ 55 | private String onlineCategoryName; 56 | 57 | /** 58 | * 优先级 59 | */ 60 | private Integer piority; 61 | 62 | /** 63 | * 发布者类型,1:管理员,2:讲师 64 | */ 65 | private Integer fromUserType; 66 | 67 | /** 68 | * 发布者id 69 | */ 70 | private Integer fromUserId; 71 | 72 | /** 73 | * 发布者名称 74 | */ 75 | private String fromUserName; 76 | 77 | /** 78 | * 点击次数 79 | */ 80 | private Long clicks; 81 | 82 | private Integer deleted; 83 | 84 | @TableField(fill = FieldFill.INSERT) 85 | private LocalDateTime createTime; 86 | 87 | @TableField(fill = FieldFill.INSERT_UPDATE) 88 | private LocalDateTime updateTime; 89 | 90 | 91 | @Override 92 | protected Serializable pkVal() { 93 | return this.id; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/OnlineVideo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-06-04 15 | */ 16 | @TableName("tb_online_video") 17 | @Data 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | public class OnlineVideo extends Model { 21 | 22 | private static final long serialVersionUID=1L; 23 | 24 | @TableId(value = "id", type = IdType.AUTO) 25 | private Integer id; 26 | 27 | /** 28 | * 所属在线课程id 29 | */ 30 | private Integer onlineCourseId; 31 | 32 | /** 33 | * 视频编号 34 | */ 35 | private String videoNo; 36 | 37 | /** 38 | * 视频名称 39 | */ 40 | private String videoName; 41 | 42 | /** 43 | * 视频封面 44 | */ 45 | private String cover; 46 | 47 | /** 48 | * 视频路径 49 | */ 50 | private String videoUrl; 51 | 52 | /** 53 | * 上传用户类型,1管理员,2讲师 54 | */ 55 | private Integer fromUserType; 56 | 57 | /** 58 | * 上传者id 59 | */ 60 | private Integer fromUserId; 61 | 62 | /** 63 | * 上传者名称 64 | */ 65 | private String fromUserName; 66 | 67 | private Integer deleted; 68 | 69 | @TableField(fill = FieldFill.INSERT) 70 | private LocalDateTime createTime; 71 | 72 | @TableField(fill = FieldFill.INSERT_UPDATE) 73 | private LocalDateTime updateTime; 74 | 75 | 76 | @Override 77 | protected Serializable pkVal() { 78 | return this.id; 79 | } 80 | 81 | } 82 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/Student.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-03-13 15 | */ 16 | @TableName("tb_student") 17 | @Data 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class Student extends Model { 21 | 22 | private static final long serialVersionUID=1L; 23 | 24 | /** 25 | * 学生id 26 | */ 27 | @TableId(value = "id", type = IdType.AUTO) 28 | private Integer id; 29 | 30 | /** 31 | * 学号,可以用于登录 32 | */ 33 | private String studentNo; 34 | 35 | /** 36 | * 昵称,可以用于登录 37 | */ 38 | private String username; 39 | 40 | /** 41 | * 密码 42 | */ 43 | private String password; 44 | 45 | /** 46 | * 标识用户类型3 47 | */ 48 | private Integer userType; 49 | 50 | /** 51 | * 真实姓名 52 | */ 53 | private String realname; 54 | 55 | /** 56 | * 年级 57 | */ 58 | private String grade; 59 | 60 | /** 61 | * 所在班级 62 | */ 63 | private String classNo; 64 | 65 | /** 66 | * 年龄 67 | */ 68 | private Integer age; 69 | 70 | /** 71 | * 当前住址 72 | */ 73 | private String address; 74 | 75 | /** 76 | * 联系电话 77 | */ 78 | private String telephone; 79 | 80 | /** 81 | * 邮件地址 82 | */ 83 | private String email; 84 | 85 | /** 86 | * 头像 87 | */ 88 | private String avatar; 89 | 90 | /** 91 | * 签名 92 | */ 93 | private String description; 94 | 95 | /** 96 | * 逻辑删除 97 | */ 98 | @TableLogic 99 | private Integer deleted; 100 | 101 | /** 102 | * 账号状态,0为正常,1为封禁 103 | */ 104 | private Integer status; 105 | 106 | /** 107 | * 创建时间 108 | */ 109 | @TableField(fill = FieldFill.INSERT) 110 | private LocalDateTime createTime; 111 | 112 | /** 113 | * 更新时间 114 | */ 115 | @TableField(fill = FieldFill.INSERT_UPDATE) 116 | private LocalDateTime updateTime; 117 | 118 | @Override 119 | protected Serializable pkVal() { 120 | return this.id; 121 | } 122 | 123 | 124 | } 125 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/StudyLogs.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-06-04 15 | */ 16 | @TableName("tb_study_logs") 17 | @Data 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class StudyLogs extends Model { 21 | 22 | private static final long serialVersionUID=1L; 23 | 24 | /** 25 | * 学生学习记录表 26 | */ 27 | @TableId(value = "id", type = IdType.AUTO) 28 | private Integer id; 29 | 30 | /** 31 | * 学生id 32 | */ 33 | private Integer studentId; 34 | 35 | /** 36 | * 网课id 37 | */ 38 | private Integer onlineCourseId; 39 | 40 | /** 41 | * 网课名称 42 | */ 43 | private String onlineName; 44 | 45 | /** 46 | * 看到哪个视频了 47 | */ 48 | private Integer videoId; 49 | 50 | @TableField(fill = FieldFill.INSERT) 51 | private LocalDateTime createTime; 52 | 53 | @TableField(fill = FieldFill.INSERT_UPDATE) 54 | private LocalDateTime updateTime; 55 | 56 | 57 | @Override 58 | protected Serializable pkVal() { 59 | return this.id; 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/TeachbuildInfo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-03-20 15 | * 教学楼信息 16 | */ 17 | @TableName("tb_teach_build_info") 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | public class TeachbuildInfo extends Model { 22 | 23 | private static final long serialVersionUID=1L; 24 | 25 | /** 26 | * id,教学楼信息表 27 | */ 28 | @TableId(value = "id", type = IdType.AUTO) 29 | private Integer id; 30 | 31 | /** 32 | * 教学楼编号 33 | */ 34 | private String teachBuildNo; 35 | 36 | /** 37 | * 教学楼名称 38 | */ 39 | private String teachBuildName; 40 | 41 | /** 42 | * 教学楼位置 43 | */ 44 | private String teachBuildLocation; 45 | 46 | /** 47 | * 逻辑删除 48 | */ 49 | @TableLogic 50 | private Integer deleted; 51 | 52 | /** 53 | * 创建时间 54 | */ 55 | @TableField(fill = FieldFill.INSERT) 56 | private LocalDateTime createTime; 57 | 58 | /** 59 | * 更新时间 60 | */ 61 | @TableField(fill = FieldFill.INSERT_UPDATE) 62 | private LocalDateTime updateTime; 63 | 64 | 65 | @Override 66 | protected Serializable pkVal() { 67 | return this.id; 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/Teacher.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.*; 4 | import com.baomidou.mybatisplus.extension.activerecord.Model; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.time.LocalDateTime; 10 | import java.io.Serializable; 11 | 12 | /** 13 | *

14 | * 15 | *

16 | * 17 | * @author lequal 18 | * @since 2020-03-13 19 | */ 20 | @TableName("tb_teacher") 21 | @Data 22 | @AllArgsConstructor 23 | @NoArgsConstructor 24 | public class Teacher extends Model { 25 | 26 | private static final long serialVersionUID=1L; 27 | 28 | /** 29 | * id,讲师表 30 | */ 31 | @TableId(value = "id", type = IdType.AUTO) 32 | private Integer id; 33 | 34 | /** 35 | * 教师编号 36 | */ 37 | private String teacherNo; 38 | 39 | /** 40 | * 昵称(用户名) 41 | */ 42 | private String username; 43 | 44 | /** 45 | * 密码 46 | */ 47 | private String password; 48 | 49 | /** 50 | * 真实姓名 51 | */ 52 | private String realname; 53 | 54 | /** 55 | * 标识用户类型2 56 | */ 57 | private Integer userType; 58 | 59 | /** 60 | * 职称 61 | */ 62 | private String jobtitle; 63 | 64 | /** 65 | * 所属年级 66 | */ 67 | private String gradeNo; 68 | 69 | /** 70 | * 证件照(地址) 71 | */ 72 | private String license; 73 | 74 | /** 75 | * 教授科目 76 | */ 77 | private String teach; 78 | 79 | /** 80 | * 年龄 81 | */ 82 | private Integer age; 83 | 84 | /** 85 | * 联系电话 86 | */ 87 | private String telephone; 88 | 89 | /** 90 | * 电子邮件 91 | */ 92 | private String email; 93 | 94 | /** 95 | * 地址 96 | */ 97 | private String address; 98 | 99 | /** 100 | * 头像 101 | */ 102 | private String avatar; 103 | 104 | /** 105 | * 描述(签名) 106 | */ 107 | private String description; 108 | 109 | /** 110 | * 操作权限 111 | */ 112 | private Integer power; 113 | 114 | /** 115 | * 优先级 116 | */ 117 | private Integer piority; 118 | 119 | /** 120 | * 账号状态 121 | */ 122 | private Integer status; 123 | 124 | /** 125 | * 逻辑删除 126 | */ 127 | @TableLogic 128 | private Integer deleted; 129 | 130 | /** 131 | * 创建时间 132 | */ 133 | @TableField(fill = FieldFill.INSERT) 134 | private LocalDateTime createTime; 135 | 136 | /** 137 | * 更新时间 138 | */ 139 | @TableField(fill = FieldFill.INSERT_UPDATE) 140 | private LocalDateTime updateTime; 141 | 142 | @Override 143 | protected Serializable pkVal() { 144 | return this.id; 145 | } 146 | 147 | 148 | } 149 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/ClassAddVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/5/26 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class ClassAddVO { 12 | 13 | // 讲师id 14 | private Integer id; 15 | 16 | private String gradeNo; 17 | 18 | private String classNo; 19 | 20 | private String className; 21 | 22 | private Integer num; 23 | 24 | private String realname; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/ClassTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/4/3 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class ClassTaskDTO { 12 | 13 | /** 14 | * 学期 15 | */ 16 | private String semester; 17 | 18 | /** 19 | * 年级 20 | */ 21 | private String gradeNo; 22 | 23 | /** 24 | * 班级编号 25 | */ 26 | private String classNo; 27 | 28 | /** 29 | * 课程编号 30 | */ 31 | private String courseNo; 32 | 33 | /** 34 | * 课程名称 35 | */ 36 | private String courseName; 37 | 38 | /** 39 | * 讲师编号 40 | */ 41 | private String teacherNo; 42 | 43 | /** 44 | * 讲师名字 45 | */ 46 | private String realname; 47 | 48 | /** 49 | * 课程属性 50 | */ 51 | private String courseAttr; 52 | 53 | /** 54 | * 上课人数 55 | */ 56 | private Integer studentNum; 57 | 58 | /** 59 | * 周学时 60 | */ 61 | private Integer weeksNumber; 62 | 63 | /** 64 | * 周数 65 | */ 66 | private Integer weeksSum; 67 | 68 | /** 69 | * 是否固定上课时间 70 | */ 71 | private String isFix; 72 | 73 | /** 74 | * 固定时间的话时间是什么时候 75 | */ 76 | private String classTime; 77 | } 78 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/ClassroomAddRequest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/3/23 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class ClassroomAddRequest { 12 | 13 | /** 14 | * 教室编号 15 | */ 16 | private String classroomNo; 17 | 18 | /** 19 | * 教室名称 20 | */ 21 | private String classroomName; 22 | 23 | /** 24 | * 所属教学楼 25 | */ 26 | private String teachbuildNo; 27 | 28 | /** 29 | * 教室容量 30 | */ 31 | private Integer capacity; 32 | 33 | 34 | private String remark; 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/ConstantInfo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | /** 4 | * @author: 15760 5 | * @Date: 2020/3/20 6 | * @Descripe: 定义属性,方便切割编码的时候选择 7 | */ 8 | public class ConstantInfo { 9 | 10 | // 是否固定上课时间 1位 11 | public static final String IS_FIX = "isFix"; 12 | 13 | // 年级编号 2位 14 | public static final String GRADE_NO = "grade_no"; 15 | 16 | // 班级编号 位 17 | public static final String CLASS_NO = "class_no"; 18 | 19 | // 教师编号 位 20 | public static final String TEACHER_NO = "teacher_no"; 21 | 22 | // 课程编号 位 23 | public static final String COURSE_NO = "course_no"; 24 | 25 | // 课程属性 1位 26 | public static final String COURSE_ATTR = "courseAttr"; 27 | 28 | // 教室编号6位 29 | public static final String CLASSROOM_NO = "classroom_no"; 30 | 31 | // 上课时间2位 32 | public static final String CLASS_TIME = "class_time"; 33 | 34 | // 开课学期 35 | public static final String SEMESTER = "semester"; 36 | 37 | // 默认课程的编码 38 | public static final String DEFAULT_CLASS_TIME = "00"; 39 | 40 | // 设置各种类型的课程的适应度(码值) 41 | // 语数英 42 | public static final String MAIN_COURSE = "01"; 43 | 44 | // 物理化学生物 政治历史地理 45 | public static final String SECONDARY_COURSE = "02"; 46 | 47 | // 实验课 48 | public static final String EXPERIMENT_COURSE = "03"; 49 | 50 | // 体育课 51 | public static final String PHYSICAL_COURSE = "04"; 52 | 53 | // 音乐课 54 | public static final String MUSIC_COURSE = "05"; 55 | 56 | // 舞蹈课 57 | public static final String DANCE_COURSE = "06"; 58 | 59 | // 信息技术 60 | public static final String TECHNOLOGY_COURSE = "07"; 61 | 62 | // 设置遗传代数 63 | public static final int GENERATION = 50; 64 | 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/CourseInfoAddRequest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | /** 4 | * @author: 15760 5 | * @Date: 2020/4/4 6 | * @Descripe: 7 | */ 8 | public class CourseInfoAddRequest { 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/DocsVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | import java.time.LocalDateTime; 6 | 7 | /** 8 | * @author: 15760 9 | * @Date: 2020/5/27 10 | * @Descripe: 11 | */ 12 | @Data 13 | public class DocsVO { 14 | 15 | /** 16 | * 接收班级 17 | */ 18 | private String toClassNo; 19 | 20 | private String docName; 21 | 22 | private String fileName; 23 | 24 | // 文件所在的路径 25 | private String docUrl; 26 | 27 | /** 28 | * 文件描述 29 | */ 30 | private String description; 31 | 32 | private Integer expire; 33 | 34 | private String fromUserName; 35 | 36 | private Integer fromUserType; 37 | 38 | private Integer fromUserId; 39 | 40 | // 上传时间需要显示在前端 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/ExerciseVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/5/21 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class ExerciseVO { 12 | 13 | private Integer categoryId; 14 | 15 | private String classNo; 16 | 17 | private String exerciseTitle; 18 | 19 | private Integer multiselect; 20 | 21 | private String answer; 22 | 23 | private String optionA; 24 | 25 | private String optionB; 26 | 27 | private String optionC; 28 | 29 | private String optionD; 30 | 31 | private String optionE; 32 | 33 | private String optionF; 34 | 35 | private Integer fraction; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/LocationSetVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/5/20 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class LocationSetVO { 12 | 13 | private String teachBuildNo; 14 | 15 | private String gradeNo; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/OnlineCourseAddVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/6/4 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class OnlineCourseAddVO { 12 | 13 | // 网课编号本地自己生成 14 | // private String onlineNo; 15 | 16 | /** 17 | * 网课名 18 | */ 19 | private String onlineName; 20 | 21 | /** 22 | * 课程简介 23 | */ 24 | private String description; 25 | 26 | /** 27 | * 课程封面 28 | */ 29 | private String cover; 30 | 31 | /** 32 | * 网课类别id 33 | */ 34 | private Integer onlineCategoryId; 35 | 36 | /** 37 | * 网课类别名称 38 | */ 39 | private String onlineCategoryName; 40 | 41 | /** 42 | * 操作的用户类型,1为管理员,2为讲师 43 | */ 44 | private Integer fromUserType; 45 | 46 | /** 47 | * 操作的用户id 48 | */ 49 | private Integer fromUserId; 50 | 51 | /** 52 | * 操作用户名 53 | */ 54 | private String fromUserName; 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/PasswordVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/5/30 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class PasswordVO { 12 | 13 | private Integer id; 14 | 15 | private String oldPass; 16 | 17 | private String newPass; 18 | 19 | private String rePass; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/StudentLoginRequest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/3/14 8 | * @Descripe: 封装学生登录的请求体 9 | */ 10 | @Data 11 | public class StudentLoginRequest { 12 | 13 | private String username; 14 | 15 | private String password; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/StudentRegisterRequest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/3/16 8 | * @Descripe: 封装学生注册的信息 9 | */ 10 | @Data 11 | public class StudentRegisterRequest { 12 | 13 | // 学号由系统给学生生成,学生通过完善个人信息进行填写其它字段 14 | private String studentNo; 15 | 16 | private String username; 17 | 18 | private String password; 19 | 20 | private String realname; 21 | 22 | /** 23 | * 年级 24 | */ 25 | private String grade; 26 | 27 | private String address; 28 | 29 | private String telephone; 30 | 31 | private String email; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/TeachCoursePlan.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/3/21 8 | * @Descripe: 需要排课的上课任务 9 | */ 10 | @Data 11 | public class TeachCoursePlan { 12 | 13 | private Integer id; 14 | 15 | // 班级编号 16 | private String classNo; 17 | 18 | // 课程编号 19 | private String courseNo; 20 | 21 | // 课程名称 22 | private String courseName; 23 | 24 | // 上课的年级 25 | private String gradeNo; 26 | 27 | // 上课的学生人数,到时候需要判断教室容量够不够 28 | private Integer studentnumber; 29 | 30 | // 课程属性,用于设置上课的优先级 31 | private String courseAttr; 32 | 33 | // 课程的学时,为每周节数*持续周数,约定一节课为一个学时 34 | private Integer classHour; 35 | 36 | // 一周上课节数 37 | private Integer weeksTime; 38 | 39 | // 持续多少周 40 | private Integer weeksSum; 41 | 42 | // 上课的学期 43 | private String semester; 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/TeachbuildAddRequest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/3/22 8 | * @Descripe: 9 | */ 10 | @Data 11 | public class TeachbuildAddRequest { 12 | 13 | private String teachBuildNo; 14 | 15 | private String teachBuildName; 16 | 17 | private String teachBuildLocation; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/TeacherAddRequest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/3/16 8 | * @Descripe: 管理员添加讲师功能的封装体 9 | */ 10 | @Data 11 | public class TeacherAddRequest { 12 | 13 | private String teacherNo; 14 | 15 | private String username; 16 | 17 | private String password; 18 | 19 | private String realname; 20 | 21 | private String jobtitle; 22 | 23 | private String teach; 24 | 25 | private String telephone; 26 | 27 | private String email; 28 | 29 | private String address; 30 | 31 | private Integer age; 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/UserInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/6/4 8 | * @Descripe: 添加网课,上传视频时操作用户的信息,类型,id,用户名 9 | */ 10 | @Data 11 | public class UserInfoVO { 12 | 13 | // 课程的id 14 | private Integer courseId; 15 | 16 | private Integer UserType; 17 | 18 | // 操作者的id 19 | private Integer id; 20 | 21 | private String realname; 22 | 23 | // 设置视频的编号,比如3-1 24 | private String videoNo; 25 | 26 | private String videoName; 27 | 28 | private String videoUrl; 29 | 30 | /** 31 | * 视频封面 32 | */ 33 | private String cover; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/request/UserLoginRequest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author: 15760 7 | * @Date: 2020/3/14 8 | * @Descripe: 封装用户(管理员,讲师)登录请求体 9 | */ 10 | @Data 11 | public class UserLoginRequest { 12 | 13 | private String username; 14 | 15 | private String password; 16 | 17 | /** 18 | * 1管理员,2讲师 19 | */ 20 | private Integer type; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/response/ClassInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.response; 2 | 3 | import com.lyk.coursearrange.entity.ClassInfo; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author: 15760 10 | * @Date: 2020/5/19 11 | * @Descripe: 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | public class ClassInfoVO extends ClassInfo { 17 | 18 | // 班主任姓名 19 | private String realname; 20 | 21 | private String gradeName; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/response/CoursePlanVo.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.response; 2 | 3 | import com.lyk.coursearrange.entity.CourseInfo; 4 | import com.lyk.coursearrange.entity.CoursePlan; 5 | import com.lyk.coursearrange.entity.Teacher; 6 | import lombok.Data; 7 | 8 | /** 9 | * @author: 15760 10 | * @Date: 2020/5/3 11 | * @Descripe: 12 | */ 13 | @Data 14 | public class CoursePlanVo extends CoursePlan { 15 | 16 | private Teacher teacher; 17 | 18 | private CourseInfo courseInfo; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/entity/response/LocationVO.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.entity.response; 2 | 3 | import com.lyk.coursearrange.entity.LocationInfo; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author: 15760 8 | * @Date: 2020/5/20 9 | * @Descripe: 10 | */ 11 | @Data 12 | public class LocationVO extends LocationInfo { 13 | 14 | private String teachBuildName; 15 | 16 | private String gradeName; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/AdminMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/ClassInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/ClassTaskMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/ClassroomMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/CourseInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/CoursePlanMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/DocMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/ExerciseCategoryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/ExerciseMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/GradeInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/LocationInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/OnlineCategoryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/OnlineCourseMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/OnlineVideoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/StudentMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/StudyLogsMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/TeachBuildInfoDao.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/mapper/xml/TeacherMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/AdminService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.Admin; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-06 13 | */ 14 | public interface AdminService extends IService { 15 | 16 | Admin adminLogin(String username, String password); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/ClassInfoService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.ClassInfo; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | * 8 | * @author lequal 9 | * @since 2020-03-06 10 | */ 11 | public interface ClassInfoService extends IService { 12 | 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/ClassTaskService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import com.lyk.coursearrange.entity.ClassTask; 5 | import com.baomidou.mybatisplus.extension.service.IService; 6 | import org.apache.ibatis.annotations.Param; 7 | import org.springframework.web.bind.annotation.RequestParam; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | /** 13 | * @author lequal 14 | * @since 2020-04-06 15 | */ 16 | public interface ClassTaskService extends IService { 17 | 18 | // Boolean classScheduling(ClassTask classTask); 19 | ServerResponse classScheduling(@Param("semester") String semester); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/ClassroomService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.Classroom; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-23 13 | */ 14 | public interface ClassroomService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/CourseInfoService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.CourseInfo; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-04-03 13 | */ 14 | public interface CourseInfoService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/CoursePlanService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.CoursePlan; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-04-15 13 | */ 14 | public interface CoursePlanService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/DocService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import com.lyk.coursearrange.entity.Doc; 5 | import com.baomidou.mybatisplus.extension.service.IService; 6 | import com.lyk.coursearrange.entity.request.DocsVO; 7 | import org.springframework.web.multipart.MultipartFile; 8 | 9 | /** 10 | * @author lequal 11 | * @since 2020-05-27 12 | */ 13 | public interface DocService extends IService { 14 | 15 | // 上传文档 16 | ServerResponse uploadDocs(MultipartFile file); 17 | 18 | // 根据id下载文档 19 | ServerResponse downloadDocs(Integer id); 20 | 21 | ServerResponse addDcos(DocsVO docsVO); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/ExerciseCategoryService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.ExerciseCategory; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-05-21 13 | */ 14 | public interface ExerciseCategoryService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/ExerciseService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.Exercise; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-05-21 13 | */ 14 | public interface ExerciseService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/GradeInfoService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.GradeInfo; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-20 13 | */ 14 | public interface GradeInfoService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/LocationInfoService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.LocationInfo; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-20 13 | */ 14 | public interface LocationInfoService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/OSSService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import org.springframework.web.multipart.MultipartFile; 5 | 6 | /** 7 | * @author: 15760 8 | * @Date: 2020/5/21 9 | * @Descripe: 10 | */ 11 | public interface OSSService { 12 | 13 | // 上传头像 14 | ServerResponse uploadAvatar(MultipartFile file, Integer id, Integer type); 15 | 16 | // 上传视频 17 | ServerResponse uploadVideo(MultipartFile file, Integer id, Integer type); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/OnlineCategoryService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.OnlineCategory; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface OnlineCategoryService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/OnlineCourseService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.OnlineCourse; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface OnlineCourseService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/OnlineVideoService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.OnlineVideo; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface OnlineVideoService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/StudentService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.Student; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-13 13 | */ 14 | public interface StudentService extends IService { 15 | 16 | Student studentLogin(String username, String password); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/StudyLogsService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.StudyLogs; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-06-04 13 | */ 14 | public interface StudyLogsService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/TeachbuildInfoService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.TeachbuildInfo; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-20 13 | */ 14 | public interface TeachbuildInfoService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/TeacherService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.entity.Teacher; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author lequal 12 | * @since 2020-03-13 13 | */ 14 | public interface TeacherService extends IService { 15 | 16 | Teacher teacherLogin(String username, String password); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/UploadService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import org.springframework.web.multipart.MultipartFile; 5 | 6 | /** 7 | * @author: 15760 8 | * @Date: 2020/5/13 9 | * @Descripe: 10 | */ 11 | public interface UploadService { 12 | 13 | ServerResponse upload(MultipartFile file); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/AdminServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.lyk.coursearrange.entity.Admin; 5 | import com.lyk.coursearrange.dao.AdminDao; 6 | import com.lyk.coursearrange.service.AdminService; 7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | /** 12 | * @author lequal 13 | * @since 2020-03-06 14 | */ 15 | @Service 16 | public class AdminServiceImpl extends ServiceImpl implements AdminService { 17 | 18 | @Autowired 19 | private AdminDao adminDao; 20 | 21 | @Override 22 | public Admin adminLogin(String username, String password) { 23 | QueryWrapper wrapper = new QueryWrapper<>(); 24 | wrapper.eq("admin_no", username); 25 | wrapper.eq("password", password); 26 | return adminDao.selectOne(wrapper); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/ClassInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.ClassInfo; 4 | import com.lyk.coursearrange.dao.ClassInfoDao; 5 | import com.lyk.coursearrange.service.ClassInfoService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author lequal 11 | * @since 2020-03-06 12 | */ 13 | @Service 14 | public class ClassInfoServiceImpl extends ServiceImpl implements ClassInfoService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/ClassroomServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.Classroom; 4 | import com.lyk.coursearrange.dao.ClassroomDao; 5 | import com.lyk.coursearrange.service.ClassroomService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-03-23 16 | */ 17 | @Service 18 | public class ClassroomServiceImpl extends ServiceImpl implements ClassroomService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/CourseInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.CourseInfo; 4 | import com.lyk.coursearrange.dao.CourseInfoDao; 5 | import com.lyk.coursearrange.service.CourseInfoService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-04-03 16 | */ 17 | @Service 18 | public class CourseInfoServiceImpl extends ServiceImpl implements CourseInfoService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/CoursePlanServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.CoursePlan; 4 | import com.lyk.coursearrange.dao.CoursePlanDao; 5 | import com.lyk.coursearrange.service.CoursePlanService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-04-15 16 | */ 17 | @Service 18 | public class CoursePlanServiceImpl extends ServiceImpl implements CoursePlanService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/DocServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import com.lyk.coursearrange.entity.Doc; 5 | import com.lyk.coursearrange.dao.DocDao; 6 | import com.lyk.coursearrange.entity.request.DocsVO; 7 | import com.lyk.coursearrange.service.DocService; 8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 9 | import com.lyk.coursearrange.util.AliyunUtil; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.stereotype.Service; 12 | import org.springframework.web.multipart.MultipartFile; 13 | 14 | import java.util.Map; 15 | 16 | /** 17 | * @author lequal 18 | * @since 2020-05-27 19 | */ 20 | @Service 21 | public class DocServiceImpl extends ServiceImpl implements DocService { 22 | 23 | @Autowired 24 | private DocService docService; 25 | 26 | @Override 27 | public ServerResponse uploadDocs(MultipartFile file) { 28 | Map map = AliyunUtil.upload(file, null); 29 | System.out.println("docUrl文件路径为" + map.get("url")); 30 | return ServerResponse.ofSuccess(map); 31 | } 32 | 33 | @Override 34 | public ServerResponse downloadDocs(Integer id) { 35 | return null; 36 | } 37 | 38 | @Override 39 | public ServerResponse addDcos(DocsVO d) { 40 | Doc doc = new Doc(); 41 | doc.setDescription(d.getDescription()); 42 | doc.setDocName(d.getDocName()); 43 | doc.setFileName(d.getFileName()); 44 | doc.setDocUrl(d.getDocUrl()); 45 | doc.setExpire(d.getExpire()); 46 | doc.setFromUserId(d.getFromUserId()); 47 | doc.setFromUserName(d.getFromUserName()); 48 | doc.setFromUserType(d.getFromUserType()); 49 | doc.setToClassNo(d.getToClassNo()); 50 | 51 | boolean b = docService.save(doc); 52 | 53 | if (b) { 54 | return ServerResponse.ofSuccess("添加文档成功"); 55 | } 56 | return ServerResponse.ofError("添加文档失败"); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/ExerciseCategoryServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.ExerciseCategory; 4 | import com.lyk.coursearrange.dao.ExerciseCategoryDao; 5 | import com.lyk.coursearrange.service.ExerciseCategoryService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-05-21 16 | */ 17 | @Service 18 | public class ExerciseCategoryServiceImpl extends ServiceImpl implements ExerciseCategoryService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/ExerciseServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.Exercise; 4 | import com.lyk.coursearrange.dao.ExerciseDao; 5 | import com.lyk.coursearrange.service.ExerciseService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-05-21 16 | */ 17 | @Service 18 | public class ExerciseServiceImpl extends ServiceImpl implements ExerciseService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/GradeInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.GradeInfo; 4 | import com.lyk.coursearrange.dao.GradeInfoDao; 5 | import com.lyk.coursearrange.service.GradeInfoService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-03-20 16 | */ 17 | @Service 18 | public class GradeInfoServiceImpl extends ServiceImpl implements GradeInfoService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/LocationInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.LocationInfo; 4 | import com.lyk.coursearrange.dao.LocationInfoDao; 5 | import com.lyk.coursearrange.service.LocationInfoService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-03-20 16 | */ 17 | @Service 18 | public class LocationInfoServiceImpl extends ServiceImpl implements LocationInfoService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/OSSServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.common.ServerResponse; 4 | import com.lyk.coursearrange.service.OSSService; 5 | import com.lyk.coursearrange.util.AliyunUtil; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.web.multipart.MultipartFile; 8 | import java.util.Map; 9 | 10 | /** 11 | * @author: 15760 12 | * @Date: 2020/5/21 13 | * @Descripe: 上传实现类 14 | */ 15 | @Service 16 | public class OSSServiceImpl implements OSSService { 17 | 18 | @Override 19 | public ServerResponse uploadAvatar(MultipartFile file, Integer id, Integer type) { 20 | String directory = "avatar/"; 21 | // 调用上传 22 | Map map = AliyunUtil.upload(file, ""); 23 | return ServerResponse.ofSuccess(map); 24 | } 25 | 26 | @Override 27 | public ServerResponse uploadVideo(MultipartFile file, Integer id, Integer type) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/OnlineCategoryServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.OnlineCategory; 4 | import com.lyk.coursearrange.dao.OnlineCategoryDao; 5 | import com.lyk.coursearrange.service.OnlineCategoryService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-06-04 16 | */ 17 | @Service 18 | public class OnlineCategoryServiceImpl extends ServiceImpl implements OnlineCategoryService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/OnlineCourseServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.OnlineCourse; 4 | import com.lyk.coursearrange.dao.OnlineCourseDao; 5 | import com.lyk.coursearrange.service.OnlineCourseService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-06-04 16 | */ 17 | @Service 18 | public class OnlineCourseServiceImpl extends ServiceImpl implements OnlineCourseService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/OnlineVideoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.OnlineVideo; 4 | import com.lyk.coursearrange.dao.OnlineVideoDao; 5 | import com.lyk.coursearrange.service.OnlineVideoService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-06-04 16 | */ 17 | @Service 18 | public class OnlineVideoServiceImpl extends ServiceImpl implements OnlineVideoService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/StudentServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.lyk.coursearrange.entity.Student; 5 | import com.lyk.coursearrange.dao.StudentDao; 6 | import com.lyk.coursearrange.service.StudentService; 7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | /** 12 | * @author lequal 13 | * @since 2020-03-13 14 | */ 15 | @Service 16 | public class StudentServiceImpl extends ServiceImpl implements StudentService { 17 | 18 | @Autowired 19 | private StudentDao studentDao; 20 | 21 | @Override 22 | public Student studentLogin(String username, String password) { 23 | QueryWrapper wrapper = new QueryWrapper<>(); 24 | wrapper.eq("student_no", username).eq("password", password); 25 | // 查询数据库是否有该学生 26 | return studentDao.selectOne(wrapper); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/StudyLogsServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.StudyLogs; 4 | import com.lyk.coursearrange.dao.StudyLogsDao; 5 | import com.lyk.coursearrange.service.StudyLogsService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-06-04 16 | */ 17 | @Service 18 | public class StudyLogsServiceImpl extends ServiceImpl implements StudyLogsService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/TeachbuildInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.lyk.coursearrange.entity.TeachbuildInfo; 4 | import com.lyk.coursearrange.dao.TeachBuildInfoDao; 5 | import com.lyk.coursearrange.service.TeachbuildInfoService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author lequal 15 | * @since 2020-03-20 16 | */ 17 | @Service 18 | public class TeachbuildInfoServiceImpl extends ServiceImpl implements TeachbuildInfoService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/TeacherServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.lyk.coursearrange.entity.Teacher; 5 | import com.lyk.coursearrange.dao.TeacherDao; 6 | import com.lyk.coursearrange.service.TeacherService; 7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | /** 12 | * @author lequal 13 | * @since 2020-03-13 14 | */ 15 | @Service 16 | public class TeacherServiceImpl extends ServiceImpl implements TeacherService { 17 | 18 | @Autowired 19 | private TeacherDao teacherDao; 20 | 21 | @Override 22 | public Teacher teacherLogin(String username, String password) { 23 | QueryWrapper wrapper = new QueryWrapper(); 24 | wrapper.eq("teacher_no", username); 25 | wrapper.eq("password", password); 26 | return teacherDao.selectOne(wrapper); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/service/impl/TokenService.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import com.auth0.jwt.JWT; 4 | import com.auth0.jwt.algorithms.Algorithm; 5 | import com.lyk.coursearrange.entity.Admin; 6 | import com.lyk.coursearrange.entity.Student; 7 | import com.lyk.coursearrange.entity.Teacher; 8 | import org.springframework.stereotype.Service; 9 | 10 | import java.util.Date; 11 | 12 | /** 13 | * @author: 15760 14 | * @Date: 2020/3/24 15 | * @Descripe: Token下发 16 | */ 17 | 18 | @Service 19 | public class TokenService { 20 | 21 | /** 22 | * 验证学生 23 | * @param student 24 | * @return 25 | */ 26 | public String getToken(Student student) { 27 | Date start = new Date(); 28 | // 一小时有效时间 29 | long currentTime = System.currentTimeMillis() + 60* 60 * 500; 30 | Date end = new Date(currentTime); 31 | String token = ""; 32 | 33 | token = JWT.create().withAudience(student.getId().toString()).withIssuedAt(start).withExpiresAt(end) 34 | .sign(Algorithm.HMAC256(student.getPassword())); 35 | return token; 36 | } 37 | 38 | /** 39 | * 验证管理员 40 | * @param admin 41 | * @return 42 | */ 43 | public String getToken(Admin admin) { 44 | Date start = new Date(); 45 | long currentTime = System.currentTimeMillis() + 60* 60 * 500; 46 | Date end = new Date(currentTime); 47 | String token = ""; 48 | 49 | token = JWT.create().withAudience(admin.getId().toString()).withIssuedAt(start).withExpiresAt(end) 50 | .sign(Algorithm.HMAC256(admin.getPassword())); 51 | return token; 52 | } 53 | 54 | /** 55 | * 验证讲师 56 | * @param teacher 57 | * @return 58 | */ 59 | public String getToken(Teacher teacher) { 60 | Date start = new Date(); 61 | long currentTime = System.currentTimeMillis() + 60* 60 * 500; 62 | Date end = new Date(currentTime); 63 | String token = ""; 64 | 65 | token = JWT.create().withAudience(teacher.getId().toString()).withIssuedAt(start).withExpiresAt(end) 66 | .sign(Algorithm.HMAC256(teacher.getPassword())); 67 | return token; 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/util/AliyunUtil.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.util; 2 | 3 | import com.aliyun.oss.OSS; 4 | import com.aliyun.oss.OSSClientBuilder; 5 | import com.aliyun.oss.model.GetObjectRequest; 6 | import org.springframework.beans.factory.annotation.Value; 7 | import org.springframework.web.multipart.MultipartFile; 8 | 9 | import javax.sound.midi.Soundbank; 10 | import java.io.File; 11 | import java.io.IOException; 12 | import java.io.InputStream; 13 | import java.util.HashMap; 14 | import java.util.Map; 15 | import java.util.UUID; 16 | 17 | /** 18 | * @author: 15760 19 | * @Date: 2020/5/19 20 | * @Descripe: 阿里云OSS工具类 21 | */ 22 | public class AliyunUtil { 23 | 24 | // bucket域名:arrange.oss-cn-shenzhen.aliyuncs.com 25 | // @Value("${aliyun.oss.file.endpoint}") 26 | private static String endpoint = "oss-cn-shenzhen.aliyuncs.com"; 27 | 28 | // @Value("${aliyun.oss.file.accessKeyId}") 29 | private static String accessKeyId = "这里改成你们自己的key"; 30 | 31 | // @Value("${aliyun.oss.file.accessKeySecret}") 32 | private static String accessKeySecret = "这里改成你们自己的密钥"; 33 | 34 | // @Value("${aliyun.oss.file.bucketName}") 35 | private static String bucketName = "arrange"; 36 | 37 | /** 38 | * 文件上传成功返回路径 39 | * @param file 40 | * @param directory 选择需要上传到的目录下面,暂时不用,原本想将用户头像、其他文件上传到不同的目录下面的 41 | * @return 42 | */ 43 | public static Map upload(MultipartFile file, String directory) { 44 | 45 | // 创建OSSClient实例。 46 | OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); 47 | 48 | String url = ""; 49 | try { 50 | // 获取输入流 51 | InputStream inputStream = file.getInputStream(); 52 | String fileName = file.getOriginalFilename(); 53 | //1 在文件名称里面添加随机唯一的值 54 | String uuid = UUID.randomUUID().toString().replaceAll("-", ""); 55 | // 随机id 56 | String newFileName = uuid + fileName; 57 | // String datePath = new DateTime().toString("yyyy/MM/dd"); 58 | //拼接 59 | // 2019/11/12/ewtqr313401.jpg 60 | // fileName = datePath+"/"+fileName; 61 | // 上传 62 | ossClient.putObject(bucketName, fileName, inputStream); 63 | // 关闭OSSClient。 64 | ossClient.shutdown(); 65 | 66 | url = "https://" + bucketName + "." + endpoint + "/" + fileName; 67 | System.out.println("url========" + url); 68 | Map map = new HashMap<>(); 69 | map.put("url", url); 70 | map.put("name", fileName); 71 | return map; 72 | } catch (IOException e) { 73 | e.printStackTrace(); 74 | } 75 | return null; 76 | } 77 | 78 | /** 79 | * 文件下载到本地 80 | */ 81 | public static String download(String fileName) { 82 | System.out.println("1" + fileName); 83 | System.out.println("阿里云开始下载文件到本地"); 84 | String path = "D:\\arrange\\tempfile\\" + fileName; 85 | File file = new File(path); 86 | OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); 87 | 88 | ossClient.getObject(new GetObjectRequest(bucketName, fileName), file); 89 | 90 | ossClient.shutdown(); 91 | return path; 92 | } 93 | 94 | } 95 | -------------------------------------------------------------------------------- /src/main/java/com/lyk/coursearrange/util/TokenUtil.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.util; 2 | 3 | import com.auth0.jwt.JWT; 4 | import org.springframework.web.context.request.RequestContextHolder; 5 | import org.springframework.web.context.request.ServletRequestAttributes; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | 9 | /** 10 | * @author: 15760 11 | * @Date: 2020/3/24 12 | * @Descripe: 13 | */ 14 | public class TokenUtil { 15 | 16 | public static String getTokenUserId() { 17 | String token = getRequest().getHeader("token");// 从 http 请求头中取出 token 18 | String userId = JWT.decode(token).getAudience().get(0); 19 | return userId; 20 | } 21 | 22 | /** 23 | * 获取request 24 | * 25 | * @return 26 | */ 27 | public static HttpServletRequest getRequest() { 28 | ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder 29 | .getRequestAttributes(); 30 | return requestAttributes == null ? null : requestAttributes.getRequest(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/resources/application-dev.yml: -------------------------------------------------------------------------------- 1 | # 数据库连接 2 | spring: 3 | datasource: 4 | url: jdbc:mysql://localhost:3306/db_course_arrangement?characterEncoding=utf-8 5 | type: com.alibaba.druid.pool.DruidDataSource 6 | username: root 7 | password: root 8 | driver-class-name: com.mysql.cj.jdbc.Driver 9 | # 返回json的全局时间格式 10 | jackson: 11 | date-format: yyyy-MM-dd HH:mm:ss 12 | time-zone: GMT+8 13 | # 热部署配置 14 | devtools: 15 | restart: 16 | enable: true 17 | additional-paths: src/main/java 18 | exclude: WEB-INF/** 19 | 20 | #设置文件传输大小限制 21 | servlet: 22 | multipart: 23 | max-file-size: 100MB 24 | max-request-size: 100MB 25 | 26 | 27 | mybatis-plus: 28 | mapper-locations: classpath:/mapper/xml/*Mapper.xml 29 | typeAliasesPackage: com.lyk.coursearrange.entity 30 | configuration: 31 | log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 32 | global-config: 33 | db-config: 34 | logic-delete-value: 1 #删除 35 | logic-not-delete-value: 0 #不删除 36 | 37 | server: 38 | port: 8080 39 | 40 | 41 | # 阿里云OSS 42 | aliyun: 43 | oss: 44 | file: 45 | endpoint: oss-cn-shenzhen.aliyuncs.com 46 | accessKeyId: 你们自己的key 47 | accessKeySecret: 你们自己的密钥 48 | bucketName: arrange -------------------------------------------------------------------------------- /src/main/resources/application-pro.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javashub/CourseArragement/96dd105aadab4abf2bc06d584640af2b175154ae/src/main/resources/application-pro.yml -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: dev -------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, ServerDailyRollingFile, stdout 2 | log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender 3 | log4j.appender.ServerDailyRollingFile.DatePattern=\u2018.\u2018yyyy-MM-dd 4 | log4j.appender.ServerDailyRollingFile.File=logs/notify-subscription.log 5 | log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout 6 | log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n 7 | log4j.appender.ServerDailyRollingFile.Append=true 8 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 9 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 10 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c] %m%n -------------------------------------------------------------------------------- /src/test/java/com/lyk/coursearrange/CoursearrangeApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange; 2 | 3 | 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | import java.util.List; 7 | 8 | 9 | class CoursearrangeApplicationTests { 10 | 11 | // @Autowired 12 | // private StudentDao studentDao; 13 | // 14 | // 15 | // @Test 16 | // void contextLoads() { 17 | // } 18 | // 19 | // @Test 20 | // public void testQueryStudent() { 21 | // List list = studentDao.selectList(null); 22 | // for(Student stu : list) { 23 | // System.out.println(stu); 24 | // } 25 | // } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/test/java/com/lyk/coursearrange/controller/AdminTest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | import com.lyk.coursearrange.dao.AdminDao; 4 | import com.lyk.coursearrange.entity.Admin; 5 | import org.junit.Test; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author: 15760 12 | * @Date: 2020/3/6 13 | * @Descripe: 14 | */ 15 | public class AdminTest { 16 | 17 | @Autowired 18 | private AdminDao adminDao; 19 | 20 | @Test 21 | public void testAdd() { 22 | Admin admin = new Admin(); 23 | admin.setId(1); 24 | admin.setAdminNo("10011"); 25 | admin.setUsername("admin"); 26 | admin.setPassword("123"); 27 | admin.setRealname("梁主任"); 28 | admin.setJobtitle("教务处主任"); 29 | admin.setDescription("认真对待工作"); 30 | admin.setRemark("务实"); 31 | admin.setStatus(0); 32 | admin.setCreateTime(LocalDateTime.now()); 33 | admin.setUpdateTime(LocalDateTime.now()); 34 | adminDao.insert(admin); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/test/java/com/lyk/coursearrange/controller/CourseTest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.controller; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.lyk.coursearrange.dao.ClassTaskDao; 5 | import com.lyk.coursearrange.entity.ClassTask; 6 | import org.junit.jupiter.api.Test; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.boot.test.context.SpringBootTest; 9 | 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author: 15760 15 | * @Date: 2020/4/11 16 | * @Descripe: 17 | */ 18 | 19 | @SpringBootTest 20 | public class CourseTest { 21 | 22 | @Autowired 23 | private ClassTaskDao classTaskDao; 24 | 25 | @Test 26 | public void test() { 27 | QueryWrapper wrapper = new QueryWrapper().eq("semester", "2019-2020-1"); 28 | List classTaskList = classTaskDao.selectList(wrapper); 29 | // 测试输出 30 | for (ClassTask c : classTaskList) { 31 | System.out.println(c); 32 | } 33 | } 34 | 35 | @Test 36 | public void test2() { 37 | 38 | List list = classTaskDao.selectClassNo(); 39 | // 测试输出 40 | for (String c : list) { 41 | System.out.println(c); 42 | } 43 | } 44 | 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/test/java/com/lyk/coursearrange/controller/TeacherTest.java: -------------------------------------------------------------------------------- 1 | //package com.lyk.coursearrange.controller; 2 | // 3 | //import org.junit.Test; 4 | //import org.junit.runner.RunWith; 5 | //import org.springframework.beans.factory.annotation.Autowired; 6 | //import org.springframework.boot.test.context.SpringBootTest; 7 | //import org.springframework.test.context.junit4.SpringRunner; 8 | // 9 | //import javax.annotation.PostConstruct; 10 | //import java.time.LocalDateTime; 11 | // 12 | ///** 13 | // * @author: 15760 14 | // * @Date: 2020/3/6 15 | // * @Descripe: 教师类测试 16 | // */ 17 | // 18 | //@SpringBootTest 19 | //@RunWith(SpringRunner.class) 20 | //public class testTeacher { 21 | // 22 | // @Autowired 23 | // private TeacherDao teacherDao; 24 | // 25 | // @Test 26 | // @PostConstruct 27 | // public void testAdd() { 28 | // Teacher teacher = new Teacher(); 29 | // teacher.setId(4); 30 | // teacher.setTeacherNo("10012"); 31 | // teacher.setUsername("msLi"); 32 | // teacher.setPassword("123"); 33 | // teacher.setRealname("李雪雪"); 34 | // teacher.setJobtitle("高级讲师"); 35 | // teacher.setTeach("语文"); 36 | // teacher.setAge(29); 37 | // teacher.setTelephone("18978899898"); 38 | // teacher.setAddress("广西桂林市桂林电子科技大学"); 39 | // teacher.setDescription("做人民的好教师"); 40 | // teacher.setPower(1); 41 | // teacher.setPiority(2); 42 | // teacher.setStatus(0); 43 | // teacher.setCreateTime(LocalDateTime.now()); 44 | // teacher.setUpdateTime(LocalDateTime.now()); 45 | // teacherDao.insert(teacher); 46 | // } 47 | //} 48 | -------------------------------------------------------------------------------- /src/test/java/com/lyk/coursearrange/service/impl/ExcelTest.java: -------------------------------------------------------------------------------- 1 | package com.lyk.coursearrange.service.impl; 2 | 3 | import cn.afterturn.easypoi.excel.ExcelExportUtil; 4 | import cn.afterturn.easypoi.excel.entity.ExportParams; 5 | import com.lyk.coursearrange.entity.ClassTask; 6 | import org.apache.poi.ss.usermodel.Workbook; 7 | import org.junit.Test; 8 | import org.springframework.boot.test.context.SpringBootTest; 9 | import java.io.FileOutputStream; 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | /** 14 | * @author: 15760 15 | * @Date: 2020/5/16 16 | * @Descripe: 17 | */ 18 | @SpringBootTest 19 | //@RunWith(SpringRunner.class) 20 | public class ExcelTest { 21 | 22 | @Test 23 | public void test1() { 24 | ExportParams params = new ExportParams(); 25 | params.setTitle("课程任务导入模板(请严格对照数据库信息填写)"); 26 | params.setSheetName("课程任务模板"); 27 | List list = new ArrayList(); 28 | // list.add(new ClassTask("2019-2020-1", "01", "20200103", "1000008", "高二数学", "10001", "梁老师", "01", 39, 4, 12, "2", "")); 29 | // File savefile = new File("D:/excel/"); 30 | // if (!savefile.exists()) { 31 | // savefile.mkdirs(); 32 | // } 33 | Workbook workbook = ExcelExportUtil.exportExcel(params, ClassTask.class, list); 34 | try { 35 | FileOutputStream fos = new FileOutputStream("D:/excel/课程任务导入模板.xls"); 36 | workbook.write(fos); 37 | } catch (Exception e) { 38 | e.printStackTrace(); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /环境说明.txt: -------------------------------------------------------------------------------- 1 | vue:4.2.2 2 | npm:6.13.4 3 | node:12.14.0 4 | jdk:1.8 5 | MySQL:8.x 6 | maven:3.6.1 7 | 8 | 前端项目在:CourseArrange\UI\coursearrange 9 | 10 | 打开项目进入前端项目CourseArrange\UI\coursearrange下执行“npm install”安装前端框架所需依赖 --------------------------------------------------------------------------------