Files
schoolNews/schoolNewsServ/.doc/快速开始.md
2025-10-15 13:11:19 +08:00

5.9 KiB
Raw Blame History

校园思政新闻平台 - 快速开始

📦 项目结构

school-news/
├── admin/          # 管理后台入口
├── api/            # API接口定义
│   ├── api-all/
│   ├── api-auth/
│   └── api-system/
├── auth/           # 认证模块
├── system/         # 系统管理模块(用户、权限、部门等)
├── news/           # 资源/新闻管理模块
├── study/          # 学习管理模块 🆕
├── usercenter/     # 个人中心模块 🆕
├── ai/             # 智能体模块 🆕
└── common/         # 公共模块
    ├── common-all/
    ├── common-annotation/
    ├── common-core/
    ├── common-dto/
    ├── common-exception/
    ├── common-jdbc/
    ├── common-redis/
    └── common-util/

🚀 快速开始

1. 环境要求

  • JDK: 21+
  • Maven: 3.8+
  • MySQL: 8.0+
  • Redis: 6.0+ (可选)

2. 数据库初始化

Windows环境

cd .bin/mysql
init-database.bat

Linux/Mac环境

cd .bin/mysql
chmod +x init-database.sh
./init-database.sh

手动执行

cd .bin/mysql/sql
mysql -u root -p < createDB.sql
mysql -u root -p < createTableUser.sql
mysql -u root -p < createTablePermission.sql
mysql -u root -p < createTablePermissionControl.sql
mysql -u root -p < createTableResource.sql
mysql -u root -p < createTableCourse.sql
mysql -u root -p < createTableLearning.sql
mysql -u root -p < createTableUserCenter.sql
mysql -u root -p < createTableAI.sql
mysql -u root -p < createTableSystem.sql

3. 配置数据库连接

修改各模块的 application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/school_news
    username: root
    password: your_password

4. 编译项目

mvn clean install

5. 启动服务

各模块端口分配:

  • admin: 8080 (管理后台入口)
  • auth: 8082 (认证服务)
  • system: 8081 (系统管理)
  • study: 8084 (学习管理) 🆕
  • usercenter: 8085 (个人中心) 🆕
  • ai: 8086 (智能体) 🆕

启动顺序建议:

  1. auth (认证服务)
  2. system (系统管理)
  3. 其他业务模块

6. 访问系统

  • 管理后台: http://localhost:8080
  • 默认账号: admin
  • 默认密码: 查看 .bin/mysql/sql/createTableUser.sql

📋 模块功能说明

system (系统管理) - 已有

  • 用户管理
  • 部门管理
  • 角色管理
  • 权限管理
  • 菜单管理

news (资源/新闻) - 待扩展

  • 资源管理
  • 分类管理
  • Banner管理
  • 推荐管理
  • 标签管理
  • 数据采集

study (学习管理) - 新建 🆕

  • 学习任务
  • 任务分配
  • 学习记录
  • 学习统计
  • 课程管理
  • 章节管理
  • 课程标签
  • 权限控制

usercenter (个人中心) - 新建 🆕

  • 用户收藏
  • 成就系统
  • 积分系统
  • 浏览记录

ai (智能体) - 新建 🆕

  • AI对话
  • 知识库
  • 文件问答
  • 对话历史

🔧 开发指南

新增接口步骤

  1. 定义API接口 (在api模块)
// api-course/src/main/java/org/xyzh/api/course/CourseApi.java
public interface CourseApi {
    @GetMapping("/course/list")
    Object getCourseList(...);
}
  1. 创建DTO (在common-dto)
// common/common-dto/src/main/java/org/xyzh/common/dto/course/TbCourse.java
public class TbCourse extends BaseDTO {
    private String courseID;
    private String name;
    // ...
}
  1. 创建Mapper (在业务模块)
// course/src/main/java/org/xyzh/course/mapper/CourseMapper.java
@Mapper
public interface CourseMapper extends BaseMapper<TbCourse> {
}
  1. 创建Service (在业务模块)
// course/src/main/java/org/xyzh/course/service/CourseService.java
public interface CourseService {
}

// course/src/main/java/org/xyzh/course/service/impl/CourseServiceImpl.java
@Service
public class CourseServiceImpl implements CourseService {
}
  1. 创建Controller (在业务模块)
// course/src/main/java/org/xyzh/course/controller/CourseController.java
@RestController
@RequestMapping("/course")
public class CourseController implements CourseApi {
}

权限控制使用

详见:权限控制使用说明

基本用法:

// 检查用户对资源的权限
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 = '用户部门')
  AND (role_id IS NULL OR role_id IN ('用户角色'))
  AND deleted = 0;

📚 参考文档

数据库相关

开发相关

⚠️ 注意事项

  1. 数据库编码: 使用 utf8mb4
  2. 主键生成: 使用 UUID
  3. 软删除: 所有表使用 deleted 字段
  4. 日志: 使用 Log4j2不要用 Logback
  5. 权限: 所有资源需配置权限控制

🐛 常见问题

Q1: 启动时提示端口被占用

A: 修改对应模块的 application.yml 中的 server.port

Q2: 数据库连接失败

A: 检查 MySQL 服务是否启动,用户名密码是否正确

Q3: MyBatis找不到Mapper

A: 检查 mybatis-plus.mapper-locations 配置是否正确

Q4: 权限检查失败

A: 确保在 tb_resource_permission 表中配置了相应的权限记录

📞 技术支持

遇到问题请参考:

  1. 项目根目录下的 .doc/ 文档
  2. 数据库 SQL 脚本中的注释
  3. 代码中的 JavaDoc 注释

🎯 后续计划

  • 完成所有模块的业务代码
  • 添加单元测试
  • 集成Swagger文档
  • 添加Redis缓存
  • 性能优化
  • 安全加固