Files
schoolNews/schoolNewsServ
2025-11-25 19:05:35 +08:00
..
2025-11-25 19:05:35 +08:00
2025-11-25 18:57:39 +08:00
2025-11-25 13:08:23 +08:00
2025-11-17 18:34:37 +08:00
2025-11-25 18:57:39 +08:00
2025-11-17 15:16:11 +08:00
2025-11-25 17:49:10 +08:00
2025-11-25 16:00:09 +08:00
2025-11-24 11:50:15 +08:00
2025-11-13 19:00:27 +08:00
2025-11-13 19:00:27 +08:00
2025-11-25 14:45:11 +08:00
2025-11-22 16:01:36 +08:00
2025-11-13 19:00:27 +08:00
2025-10-21 16:21:19 +08:00
2025-11-21 18:56:14 +08:00
2025-10-15 13:11:19 +08:00

校园思政新闻平台

基于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%

🤝 贡献指南

  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]

📞 联系方式

🙏 致谢

感谢所有为本项目做出贡献的开发者!


如果这个项目对你有帮助请给个Star支持一下