- 修改首页菜单,恢复并增强骆驼token管理模块,增加提前拉单管理入口 - 新增AlipayPrefetchPage处理器,提供提前拉单管理页面数据支持 - 添加对应路由/jd-alipay-prefetch.html - 创建camelOilPrefetch.html页面,嵌入iframe展示提前拉单内容 - 通过token参数和portalHost动态构建iframe地址完成认证和展示
163 lines
5.4 KiB
Markdown
163 lines
5.4 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
This is a Go-based web application called `jhboss` (Kami Boss) - a merchant management and payment gateway system built with the Beego framework. The application handles various aspects of payment processing, merchant management, agent operations, and financial transactions.
|
|
|
|
## Development Commands
|
|
|
|
### Building and Running
|
|
```bash
|
|
# Run the application (development mode)
|
|
go run main.go
|
|
|
|
# Build the application
|
|
go build -o boss main.go
|
|
|
|
# Install dependencies
|
|
go mod tidy
|
|
|
|
# Download dependencies
|
|
go mod download
|
|
```
|
|
|
|
### Testing
|
|
```bash
|
|
# Run all tests
|
|
go test ./...
|
|
|
|
# Run tests in specific package
|
|
go test ./internal/utils/mfa/
|
|
|
|
# Run tests with verbose output
|
|
go test -v ./...
|
|
```
|
|
|
|
### Development Tools
|
|
```bash
|
|
# Format code
|
|
go fmt ./...
|
|
|
|
# Run linter (if golangci-lint is installed)
|
|
golangci-lint run
|
|
|
|
# Vet code for potential issues
|
|
go vet ./...
|
|
```
|
|
|
|
## Architecture
|
|
|
|
### Framework and Structure
|
|
- **Framework**: Beego v2.3.8 (Go web framework)
|
|
- **Database**: MySQL with ORM (Beego ORM)
|
|
- **Cache/Sessions**: Redis (optional, configured in app.conf)
|
|
- **Architecture Pattern**: MVC (Model-View-Controller)
|
|
|
|
### Directory Structure
|
|
```
|
|
├── main.go # Application entry point
|
|
├── internal/
|
|
│ ├── config/ # Configuration management
|
|
│ ├── controllers/ # HTTP request handlers
|
|
│ ├── models/ # Database models and ORM setup
|
|
│ ├── routers/ # Route definitions
|
|
│ ├── service/ # Business logic layer
|
|
│ ├── utils/ # Utility functions and helpers
|
|
│ ├── common/ # Common constants and types
|
|
│ └── datas/ # Data access layer
|
|
├── conf/ # Configuration files
|
|
├── static/ # Static assets (CSS, JS, images)
|
|
├── views/ # Template files
|
|
└── logs/ # Application logs
|
|
```
|
|
|
|
### Key Components
|
|
|
|
#### Controllers (`internal/controllers/`)
|
|
- **baseController**: Common base functionality for all controllers
|
|
- **loginController**: Authentication and session management
|
|
- **getController**: Data retrieval operations
|
|
- **addController**: Data creation operations
|
|
- **updateController**: Data modification operations
|
|
- **deleteController**: Data deletion operations
|
|
- **camelController**: Camel payment platform integration
|
|
- **pageController**: Page rendering and navigation
|
|
|
|
#### Models (`internal/models/`)
|
|
Organized by domain:
|
|
- **accounts/**: Account management and history
|
|
- **agent/**: Agent information and profit tracking
|
|
- **merchant/**: Merchant deployment and load information
|
|
- **order/**: Order processing, profit, and settlement
|
|
- **payfor/**: Payment processing
|
|
- **road/**: Payment channel management
|
|
- **system/**: System configuration (users, roles, menus, permissions)
|
|
- **notify/**: Notification handling
|
|
- **user/**: User management
|
|
|
|
#### Services (`internal/service/`)
|
|
- **queryService**: Data query operations
|
|
- **updateService**: Data update operations
|
|
- **addService**: Data creation operations
|
|
- **deleteService**: Data deletion operations
|
|
- **sendNotifyMerchantService**: Merchant notification services
|
|
- **token.go**: Token management
|
|
- **summary.go**: Data aggregation and reporting
|
|
|
|
### Configuration
|
|
- **Main Config**: `conf/app.conf` - Contains database, Redis, gateway, and application settings
|
|
- **Environment Variables**: Uses `gatewayAddr` and `portalAddr` environment variables
|
|
- **Dynamic Config**: AES encryption parameters fetched from `kami_backend:12401`
|
|
|
|
### Database Setup
|
|
The application uses MySQL with the following connection details configured in `conf/app.conf`:
|
|
- Host: 127.0.0.1:3306
|
|
- Database: kami
|
|
- The ORM models are auto-registered in `internal/models/init.go`
|
|
|
|
### External Integrations
|
|
- **Gateway Service**: `kami_gateway:12309` - Payment gateway integration
|
|
- **Portal Service**: `127.0.0.1:12400` - User portal integration
|
|
- **Backend Service**: `kami_backend:12401` - Backend API for configuration
|
|
|
|
## Deployment
|
|
|
|
### Docker Development
|
|
```bash
|
|
# Build and run with Docker Compose
|
|
docker-compose -f deploy/docker-compose-local.yaml up -d --build
|
|
|
|
# Production deployment
|
|
docker-compose -f deploy/docker-compose.yaml up -d --build
|
|
```
|
|
|
|
### Docker Configuration
|
|
- Multi-stage build with Go 1.24 builder and Alpine Linux runtime
|
|
- Support for Chinese proxy configuration (`USE_PROXY=1`)
|
|
- Automatic SSL certificate installation for external services
|
|
- Wait-for-it script ensures MySQL is available before startup
|
|
- Application runs on port 12306
|
|
|
|
### Jenkins CI/CD
|
|
- Automated pipeline in `Jenkinsfile` for building and deploying
|
|
- Supports container orchestration and restart functionality
|
|
- Build failures don't block subsequent stages
|
|
|
|
## Key Features
|
|
- Merchant management and deployment
|
|
- Payment channel (road) management
|
|
- Order processing and profit tracking
|
|
- Agent management and commission tracking
|
|
- User authentication with MFA (TOTP)
|
|
- Role-based access control
|
|
- Financial reporting and data export
|
|
- Real-time notifications
|
|
|
|
## Development Notes
|
|
- Application runs on port 12306 by default
|
|
- Logs are written to `./logs/app.log` with daily rotation
|
|
- Session timeout is set to 24 hours
|
|
- Debug mode is enabled in development
|
|
- The codebase includes Chinese comments and variable names |