# 校园思政新闻平台 > 基于Spring Boot 3.x + MyBatis Plus + MySQL的校园思政学习管理系统 ## 📖 项目简介 校园思政新闻平台是一个集资源管理、课程学习、任务管理、智能问答于一体的综合性思政学习平台,支持多部门、多角色的细粒度权限控制。 ## ✨ 核心功能 ### 🔐 基础模块 - **用户管理**: 用户信息、登录认证、权限管理 - **组织管理**: 部门层级、角色分配、权限配置 - **菜单管理**: 动态菜单、权限关联 ### 📰 资源模块 - **资源管理**: 新闻文章发布、编辑、分类 - **Banner管理**: 轮播图配置、排序、跳转链接 - **资源推荐**: TOP资源配置、排序调整 - **标签管理**: 标签创建、资源标签关联 - **数据采集**: 自动采集配置、采集日志 ### 🎓 课程模块 - **课程管理**: 课程创建、编辑、状态管理 - **章节管理**: 课程章节、内容编辑、视频上传 - **权限控制**: 基于部门/角色的课程访问权限 ### 📚 学习模块 - **任务管理**: 学习任务创建、人员分配、进度跟踪 - **学习记录**: 详细的学习行为记录 - **学习统计**: 多维度学习数据统计分析 ### 👤 个人中心 - **我的收藏**: 资源/课程收藏管理 - **成就系统**: 学习成就、勋章、等级 - **积分系统**: 积分获取、消费记录 - **学习记录**: 个人学习数据可视化 ### 🤖 智能体 - **AI对话**: 基于知识库的智能问答 - **知识库**: 知识库管理、内容维护 - **文件问答**: 上传文件进行智能解读 - **对话历史**: 历史对话记录管理 ## 🏗️ 技术架构 ### 后端技术栈 - **框架**: Spring Boot 3.5.6 - **微服务**: Spring Cloud 2025.0.0 - **ORM**: MyBatis Plus 3.5.14 - **数据库**: MySQL 8.0+ - **缓存**: Redis 6.0+ (可选) - **认证**: JWT - **日志**: Log4j2 ### 前端技术栈 (规划中) - Vue 3 - Element Plus - Axios - Echarts ## 📦 项目结构 ``` school-news/ ├── admin/ # 管理后台入口 (8080) ├── api/ # API接口定义 │ ├── api-all/ # 全部API聚合 │ ├── api-auth/ # 认证API │ ├── api-system/ # 系统管理API │ ├── api-course/ # 课程API 🆕 │ ├── api-learning/ # 学习API 🆕 │ ├── api-usercenter/ # 个人中心API 🆕 │ └── api-ai/ # 智能体API 🆕 ├── auth/ # 认证服务 (8082) ├── system/ # 系统管理 (8081) ├── news/ # 资源管理 (8087) ├── course/ # 课程管理 (8083) 🆕 ├── learning/ # 学习管理 (8084) 🆕 ├── usercenter/ # 个人中心 (8085) 🆕 ├── ai/ # 智能体 (8086) 🆕 ├── common/ # 公共模块 │ ├── common-all/ # 全部依赖聚合 │ ├── common-annotation/ # 注解 │ ├── common-core/ # 核心工具 │ ├── common-dto/ # 数据传输对象 │ ├── common-exception/ # 异常处理 │ ├── common-jdbc/ # JDBC配置 │ ├── common-redis/ # Redis配置 │ └── common-util/ # 工具类 ├── .bin/ # 工具脚本 │ └── mysql/ # 数据库脚本 │ ├── init-database.bat/sh # 初始化脚本 │ └── sql/ # SQL文件 └── .doc/ # 项目文档 ``` ## 🗄️ 数据库设计 ### 数据库统计 - **总表数**: 50张表 - **用户管理**: 3张表 - **权限管理**: 9张表(含统一权限表) - **资源管理**: 8张表 - **课程管理**: 3张表 - **学习管理**: 6张表 - **个人中心**: 6张表 - **智能体**: 6张表 - **系统管理**: 8张表 ### 核心表 - `tb_sys_user` - 用户表 - `tb_resource_permission` - 统一资源权限控制表 ⭐ - `tb_resource` - 资源/新闻表 - `tb_course` - 课程表 - `tb_learning_task` - 学习任务表 - `tb_user_collection` - 用户收藏表 - `tb_ai_conversation` - AI对话表 ## 🚀 快速开始 ### 1. 环境准备 ```bash # 需要 JDK 21+ Maven 3.8+ MySQL 8.0+ # 可选 Redis 6.0+ ``` ### 2. 克隆项目 ```bash git clone cd schoolNewsServ ``` ### 3. 初始化数据库 ```bash # Windows cd .bin/mysql init-database.bat # Linux/Mac cd .bin/mysql chmod +x init-database.sh ./init-database.sh ``` ### 4. 修改配置 修改各模块的 `application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/school_news username: root password: your_password ``` ### 5. 编译运行 ```bash # 编译 mvn clean install # 运行(根据需要启动) cd admin mvn spring-boot:run ``` ### 6. 访问系统 - 管理后台: http://localhost:8080 - 默认账号: admin - 默认密码: 见 `.bin/mysql/sql/createTableUser.sql` ## 📚 文档目录 ### 快速入门 - [快速开始](.doc/快速开始.md) - 项目启动指南 - [模块创建进度](.doc/模块创建进度.md) - 当前开发进度 ### 开发文档 - [模块创建完整指南](.doc/模块创建完整指南.md) - 详细开发指南 - [新模块创建说明](.doc/新模块创建说明.md) - 模块说明 ### 数据库文档 - [数据库表结构说明](.bin/mysql/sql/README.md) - 详细表结构 - [表结构汇总](.bin/mysql/sql/表结构汇总.md) - 表清单 - [ER关系图](.bin/mysql/sql/ER关系图.md) - 关系图解 - [权限控制使用说明](.bin/mysql/sql/权限控制使用说明.md) - 权限使用 ⭐ - [数据库使用说明](.bin/mysql/使用说明.md) - 初始化说明 ### 需求文档 - [需求文档](.doc/需求文档.md) - 功能需求 ## 🔑 权限控制 本系统采用**统一权限表**设计,支持灵活的权限控制: ### 权限模型 - **Owner(所有者)**: 资源创建者,通常拥有全部权限 - **Group(组)**: 部门或角色,可配置不同权限 - **Others(其他人)**: 公开访问权限 ### 权限类型 - **读权限(4)**: 查看、浏览、阅读 - **写权限(2)**: 编辑、修改、删除 - **执行权限(1)**: 发布、审核、归档 ### 使用示例 ```sql -- 查询用户对课程的权限 SELECT can_read, can_write, can_execute FROM tb_resource_permission WHERE resource_type = 2 -- 课程 AND resource_id = 'course_001' AND (dept_id IS NULL OR dept_id = '用户部门ID') AND (role_id IS NULL OR role_id IN ('用户角色ID列表')) AND deleted = 0; ``` 详见:[权限控制使用说明](.bin/mysql/sql/权限控制使用说明.md) ## 🎯 开发进度 - [x] 数据库设计(100%) - [x] Maven项目结构(70%) - [x] 基础模块(system, auth) - [x] 新模块基础结构(course, learning, usercenter, ai) - [ ] DTO实体类创建(0%) - [ ] Mapper层开发(0%) - [ ] Service层开发(0%) - [ ] Controller层开发(0%) - [ ] 前端开发(0%) **当前总体完成度:约30%** ## 🤝 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ## 📄 开源协议 本项目采用 MIT 协议 ## 👥 开发团队 - 后端开发: [@yslg] - 数据库设计: [@system] ## 📞 联系方式 - Email: 3223905473@qq.com - 项目地址: [GitHub](your-github-url) ## 🙏 致谢 感谢所有为本项目做出贡献的开发者! --- ⭐ 如果这个项目对你有帮助,请给个Star支持一下!