Files
kami_backend/internal/consts/jd_cookie.go
danial bc2d58753b feat(jd_cookie):重构订单创建逻辑并优化相关模型
- 新增 CreateOrderReq 结构体用于统一订单创建参数- 修改 CreateOrder 方法签名,使用结构体传参替代多个参数
- 更新 jd_cookie 相关枚举值,增加 JdCookieStatusUnknown 状态
- 调整 OrderInfo 和 JdOrderInfo 模型字段,增强数据一致性
-优化订单与京东订单关联逻辑,移除冗余的 CurrentOrderId 字段
- 移除 ShouldExtractCard 方法,改为内部私有方法 shouldExtractCard- 精简 Callback 方法参数,移除不必要的 userOrderId 和 amount 参数
- 修复订单历史记录中订单号关联问题,直接使用 orderId 字段查询
- 更新控制器层参数传递方式,适配新的服务层接口定义
- 调整卡密提取逻辑,去除对用户订单实体的依赖
- 完善订单状态检查机制,提高卡密提取安全性
- 优化数据库查询逻辑,减少不必要的关联查询操作
2025-10-18 14:13:40 +08:00

200 lines
7.0 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 consts
// ====================================================================================
// 京东Cookie管理模块常量定义
// ====================================================================================
// JdCookieStatus Cookie账户状态枚举
type JdCookieStatus int
const (
JdCookieStatusUnknown JdCookieStatus = 0 // 未知状态(用于删除等场景)
JdCookieStatusNormal JdCookieStatus = 1 // 正常
JdCookieStatusSuspend JdCookieStatus = 2 // 暂停
JdCookieStatusExpired JdCookieStatus = 3 // 失效
)
// JdCookieStatusText Cookie状态文本映射
var JdCookieStatusText = map[JdCookieStatus]string{
JdCookieStatusNormal: "正常",
JdCookieStatusSuspend: "暂停",
JdCookieStatusExpired: "失效",
JdCookieStatusUnknown: "未知",
}
// JdOrderStatus 京东订单状态枚举
type JdOrderStatus int
const (
JdOrderStatusPending JdOrderStatus = 1 // 待支付
JdOrderStatusPaid JdOrderStatus = 2 // 已支付
JdOrderStatusSent JdOrderStatus = 3 // 已发货
JdOrderStatusExpired JdOrderStatus = 4 // 已过期
JdOrderStatusCanceled JdOrderStatus = 5 // 已取消
JdOrderStatusCkFailed JdOrderStatus = 6 // Cookie账号Ck失败
)
// JdOrderStatusText 京东订单状态文本映射
var JdOrderStatusText = map[JdOrderStatus]string{
JdOrderStatusPending: "待支付",
JdOrderStatusPaid: "已支付",
JdOrderStatusExpired: "已过期",
JdOrderStatusCanceled: "已取消",
JdOrderStatusCkFailed: "Ck失败",
JdOrderStatusSent: "已发货",
}
// OrderStatus 订单状态枚举(与京东订单状态相同)
type OrderStatus int
const (
OrderStatusPending OrderStatus = 1 // 待支付
OrderStatusPaid OrderStatus = 2 // 已支付
OrderStatusExpired OrderStatus = 3 // 已过期
OrderStatusCanceled OrderStatus = 4 // 已取消
OrderStatusCkFailed OrderStatus = 5 // Cookie账号Ck失败
)
// OrderStatusText 订单状态文本映射
var OrderStatusText = map[OrderStatus]string{
OrderStatusPending: "待支付",
OrderStatusPaid: "已支付",
OrderStatusExpired: "已过期",
OrderStatusCanceled: "已取消",
OrderStatusCkFailed: "cookie失效",
}
// ====================================================================================
// 变更类型常量定义
// ====================================================================================
// CookieChangeType Cookie变更类型
type CookieChangeType string
const (
CookieChangeTypeCreate CookieChangeType = "create" // 创建
CookieChangeTypeSuspend CookieChangeType = "suspend" // 暂停
CookieChangeTypeResume CookieChangeType = "resume" // 恢复
CookieChangeTypeFail CookieChangeType = "fail" // 失败
CookieChangeTypeUse CookieChangeType = "use" // 使用
CookieChangeTypeRefreshFail CookieChangeType = "refresh fail" // 刷新失败
CookieChangeTypeReplaced CookieChangeType = "replaced" // 被替换(新增)
CookieChangeTypeDelete CookieChangeType = "delete" // 删除
CookieChangeTypeUpdate CookieChangeType = "update" // 更新
)
// JdOrderChangeType 京东订单变更类型
type JdOrderChangeType string
const (
JdOrderChangeTypeCreate JdOrderChangeType = "create" // 创建
JdOrderChangeTypeBind JdOrderChangeType = "bind" // 绑定
JdOrderChangeTypeUnbind JdOrderChangeType = "unbind" // 解绑
JdOrderChangeTypePay JdOrderChangeType = "pay" // 支付
JdOrderChangeTypeExpire JdOrderChangeType = "expire" // 过期
JdOrderChangeTypeInvalid JdOrderChangeType = "invalid" // 失效(新增)
JdOrderChangeTypeSend JdOrderChangeType = "send" // 发货
JdOrderChangeTypeReplace JdOrderChangeType = "replace" // 换绑
)
// JdOrderChangeTypeText 京东订单变更类型文本映射
var JdOrderChangeTypeText = map[JdOrderChangeType]string{
JdOrderChangeTypeCreate: "创建",
JdOrderChangeTypeBind: "绑定",
JdOrderChangeTypeUnbind: "解绑",
JdOrderChangeTypePay: "支付",
JdOrderChangeTypeExpire: "过期",
JdOrderChangeTypeInvalid: "失效",
JdOrderChangeTypeSend: "发货",
JdOrderChangeTypeReplace: "换绑",
}
// OrderChangeType 订单变更类型
type OrderChangeType string
const (
OrderChangeTypeCreate OrderChangeType = "create" // 创建
OrderChangeTypePay OrderChangeType = "pay" // 支付
OrderChangeTypeExpire OrderChangeType = "expire" // 过期
OrderChangeTypeRebind OrderChangeType = "rebind" // 重新绑定
OrderChangeTypeCkFailed OrderChangeType = "ck_failed" // Cookie账号Ck失败
)
// OrderChangeTypeText 订单变更类型文本映射
var OrderChangeTypeText = map[OrderChangeType]string{
OrderChangeTypeCreate: "创建",
OrderChangeTypePay: "支付",
OrderChangeTypeExpire: "过期",
OrderChangeTypeRebind: "重新绑定",
OrderChangeTypeCkFailed: "cookie失败",
}
// ====================================================================================
// 业务配置常量
// ====================================================================================
const (
// JdCookieMaxFailureCount Cookie最大失败次数超过后标记为失效
JdCookieMaxFailureCount = 3
// JdCookieSuspendDuration Cookie暂停时长分钟
JdCookieSuspendDuration = 10
// JdOrderExpireDuration 京东订单过期时间(小时)
JdOrderExpireDuration = 24
// WxPayUrlExpireDuration 微信支付链接过期时间(分钟)
WxPayUrlExpireDuration = 3
// OrderReuseTimeout 订单复用超时时间(分钟)
OrderReuseTimeout = 15
// JdOrderReuseTimeout 京东订单复用超时时间(分钟)
JdOrderReuseTimeout = 30
// CookieRotationKey Redis中Cookie轮询索引的键名
CookieRotationKey = "jd_cookie:rotation:index"
// CookieAvailableKey Redis中可用Cookie列表的键名
CookieAvailableKey = "jd_cookie:available:list"
// OrderLockKeyPrefix 订单创建锁的键名前缀
OrderLockKeyPrefix = "jd_cookie:order:lock:"
// CookieLockKeyPrefix Cookie分配锁的键名前缀
CookieLockKeyPrefix = "jd_cookie:cookie:lock:"
)
// ====================================================================================
// 错误码常量
// ====================================================================================
const (
// ErrCodeCookieNotFound Cookie不存在
ErrCodeCookieNotFound = "COOKIE_NOT_FOUND"
// ErrCodeCookieNotAvailable 没有可用的Cookie
ErrCodeCookieNotAvailable = "COOKIE_NOT_AVAILABLE"
// ErrCodeOrderNotFound 订单不存在
ErrCodeOrderNotFound = "ORDER_NOT_FOUND"
// ErrCodeOrderAlreadyExists 订单已存在
ErrCodeOrderAlreadyExists = "ORDER_ALREADY_EXISTS"
// ErrCodeJdOrderNotFound 京东订单不存在
ErrCodeJdOrderNotFound = "JD_ORDER_NOT_FOUND"
// ErrCodePaymentUrlExpired 支付链接已过期
ErrCodePaymentUrlExpired = "PAYMENT_URL_EXPIRED"
// ErrCodeOrderCannotReuse 订单无法复用
ErrCodeOrderCannotReuse = "ORDER_CANNOT_REUSE"
// ErrCodeCookieAlreadyExpired Cookie已失效
ErrCodeCookieAlreadyExpired = "COOKIE_ALREADY_EXPIRED"
// ErrCodeSystemBusy 系统繁忙
ErrCodeSystemBusy = "SYSTEM_BUSY"
)