package constants import "time" // Fiber Locals 的上下文键 const ( ContextKeyRequestID = "requestid" // 请求记录ID ContextKeyStartTime = "start_time" // 请求开始时间 ContextKeyUserID = "user_id" // 用户ID ContextKeyUserType = "user_type" // 用户类型 ContextKeyShopID = "shop_id" // 店铺ID ContextKeyEnterpriseID = "enterprise_id" // 企业ID ContextKeyCustomerID = "customer_id" // 个人客户ID ContextKeyUserInfo = "user_info" // 完整的用户信息 ContextKeyIP = "ip_address" // IP地址 ContextKeyUserAgent = "user_agent" // User-Agent ContextKeySubordinateShopIDs = "subordinate_shop_ids" // 下级店铺ID列表(代理用户预计算) ) // 配置环境变量 const ( EnvConfigPath = "CONFIG_PATH" EnvConfigEnv = "CONFIG_ENV" // dev, staging, prod ) // 默认配置值 const ( DefaultConfigPath = "configs/config.yaml" DefaultServerAddr = ":3000" DefaultRedisAddr = "localhost:6379" ) // 数据库配置常量 const ( DefaultMaxOpenConns = 25 DefaultMaxIdleConns = 10 DefaultConnMaxLifetime = 5 * time.Minute DefaultPageSize = 20 MaxPageSize = 100 SlowQueryThreshold = 500 * time.Millisecond ) // 任务类型常量 const ( TaskTypeEmailSend = "email:send" // 发送邮件 TaskTypeCommission = "commission:calculate" // 分佣计算 TaskTypeIotCardImport = "iot_card:import" // IoT 卡批量导入 TaskTypeDeviceImport = "device:import" // 设备批量导入 TaskTypeExportDispatch = "export:dispatch" // 导出任务分发 TaskTypeExportShard = "export:shard" // 导出任务分片执行 TaskTypeExportFinalize = "export:finalize" // 导出任务收尾汇总 TaskTypeCommissionStatsUpdate = "commission:stats:update" // 佣金统计更新 TaskTypeCommissionStatsSync = "commission:stats:sync" // 佣金统计同步 TaskTypeCommissionStatsArchive = "commission:stats:archive" // 佣金统计归档 // 轮询任务类型 TaskTypePollingRealname = "polling:realname" // 实名状态检查 TaskTypePollingCarddata = "polling:carddata" // 卡流量检查 TaskTypePollingPackage = "polling:package" // 套餐流量检查 TaskTypePollingProtect = "polling:protect" // 保护期一致性检查 TaskTypePollingCardStatus = "polling:card_status" // 卡开停机状态检查 // 套餐激活任务类型 TaskTypePackageFirstActivation = "package:first:activation" // 首次实名激活 TaskTypePackageQueueActivation = "package:queue:activation" // 主套餐排队激活 TaskTypePackageDataReset = "package:data:reset" // 套餐流量重置 // 订单超时任务类型 TaskTypeOrderExpire = "order:expire" // 订单超时自动取消 TaskTypeAutoPurchaseAfterRecharge = "task:auto_purchase_after_recharge" // 充值后自动购包 // 定时任务类型(由 Asynq Scheduler 调度) TaskTypeAlertCheck = "alert:check" // 告警检查 TaskTypeDataCleanup = "data:cleanup" // 数据清理 TaskTypeDailyTrafficFlush = "traffic:daily:flush" // 每日流量落盘 ) // 用户状态常量 const ( UserStatusActive = "active" // 激活 UserStatusInactive = "inactive" // 未激活 UserStatusSuspended = "suspended" // 暂停 ) // RBAC 用户类型常量 const ( UserTypeSuperAdmin = 1 // 超级管理员(跳过数据权限过滤) UserTypePlatform = 2 // 平台用户 UserTypeAgent = 3 // 代理账号 UserTypeEnterprise = 4 // 企业账号 UserTypePersonalCustomer = 5 // 个人客户(C端用户) ) // RBAC 角色类型常量 const ( RoleTypePlatform = 1 // 平台角色(适用于平台用户) RoleTypeCustomer = 2 // 客户角色(适用于代理/企业账号) ) // RBAC 权限类型常量 const ( PermissionTypeMenu = 1 // 菜单权限 PermissionTypeButton = 2 // 按钮权限 ) // RBAC 权限端口常量 const ( PlatformAll = "all" // 全部端口(Web + H5) PlatformWeb = "web" // Web 后台 PlatformH5 = "h5" // H5 端 ) // RBAC 状态常量 const ( StatusDisabled = 0 // 禁用 StatusEnabled = 1 // 启用 ) // 上架状态常量 const ( ShelfStatusOn = 1 // 上架 ShelfStatusOff = 2 // 下架 ) // 套餐周期类型常量 const ( PackageCalendarTypeNaturalMonth = "natural_month" // 自然月周期 PackageCalendarTypeByDay = "by_day" // 按天周期 ) // 套餐流量重置周期常量 const ( PackageDataResetDaily = "daily" // 每日重置 PackageDataResetMonthly = "monthly" // 每月重置 PackageDataResetYearly = "yearly" // 每年重置 PackageDataResetNone = "none" // 不重置 ) // 套餐使用状态常量 const ( PackageUsageStatusPending = 0 // 待生效 PackageUsageStatusActive = 1 // 生效中 PackageUsageStatusDepleted = 2 // 已用完 PackageUsageStatusExpired = 3 // 已过期 PackageUsageStatusInvalidated = 4 // 已失效 ) // 运营商类型常量 const ( CarrierTypeCMCC = "CMCC" // 中国移动 CarrierTypeCUCC = "CUCC" // 中国联通 CarrierTypeCTCC = "CTCC" // 中国电信 CarrierTypeCBN = "CBN" // 中国广电 ) // 订单状态常量 const ( OrderStatusPending = "pending" // 待支付 OrderStatusPaid = "paid" // 已支付 OrderStatusProcessing = "processing" // 处理中 OrderStatusCompleted = "completed" // 已完成 OrderStatusCancelled = "cancelled" // 已取消 ) // 订单超时配置常量 const ( OrderExpireTimeout = 30 * time.Minute // 订单超时时间(30分钟) OrderExpireBatchSize = 100 // 每次批量处理超时订单的数量上限 ) // 队列配置常量 const ( QueueCritical = "critical" // 关键任务队列 QueueDefault = "default" // 默认队列 QueueLow = "low" // 低优先级队列 DefaultRetryMax = 5 DefaultTimeout = 10 * time.Minute DefaultConcurrency = 10 ) // 导出任务相关常量 const ( ExportTaskSceneDevice = "device" // 导出场景:设备 ExportTaskSceneIotCard = "iot_card" // 导出场景:IoT 卡 ) // 导出文件格式常量 const ( ExportTaskFormatXLSX = "xlsx" // 导出格式:Excel ExportTaskFormatCSV = "csv" // 导出格式:CSV ) // 导出主任务状态常量 const ( ExportTaskStatusPending = 1 // 待处理 ExportTaskStatusProcessing = 2 // 处理中 ExportTaskStatusCompleted = 3 // 已完成 ExportTaskStatusFailed = 4 // 已失败 ExportTaskStatusCancelled = 5 // 已取消 ) // 导出分片任务状态常量 const ( ExportShardStatusPending = 1 // 待处理 ExportShardStatusProcessing = 2 // 处理中 ExportShardStatusSuccess = 3 // 已成功 ExportShardStatusFailed = 4 // 已失败 ExportShardStatusCancelled = 5 // 已取消 ) // 导出任务执行配置常量 const ( ExportDefaultShardSize = 2000 // 默认分片大小 ExportDownloadURLExpire = 24 * time.Hour // 下载链接固定有效期 ExportDispatchTaskTimeout = 10 * time.Minute // dispatch 任务超时 ExportShardTaskTimeout = 15 * time.Minute // shard 任务超时 ExportFinalizeTaskTimeout = 10 * time.Minute // finalize 任务超时 ExportFinalizeRetryMax = 30 // finalize 最大重试次数 ExportShardRetryMax = 3 // shard 最大重试次数 ExportDispatchRetryMax = 5 // dispatch 最大重试次数 ) // 店铺配置常量 const ( MaxShopLevel = 7 // 店铺最大层级 ) // 验证码配置常量 const ( VerificationCodeLength = 6 // 验证码长度(6位数字) VerificationCodeExpiration = 5 * time.Minute // 验证码过期时间(5分钟) VerificationCodeRateLimit = 60 * time.Second // 验证码发送频率限制(60秒) ) // ======== 默认超级管理员账号配置(用于系统初始化) ======== // DefaultAdminUsername 默认超级管理员用户名 const DefaultAdminUsername = "admin" // DefaultAdminPassword 默认超级管理员密码 const DefaultAdminPassword = "Admin@123456" // DefaultAdminPhone 默认超级管理员手机号 const DefaultAdminPhone = "13800000000" // ======== 企业卡授权相关常量 ======== // AuthorizerType 授权人类型 const ( AuthorizerTypePlatform = UserTypePlatform // 平台用户授权(2) AuthorizerTypeAgent = UserTypeAgent // 代理账号授权(3) ) // 自动代购状态常量(强充二阶段异步购买) const ( AutoPurchaseStatusPending = "pending" // 待处理 AutoPurchaseStatusSuccess = "success" // 成功 AutoPurchaseStatusFailed = "failed" // 失败 ) // 设备保护期相关时长常量 const ( DeviceProtectPeriodDuration = 1 * time.Hour // 设备停/复机保护期时长(1小时) DeviceRefreshCooldownDuration = 30 * time.Second // 设备网关刷新冷却时长(30秒) ) // 换货单状态常量 const ( ExchangeStatusPendingInfo = 1 // 待填写信息(等待客户端填写收货地址) ExchangeStatusPendingShip = 2 // 待发货(客户端已填写,等待后台发货) ExchangeStatusShipped = 3 // 已发货待确认(后台已发货,等待确认完成) ExchangeStatusCompleted = 4 // 已完成 ExchangeStatusCancelled = 5 // 已取消 ) // 换货资产类型常量 const ( ExchangeAssetTypeIotCard = "iot_card" // 物联网卡 ExchangeAssetTypeDevice = "device" // 设备 ) // GetStatusName 获取通用启用/禁用状态名称 // 用于 status 字段:0=禁用, 1=启用 func GetStatusName(status int) string { switch status { case StatusDisabled: return "禁用" case StatusEnabled: return "启用" default: return "未知" } } // GetShelfStatusName 获取上架状态名称 // 用于 shelf_status 字段:1=上架, 2=下架 func GetShelfStatusName(status int) string { switch status { case ShelfStatusOn: return "上架" case ShelfStatusOff: return "下架" default: return "未知" } } // GetExportTaskStatusName 获取导出主任务状态名称 func GetExportTaskStatusName(status int) string { switch status { case ExportTaskStatusPending: return "待处理" case ExportTaskStatusProcessing: return "处理中" case ExportTaskStatusCompleted: return "已完成" case ExportTaskStatusFailed: return "已失败" case ExportTaskStatusCancelled: return "已取消" default: return "未知" } } // GetExportShardStatusName 获取导出分片任务状态名称 func GetExportShardStatusName(status int) string { switch status { case ExportShardStatusPending: return "待处理" case ExportShardStatusProcessing: return "处理中" case ExportShardStatusSuccess: return "已成功" case ExportShardStatusFailed: return "已失败" case ExportShardStatusCancelled: return "已取消" default: return "未知" } } // GetExchangeStatusName 获取换货单状态名称 // 用于 exchange_status 字段 func GetExchangeStatusName(status int) string { switch status { case ExchangeStatusPendingInfo: return "待填写信息" case ExchangeStatusPendingShip: return "待发货" case ExchangeStatusShipped: return "已发货待确认" case ExchangeStatusCompleted: return "已完成" case ExchangeStatusCancelled: return "已取消" default: return "未知" } }