Files
junhong_cmp_fiber/internal/model/dto/recharge.go
huang 2ef8b8a705
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
fix: 修复分页字段/角色DTO/套餐详情/批量分配Bug,新增C端测试登录接口和Hurl价格验证测试
- 修复B-2:27个分页DTO字段名统一(list→items, page_size→size,删除total_pages)
- 修复B-1:角色接口统一返回DTO(id小写,消除GORM大写字段名)
- 修复C-1:套餐详情接口(GET /packages/:id)补充代理佣金字段
- 修复C-2:批量分配已存在记录由500改为静默跳过
- 修复C-3:创建系列授权响应在事务提交后构建,packages数组不再为空
- 新增C端开发测试登录接口(POST /api/c/v1/auth/dev-login,仅logging.development=true时生效)
- 新增Hurl测试:card-price-verification-flow.hurl(导入卡→分配→C端价格验证)
- 新增测试Excel数据文件和dev.env测试变量
2026-03-31 09:54:08 +08:00

107 lines
4.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package dto
import "time"
// CreateRechargeRequest 创建充值订单请求
type CreateRechargeRequest struct {
// 资源类型: iot_card-物联网卡 device-设备
ResourceType string `json:"resource_type" validate:"required,oneof=iot_card device" description:"资源类型"`
// 资源ID卡ID或设备ID
ResourceID uint `json:"resource_id" validate:"required,min=1" description:"资源ID"`
// 充值金额(分)
Amount int64 `json:"amount" validate:"required,min=100,max=10000000" description:"充值金额(分)"`
// 支付方式: wechat-微信 alipay-支付宝
PaymentMethod string `json:"payment_method" validate:"required,oneof=wechat alipay" description:"支付方式"`
}
// RechargeResponse 充值订单响应
type RechargeResponse struct {
// 充值订单ID
ID uint `json:"id" description:"充值订单ID"`
// 充值订单号
RechargeNo string `json:"recharge_no" description:"充值订单号"`
// 用户ID
UserID uint `json:"user_id" description:"用户ID"`
// 钱包ID
WalletID uint `json:"wallet_id" description:"钱包ID"`
// 充值金额(分)
Amount int64 `json:"amount" description:"充值金额(分)"`
// 支付方式
PaymentMethod string `json:"payment_method" description:"支付方式"`
// 支付渠道
PaymentChannel *string `json:"payment_channel,omitempty" description:"支付渠道"`
// 第三方支付交易号
PaymentTransactionID *string `json:"payment_transaction_id,omitempty" description:"第三方支付交易号"`
// 充值状态: 1-待支付 2-已支付 3-已完成 4-已关闭 5-已退款
Status int `json:"status" description:"充值状态"`
// 状态文本
StatusText string `json:"status_text" description:"状态文本"`
// 支付时间
PaidAt *time.Time `json:"paid_at,omitempty" description:"支付时间"`
// 完成时间
CompletedAt *time.Time `json:"completed_at,omitempty" description:"完成时间"`
// 创建时间
CreatedAt time.Time `json:"created_at" description:"创建时间"`
// 更新时间
UpdatedAt time.Time `json:"updated_at" description:"更新时间"`
}
// RechargeListRequest 充值订单列表请求
type RechargeListRequest struct {
// 页码从1开始
Page int `json:"page" form:"page" description:"页码"`
// 每页数量
PageSize int `json:"page_size" form:"page_size" description:"每页数量"`
// 钱包ID筛选
WalletID *uint `json:"wallet_id" form:"wallet_id" description:"钱包ID"`
// 状态筛选
Status *int `json:"status" form:"status" description:"状态"`
// 开始时间
StartTime *time.Time `json:"start_time" form:"start_time" description:"开始时间"`
// 结束时间
EndTime *time.Time `json:"end_time" form:"end_time" description:"结束时间"`
}
// RechargeListResponse 充值订单列表响应
type RechargeListResponse struct {
List []*RechargeResponse `json:"items" description:"列表数据"`
Total int64 `json:"total" description:"总记录数"`
Page int `json:"page" description:"当前页码"`
PageSize int `json:"size" description:"每页数量"`
}
// RechargeCheckRequest 充值预检请求
type RechargeCheckRequest struct {
// 资源类型: iot_card-物联网卡 device-设备
ResourceType string `json:"resource_type" query:"resource_type" validate:"required,oneof=iot_card device" description:"资源类型"`
// 资源ID卡ID或设备ID
ResourceID uint `json:"resource_id" query:"resource_id" validate:"required,min=1" description:"资源ID"`
}
// RechargeCheckResponse 充值预检响应
type RechargeCheckResponse struct {
// 是否需要强充
NeedForceRecharge bool `json:"need_force_recharge" description:"是否需要强充"`
// 强充金额(分)
ForceRechargeAmount int64 `json:"force_recharge_amount" description:"强充金额(分)"`
// 触发类型: single_recharge-单次充值 accumulated_recharge-累计充值
TriggerType string `json:"trigger_type" description:"触发类型"`
// 最小充值金额(分)
MinAmount int64 `json:"min_amount" description:"最小充值金额(分)"`
// 最大充值金额(分)
MaxAmount int64 `json:"max_amount" description:"最大充值金额(分)"`
// 当前累计充值金额(分)
CurrentAccumulated int64 `json:"current_accumulated" description:"当前累计充值金额(分)"`
// 佣金触发阈值(分)
Threshold int64 `json:"threshold" description:"佣金触发阈值(分)"`
// 提示信息
Message string `json:"message" description:"提示信息"`
// 一次性佣金是否已发放
FirstCommissionPaid bool `json:"first_commission_paid" description:"一次性佣金是否已发放"`
}
// GetRechargeRequest 获取充值订单详情请求
type GetRechargeRequest struct {
ID uint `path:"id" description:"充值订单ID" required:"true"`
}