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:
2025-12-26 10:54:01 +08:00
parent f8d116f9a3
commit 2d9a9c3668
19 changed files with 1379 additions and 1329 deletions

View File

@@ -79,7 +79,7 @@ server:
app:
# 前端访问地址用于生成商品详情页URL等
frontend:
url: http://localhost:3000
url: http://175.178.252.59:3000
# 阿里云OSS相关配置所有环境通用
aliyun:
@@ -111,9 +111,9 @@ paypal:
mode: sandbox
# 是否启用PayPal支付
enabled: true
# Webhook URL内网穿透公网地址 + 回调接口路径
# Webhook URL服务器公网地址
# 注意需要在PayPal控制台配置此URL
webhook-url: https://2646b437.r33.cpolar.top/api/paypal/webhook
webhook-url: http://175.178.252.59:8082/api/paypal/webhook
# Webhook ID从PayPal控制台获取用于验证Webhook签名
webhook-id: 0SX6117212808615P

View File

@@ -60,6 +60,22 @@ spring:
config:
multi-statement-allow: true
# 服务器配置
server:
port: ${server.port:8082}
servlet:
context-path: /
multipart:
max-file-size: 10MB
max-request-size: 50MB
file-size-threshold: 2MB
# 应用配置
app:
# 前端访问地址
frontend:
url: ${app.frontend.url:http://175.178.252.59:3000}
# PingPong支付配置生产环境
pingpong:
client-id: ${pingpong.client-id}
@@ -71,13 +87,20 @@ pingpong:
enabled: false
# PayPal支付配置生产环境
# 注意:当前为测试环境,使用沙箱凭证
# 正式环境需要替换为生产环境的Client ID和Secret
paypal:
# PayPal Client IDAPI密钥- 从环境变量或配置中心获取
client-id: AdGYUZpvLuHR30dybOApvM-RNB1pVKtd74SVfh-6TK52xV-1JEBddHVMCWuDdyyHri4DXd4kABBi7Icb
# PayPal Client Secret密钥- 从环境变量或配置中心获取
client-secret: ENblspyRmwsOU_PWFurlhEYUF5Da6aYKl0pjK4ehm7p3R5aSqvbpaF_YsIIs8v0ty1c9WJu15XP-Fe_1
# 环境模式sandbox沙箱或 production生产
# 当前为测试环境使用sandbox
mode: sandbox
# 是否启用PayPal支付
enabled: true
# Webhook URL部署时请修改为服务器的公网地址
webhook-url: ${paypal.webhook-url:https://your-domain.com/api/paypal/webhook}
# Webhook ID从PayPal控制台获取
webhook-id: ${paypal.webhook-id:}