mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-12-17 08:54:21 +08:00
!13 LDAP优化增强
* cursorrules * fixed: ldap同步的部门记录name记录错误 * 主题色一致 * changelog * admin接入ldap同步数据统计 * ldap同步数据记录接口合并 * fixed: 已同步被禁用用户的DN更新 * 已经同步的LDAP用户被禁止可以继续更新 * 优化代码 * 新增LDAP同步的详细记录 * 新增LDAP禁止用户的数据量统计 * 优化LDAP拉取数据的重复使用 * 优化LDAP同步 * ldap同步记录 * cursor rules
This commit is contained in:
31
.cursor/rules/01-project-overview.mdc
Normal file
31
.cursor/rules/01-project-overview.mdc
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# PlayEdu API Project Overview
|
||||
|
||||
PlayEdu is an online training solution developed by Baishu Technology. The API is built with Java + Spring Boot 3, using a modular approach.
|
||||
|
||||
## Project Structure
|
||||
- [playedu-api](mdc:playedu-api) - Java backend API project
|
||||
- [playedu-admin](mdc:playedu-admin) - Admin frontend
|
||||
- [playedu-pc](mdc:playedu-pc) - PC web interface
|
||||
- [playedu-h5](mdc:playedu-h5) - Mobile web interface
|
||||
|
||||
## API Key Modules
|
||||
- [playedu-api/PlayeduApiApplication.java](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/PlayeduApiApplication.java) - Main application entry point
|
||||
- [playedu-api](mdc:playedu-api/playedu-api) - API module containing controllers and API-specific logic
|
||||
- [playedu-common](mdc:playedu-api/playedu-common) - Common utilities and shared code
|
||||
- [playedu-resource](mdc:playedu-api/playedu-resource) - Resource management module
|
||||
- [playedu-course](mdc:playedu-api/playedu-course) - Course-related functionality
|
||||
- [playedu-system](mdc:playedu-api/playedu-system) - System management functionality
|
||||
|
||||
## Backend vs Frontend Controllers
|
||||
- [Backend Controllers](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/backend) - Admin-facing API endpoints
|
||||
- [Frontend Controllers](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/frontend) - Student-facing API endpoints
|
||||
|
||||
## Development and Deployment
|
||||
- [pom.xml](mdc:playedu-api/pom.xml) - Main Maven configuration file
|
||||
- [Dockerfile](mdc:playedu-api/Dockerfile) - Docker build configuration
|
||||
- [compose.yml](mdc:compose.yml) - Docker Compose configuration
|
||||
32
.cursor/rules/02-api-structure.mdc
Normal file
32
.cursor/rules/02-api-structure.mdc
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# PlayEdu API Structure
|
||||
|
||||
The API module follows a standard Spring Boot structure with controllers, services, and supporting components.
|
||||
|
||||
## Controller Layout
|
||||
The API endpoints are divided into backend (admin) and frontend (student) controllers:
|
||||
|
||||
### Backend Controllers
|
||||
- [Backend Controllers](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/backend) - Admin management interfaces
|
||||
- [AdminUserController](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/AdminUserController.java) - Administrator management
|
||||
- [CourseController](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/CourseController.java) - Course management
|
||||
- [DepartmentController](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java) - Department management
|
||||
- [ResourceController](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java) - Resource management
|
||||
- [UserController](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/UserController.java) - User management
|
||||
|
||||
### Frontend Controllers
|
||||
- [Frontend Controllers](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/frontend) - Student-facing endpoints
|
||||
- [LoginController](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/frontend/LoginController.java) - Student login
|
||||
- [CourseController](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller/frontend/CourseController.java) - Course access
|
||||
|
||||
## API Application Components
|
||||
- [PlayeduApiApplication](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/PlayeduApiApplication.java) - Main application entry point
|
||||
- [Request DTOs](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/request) - Data transfer objects for API requests
|
||||
- [Response Format](mdc:playedu-api/playedu-common/src/main/java/xyz/playedu/common/util/JsonResponse.java) - Standard JSON response format
|
||||
- [Event Handlers](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/event) - Event-driven components
|
||||
- [Scheduled Tasks](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/schedule) - Scheduled/recurring tasks
|
||||
- [Interceptors](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/interceptor) - HTTP request interceptors
|
||||
32
.cursor/rules/03-configuration.mdc
Normal file
32
.cursor/rules/03-configuration.mdc
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# PlayEdu Configuration Guide
|
||||
|
||||
The PlayEdu application uses standard Spring Boot configuration with YAML files.
|
||||
|
||||
## Application Configuration
|
||||
- [application.yml](mdc:playedu-api/playedu-api/src/main/resources/application.yml) - Main application configuration
|
||||
- [application-dev.yml](mdc:playedu-api/playedu-api/src/main/resources/application-dev.yml) - Development environment overrides
|
||||
|
||||
## Key Configuration Properties
|
||||
- Database connection settings
|
||||
- Redis cache configuration
|
||||
- File storage configuration
|
||||
- Security settings
|
||||
- Cors configuration
|
||||
|
||||
## Build Configuration
|
||||
- [pom.xml](mdc:playedu-api/pom.xml) - Main project Maven POM file
|
||||
- [playedu-api/pom.xml](mdc:playedu-api/playedu-api/pom.xml) - API module POM file
|
||||
- [playedu-common/pom.xml](mdc:playedu-api/playedu-common/pom.xml) - Common module POM file
|
||||
- [playedu-course/pom.xml](mdc:playedu-api/playedu-course/pom.xml) - Course module POM file
|
||||
- [playedu-resource/pom.xml](mdc:playedu-api/playedu-resource/pom.xml) - Resource module POM file
|
||||
- [playedu-system/pom.xml](mdc:playedu-api/playedu-system/pom.xml) - System module POM file
|
||||
|
||||
## Docker Configuration
|
||||
- [Dockerfile](mdc:playedu-api/Dockerfile) - Docker image definition
|
||||
- [Dockerfile.local](mdc:playedu-api/Dockerfile.local) - Local development Docker configuration
|
||||
- [compose.yml](mdc:compose.yml) - Docker Compose service definitions
|
||||
46
.cursor/rules/04-module-structure.mdc
Normal file
46
.cursor/rules/04-module-structure.mdc
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# PlayEdu Module Structure
|
||||
|
||||
PlayEdu follows a modular architecture with separate modules for different concerns:
|
||||
|
||||
## Module Organization
|
||||
Each module follows a similar structure with domain models, services, and mappers:
|
||||
|
||||
- **playedu-api**: Main API controllers and application entry point
|
||||
- [Controllers](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/controller) - API endpoints
|
||||
- [Request DTOs](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/request) - Request data objects
|
||||
- [Configuration](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/config) - Module-specific configuration
|
||||
|
||||
- **playedu-common**: Shared utilities, base classes, and common functionality
|
||||
- [Constants](mdc:playedu-api/playedu-common/src/main/java/xyz/playedu/common/constant) - System constants
|
||||
- [Exceptions](mdc:playedu-api/playedu-common/src/main/java/xyz/playedu/common/exception) - Custom exceptions
|
||||
- [Utilities](mdc:playedu-api/playedu-common/src/main/java/xyz/playedu/common/util) - Common utility classes
|
||||
- [Base Models](mdc:playedu-api/playedu-common/src/main/java/xyz/playedu/common/bus) - Base model classes
|
||||
|
||||
- **playedu-resource**: Resource management (files, media, etc.)
|
||||
- [Domain Models](mdc:playedu-api/playedu-resource/src/main/java/xyz/playedu/resource/domain) - Entity classes
|
||||
- [Services](mdc:playedu-api/playedu-resource/src/main/java/xyz/playedu/resource/service) - Business logic
|
||||
- [Mappers](mdc:playedu-api/playedu-resource/src/main/java/xyz/playedu/resource/mapper) - Database access layer
|
||||
|
||||
- **playedu-course**: Course management functionality
|
||||
- [Domain Models](mdc:playedu-api/playedu-course/src/main/java/xyz/playedu/course/domain) - Course entities
|
||||
- [Services](mdc:playedu-api/playedu-course/src/main/java/xyz/playedu/course/service) - Course business logic
|
||||
- [Mappers](mdc:playedu-api/playedu-course/src/main/java/xyz/playedu/course/mapper) - Course data access
|
||||
|
||||
- **playedu-system**: System administration functionality
|
||||
- [Domain Models](mdc:playedu-api/playedu-system/src/main/java/xyz/playedu/system/domain) - System entities
|
||||
- [Services](mdc:playedu-api/playedu-system/src/main/java/xyz/playedu/system/service) - System business logic
|
||||
- [Mappers](mdc:playedu-api/playedu-system/src/main/java/xyz/playedu/system/mapper) - System data access
|
||||
|
||||
## Domain-Driven Design
|
||||
The codebase follows a layered architecture with:
|
||||
- Controllers: Handle API requests and responses
|
||||
- Services: Implement business logic
|
||||
- Mappers: Data access layer (using MyBatis)
|
||||
- Domain models: Entity classes representing business objects
|
||||
|
||||
This modular approach allows for separation of concerns and easier maintainability.
|
||||
45
.cursor/rules/05-development-workflow.mdc
Normal file
45
.cursor/rules/05-development-workflow.mdc
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# PlayEdu Development Workflow
|
||||
|
||||
This guide outlines the workflow for developing and running the PlayEdu API.
|
||||
|
||||
## Local Development Setup
|
||||
1. Clone the repository
|
||||
2. Use Docker Compose to run the application: `docker-compose up -d`
|
||||
3. Access points:
|
||||
- API: `http://localhost:9700`
|
||||
- Admin backend: `http://localhost:9900` (default credentials: `admin@playedu.xyz / playedu`)
|
||||
- PC web interface: `http://localhost:9800`
|
||||
- H5 mobile interface: `http://localhost:9801`
|
||||
|
||||
## Main Entry Points
|
||||
- [PlayeduApiApplication.java](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/PlayeduApiApplication.java) - Main application class
|
||||
- [application.yml](mdc:playedu-api/playedu-api/src/main/resources/application.yml) - Configuration
|
||||
|
||||
## Tech Stack
|
||||
- Java with Spring Boot 3
|
||||
- MySQL database
|
||||
- Redis for caching
|
||||
- MyBatis for data access
|
||||
- Docker for containerization
|
||||
|
||||
## Development Best Practices
|
||||
- Follow existing code structure when adding new features
|
||||
- Add unit tests for new functionality
|
||||
- Maintain module separation of concerns
|
||||
- Use existing utility classes from `playedu-common`
|
||||
|
||||
## Build Process
|
||||
To build the application:
|
||||
1. Use Maven: `mvn clean package`
|
||||
2. Build Docker image: `docker build -t playedu-api .`
|
||||
3. Run in development mode: `docker-compose up -d`
|
||||
|
||||
## Version Control
|
||||
- Follow standard Git workflow with feature branches
|
||||
- Create pull requests for significant changes
|
||||
- Update CHANGELOG.md for version releases
|
||||
33
.cursor/rules/06-security-model.mdc
Normal file
33
.cursor/rules/06-security-model.mdc
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# PlayEdu Security Model
|
||||
|
||||
This guide outlines the security model of the PlayEdu application.
|
||||
|
||||
## Authentication
|
||||
- [BackendAuthInterceptor](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/interceptor/BackendAuthInterceptor.java) - Backend authentication interceptor
|
||||
- [FrontendAuthInterceptor](mdc:playedu-api/playedu-api/src/main/java/xyz/playedu/api/interceptor/FrontendAuthInterceptor.java) - Frontend authentication interceptor
|
||||
- JWT-based authentication for both frontend and backend users
|
||||
|
||||
## Authorization
|
||||
- Role-based access control for backend users
|
||||
- Department-based content access for frontend users
|
||||
- Course permission enforcement
|
||||
|
||||
## Security Configuration
|
||||
- CORS configuration to prevent cross-site request forgery
|
||||
- Password encryption using BCrypt
|
||||
- Input validation and sanitization
|
||||
|
||||
## Resource Security
|
||||
- Private video storage and delivery
|
||||
- URL-based token authentication for media access
|
||||
- Anti-leech protection for media files
|
||||
|
||||
## Sensitive Data Protection
|
||||
- PII (Personally Identifiable Information) protection
|
||||
- Logging sanitization for sensitive data
|
||||
- Database encryption for critical fields
|
||||
40
.cursor/rules/07-database-structure.mdc
Normal file
40
.cursor/rules/07-database-structure.mdc
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# PlayEdu Database Structure
|
||||
|
||||
This guide outlines the database structure of the PlayEdu application.
|
||||
|
||||
## Database Technology
|
||||
- MySQL database for persistent storage
|
||||
- Redis for caching and session management
|
||||
- MyBatis as the ORM framework
|
||||
|
||||
## Core Tables
|
||||
- **admin_users** - Administrator user accounts
|
||||
- **admin_roles** - Administrator roles for RBAC
|
||||
- **departments** - Organizational departments
|
||||
- **users** - Student/learner accounts
|
||||
- **courses** - Course information
|
||||
- **resources** - Media and document resources
|
||||
- **course_chapters** - Course chapter organization
|
||||
- **course_hour_records** - Learning progress tracking
|
||||
|
||||
## Entity Relationships
|
||||
- Departments have many Users (many-to-many)
|
||||
- Courses have many Chapters (one-to-many)
|
||||
- Courses have many Resources (many-to-many)
|
||||
- Users have progress records for Courses (many-to-many)
|
||||
|
||||
## Database Access
|
||||
- Data access through MyBatis Mappers
|
||||
- [Example Mapper](mdc:playedu-api/playedu-course/src/main/java/xyz/playedu/course/mapper/CourseMapper.java)
|
||||
- XML query definitions in resource XML files
|
||||
- [Example XML](mdc:playedu-api/playedu-course/src/main/resources/mapper/CourseMapper.xml)
|
||||
|
||||
## Data Migration
|
||||
- Managed through SQL scripts
|
||||
- Version controlled database changes
|
||||
- Backup procedures for data safety
|
||||
Reference in New Issue
Block a user