Files
kami_backend/api/camel_oil/v1/token.go
danial 3588bf9af6 feat(camel_oil): 支持Token管理与卡密绑定功能
- 新增CamelOilToken和CamelOilCardBinding数据库表,实现Token及卡密绑定记录管理
- 在service层增加Token的创建、查询、更新、删除及分页功能
- 实现卡密与Token绑定的业务逻辑,支持基于Token的卡密管理
- 在API层新增Token和卡密绑定相关接口:创建Token、获取Token详情、删除Token、列出Token及根据Token查询绑定卡密
- camel_oil_api新增绑卡接口,支持绑卡状态分类及错误处理
- 在定时任务中增加卡密绑定任务,实现自动处理已支付订单的卡密绑定
- 优化订单提交及支付流程,包含日志调整和请求参数随机扰动
- 统一调整camel_oil模块多控制器实现,完成账号状态查询及订单相关接口实现
- 注册更多camel_oil定时任务,包括订单支付检查、账号日重置和待回调订单处理任务
2025-11-23 00:08:35 +08:00

107 lines
4.3 KiB
Go

package v1
import (
"kami/api/commonApi"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"github.com/shopspring/decimal"
)
// ====================================================================================
// Token 管理 API 请求/响应结构
// ====================================================================================
// CreateTokenReq 创建 Token 请求
type CreateTokenReq struct {
g.Meta `path:"/token/create" tags:"JD V2 Token Management" method:"post" summary:"创建 Token"`
TokenName string `json:"tokenName" v:"required" description:"Token名称"`
TokenValue string `json:"tokenValue" v:"required" description:"Token值"`
Phone string `json:"phone" description:"绑定的手机号"`
Remark string `json:"remark" description:"备注"`
}
// CreateTokenRes 创建 Token 响应
type CreateTokenRes struct {
TokenId int64 `json:"tokenId" description:"Token ID"`
}
// GetTokenReq 获取 Token 信息请求
type GetTokenReq struct {
g.Meta `path:"/token/get" tags:"JD V2 Token Management" method:"get" summary:"获取 Token 信息"`
TokenId int64 `json:"tokenId" v:"required" description:"Token ID"`
}
// TokenInfo Token 信息
type TokenInfo struct {
Id int64 `json:"id" description:"Token ID"`
TokenName string `json:"tokenName" description:"Token名称"`
TokenValue string `json:"tokenValue" description:"Token值"`
Phone string `json:"phone" description:"绑定的手机号"`
Status int `json:"status" description:"状态"`
BindCount int `json:"bindCount" description:"已绑定卡密数量"`
TotalBindAmount decimal.Decimal `json:"totalBindAmount" description:"累计绑定金额"`
LastBindAt *gtime.Time `json:"lastBindAt" description:"最后绑定时间"`
LastUsedAt *gtime.Time `json:"lastUsedAt" description:"最后使用时间"`
Remark string `json:"remark" description:"备注"`
CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"`
}
// GetTokenRes 获取 Token 信息响应
type GetTokenRes struct {
Token TokenInfo `json:"token" description:"Token信息"`
}
// ListTokensRes 列出 Token 响应
type ListTokensRes struct {
commonApi.CommonPageRes[TokenInfo]
}
// ListTokensReq 列出 Token 请求
type ListTokensReq struct {
g.Meta `path:"/token/list" tags:"JD V2 Token Management" method:"get" summary:"列出 Token"`
commonApi.CommonPageReq
TokenName string `json:"tokenName" description:"Token名称"`
Status int `json:"status" description:"状态"`
}
// DeleteTokenReq 删除 Token 请求
type DeleteTokenReq struct {
g.Meta `path:"/token/delete" tags:"JD V2 Token Management" method:"post" summary:"删除 Token"`
TokenId int64 `json:"tokenId" v:"required" description:"Token ID"`
}
// DeleteTokenRes 删除 Token 响应
type DeleteTokenRes struct {
Message string `json:"message" description:"信息"`
}
// ====================================================================================
// 卡密绑定 API 请求/响应结构
// ====================================================================================
// CardBindingInfo 卡密绑定信息
type CardBindingInfo struct {
Id int64 `json:"id" description:"绑定记录ID"`
TokenId int64 `json:"tokenId" description:"Token ID"`
TokenName string `json:"tokenName" description:"Token名称"`
OrderId int64 `json:"orderId" description:"订单ID"`
CardNumber string `json:"cardNumber" description:"卡号"`
CardPassword string `json:"cardPassword" description:"卡密"`
Amount decimal.Decimal `json:"amount" description:"绑定金额"`
CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"`
}
// ListCardBindingsByTokenReq 根据 tokenId 查询绑卡记录请求
type ListCardBindingsByTokenReq struct {
g.Meta `path:"/card-binding/list-by-token" tags:"JD V2 Token Management" method:"get" summary:"查询 Token 绑卡记录"`
commonApi.CommonPageReq
TokenId int64 `json:"tokenId" v:"required" description:"Token ID"`
}
// ListCardBindingsByTokenRes 根据 tokenId 查询绑卡记录响应
type ListCardBindingsByTokenRes struct {
commonApi.CommonPageRes[CardBindingInfo]
}