WIP
This commit is contained in:
119
CLAUDE.md
Normal file
119
CLAUDE.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
This is a Spring Boot multi-module Java backend application called "peipei-backend" that appears to be a social platform/gaming system with WeChat Mini Program integration. The system supports clerk management, customer interactions, orders, gifts, and various social features.
|
||||
|
||||
## Project Structure
|
||||
|
||||
The project is organized as a Maven multi-module application:
|
||||
|
||||
- **play-admin**: Main backend API module containing REST controllers and business logic
|
||||
- **play-common**: Shared utilities, configurations, and common components
|
||||
- **play-generator**: Code generation tool for creating CRUD operations from database tables
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- **Java 11** with Spring Boot 2.5.4
|
||||
- **MyBatis Plus 3.5.3** with join support for database operations
|
||||
- **MySQL 8** with Flyway migrations
|
||||
- **Redis** for caching and session management
|
||||
- **JWT** for authentication
|
||||
- **WeChat Mini Program SDK** for WeChat integration
|
||||
- **Aliyun OSS** for file storage
|
||||
- **Lombok** for reducing boilerplate code
|
||||
- **Knife4j/Swagger** for API documentation
|
||||
|
||||
## Development Commands
|
||||
|
||||
### Building and Running
|
||||
```bash
|
||||
# Build the entire project
|
||||
mvn clean compile
|
||||
|
||||
# Package the application
|
||||
mvn clean package
|
||||
|
||||
# Run the main application (play-admin module)
|
||||
cd play-admin
|
||||
mvn spring-boot:run
|
||||
|
||||
# Or run the packaged jar
|
||||
java -jar play-admin/target/play-admin-1.0.jar
|
||||
```
|
||||
|
||||
### Database Migrations
|
||||
```bash
|
||||
# Run Flyway migrations
|
||||
mvn flyway:migrate
|
||||
|
||||
# Check migration status
|
||||
mvn flyway:info
|
||||
```
|
||||
|
||||
### Code Generation
|
||||
```bash
|
||||
# Generate CRUD code from database tables
|
||||
cd play-generator
|
||||
mvn clean compile exec:java
|
||||
# Or run directly: ./run.sh (Linux/Mac) or run.bat (Windows)
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The application uses Spring profiles with separate configuration files:
|
||||
- `application.yml`: Main configuration
|
||||
- `application-dev.yml`: Development environment
|
||||
- `application-test.yml`: Test environment
|
||||
- `application-prod.yml`: Production environment
|
||||
|
||||
Default active profile is `test`. Change via `spring.profiles.active` property.
|
||||
|
||||
## Architecture
|
||||
|
||||
### Module Structure
|
||||
- **Controllers**: Located in `modules/{domain}/controller/` - Handle HTTP requests and responses
|
||||
- **Services**: Located in `modules/{domain}/service/` - Business logic layer
|
||||
- **Mappers**: Located in `modules/{domain}/mapper/` - Database access layer using MyBatis Plus
|
||||
- **Entities**: Domain objects representing database tables
|
||||
|
||||
### Key Domains
|
||||
- **clerk**: Clerk/staff management and operations
|
||||
- **custom**: Customer management and interactions
|
||||
- **order**: Order processing and management
|
||||
- **shop**: Product catalog and commerce features
|
||||
- **system**: System administration and user management
|
||||
- **weichat**: WeChat Mini Program integration
|
||||
|
||||
### Authentication & Security
|
||||
- JWT-based authentication with Spring Security
|
||||
- Multi-tenant architecture support
|
||||
- Role-based access control
|
||||
- XSS protection and input validation
|
||||
|
||||
### Database
|
||||
- Uses MyBatis Plus for ORM with automatic CRUD generation
|
||||
- Flyway for database migration management
|
||||
- Logical deletion support (soft delete)
|
||||
- Multi-tenant data isolation
|
||||
|
||||
## Code Generation Tool
|
||||
|
||||
The project includes a powerful code generator (`play-generator`) that can:
|
||||
- Read MySQL table structures
|
||||
- Generate Entity, Mapper, Service, Controller classes
|
||||
- Create MyBatis XML mapping files
|
||||
- Support batch generation for multiple tables
|
||||
|
||||
Configure database connection in `play-generator/src/main/resources/config.properties` and specify table names to generate complete CRUD operations.
|
||||
|
||||
## Deployment
|
||||
|
||||
The project includes a deployment script (`deploy.sh`) that:
|
||||
- Builds and packages the application
|
||||
- Deploys to remote server via SCP
|
||||
- Restarts the application service
|
||||
|
||||
Server runs on port 7002 with context path `/api`.
|
||||
Reference in New Issue
Block a user