All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m36s
- 新增订单管理、支付回调、购买验证等核心服务 - 实现订单、订单项目的数据存储层和 API 接口 - 添加订单数据库迁移和 DTO 定义 - 更新 API 文档和路由配置 - 同步 3 个新规范到主规范库(订单管理、订单支付、套餐购买验证) - 完成 OpenSpec 变更归档 Ultraworked with Sisyphus
75 lines
4.8 KiB
Go
75 lines
4.8 KiB
Go
package dto
|
|
|
|
import "time"
|
|
|
|
type CreateOrderRequest 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列表"`
|
|
}
|
|
|
|
type OrderListRequest struct {
|
|
Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码"`
|
|
PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量"`
|
|
PaymentStatus *int `json:"payment_status" query:"payment_status" validate:"omitempty,min=1,max=4" minimum:"1" maximum:"4" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
|
OrderType string `json:"order_type" query:"order_type" validate:"omitempty,oneof=single_card device" description:"订单类型 (single_card:单卡购买, device:设备购买)"`
|
|
OrderNo string `json:"order_no" query:"order_no" validate:"omitempty,max=30" maxLength:"30" description:"订单号(精确查询)"`
|
|
StartTime *time.Time `json:"start_time" query:"start_time" description:"创建时间起始"`
|
|
EndTime *time.Time `json:"end_time" query:"end_time" description:"创建时间结束"`
|
|
}
|
|
|
|
type PayOrderRequest struct {
|
|
PaymentMethod string `json:"payment_method" validate:"required,oneof=wallet wechat alipay" required:"true" description:"支付方式 (wallet:钱包支付, wechat:微信支付, alipay:支付宝支付)"`
|
|
}
|
|
|
|
type OrderItemResponse struct {
|
|
ID uint `json:"id" description:"明细ID"`
|
|
PackageID uint `json:"package_id" description:"套餐ID"`
|
|
PackageName string `json:"package_name" description:"套餐名称"`
|
|
Quantity int `json:"quantity" description:"数量"`
|
|
UnitPrice int64 `json:"unit_price" description:"单价(分)"`
|
|
Amount int64 `json:"amount" description:"小计金额(分)"`
|
|
}
|
|
|
|
type OrderResponse struct {
|
|
ID uint `json:"id" description:"订单ID"`
|
|
OrderNo string `json:"order_no" description:"订单号"`
|
|
OrderType string `json:"order_type" description:"订单类型 (single_card:单卡购买, device:设备购买)"`
|
|
BuyerType string `json:"buyer_type" description:"买家类型 (personal:个人客户, agent:代理商)"`
|
|
BuyerID uint `json:"buyer_id" description:"买家ID"`
|
|
IotCardID *uint `json:"iot_card_id,omitempty" description:"IoT卡ID"`
|
|
DeviceID *uint `json:"device_id,omitempty" description:"设备ID"`
|
|
TotalAmount int64 `json:"total_amount" description:"订单总金额(分)"`
|
|
PaymentMethod string `json:"payment_method,omitempty" description:"支付方式 (wallet:钱包支付, wechat:微信支付, alipay:支付宝支付)"`
|
|
PaymentStatus int `json:"payment_status" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
|
PaymentStatusText string `json:"payment_status_text" description:"支付状态文本"`
|
|
PaidAt *time.Time `json:"paid_at,omitempty" description:"支付时间"`
|
|
CommissionStatus int `json:"commission_status" description:"佣金状态 (1:待计算, 2:已计算)"`
|
|
CommissionConfigVersion int `json:"commission_config_version" description:"佣金配置版本"`
|
|
Items []*OrderItemResponse `json:"items" description:"订单明细列表"`
|
|
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
|
UpdatedAt time.Time `json:"updated_at" description:"更新时间"`
|
|
}
|
|
|
|
type OrderListResponse struct {
|
|
List []*OrderResponse `json:"list" description:"订单列表"`
|
|
Total int64 `json:"total" description:"总数"`
|
|
Page int `json:"page" description:"当前页码"`
|
|
PageSize int `json:"page_size" description:"每页数量"`
|
|
TotalPages int `json:"total_pages" description:"总页数"`
|
|
}
|
|
|
|
type GetOrderRequest struct {
|
|
ID uint `path:"id" description:"订单ID" required:"true"`
|
|
}
|
|
|
|
type CancelOrderRequest struct {
|
|
ID uint `path:"id" description:"订单ID" required:"true"`
|
|
}
|
|
|
|
type PayOrderParams struct {
|
|
ID uint `path:"id" description:"订单ID" required:"true"`
|
|
PayOrderRequest
|
|
}
|