feat(config): 更新开发和生产环境配置
- 修改开发环境前端URL从localhost改为公网地址 - 更新PayPal Webhook URL使用公网地址配置 - 在生产环境配置中添加服务器端口和应用配置 - 添加PayPal支付配置的详细注释说明 - 简化ERP用户管理API文档格式,移除冗余说明 - 移除PayPal订单生命周期和Webhook指南文档 - 优化PayPal Webhook配置文档内容 fix(order): 修复订单创建和库存管理并发问题 - 实现SELECT FOR UPDATE锁定SKU记录防止超卖 - 添加库存扣减原子操作确保并发安全 - 简化日志输出,移除冗余调试信息 - 添加订单取消功能并恢复库存 - 优化订单查询和状态更新逻辑 feat(mapper): 添加库存扣减和恢复功能 - 实现deductStock方法用于扣减库存 - 添加restoreStock方法用于恢复库存 - 实现selectByIdForUpdate方法用于悲观锁 - 为Mapper接口添加必要的注解支持
This commit is contained in:
121
mt-pay/README.md
121
mt-pay/README.md
@@ -1,41 +1,15 @@
|
||||
# MT Pay - 支付系统
|
||||
|
||||
## 项目简介
|
||||
|
||||
面向东南亚地区的电商支付系统,支持PayPal支付、商品管理、订单管理、货币转换等功能。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- ✅ PayPal支付集成(创建订单、捕获支付、Webhook处理)
|
||||
- ✅ 商品管理(商品、SKU、商品链接)
|
||||
- ✅ 客户订单管理(支持东南亚地址格式)
|
||||
- ✅ 货币转换(实时汇率,支持多币种)
|
||||
- ✅ 百度翻译集成(商品名称、SKU名称自动翻译)
|
||||
- ✅ 订单状态管理
|
||||
- ✅ 支付记录管理
|
||||
|
||||
## 技术栈
|
||||
|
||||
- Spring Boot 4.0.0
|
||||
- MyBatis-Plus
|
||||
- MySQL 5.7+
|
||||
- Jackson (JSON处理)
|
||||
- Lombok
|
||||
- RestTemplate
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 数据库配置
|
||||
|
||||
执行数据库脚本(按顺序):
|
||||
```sql
|
||||
-- 1. 商品相关表
|
||||
source database/customer_order_schema.sql;
|
||||
|
||||
-- 2. 货币转换字段
|
||||
source database/customer_order_currency_update.sql;
|
||||
|
||||
-- 3. 地址字段(混合方案)
|
||||
source database/customer_order_address_optimized.sql;
|
||||
```
|
||||
|
||||
@@ -53,13 +27,6 @@ source database/customer_order_address_optimized.sql;
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
或
|
||||
|
||||
```bash
|
||||
mvn clean package
|
||||
java -jar target/mt-pay-0.0.1-SNAPSHOT.jar
|
||||
```
|
||||
|
||||
### 4. 访问地址
|
||||
|
||||
- 后端API: http://localhost:8082/api
|
||||
@@ -69,89 +36,35 @@ java -jar target/mt-pay-0.0.1-SNAPSHOT.jar
|
||||
## 核心API
|
||||
|
||||
### 商品管理
|
||||
- `POST /api/product` - 创建商品
|
||||
- `GET /api/product/{id}` - 获取商品详情
|
||||
- `GET /api/product/link/{linkCode}` - 通过链接码获取商品
|
||||
- `POST /api/product` - 创建商品
|
||||
- `POST /api/product/query` - 查询商品列表(分页)
|
||||
- `PUT /api/product/{id}/off-shelf` - 下架商品
|
||||
|
||||
### 订单管理
|
||||
- `POST /api/order` - 创建客户订单
|
||||
- `GET /api/order/{orderNo}` - 获取订单详情
|
||||
- `POST /api/order/calculate-currency-conversion` - 计算货币转换
|
||||
- `POST /api/order/query` - 查询订单列表(分页)
|
||||
|
||||
### PayPal支付
|
||||
- `POST /api/paypal/order` - 创建PayPal订单
|
||||
- `POST /api/paypal/capture` - 捕获支付
|
||||
- `POST /api/paypal/orders` - 创建PayPal订单
|
||||
- `POST /api/paypal/orders/{orderId}/capture` - 捕获支付
|
||||
- `POST /api/paypal/webhook` - Webhook回调
|
||||
|
||||
## 项目结构
|
||||
### ERP用户
|
||||
- `POST /api/erp/user/register` - 用户注册
|
||||
- `POST /api/erp/user/login` - 用户登录
|
||||
- `GET /api/erp/user/info` - 获取用户信息
|
||||
|
||||
```
|
||||
com.mtkj.mtpay/
|
||||
├── config/ # 配置类(PayPal、百度翻译、数据源等)
|
||||
├── controller/ # REST控制器
|
||||
├── dto/ # 数据传输对象
|
||||
│ ├── request/ # 请求DTO
|
||||
│ └── response/ # 响应DTO
|
||||
├── entity/ # 实体类
|
||||
├── exception/ # 异常处理
|
||||
├── mapper/ # MyBatis Mapper
|
||||
├── service/ # 业务服务层
|
||||
│ └── impl/ # 服务实现
|
||||
└── util/ # 工具类
|
||||
```
|
||||
## 技术栈
|
||||
|
||||
## 核心服务
|
||||
|
||||
- **ProductService**: 商品管理服务
|
||||
- **CustomerOrderService**: 客户订单服务
|
||||
- **PayPalService**: PayPal支付服务
|
||||
- **PayPalWebhookService**: PayPal Webhook处理服务
|
||||
- **ExchangeRateService**: 汇率转换服务
|
||||
- **BaiduTranslatorUtils**: 百度翻译工具
|
||||
|
||||
## 配置说明
|
||||
|
||||
### PayPal配置
|
||||
```yaml
|
||||
paypal:
|
||||
client-id: your-client-id
|
||||
client-secret: your-client-secret
|
||||
mode: sandbox # sandbox 或 production
|
||||
enabled: true
|
||||
```
|
||||
|
||||
### 百度翻译配置
|
||||
```yaml
|
||||
baidu:
|
||||
translator:
|
||||
app-id: your-app-id
|
||||
securityKey: your-security-key
|
||||
transApiHost: https://fanyi-api.baidu.com/api/trans/vip/translate
|
||||
```
|
||||
|
||||
## 数据库表
|
||||
|
||||
- `mt_product` - 商品表
|
||||
- `mt_product_sku` - SKU表
|
||||
- `mt_product_link` - 商品链接表
|
||||
- `customer_order` - 客户订单表
|
||||
- `payment_order` - 支付订单表
|
||||
- `payment_record` - 支付记录表
|
||||
|
||||
## 地址字段设计
|
||||
|
||||
采用混合方案:
|
||||
- **基础字段**(独立列):国家、城市、州/省、邮编、详细地址1/2
|
||||
- **特殊字段**(JSON存储):各国特殊字段(组屋号、Barangay、泰文地址等)
|
||||
|
||||
详见:`database/customer_order_address_optimized.sql`
|
||||
- Spring Boot 4.0.0
|
||||
- MyBatis-Plus
|
||||
- MySQL 5.7+
|
||||
- Vue 3 + Element Plus
|
||||
|
||||
## 相关文档
|
||||
|
||||
- `SYSTEM_ARCHITECTURE.md` - 系统架构文档
|
||||
- `../PAYPAL_WEBHOOK_GUIDE.md` - PayPal Webhook配置指南
|
||||
- `../PAYPAL_TEST_ACCOUNT.md` - PayPal测试账号说明
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT
|
||||
- `PAYPAL_WEBHOOK_SETUP.md` - PayPal Webhook配置
|
||||
- `ERP_USER_API.md` - ERP用户API文档
|
||||
|
||||
Reference in New Issue
Block a user