Files
kami_backend/internal/consts/jd_cookie.go
danial 2253dc739a feat(jd-cookie):优化订单创建逻辑与状态管理- 新增订单状态 OrderStatusJDOrderFailed用于标识京东订单获取失败
- 新增订单变更类型 OrderChangeTypeJDOrderFailed 用于记录下单失败事件
- 调整订单创建逻辑,支持失败订单重试机制
- 新增 RecordOrderHistoryReq 结构体统一记录订单变更历史参数
- 修改数据库表结构,优化字段类型和索引
- 更新订单创建逻辑,分离本地订单与京东订单创建流程- 增加失败订单重新创建京东订单的处理逻辑
- 调整订单状态检查逻辑,支持更多状态处理
-优化订单历史记录方式,增加备注信息支持
- 更新数据库字符集为 utf8mb4_unicode_ci 提升兼容性
2025-10-18 23:41:31 +08:00

205 lines
7.4 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 (
OrderStatusCreated OrderStatus = 0
OrderStatusPending OrderStatus = 1 // 待支付
OrderStatusPaid OrderStatus = 2 // 已支付
OrderStatusExpired OrderStatus = 3 // 已过期
OrderStatusCanceled OrderStatus = 4 // 已取消
OrderStatusCkFailed OrderStatus = 5 // Cookie账号Ck失败
OrderStatusJDOrderFailed OrderStatus = 6 // 京东订单获取失败
)
// OrderStatusText 订单状态文本映射
var OrderStatusText = map[OrderStatus]string{
OrderStatusPending: "待支付",
OrderStatusPaid: "已支付",
OrderStatusExpired: "已过期",
OrderStatusCanceled: "已取消",
OrderStatusCkFailed: "cookie失效",
OrderStatusJDOrderFailed: "京东订单获取失败",
}
// ====================================================================================
// 变更类型常量定义
// ====================================================================================
// 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失败
OrderChangeTypeJDOrderFailed OrderChangeType = "jd_order_failed" //下单京东订单失败
)
// OrderChangeTypeText 订单变更类型文本映射
var OrderChangeTypeText = map[OrderChangeType]string{
OrderChangeTypeCreate: "创建",
OrderChangeTypePay: "支付",
OrderChangeTypeExpire: "过期",
OrderChangeTypeRebind: "重新绑定",
OrderChangeTypeCkFailed: "cookie失败",
OrderChangeTypeJDOrderFailed: "下单京东订单失败",
}
// ====================================================================================
// 业务配置常量
// ====================================================================================
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"
)