# 教学资料档案管理系统 **Repository Path**: mxnnnn/sxit-dfdf ## Basic Information - **Project Name**: 教学资料档案管理系统 - **Description**: 教学资料档案管理系统 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2022-07-25 - **Last Updated**: 2022-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 教学资料档案管理系统的设计与实现 by: 橙子高 🍊 联系方式:QQ:330409764 邮箱330409764@qq.com(推荐) 禁止商用哦亲,因为写的全是 bug,怕你服务器直接爆炸 后期写的过程中,前期很多的东西都没做出来还是很可惜的 # 一、技术选型 ## 1. 后端 构建 JAVA 体系的后端系统,围绕以安全,可靠,高速,健壮,易于扩展为目标的方向进行开发,在阿里等开源库的基础上实现提供教学资料档案的管理系统的后端接口的微服务架构系统。 **因为模块业务太少,放弃微服务架构,更专注业务的开发** | 使用的组件 | 目的用途 | 文档地址 | | :----------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------: | | **Spring Cloud Alibaba Dubbo**(放弃) | 简化云原生开发成本,提高 R&D 性能,并提高应用程序性能 | https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_dubbo | | **Spring Cloud Alibaba Nacos Discovery**(放弃) | 借助 Spring Cloud 阿里巴巴 Nacos Discovery,可以基于 Spring Cloud 的编程模型快速访问 Nacos 服务注册功能。 | https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_nacos_discovery | | **SpringBoot DevTools** | 提供快速的应用程序重启、重启、配置,以增强开发体验。 | | | **Lombok** | 有助于减少样板代码的 Java 注释库。 | | | **SpringWeb** | 使用 Spring MVC 构建 Web(包括 RESTful)应用程序。使用 Apache Tomcat 作为默认的嵌入式容器。 | | | **Spring Configuration Processor** | 生成元数据供开发人员在使用自定义配置键如,application.properties / .yml 文件)时提供上下文帮助和"代码补全"。 | | | **MyBatis-Plus** | [MyBatis-Plus (opens new window)](https://github.com/baomidou/mybatis-plus)(简称 MP)是一个 [MyBatis (opens new window)](https://www.mybatis.org/mybatis-3/)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 | https://baomidou.com/pages/24112f/ | | **Nacos**(放弃) | Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 | https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html | | **GetWay**(放弃) | Spring Cloud GateWay 是 Spring Cloud 的⼀个全新项⽬,⽬标是取代 Netflflix Zuul,它基于 Spring5.0+SpringBoot2.0+WebFlux(基于高性能的 Reactor 模式响应式通信框架 Netty,异步非阻塞模型)等技术开发,性能高于 Zuul,官方测试,GateWay 是 Zuul 的 1.6 倍,旨在为微服务架构提供⼀种简单有效的统⼀的 API 路由管理方式。 | | | **Swagger** | 利用 Swagger 开源和专业工具集,简化用户、团队和企业的应用编程接口开发。了解斯 Swagger 如何帮助您大规模设计和记录您的应用编程接口。 | https://swagger.io/ | | **SpringDoc** | `springdoc-openapi`java 库有助于使用 Spring Boot 项目自动生成 API 文档。 `springdoc-openapi`通过在运行时检查应用程序以根据弹簧配置、类结构和各种注释来推断 API 语义。 | https://springdoc.org/ | | **hutool** | Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。 | https://hutool.cn/ | | **easyexcel** | EasyExcel 是一个基于 Java 的简单、省内存的读写 Excel 的开源项目。在尽可能节约内存的情况下支持读写百 M 的 Excel。 | https://www.yuque.com/easyexcel/doc/easyexcel | | **mybatis-plus-generator** | MyBatis-plus 的代码生成器 | https://baomidou.com/pages/779a6e/#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8 | | **EASY_EXCEL** | alibaba 的 excel 处理文件 | | | **OSS** | alibaba 的文件管理系统 | | | **email** | spring-boot-start-email | | | | | | | | | | ## 2. 前端 项目采用阿里金服的中后台的解决方案,围绕[Ant Design Pro](https://pro.ant.design/zh-CN)进行开发 | **组件** | **用途** | **文档** | | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- | | **react** | React 使创建交互式 UI 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并渲染合适的组件。 | https://react.docschina.org/ | | **UmiJS** | Umi,中文可发音为**乌米**,是可扩展的企业级前端应用框架。Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。 | https://umijs.org/zh-CN/docs | | **dva** | dva 首先是一个基于 [redux](https://github.com/reduxjs/redux) 和 [redux-saga](https://github.com/redux-saga/redux-saga) 的数据流方案,然后为了简化开发体验,dva 还额外内置了 [react-router](https://github.com/ReactTraining/react-router) 和 [fetch](https://github.com/github/fetch),所以也可以理解为一个轻量级的应用框架 | https://dvajs.com/guide/ | | **Ant Design Pro** | Ant Design Pro 是基于 Ant Design 和 umi 的封装的一整套企业级中后台前端/设计解决方案,致力于在设计规范和基础组件的基础上,继续向上构建,提炼出典型模板/业务组件/配套设计资源,进一步提升企业级中后台产品设计研发过程中的『用户』和『设计者』的体验。随着『设计者』的不断反馈,我们将持续迭代,逐步沉淀和总结出更多设计模式和相应的代码实现,阐述中后台产品模板/组件/业务场景的最佳实践,也十分期待你的参与和共建。 | https://pro.ant.design/zh-CN/docs/getting-started | | **ProComponents** | | | | **dayjs** | ay.js 是一个极简的*JavaScript*库,可以为现代浏览器解析、验证、操作和显示日期和时间 | https://dayjs.fenxianglu.cn/ | | **antv** | AntV 是一个数据可视化项目,也是一个团队,蚂蚁金服数据可视化团队,一群有爱有梦的人,怀揣"让人们在数据世界里获得视觉化思考能力"的梦想前行, 希望成就智能时代全球领先的数据可视化解决方案,满足与日俱增的数据洞察需求。 | | | **G2Plot** | 开箱即用、易于配置、极致体验的通用图表库。 | https://g2plot.antv.vision/zh/ | | **nodejs** | Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时 | http://nodejs.cn/ | | **pdfjs express** | 处理 pdf 文件预览 | | | **mammoth** | 预处理 docx 文件预览 | | | **ant-design-landing** | 首页模板集 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 剩下的忘了还有啥了 ## 3. 数据库 ### 1. 关系型数据库 #### Mysql ### 2. 非关系型数据库 #### Redis ## 4. Maven ## 5. 插件库 ### lomock ## 6. 软件 ### 前端 编码工具 Visual Studio Code ### 后端 编码工具 **IntelliJ IDEA 2021.3** 服务器 ssh 连接 **finalShell** 数据库连接 **Navicat Premium 15** redis 连接 **Another Redis Desktop Manager** ### 其他 思维导图 **知犀** 文档编写 **Typora** 接口文档 **swagger | showdoc** # 二、模块介绍与端口设计 请参照 springdoc 的接口文件 ``` http://localhost:8080/swagger-ui/index.html?configUrl=/doc-api.html/swagger-config ``` ![image-20220326202745715](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326202745715.png) # 三、数据库设计 ​ 数据库设计采用渐进式开发的方式,**以 MySql 为核心数据库**,采用云原生数据库 **TDSQL-C**(Cloud Native Database TDSQL-C,TDSQL-C)进行开发,是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL(TDSQL-C MySQL 版)和 PostgreSQL(TDSQL-C PostgreSQL 版),实现超百万级 QPS 的高吞吐,128TB 海量分布式智能存储,保障数据安全可靠。 jdbc 层采用 mybatis 的国人封装的**mybatis-plus**,好用~😀 数据库采用 mysql8 的部分语法进行编写,如 json 类型,ASE 加密解密等 ## 1. 数据字典 数据字典版本 v 1.3 不全 版本记录 v1.1 修改了小部门表的数据 v1.2 增加了部分业务表 v1.3 又增加了 基础表的部分字段,使表之前的联系更加简单,高效 #### 1.1 tdf_user_db ##### tb_user 用户表 ```sql CREATE TABLE `tdf_user_db`.`Untitled` ( `id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'te', `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号', `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '昵称 这里指代真实的姓名', `sex` enum('男','女','未知') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别 1 男 2女 3 未知', `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱', `statu` int(1) NOT NULL COMMENT '用户的状态 1 可用 0 不可用 2已经毕业 3 退学', `root` tinyint(1) NOT NULL COMMENT '是否是超级管理员 1是 0不是', `create_time` datetime(0) NOT NULL COMMENT '创建用户时间', `update_time` datetime(0) NOT NULL COMMENT '更新用户信息时间', `dept_id` int(11) NULL DEFAULT NULL COMMENT '系别 或者部门id 1:1', `role_id` int(10) NOT NULL COMMENT '角色 比如 [1,0]的样式 一个用户可以对应多个角色 一个角色可以对应多个用户', `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码', `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '账户', `portrait` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像', `num` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学号', `profession_id` int(11) NULL DEFAULT NULL COMMENT '专业名称', `classes_id` int(11) NULL DEFAULT NULL COMMENT '班级编号', PRIMARY KEY (`id`) USING BTREE, INDEX `dept`(`dept_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic; ``` ![image-20220219205856206](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219205856206.png) ##### tb_face_data 脸部数据 ```sql CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(128) NOT NULL COMMENT '脸部数据Id', `user_id` int(128) NULL DEFAULT NULL COMMENT '用户id', `face_data` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '百度人脸识别代码', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ``` ![image-20220205110728147](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220205110728147.png) ##### tb_module 模块表 ```sql CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(10) NOT NULL COMMENT '模块表主键', `module_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '模块编号', `module_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '模块名称', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ``` ![image-20220205111105762](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220205111105762.png) ##### tb_role 角色表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键', `role_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称', `permissions` json NOT NULL COMMENT '权限集合', `role_desc` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '描述', `default_permissions` json NULL COMMENT '系统角色内置权限', `systemic` tinyint(1) NULL DEFAULT 0 COMMENT '是否为系统内置角色', `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `unq_role_name`(`role_name`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic; ``` ![image-20220219205945037](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219205945037.png) ##### tb_dept 系部表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '系别', `dept_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '系别名称', `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系别表' ROW_FORMAT = Dynamic; ``` ![image-20220219210028033](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219210028033.png) ##### tb_action 行为表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(11) NOT NULL COMMENT '主键', `action_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '行为代号', `action_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '行为名称', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '行为表' ROW_FORMAT = Dynamic; ``` ![image-20220205113835506](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220205113835506.png) ##### tb_classes 班级表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `class_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '班级名称', `class_year` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '班级对应的年纪 如18级', `dept_id` int(11) NULL DEFAULT NULL COMMENT '所属系部', `professional_id` int(11) NULL DEFAULT NULL COMMENT '所属专业', `user_list` json NULL COMMENT '包括的成员', `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', `class_statu` int(255) NULL DEFAULT NULL COMMENT '班级状态 2. 毕业班级 1 在校班级 0 其他', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ``` ![image-20220219210109644](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219210109644.png) ##### tb_condition 状态表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(11) NOT NULL COMMENT '主键', `statu` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ``` ![image-20220219210226204](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219210226204.png) ##### tb_course 课程表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `course_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程名称', `course_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程代号', `profession_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所属专业', `teach_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责的老师', `classes_id` json NULL COMMENT '所属的班级', `course_statu` int(11) NULL DEFAULT NULL COMMENT '课程状态 1. 正常进行 2 节课 3 其他 0 全部', `dept_id` int(11) NULL DEFAULT NULL COMMENT '所属系部', `course_grade` int(255) NULL DEFAULT NULL COMMENT '年纪', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1489055747 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ``` ![image-20220219210337712](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219210337712.png) ##### tb_permission 权限表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `permission_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限', `module_id` int(10) UNSIGNED NULL DEFAULT NULL COMMENT '模块ID', `action_id` int(10) UNSIGNED NULL DEFAULT NULL COMMENT '行为ID', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `unq_permission`(`permission_name`) USING BTREE, UNIQUE INDEX `unq_complex`(`module_id`, `action_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 66 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ``` ![image-20220219210357201](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219210357201.png) ##### tb_professional 系部表 ``` CREATE TABLE `tdf_user_db`.`Untitled` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `professional_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专业名称', `professional_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专业编号', `professional_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专业描述', `dept_id` int(11) NULL DEFAULT NULL COMMENT '所属系部', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '主键' ROW_FORMAT = Dynamic; ``` ![image-20220219210848317](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220219210848317.png) # 四、笔记 ## 1. @NotNull、@NotEmpty、@NotBlank ![image-20220205215750587](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220205215750587.png) ## 2. 路径 一个 3 级标题 是一个 bucker 一个四级标题是路径的 path 的 parent 五级标题同理 ### 教学类 #### 综合类 jx01 #### 学科及实验室建设 jx02 #### 招生 jx03 #### 学籍管理 jx04 #### 毕业生 jx05 #### 教材 jx06 #### 教学运行 jx 07 #### 教资建设 jx 08 ### 科研类 #### 综合 ky01 #### 科研阶段 ky02 ##### ky02 -1 准备阶段 ##### ky02 -2 试验阶段 ##### ky02 -3 总结阶段 ##### ky02 -4 申报奖励阶段 ##### ky02-5 推广阶段 ### 其他 # 五、运行截图 ![image-20220326202907034](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326202907034.png) ![image-20220326202918690](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326202918690.png) ![image-20220326202933211](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326202933211.png) ![image-20220326202959169](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326202959169.png) ![image-20220326203011870](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203011870.png) ![image-20220326203039633](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203039633.png) ![image-20220326203057037](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203057037.png) ![image-20220326203109166](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203109166.png) ![image-20220326203121089](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203121089.png) ![image-20220326203134141](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203134141.png) ![image-20220326203148374](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203148374.png) ![image-20220326203210585](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203210585.png) ![image-20220326203227626](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203227626.png) ![image-20220326203248142](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203248142.png) ![image-20220326203323342](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203323342.png) ![image-20220326203333175](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203333175.png) ![image-20220326203351674](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203351674.png) ![image-20220326203402585](https://sxit-gc.oss-cn-beijing.aliyuncs.com/tdf-bms-file/image-20220326203402585.png) # 零、开发日志 ## 2020-2-3 😀 今天开始搭建项目完成毕业设计,小小的本科生涯到此就结束了,前途尚且光明(这也是最后一个项目了,毕业了去银行当小柜员哈哈),但也要踏踏实实的珍惜眼前的美好生活~ 1. 开始写文档,以免以后忘了哈哈 2. 确定技术选型,终于要实践一把了,心里有点慌 3. 发现很多东西,在学习的时候,老师都是提前做好的,自己也没有深入研究,比如数据库设计,接口设计 4. 慢慢来,争取 2 个月搞定这个小小的毕业设计:zap: 5. 自己的野心很大,哈哈 6. 设计了一个数据库表 tb_user 哈哈 7. 微服务从哪里下手呢,明天的思路 先搞一些工具类,然后 注册和发现中心,网关,熔断那些以后在搞,然后用户的增删改查,看看环境可以用嘛,后天整合 spring 安全框架那些 /(ㄒ o ㄒ)/~~ ## 2020-2-4 开始今天的任务,大概就是完成用户的增删改查,涉及到模块的增删改查,整合 swagger 或者 springdoc,权限框架变成成 Sutoken,嘻嘻,确实 springSecutriy 有点求奶奶告姥姥/(ㄒ o ㄒ)/~~,有思考了一下具体的细节,然后还是没有很好的办法,走一步看一步吧:zap:。 1. **整合 nacos1.3.2,**想整合 nacos2 但是没有~因为还要翻墙下载 2. 看了会北京冬奥会~真好 😊 3. 继续**完成了 Dubbo 的一些配置** 4. **完成了 GetWay 微服务的搭建**,嘿嘿~实践和理论还是有差距的:recycle: ## 2020-2-5 立春的第二天,昨天睡得有点晚~😴 今天一大早写一会,下午改了改 Bug 哎~ 1. 完善用户模块的数据设计 💪 2. **通过 mybatis-plus 的代码生成器生成整体的基础代码** 3. 整合 SpingDoc 有点问题,努力修改~ 新建了一个文件模块整合 springDoc 的时候没问题但是在用户模块就有问题~ 4. 重构用户模块/(ㄒ o ㄒ)/~~ 不重构了~ 被两个注解弄的@EnableWebMvc @ServletComponentScan 气死啦 5. 下午写了会对象的毕业设计 😀 开始自己的了,先去修改 tb_role 的信息, 6. 修改了 entity 层的 springDoc 的注释 7. 突然卡壳了,不知道写啥好了~哭 去写个登录玩玩 8. 完成了登录的部分功能,睡觉~ ## 2020-2-6 继续完成登录模块,今天的任务是完成权限验证模块,明天的目标是完成单点登录模块 1. 优化 dao 层返回类型 ,采用 bo 的形式进行返回类型的同一处理 2. 完成登录和退出模块的后端代码,继续去完善其他模块 💪 3. Satoken 集成到 redis 环境中 4. 完成**单点登录 SSO 模块**的开发,开心呀 😊Satoken yyds 下一步完成前后端分离的配置 我前端还没写/(ㄒ o ㄒ)/~~ 5. 想**重构代码**放弃微服务架构~哭,单纯的是能力达不到,架构问题一大堆导致业务代码一致迟迟不写、 6. 重构等以后有能力了再写这个东西,有的东西还是不能很好 i 的理解,**这个小项目用微服务有点呆** 7. **重构!!! /(ㄒ o ㄒ)/~~** 8. 改造完成,开始写点前端,前端用 ant-desgin-pro 使用 react 进行开发,开发前端的电脑重做系统了,搁浅一下 9. **整合 mybatis-plus 分页插件以及 XSS 防御配置** 10. 在 tb_user 里面添加 portrait 头像属性,完成一些用户信息查看的功能,以及批量删除功能,并且配置了权限注解 ## 2020-2-7 搭建好前端模块,前端采用 ant-design-pro 作为前端页面的解决方案,其作也为阿里力推的前端中后台解决方案,第一次用确实有点满 ,但是确实方便啊 1. 配置好前端路由,搭建好了用户管理页面的雏形,明天继续完善 1. 更改数据库 tb_user 表的设计增加 num 学号字段 1. 有朋自远方来,不宜乐乎 ## 2022-2-8 继续今天工作,主要任务是完善用户管理模块的前后端代码 1. 进一步优化了用户管理的查询功能,修改了 Bug 2. 初步完成用户的新增的前端功能,明天完成后端接口的开发 3. 在开发过程中发现并完善了数据中对需求的完善 4. 昨天睡得不好,今天有点累~ 5. 讲 satoken 存储机制整合到了 redis 中,打算等前后联合模块开发完了进一步去完成权限校验的功能 6. 为新增用户添加了对应的正则匹配 ## 2022-2-9 今天状态,早上给用户管理表添加了所在专业选项以及卡片的水印功能。喝了点咖啡,心慌的不行不行的~ 增删改查了 3 天~菜死了,一边改一遍写,写日志的时间越来越少了 1. 完成**用户的添加功能** 1. 完成了**用户的删除功能** 1. 完成了**用户的修改功能** 1. 去完成系别模块,加油~ 1. 补昨天的开发日志,完成了系部模块的开发,吼吼~干到 2 点半,感觉比用户模块要快的多 ## 2022-2-10 完成专业 和 课程模块的开发,课程模块的开发,大致是 1. 专业专业, 一个专业只对一个系部 2. 课程与专业为 n:m 因为包括基础课程在内 3. 课程与班级为 n:m 4. 课程 班级 授课教师为 1:1:1 ## 2022-2-11 现在是 12 号了我还在搞代码,这几天也没有写文档/(ㄒ o ㄒ)/~~,主要原因是心态爆炸,但是项目进度也还可以,而且很神奇,也没有用到啥新的组件,最近完成了 1. 专业管理模块的全部内容 2. 前端系统的登录认证~没错 就个登录写了好久 3. 修改了前端系统原有的样式,修改了系统的显示内容,吐槽一下有的内容太难找了,有的内容又不美观,就这还有东西没改就是 loading 页面的那个 log 4. 今天也就是我写文档的现在,晚上 0:07 分我构思好了权限的具体落实方案,我始终认为,**权限管理的健全是系统文件的基石**,加油继续干吧, 5. 权限模块竟然用到了 4 个表,**头发呢?代码里面呢** ## 2022-2-12 这几天都是第二天补开发记录,昨天干了呢 1. 做完了**角色与权限管理模块的初步架构** 2. 打算整体做完之后再加对**前端模块 以及模块内按钮的操作权限认证** 3. 主要就是上面了,昨晚很感觉咸鱼上的大佬帮我改 bug 也没收我钱~哈哈谢谢 4. **开始新的一天的编程吧** ## 2022-2-18 啊,忙了几天,没时间写了~哭 我记得最后完成了**班级管理的模块**,下一步完成的应该是课程模块的编写、 感觉到了陌生~😔 1. 完成了 **课程模块的基本开发** 明天继续深入 2. 记得明天完成 **班级管理的那个的 avater** ## 2022-2-19 完成了昨天剩下的内容 ,今天剩下一个**课程的详情页面没有写**,决定等完成核心功能后再抽数据填写那个 1. 当时的基本构想是教师通过课程去发布任务,然后 本系统的核心模块也就是教学资料的管理 由此处展开但是吧 2. 我发现**产生了需求蔓延**,我决定先完成自己的教学资料的管理模块,生活的模块在此基础上完成 3. 刚去网上看了下发现自己最初的构想和他们差不多,自己又整理了一下,哈哈 4. 今天剩下的任务 ,完善下文档,明天写对象的毕设~ 今天把前几天拉下的文档写一些 5. 完善了技术选型模块,与数据字典模块 吼吼 继续去写 思维导图,然后有时间的话 完善 前后端权限模块的装配 ## 2022-2-23 今天 考研查分 ,好紧张,代码又三天没动了 哈哈,对象的毕设算是完成了 95%了 今天的任务是: 1. 优化前端 uni-request 请求,增加全局路径访问控制变量 2. 实现前端的权限控制 3. 实现文件上传的工具类 1. 能够完成对数据的储存,并记录数据的存储人员信息等 2. 记录数据的存储位置以及文件夹信息 ## 2022-2-26 开学第一天,我被学校放在外面隔离了~呜呜 之前 2-23 的任务没有完成 1,2,3 还差点意思,今天看看能写完吗,酒店有点热~ ## 2022-2-27 又是一天昨天困得也没写多少 这进度哎,今天把后端文件管理写完把 ## 2022-3-6 隔离结束了几天了 ,已经开学了,这几天在疯狂的写 文件上床模块,快快慢慢写了一个星期,真的好复杂呀~这是我写过最复杂的文件上传系统,可能还有更复杂的,怎得不知道自己怎么能一天写 3 次递归的,辣么难 。 1. 递归实现 文件列表查看,点击文件夹 会查看里面的文件信息 2. 文件信息的展示,搜索,删除,下载,预览等, 3. 预览采用的 pdf.js express 还有猛犸象 吼吼,现在只支持 pdf docx 还有 图片预览呢 4. 文件同的跨域设计,在创建筒子的时候创建跨域 这个模块是写的时间最长的~也是废了老劲了。😀 照着这个进度还得写一个月,但是我打算半个月搞定 ## 2022-3-26 整整 20 天呀,终于快写完了,写到最后都成了体力活了,但是总感觉页面还是感觉很多以前丢掉的东西又拾取了回来。 最后花一个小时总结一下吧