- 新增CamelOilToken和CamelOilCardBinding数据库表,实现Token及卡密绑定记录管理 - 在service层增加Token的创建、查询、更新、删除及分页功能 - 实现卡密与Token绑定的业务逻辑,支持基于Token的卡密管理 - 在API层新增Token和卡密绑定相关接口:创建Token、获取Token详情、删除Token、列出Token及根据Token查询绑定卡密 - camel_oil_api新增绑卡接口,支持绑卡状态分类及错误处理 - 在定时任务中增加卡密绑定任务,实现自动处理已支付订单的卡密绑定 - 优化订单提交及支付流程,包含日志调整和请求参数随机扰动 - 统一调整camel_oil模块多控制器实现,完成账号状态查询及订单相关接口实现 - 注册更多camel_oil定时任务,包括订单支付检查、账号日重置和待回调订单处理任务
313 lines
14 KiB
Go
313 lines
14 KiB
Go
package consts
|
||
|
||
// ====================================================================================
|
||
// 骆驼加油订单处理模块常量定义
|
||
// ====================================================================================
|
||
|
||
// CamelOilAccountStatus 骆驼加油账号状态枚举
|
||
type CamelOilAccountStatus int
|
||
|
||
const (
|
||
CamelOilAccountStatusPending CamelOilAccountStatus = 0 // 待登录
|
||
CamelOilAccountStatusSendCode CamelOilAccountStatus = 1 // 发送验证码
|
||
CamelOilAccountStatusOnline CamelOilAccountStatus = 2 // 在线
|
||
CamelOilAccountStatusPaused CamelOilAccountStatus = 3 // 已暂停
|
||
CamelOilAccountStatusInvalid CamelOilAccountStatus = 4 // 已失效
|
||
)
|
||
|
||
// CamelOilAccountStatusText 账号状态文本映射
|
||
var CamelOilAccountStatusText = map[CamelOilAccountStatus]string{
|
||
CamelOilAccountStatusPending: "待登录",
|
||
CamelOilAccountStatusSendCode: "登录中",
|
||
CamelOilAccountStatusOnline: "在线",
|
||
CamelOilAccountStatusPaused: "已暂停",
|
||
CamelOilAccountStatusInvalid: "已失效",
|
||
}
|
||
|
||
// CamelOilOrderStatus 骆驼加油订单状态枚举
|
||
type CamelOilOrderStatus int
|
||
|
||
const (
|
||
CamelOilOrderStatusPending CamelOilOrderStatus = 0 // 待处理
|
||
CamelOilOrderStatusProcessing CamelOilOrderStatus = 1 // 处理中
|
||
CamelOilOrderStatusCompleted CamelOilOrderStatus = 2 // 已完成
|
||
CamelOilOrderStatusFailed CamelOilOrderStatus = 3 // 已失败
|
||
)
|
||
|
||
// CamelOilOrderStatusText 订单状态文本映射
|
||
var CamelOilOrderStatusText = map[CamelOilOrderStatus]string{
|
||
CamelOilOrderStatusPending: "待处理",
|
||
CamelOilOrderStatusProcessing: "处理中",
|
||
CamelOilOrderStatusCompleted: "已完成",
|
||
CamelOilOrderStatusFailed: "已失败",
|
||
}
|
||
|
||
// CamelOilPayStatus 支付状态枚举
|
||
type CamelOilPayStatus int
|
||
|
||
const (
|
||
CamelOilPaymentStatusUnpaid CamelOilPayStatus = 0 // 未支付
|
||
CamelOilPaymentStatusPaid CamelOilPayStatus = 1 // 已支付
|
||
CamelOilPaymentStatusRefunded CamelOilPayStatus = 2 // 已退款
|
||
CamelOilPaymentStatusTimeout CamelOilPayStatus = 3 // 已超时
|
||
)
|
||
|
||
// CamelOilPaymentStatusText 支付状态文本映射
|
||
var CamelOilPaymentStatusText = map[CamelOilPayStatus]string{
|
||
CamelOilPaymentStatusUnpaid: "未支付",
|
||
CamelOilPaymentStatusPaid: "已支付",
|
||
CamelOilPaymentStatusRefunded: "已退款",
|
||
CamelOilPaymentStatusTimeout: "已超时",
|
||
}
|
||
|
||
// CamelOilNotifyStatus 回调状态枚举
|
||
type CamelOilNotifyStatus int
|
||
|
||
const (
|
||
CamelOilCallbackStatusPending CamelOilNotifyStatus = 0 // 未回调
|
||
CamelOilCallbackStatusSuccess CamelOilNotifyStatus = 1 // 回调成功
|
||
CamelOilCallbackStatusFailed CamelOilNotifyStatus = 2 // 回调失败
|
||
)
|
||
|
||
// CamelOilCallbackStatusText 回调状态文本映射
|
||
var CamelOilCallbackStatusText = map[CamelOilNotifyStatus]string{
|
||
CamelOilCallbackStatusPending: "未回调",
|
||
CamelOilCallbackStatusSuccess: "回调成功",
|
||
CamelOilCallbackStatusFailed: "回调失败",
|
||
}
|
||
|
||
// CamelOilTokenStatus Token管理状态枚举
|
||
type CamelOilTokenStatus int
|
||
|
||
const (
|
||
CamelOilTokenStatusAvailable CamelOilTokenStatus = 1 // 可用
|
||
CamelOilTokenStatusDisabled CamelOilTokenStatus = 2 // 已禁用
|
||
CamelOilTokenStatusExpired CamelOilTokenStatus = 3 // 已过期
|
||
)
|
||
|
||
// CamelOilTokenStatusText Token状态文本映射
|
||
var CamelOilTokenStatusText = map[CamelOilTokenStatus]string{
|
||
CamelOilTokenStatusAvailable: "可用",
|
||
CamelOilTokenStatusDisabled: "已禁用",
|
||
CamelOilTokenStatusExpired: "已过期",
|
||
}
|
||
|
||
// ====================================================================================
|
||
// 变更类型常量定义
|
||
// ====================================================================================
|
||
|
||
// CamelOilAccountChangeType 账号变更类型
|
||
type CamelOilAccountChangeType string
|
||
|
||
const (
|
||
CamelOilAccountChangeTypeCreate CamelOilAccountChangeType = "create" // 创建账号
|
||
CamelOilAccountChangeTypeLogin CamelOilAccountChangeType = "login" // 登录成功
|
||
CamelOilAccountChangeTypeOffline CamelOilAccountChangeType = "offline" // 检测到掉线
|
||
CamelOilAccountChangeTypeLoginFail CamelOilAccountChangeType = "login_fail" // 登录失败
|
||
CamelOilAccountChangeTypePause CamelOilAccountChangeType = "pause" // 订单数达到10,暂停使用
|
||
CamelOilAccountChangeTypeResume CamelOilAccountChangeType = "resume" // 次日重置,恢复使用
|
||
CamelOilAccountChangeTypeInvalidate CamelOilAccountChangeType = "invalidate" // 单日下单不足10个,账号失效
|
||
CamelOilAccountChangeTypeOrderBind CamelOilAccountChangeType = "order_bind" // 绑定订单
|
||
CamelOilAccountChangeTypeOrderComplete CamelOilAccountChangeType = "order_complete" // 订单完成
|
||
CamelOilAccountChangeTypeUpdate CamelOilAccountChangeType = "update" // 更新账号信息
|
||
CamelOilAccountChangeTypeDelete CamelOilAccountChangeType = "delete" // 删除账号
|
||
)
|
||
|
||
// CamelOilAccountChangeTypeText 账号变更类型文本映射
|
||
var CamelOilAccountChangeTypeText = map[CamelOilAccountChangeType]string{
|
||
CamelOilAccountChangeTypeCreate: "创建账号",
|
||
CamelOilAccountChangeTypeLogin: "登录成功",
|
||
CamelOilAccountChangeTypeOffline: "检测到掉线",
|
||
CamelOilAccountChangeTypeLoginFail: "登录失败",
|
||
CamelOilAccountChangeTypePause: "暂停使用",
|
||
CamelOilAccountChangeTypeResume: "恢复使用",
|
||
CamelOilAccountChangeTypeInvalidate: "账号失效",
|
||
CamelOilAccountChangeTypeOrderBind: "绑定订单",
|
||
CamelOilAccountChangeTypeOrderComplete: "订单完成",
|
||
CamelOilAccountChangeTypeUpdate: "更新账号",
|
||
CamelOilAccountChangeTypeDelete: "删除账号",
|
||
}
|
||
|
||
// CamelOilOrderChangeType 订单变更类型
|
||
type CamelOilOrderChangeType string
|
||
|
||
const (
|
||
CamelOilOrderChangeTypeCreate CamelOilOrderChangeType = "create" // 创建订单
|
||
CamelOilOrderChangeTypeSubmit CamelOilOrderChangeType = "submit" // 提交到骆驼平台
|
||
CamelOilOrderChangeTypeGetPayUrl CamelOilOrderChangeType = "get_pay_url" // 获取支付链接
|
||
CamelOilOrderChangeTypeCheckPay CamelOilOrderChangeType = "check_pay" // 检测支付状态
|
||
CamelOilOrderChangeTypePaid CamelOilOrderChangeType = "paid" // 支付成功
|
||
CamelOilOrderChangeTypeTimeout CamelOilOrderChangeType = "timeout" // 支付超时
|
||
CamelOilOrderChangeTypeFail CamelOilOrderChangeType = "fail" // 下单失败
|
||
CamelOilOrderChangeTypeCallbackSuccess CamelOilOrderChangeType = "callback_success" // 回调商户成功
|
||
CamelOilOrderChangeTypeCallbackFail CamelOilOrderChangeType = "callback_fail" // 回调商户失败
|
||
CamelOilOrderChangeTypeFillCard CamelOilOrderChangeType = "fill_card" // 填写卡密和卡号
|
||
)
|
||
|
||
// CamelOilOrderChangeTypeText 订单变更类型文本映射
|
||
var CamelOilOrderChangeTypeText = map[CamelOilOrderChangeType]string{
|
||
CamelOilOrderChangeTypeCreate: "创建订单",
|
||
CamelOilOrderChangeTypeSubmit: "提交平台",
|
||
CamelOilOrderChangeTypeGetPayUrl: "获取支付链接",
|
||
CamelOilOrderChangeTypeCheckPay: "检测支付",
|
||
CamelOilOrderChangeTypePaid: "支付成功",
|
||
CamelOilOrderChangeTypeTimeout: "支付超时",
|
||
CamelOilOrderChangeTypeFail: "下单失败",
|
||
CamelOilOrderChangeTypeCallbackSuccess: "回调成功",
|
||
CamelOilOrderChangeTypeCallbackFail: "回调失败",
|
||
CamelOilOrderChangeTypeFillCard: "填写卡密",
|
||
}
|
||
|
||
// ====================================================================================
|
||
// 预拉取订单相关常量定义
|
||
// ====================================================================================
|
||
|
||
// CamelOilPrefetchOrderStatus 预拉取订单状态枚举
|
||
type CamelOilPrefetchOrderStatus int
|
||
|
||
const (
|
||
CamelOilPrefetchOrderStatusPending CamelOilPrefetchOrderStatus = 1 // 待匹配
|
||
CamelOilPrefetchOrderStatusMatched CamelOilPrefetchOrderStatus = 2 // 已匹配
|
||
CamelOilPrefetchOrderStatusExpired CamelOilPrefetchOrderStatus = 3 // 已过期
|
||
CamelOilPrefetchOrderStatusInvalid CamelOilPrefetchOrderStatus = 4 // 已失效
|
||
)
|
||
|
||
// CamelOilPrefetchOrderStatusText 预拉取订单状态文本映射
|
||
var CamelOilPrefetchOrderStatusText = map[CamelOilPrefetchOrderStatus]string{
|
||
CamelOilPrefetchOrderStatusPending: "待匹配",
|
||
CamelOilPrefetchOrderStatusMatched: "已匹配",
|
||
CamelOilPrefetchOrderStatusExpired: "已过期",
|
||
CamelOilPrefetchOrderStatusInvalid: "已失效",
|
||
}
|
||
|
||
// CamelOilPrefetchOrderChangeType 预拉取订单变更类型
|
||
type CamelOilPrefetchOrderChangeType string
|
||
|
||
const (
|
||
CamelOilPrefetchOrderChangeTypeCreate CamelOilPrefetchOrderChangeType = "create" // 创建预拉取订单
|
||
CamelOilPrefetchOrderChangeTypeFetch CamelOilPrefetchOrderChangeType = "fetch" // 从骆驼平台拉取
|
||
CamelOilPrefetchOrderChangeTypeMatch CamelOilPrefetchOrderChangeType = "match" // 与用户订单匹配
|
||
CamelOilPrefetchOrderChangeTypeExpire CamelOilPrefetchOrderChangeType = "expire" // 过期失效
|
||
CamelOilPrefetchOrderChangeTypeInvalidate CamelOilPrefetchOrderChangeType = "invalidate" // 标记为失效
|
||
)
|
||
|
||
// CamelOilPrefetchOrderChangeTypeText 预拉取订单变更类型文本映射
|
||
var CamelOilPrefetchOrderChangeTypeText = map[CamelOilPrefetchOrderChangeType]string{
|
||
CamelOilPrefetchOrderChangeTypeCreate: "创建预拉取订单",
|
||
CamelOilPrefetchOrderChangeTypeFetch: "从平台拉取",
|
||
CamelOilPrefetchOrderChangeTypeMatch: "与订单匹配",
|
||
CamelOilPrefetchOrderChangeTypeExpire: "订单过期",
|
||
CamelOilPrefetchOrderChangeTypeInvalidate: "标记失效",
|
||
}
|
||
|
||
// ====================================================================================
|
||
// 预拉取订单业务配置常量
|
||
// ====================================================================================
|
||
|
||
const (
|
||
// CamelOilPrefetchOrderMinCapacity 预拉取订单最小库存阈值(当库存低于此值时触发补充)
|
||
CamelOilPrefetchOrderMinCapacity = 1
|
||
|
||
// CamelOilPrefetchOrderTargetCapacity 预拉取订单目标库存(补充时的目标数量)
|
||
CamelOilPrefetchOrderTargetCapacity = 20
|
||
|
||
// CamelOilPrefetchOrderExpireDuration 预拉取订单过期时间(小时)
|
||
CamelOilPrefetchOrderExpireDuration = 24
|
||
|
||
// CamelOilPrefetchMaxConcurrency 预拉取最大并发账号数量
|
||
CamelOilPrefetchMaxConcurrency = 5
|
||
|
||
// CamelOilPrefetchOrderLockKey Redis中预拉取订单的分布式锁键名前缀
|
||
CamelOilPrefetchOrderLockKey = "camel_oil_api:prefetch:order:lock:"
|
||
|
||
// CamelOilPrefetchTaskLockKey Redis中预拉取任务的分布式锁键名
|
||
CamelOilPrefetchTaskLockKey = "camel_oil_api:task:prefetch:lock"
|
||
)
|
||
|
||
// ====================================================================================
|
||
// 业务配置常量
|
||
// ====================================================================================
|
||
|
||
const (
|
||
// CamelOilAccountDailyOrderLimit 账号每日订单上限
|
||
CamelOilAccountDailyOrderLimit = 10
|
||
|
||
// CamelOilMinAvailableCapacity 最小可用订单容量阈值
|
||
CamelOilMinAvailableCapacity = 50
|
||
|
||
// CamelOilTargetOnlineAccounts 目标在线账号数量
|
||
CamelOilTargetOnlineAccounts = 1
|
||
|
||
// CamelOilOrderExpireDuration 订单支付超时时间(小时)
|
||
CamelOilOrderExpireDuration = 24
|
||
|
||
// CamelOilMaxCallbackRetry 回调最大重试次数
|
||
CamelOilMaxCallbackRetry = 3
|
||
|
||
// CamelOilMaxLoginConcurrency 最大并发登录数量
|
||
CamelOilMaxLoginConcurrency = 3
|
||
|
||
// CamelOilTokenExpireDuration Token过期时间(天)
|
||
CamelOilTokenExpireDuration = 30
|
||
|
||
// CamelOilAccountLockKey Redis中账号分配锁的键名前缀
|
||
CamelOilAccountLockKey = "camel_oil_api:account:lock:"
|
||
|
||
// CamelOilOrderLockKey Redis中订单处理锁的键名前缀
|
||
CamelOilOrderLockKey = "camel_oil_api:order:lock:"
|
||
|
||
// CamelOilLoginTaskLockKey Redis中登录任务分布式锁的键名
|
||
CamelOilLoginTaskLockKey = "camel_oil_api:task:login:lock"
|
||
|
||
// CamelOilCheckTaskLockKey Redis中检测任务分布式锁的键名
|
||
CamelOilCheckTaskLockKey = "camel_oil_api:task:check:lock"
|
||
|
||
// CamelOilDailyResetTaskLockKey Redis中日重置任务分布式锁的键名
|
||
CamelOilDailyResetTaskLockKey = "camel_oil_api:task:daily_reset:lock"
|
||
)
|
||
|
||
// ====================================================================================
|
||
// 错误码常量
|
||
// ====================================================================================
|
||
|
||
const (
|
||
// ErrCodeCamelOilNoAvailableAccount 无可用账号
|
||
ErrCodeCamelOilNoAvailableAccount = "CAMEL_OIL_NO_AVAILABLE_ACCOUNT"
|
||
|
||
// ErrCodeCamelOilAccountNotFound 账号不存在
|
||
ErrCodeCamelOilAccountNotFound = "CAMEL_OIL_ACCOUNT_NOT_FOUND"
|
||
|
||
// ErrCodeCamelOilAccountLoginFailed 账号登录失败
|
||
ErrCodeCamelOilAccountLoginFailed = "CAMEL_OIL_ACCOUNT_LOGIN_FAILED"
|
||
|
||
// ErrCodeCamelOilAccountOffline 账号掉线
|
||
ErrCodeCamelOilAccountOffline = "CAMEL_OIL_ACCOUNT_OFFLINE"
|
||
|
||
// ErrCodeCamelOilAccountReachLimit 账号订单数已达上限
|
||
ErrCodeCamelOilAccountReachLimit = "CAMEL_OIL_ACCOUNT_REACH_LIMIT"
|
||
|
||
// ErrCodeCamelOilOrderSubmitFailed 订单提交失败
|
||
ErrCodeCamelOilOrderSubmitFailed = "CAMEL_OIL_ORDER_SUBMIT_FAILED"
|
||
|
||
// ErrCodeCamelOilOrderNotFound 订单不存在
|
||
ErrCodeCamelOilOrderNotFound = "CAMEL_OIL_ORDER_NOT_FOUND"
|
||
|
||
// ErrCodeCamelOilOrderPayTimeout 订单支付超时
|
||
ErrCodeCamelOilOrderPayTimeout = "CAMEL_OIL_ORDER_PAY_TIMEOUT"
|
||
|
||
// ErrCodeCamelOilPhoneGetFailed 获取手机号失败
|
||
ErrCodeCamelOilPhoneGetFailed = "CAMEL_OIL_PHONE_GET_FAILED"
|
||
|
||
// ErrCodeCamelOilPhoneDuplicate 手机号重复
|
||
ErrCodeCamelOilPhoneDuplicate = "CAMEL_OIL_PHONE_DUPLICATE"
|
||
|
||
// ErrCodeCamelOilCodeGetFailed 获取验证码失败
|
||
ErrCodeCamelOilCodeGetFailed = "CAMEL_OIL_CODE_GET_FAILED"
|
||
|
||
// ErrCodeCamelOilCallbackFailed 回调商户失败
|
||
ErrCodeCamelOilCallbackFailed = "CAMEL_OIL_CALLBACK_FAILED"
|
||
|
||
// ErrCodeCamelOilSystemBusy 系统繁忙
|
||
ErrCodeCamelOilSystemBusy = "CAMEL_OIL_SYSTEM_BUSY"
|
||
)
|