feat(order): 支持代购订单和强充要求检查
- OrderService 新增代购订单支持 - 强充要求检查(首次购买最低充值) - 代购订单支付限制(无需支付) - 强充金额验证 - 新增 OrderDTO 请求/响应结构 - PurchaseCheckRequest/Response(购买预检) - CreatePurchaseOnBehalfRequest(代购订单创建) - Order 模型新增支付方式 - PaymentMethodOffline(线下支付,仅平台代购使用) - OrderService 依赖注入扩展 - 新增 SeriesAllocationStore、IotCardStore、DeviceStore - 支持强充要求检查逻辑 - 完整的集成测试覆盖(534 行) - 代购订单创建、强充验证、支付限制等场景 Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -72,3 +72,25 @@ type PayOrderParams struct {
|
||||
ID uint `path:"id" description:"订单ID" required:"true"`
|
||||
PayOrderRequest
|
||||
}
|
||||
|
||||
type PurchaseCheckRequest struct {
|
||||
OrderType string `json:"order_type" validate:"required,oneof=single_card device" required:"true" description:"订单类型 (single_card:单卡购买, device:设备购买)"`
|
||||
ResourceID uint `json:"resource_id" validate:"required,min=1" required:"true" description:"资源ID (IoT卡ID或设备ID)"`
|
||||
PackageIDs []uint `json:"package_ids" validate:"required,min=1,max=10,dive,min=1" required:"true" minItems:"1" maxItems:"10" description:"套餐ID列表"`
|
||||
}
|
||||
|
||||
type PurchaseCheckResponse struct {
|
||||
TotalPackageAmount int64 `json:"total_package_amount" description:"套餐总价(分)"`
|
||||
NeedForceRecharge bool `json:"need_force_recharge" description:"是否需要强充"`
|
||||
ForceRechargeAmount int64 `json:"force_recharge_amount" description:"强充金额(分)"`
|
||||
ActualPayment int64 `json:"actual_payment" description:"实际支付金额(分)"`
|
||||
WalletCredit int64 `json:"wallet_credit" description:"钱包到账金额(分)"`
|
||||
Message string `json:"message" description:"提示信息"`
|
||||
}
|
||||
|
||||
type CreatePurchaseOnBehalfRequest struct {
|
||||
OrderType string `json:"order_type" validate:"required,oneof=single_card device" required:"true" description:"订单类型 (single_card:单卡购买, device:设备购买)"`
|
||||
IotCardID *uint `json:"iot_card_id" validate:"required_if=OrderType single_card" description:"IoT卡ID(单卡购买时必填)"`
|
||||
DeviceID *uint `json:"device_id" validate:"required_if=OrderType device" description:"设备ID(设备购买时必填)"`
|
||||
PackageIDs []uint `json:"package_ids" validate:"required,min=1,max=10,dive,min=1" required:"true" minItems:"1" maxItems:"10" description:"套餐ID列表"`
|
||||
}
|
||||
|
||||
@@ -63,9 +63,10 @@ const (
|
||||
|
||||
// 支付方式常量
|
||||
const (
|
||||
PaymentMethodWallet = "wallet" // 钱包支付
|
||||
PaymentMethodWechat = "wechat" // 微信支付
|
||||
PaymentMethodAlipay = "alipay" // 支付宝支付
|
||||
PaymentMethodWallet = "wallet" // 钱包支付
|
||||
PaymentMethodWechat = "wechat" // 微信支付
|
||||
PaymentMethodAlipay = "alipay" // 支付宝支付
|
||||
PaymentMethodOffline = "offline" // 线下支付(仅平台代购使用)
|
||||
)
|
||||
|
||||
// 支付状态常量
|
||||
|
||||
Reference in New Issue
Block a user