7.4 KiB
7.4 KiB
校园思政新闻平台
基于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. 环境准备
# 需要
JDK 21+
Maven 3.8+
MySQL 8.0+
# 可选
Redis 6.0+
2. 克隆项目
git clone <repository-url>
cd schoolNewsServ
3. 初始化数据库
# Windows
cd .bin/mysql
init-database.bat
# Linux/Mac
cd .bin/mysql
chmod +x init-database.sh
./init-database.sh
4. 修改配置
修改各模块的 application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/school_news
username: root
password: your_password
5. 编译运行
# 编译
mvn clean install
# 运行(根据需要启动)
cd admin
mvn spring-boot:run
6. 访问系统
- 管理后台: http://localhost:8080
- 默认账号: admin
- 默认密码: 见
.bin/mysql/sql/createTableUser.sql
📚 文档目录
快速入门
开发文档
数据库文档
需求文档
- 需求文档 - 功能需求
🔑 权限控制
本系统采用统一权限表设计,支持灵活的权限控制:
权限模型
- Owner(所有者): 资源创建者,通常拥有全部权限
- Group(组): 部门或角色,可配置不同权限
- Others(其他人): 公开访问权限
权限类型
- 读权限(4): 查看、浏览、阅读
- 写权限(2): 编辑、修改、删除
- 执行权限(1): 发布、审核、归档
使用示例
-- 查询用户对课程的权限
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;
详见:权限控制使用说明
🎯 开发进度
- 数据库设计(100%)
- Maven项目结构(70%)
- 基础模块(system, auth)
- 新模块基础结构(course, learning, usercenter, ai)
- DTO实体类创建(0%)
- Mapper层开发(0%)
- Service层开发(0%)
- Controller层开发(0%)
- 前端开发(0%)
当前总体完成度:约30%
🤝 贡献指南
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
📄 开源协议
本项目采用 MIT 协议
👥 开发团队
- 后端开发: [@yslg]
- 数据库设计: [@system]
📞 联系方式
- Email: 3223905473@qq.com
- 项目地址: GitHub
🙏 致谢
感谢所有为本项目做出贡献的开发者!
⭐ 如果这个项目对你有帮助,请给个Star支持一下!