|
|
@@ -4,48 +4,48 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
|
|
|
## Project Overview
|
|
|
|
|
|
-This is a Java-based NFT (Non-Fungible Token) API built with the JFinal framework. The application provides RESTful APIs for NFT trading, user management, payment processing, and order management.
|
|
|
+这是一个基于JFinal框架构建的Java NFT(非同质化代币)API。该应用为NFT交易、用户管理、支付处理和订单管理提供RESTful API。
|
|
|
|
|
|
## Technology Stack
|
|
|
|
|
|
-- **Framework**: JFinal 5.0.5 with Undertow server
|
|
|
-- **Java Version**: Java 8
|
|
|
-- **Database**: MySQL 8.0 with Druid connection pool
|
|
|
-- **Build Tool**: Maven
|
|
|
-- **Key Libraries**: FastJSON, Hutool, BouncyCastle (for cryptography), SLF4J + Logback
|
|
|
-- **Payment Integration**: Allinpay SDK, BSN (Blockchain Service Network)
|
|
|
-- **SMS Service**: JD Cloud SMS
|
|
|
-- **Containerization**: Docker
|
|
|
+- **框架**: JFinal 5.0.5 with Undertow server
|
|
|
+- **Java版本**: Java 8
|
|
|
+- **数据库**: MySQL 8.0 with Druid connection pool
|
|
|
+- **构建工具**: Maven
|
|
|
+- **核心库**: FastJSON, Hutool, BouncyCastle (for cryptography), SLF4J + Logback
|
|
|
+- **支付集成**: Allinpay SDK, BSN (Blockchain Service Network)
|
|
|
+- **短信服务**: JD Cloud SMS
|
|
|
+- **容器化**: Docker
|
|
|
|
|
|
## Development Commands
|
|
|
|
|
|
-### Maven Commands
|
|
|
+### Maven命令
|
|
|
```bash
|
|
|
-# Clean and compile
|
|
|
+# 清理和编译
|
|
|
mvn clean compile
|
|
|
|
|
|
-# Run tests
|
|
|
+# 运行测试
|
|
|
mvn test
|
|
|
|
|
|
-# Package application (creates executable JAR)
|
|
|
+# 打包应用(创建可执行JAR)
|
|
|
mvn clean package -DskipTests
|
|
|
|
|
|
-# Run application locally (requires environment variables)
|
|
|
+# 本地运行应用(需要环境变量)
|
|
|
java -jar target/dalian-nft-api.jar
|
|
|
|
|
|
-# Run with environment variables
|
|
|
+# 带环境变量运行
|
|
|
DB_PASSWORD=123456 DB_URL=jdbc:mysql://mysql-container:3306/dalian-nft-db DB_USER=root DEV_MODE=0 UPLOAD_BASE_PATH=/app/uploads URL_BASE=http://117.72.208.239 java -jar target/dalian-nft-api.jar
|
|
|
```
|
|
|
|
|
|
-### Docker Commands
|
|
|
+### Docker命令
|
|
|
```bash
|
|
|
-# Build Docker image
|
|
|
+# 构建Docker镜像
|
|
|
docker build -t dalian-nft-api .
|
|
|
|
|
|
-# Run with Docker Compose (if available)
|
|
|
+# 使用Docker Compose运行(如果可用)
|
|
|
docker-compose up -d
|
|
|
|
|
|
-# Manual Docker run with environment variables
|
|
|
+# 手动Docker运行并设置环境变量
|
|
|
docker run -d --name nft-api -p 8888:8888 --network dalian-nft-network \
|
|
|
-e DB_URL=jdbc:mysql://mysql-container:3306/dalian-nft-db \
|
|
|
-e DB_USER=root \
|
|
|
@@ -57,58 +57,58 @@ docker run -d --name nft-api -p 8888:8888 --network dalian-nft-network \
|
|
|
## Architecture Overview
|
|
|
|
|
|
### Core Structure
|
|
|
-The application follows JFinal's MVC pattern with these key components:
|
|
|
+应用遵循JFinal的MVC模式,包含以下关键组件:
|
|
|
|
|
|
-- **Controllers** (`src/main/java/modules/*/`): Handle HTTP requests and responses
|
|
|
-- **Services** (`src/main/java/modules/*/`): Business logic layer
|
|
|
-- **Models** (`src/main/java/common/model/`): Active Record pattern data models
|
|
|
-- **Interceptors** (`src/main/java/common/interceptor/`): Cross-cutting concerns (auth, validation, exceptions)
|
|
|
-- **Utils** (`src/main/java/common/utils/`): Shared utilities including payment SDKs
|
|
|
+- **Controllers** (`src/main/java/modules/*/`): 处理HTTP请求和响应
|
|
|
+- **Services** (`src/main/java/modules/*/`): 业务逻辑层
|
|
|
+- **Models** (`src/main/java/common/model/`): Active Record模式数据模型
|
|
|
+- **Interceptors** (`src/main/java/common/interceptor/`): 横切关注点(认证、验证、异常处理)
|
|
|
+- **Utils** (`src/main/java/common/utils/`): 共享工具类,包括支付SDK
|
|
|
|
|
|
### Key Modules
|
|
|
-- **User Management**: Registration, authentication, balance management
|
|
|
-- **NFT Trading**: NFT creation, trading, status maintenance
|
|
|
-- **Order Processing**: Order lifecycle management with status tracking
|
|
|
-- **Payment Integration**: Multiple payment providers (Allinpay, BSN)
|
|
|
-- **File Upload**: Media file handling for NFT assets
|
|
|
-- **News Management**: Content management system
|
|
|
+- **用户管理**: 注册、认证、余额管理
|
|
|
+- **NFT交易**: NFT创建、交易、状态维护
|
|
|
+- **订单处理**: 订单生命周期管理和状态跟踪
|
|
|
+- **支付集成**: 多个支付提供商(Allinpay, BSN)
|
|
|
+- **文件上传**: NFT资产的媒体文件处理
|
|
|
+- **新闻管理**: 内容管理系统
|
|
|
|
|
|
### Database Layer
|
|
|
-- Uses JFinal's Active Record pattern with auto-generated base models
|
|
|
-- Models inherit from `common.model.base.Base*` classes
|
|
|
-- SQL mappings defined in `_MappingKit.java`
|
|
|
-- Custom SQL templates in `src/main/java/common/all.sqlt` (referenced but file may be in resources)
|
|
|
+- 使用JFinal的Active Record模式和自动生成的基类模型
|
|
|
+- 模型继承自 `common.model.base.Base*` 类
|
|
|
+- SQL映射在 `_MappingKit.java` 中定义
|
|
|
+- 自定义SQL模板在 `src/main/java/common/all.sqlt` 中(已引用,文件可能在resources中)
|
|
|
|
|
|
### Background Tasks
|
|
|
-- `OrderStatusMaintenanceTask`: Updates order statuses
|
|
|
-- `NfttStatusMaintenanceTask`: Maintains NFT statuses
|
|
|
-- `WithdrawMaintenanceTask`: Processes withdrawal requests
|
|
|
-- Uses a custom `TaskScheduler` with thread pool management
|
|
|
+- `OrderStatusMaintenanceTask`: 更新订单状态
|
|
|
+- `NfttStatusMaintenanceTask`: 维护NFT状态
|
|
|
+- `WithdrawMaintenanceTask`: 处理提现请求
|
|
|
+- 使用自定义的 `TaskScheduler` 进行线程池管理
|
|
|
|
|
|
### Environment Configuration
|
|
|
-Critical environment variables:
|
|
|
-- `DB_URL`, `DB_USER`, `DB_PASSWORD`: Database connection
|
|
|
-- `DEV_MODE`: Enable/disable development mode (0=production, 1=development)
|
|
|
-- `URL_BASE`, `URL_BASE_ADMIN`: Base URLs for API endpoints
|
|
|
-- `UPLOAD_BASE_PATH`: File upload directory
|
|
|
-- Payment provider credentials (BSN, JD, Allinpay, HYG)
|
|
|
+关键环境变量:
|
|
|
+- `DB_URL`, `DB_USER`, `DB_PASSWORD`: 数据库连接
|
|
|
+- `DEV_MODE`: 启用/禁用开发模式(0=生产环境,1=开发环境)
|
|
|
+- `URL_BASE`, `URL_BASE_ADMIN`: API端点的基础URL
|
|
|
+- `UPLOAD_BASE_PATH`: 文件上传目录
|
|
|
+- 支付提供商凭证(BSN, JD, Allinpay, HYG)
|
|
|
|
|
|
## Security Considerations
|
|
|
|
|
|
-The application integrates with multiple payment and blockchain services:
|
|
|
-- BSN (Blockchain Service Network) for NFT operations
|
|
|
-- Allinpay SDK for payment processing
|
|
|
-- HYG (慧用工) for payment services
|
|
|
-- RSA/AES encryption utilities in `common.utils.hyg`
|
|
|
+应用集成了多个支付和区块链服务:
|
|
|
+- BSN (区块链服务网络) 用于NFT操作
|
|
|
+- Allinpay SDK 用于支付处理
|
|
|
+- HYG (慧用工) 用于支付服务
|
|
|
+- `common.utils.hyg` 中的RSA/AES加密工具
|
|
|
|
|
|
## Database Setup
|
|
|
|
|
|
-Use Docker to set up MySQL:
|
|
|
+使用Docker设置MySQL:
|
|
|
```bash
|
|
|
-# Create network
|
|
|
+# 创建网络
|
|
|
docker network create dalian-nft-network
|
|
|
|
|
|
-# Run MySQL container
|
|
|
+# 运行MySQL容器
|
|
|
docker run -d --name mysql-container --network dalian-nft-network \
|
|
|
-p 3306:3306 -v /path/to/data:/var/lib/mysql \
|
|
|
-e MYSQL_ROOT_PASSWORD=your_password \
|
|
|
@@ -117,9 +117,9 @@ docker run -d --name mysql-container --network dalian-nft-network \
|
|
|
|
|
|
## Development Notes
|
|
|
|
|
|
-- Main application entry point: `common.jfinal.AppConfig.main()`
|
|
|
-- Server runs on port 8888 by default
|
|
|
-- Uses Maven Shade plugin to create fat JAR with all dependencies
|
|
|
-- CORS handling configured via `AllCorsHandler`
|
|
|
-- Global interceptors handle exceptions, validation, and role-based access
|
|
|
-- SQL logging can be enabled via `arp.setShowSql(true)` in AppConfig
|
|
|
+- 主应用入口点: `common.jfinal.AppConfig.main()`
|
|
|
+- 服务器默认运行在8888端口
|
|
|
+- 使用Maven Shade插件创建包含所有依赖的fat JAR
|
|
|
+- CORS处理通过 `AllCorsHandler` 配置
|
|
|
+- 全局拦截器处理异常、验证和基于角色的访问控制
|
|
|
+- 在AppConfig中可通过 `arp.setShowSql(true)` 启用SQL日志
|