!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:
白书科技
2025-05-19 06:25:34 +00:00
parent b9f600d3bc
commit c206fa4bf2
40 changed files with 2588 additions and 39 deletions

View 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

View 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

View 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

View 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.

View 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

View 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

View 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