暂存一下,防止丢失
This commit is contained in:
107
pkg/constants/approval.go
Normal file
107
pkg/constants/approval.go
Normal file
@@ -0,0 +1,107 @@
|
||||
package constants
|
||||
|
||||
import "time"
|
||||
|
||||
const (
|
||||
// ApprovalStatusSubmitting 表示审批申请等待渠道提交。
|
||||
ApprovalStatusSubmitting = 0
|
||||
// ApprovalStatusPending 表示审批申请已进入渠道审批。
|
||||
ApprovalStatusPending = 1
|
||||
// ApprovalStatusApproved 表示审批已通过。
|
||||
ApprovalStatusApproved = 2
|
||||
// ApprovalStatusRejected 表示审批已拒绝。
|
||||
ApprovalStatusRejected = 3
|
||||
// ApprovalStatusCancelled 表示审批已撤销。
|
||||
ApprovalStatusCancelled = 4
|
||||
// ApprovalStatusRevokedAfterApproved 表示审批通过后被撤销。
|
||||
ApprovalStatusRevokedAfterApproved = 5
|
||||
// ApprovalStatusDeleted 表示审批已删除。
|
||||
ApprovalStatusDeleted = 6
|
||||
// ApprovalStatusSubmissionFailed 表示渠道明确确认审批提交失败。
|
||||
ApprovalStatusSubmissionFailed = 7
|
||||
// ApprovalStatusSubmissionUnknown 表示审批提交请求已发出但结果未知。
|
||||
ApprovalStatusSubmissionUnknown = 8
|
||||
)
|
||||
|
||||
const (
|
||||
// ApprovalDecisionApproved 表示标准审批通过决策。
|
||||
ApprovalDecisionApproved = "approved"
|
||||
// ApprovalDecisionRejected 表示标准审批拒绝决策。
|
||||
ApprovalDecisionRejected = "rejected"
|
||||
// ApprovalDecisionCancelled 表示标准审批撤销决策。
|
||||
ApprovalDecisionCancelled = "cancelled"
|
||||
// ApprovalDecisionDeleted 表示标准审批删除决策。
|
||||
ApprovalDecisionDeleted = "deleted"
|
||||
// ApprovalDecisionRevokedAfterApproved 表示标准审批通过后撤销决策。
|
||||
ApprovalDecisionRevokedAfterApproved = "revoked_after_approved"
|
||||
)
|
||||
|
||||
const (
|
||||
// ApprovalInitialVersion 表示通用审批实例的初始乐观锁版本。
|
||||
ApprovalInitialVersion = 1
|
||||
// ApprovalQueryMaxBatchSize 表示通用审批摘要单次批量投影上限。
|
||||
ApprovalQueryMaxBatchSize = 100
|
||||
// ApprovalUnknownSubmitterName 表示提交人名称快照无法解析。
|
||||
ApprovalUnknownSubmitterName = "未知账号"
|
||||
// ApprovalDecisionDeliveryLeaseDuration 表示标准决策消费者的单次处理租约时长。
|
||||
ApprovalDecisionDeliveryLeaseDuration = 5 * time.Minute
|
||||
// ApprovalPreparationTTL 表示事务前审批可用性结果允许复用的最长期限。
|
||||
ApprovalPreparationTTL = 30 * time.Second
|
||||
)
|
||||
|
||||
const (
|
||||
// ApprovalDecisionDeliveryPending 表示标准决策等待业务消费。
|
||||
ApprovalDecisionDeliveryPending = 0
|
||||
// ApprovalDecisionDeliveryProcessing 表示标准决策已被消费者租约领取。
|
||||
ApprovalDecisionDeliveryProcessing = 1
|
||||
// ApprovalDecisionDeliverySucceeded 表示标准决策已被业务幂等处理。
|
||||
ApprovalDecisionDeliverySucceeded = 2
|
||||
// ApprovalDecisionDeliveryFailed 表示标准决策消费失败并等待重试。
|
||||
ApprovalDecisionDeliveryFailed = 3
|
||||
)
|
||||
|
||||
const (
|
||||
// OutboxEventTypeApprovalTerminalDecision 表示通用审批标准终态已记录。
|
||||
OutboxEventTypeApprovalTerminalDecision = "approval.terminal_decision.recorded"
|
||||
// OutboxEventTypeApprovalSubmissionRequested 表示通用审批实例等待渠道提交。
|
||||
OutboxEventTypeApprovalSubmissionRequested = "approval.submission.requested"
|
||||
// ApprovalTerminalDecisionPayloadVersionV1 表示标准终态事件载荷第一版。
|
||||
ApprovalTerminalDecisionPayloadVersionV1 = 1
|
||||
// ApprovalSubmissionPayloadVersionV1 表示审批申请提交事件载荷第一版。
|
||||
ApprovalSubmissionPayloadVersionV1 = 1
|
||||
)
|
||||
|
||||
const (
|
||||
// ApprovalSyncSourceCallback 表示由第三方审批回调触发权威同步。
|
||||
ApprovalSyncSourceCallback = "callback"
|
||||
// ApprovalSyncSourcePolling 表示由定时兜底轮询触发权威同步。
|
||||
ApprovalSyncSourcePolling = "polling"
|
||||
// ApprovalSyncSourceManual 表示由受控人工动作触发权威同步。
|
||||
ApprovalSyncSourceManual = "manual"
|
||||
)
|
||||
|
||||
// GetApprovalStatusName 返回通用审批状态的中文名称。
|
||||
func GetApprovalStatusName(status int) string {
|
||||
switch status {
|
||||
case ApprovalStatusSubmitting:
|
||||
return "提交中"
|
||||
case ApprovalStatusPending:
|
||||
return "审批中"
|
||||
case ApprovalStatusApproved:
|
||||
return "已通过"
|
||||
case ApprovalStatusRejected:
|
||||
return "已拒绝"
|
||||
case ApprovalStatusCancelled:
|
||||
return "已撤销"
|
||||
case ApprovalStatusRevokedAfterApproved:
|
||||
return "通过后撤销"
|
||||
case ApprovalStatusDeleted:
|
||||
return "已删除"
|
||||
case ApprovalStatusSubmissionFailed:
|
||||
return "提交失败"
|
||||
case ApprovalStatusSubmissionUnknown:
|
||||
return "提交结果未知"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
90
pkg/constants/card_observation.go
Normal file
90
pkg/constants/card_observation.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package constants
|
||||
|
||||
import "time"
|
||||
|
||||
// 卡实名观测来源
|
||||
const (
|
||||
CardObservationSourcePolling = "polling" // 周期轮询
|
||||
CardObservationSourceManualSync = "manual_sync" // 手动同步
|
||||
CardObservationSourceManualOverride = "manual_override" // 人工纠偏
|
||||
CardObservationSourceCarrierCallback = "carrier_callback" // 运营商回调
|
||||
CardObservationSourceBusinessEvent = "business_event" // 业务成功后的观测
|
||||
)
|
||||
|
||||
// 卡观测事件序列同步类型。
|
||||
const (
|
||||
CardObservationSyncTypeRealname = "realname" // 实名状态
|
||||
CardObservationSyncTypeTraffic = "traffic" // 流量读数
|
||||
CardObservationSyncTypeNetwork = "network" // 网络状态
|
||||
CardObservationSyncTypeDeviceInfo = "device_info" // 设备信息
|
||||
)
|
||||
|
||||
// 卡观测事件序列资源类型。
|
||||
const (
|
||||
CardObservationResourceTypeCard = "iot_card" // IoT 卡
|
||||
CardObservationResourceTypeDevice = "device" // 设备
|
||||
)
|
||||
|
||||
// 卡观测事件序列执行参数。
|
||||
const (
|
||||
CardObservationSeriesAttemptCount = 3 // 每个序列固定尝试次数
|
||||
CardObservationSeriesTTL = 7 * time.Minute // 活跃序列覆盖最后一次任务及缓冲
|
||||
CardObservationSeriesResultTTL = 24 * time.Hour // 尝试幂等与提前完成结果保留时间
|
||||
CardObservationGatewayLockTTL = 70 * time.Second // Gateway 请求互斥超时加安全余量
|
||||
CardObservationGatewayMinInterval = 10 * time.Second // 未配置时的运营商最小请求间隔
|
||||
)
|
||||
|
||||
// CardObservationAttemptDelay 返回固定的立即、3 分钟、5 分钟阶梯延迟。
|
||||
func CardObservationAttemptDelay(attempt int) time.Duration {
|
||||
switch attempt {
|
||||
case 1:
|
||||
return 0
|
||||
case 2:
|
||||
return 3 * time.Minute
|
||||
case 3:
|
||||
return 5 * time.Minute
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
// 卡观测副作用消费状态
|
||||
const (
|
||||
CardObservationEffectStatusPending = 0 // 等待处理
|
||||
CardObservationEffectStatusProcessing = 1 // 正在处理或结果未知
|
||||
CardObservationEffectStatusDailySaved = 2 // 日流量缓冲已记录
|
||||
CardObservationEffectStatusDeducted = 3 // 套餐流量已扣减
|
||||
CardObservationEffectStatusCompleted = 4 // 全部副作用已完成
|
||||
)
|
||||
|
||||
// 卡观测副作用类型
|
||||
const (
|
||||
CardObservationEffectTypeTrafficIncrement = "traffic_increment" // 流量正增量副作用
|
||||
)
|
||||
|
||||
// Gateway 轮询 Integration Log 操作编码。
|
||||
const (
|
||||
IntegrationProviderGateway = "gateway" // Gateway 外部系统
|
||||
IntegrationOperationGatewayRealname = "query_realname_status" // 查询实名状态
|
||||
IntegrationOperationGatewayTraffic = "query_flow" // 查询流量
|
||||
IntegrationOperationGatewayNetwork = "query_card_status" // 查询网络状态
|
||||
)
|
||||
|
||||
// 卡实名观测场景
|
||||
const (
|
||||
CardObservationSceneRealnamePolling = "realname_polling" // 实名轮询
|
||||
CardObservationSceneTrafficPolling = "traffic_polling" // 流量轮询
|
||||
CardObservationSceneNetworkPolling = "network_polling" // 网络状态轮询
|
||||
CardObservationSceneManualRefresh = "manual_refresh" // 手动刷新
|
||||
CardObservationSceneCarrierCallback = "carrier_realname_callback" // 运营商实名回调
|
||||
)
|
||||
|
||||
// 卡实名状态变更 Outbox 事件
|
||||
const (
|
||||
OutboxEventTypeCardRealnameChanged = "card.realname.changed" // 卡实名状态变化
|
||||
CardRealnameChangedPayloadVersionV1 = 1 // 卡实名状态变化载荷版本
|
||||
OutboxEventTypeCardTrafficIncremented = "card.traffic.incremented" // 卡流量正增量
|
||||
CardTrafficIncrementedPayloadVersionV1 = 1 // 卡流量正增量载荷版本
|
||||
OutboxEventTypeCardNetworkChanged = "card.network.changed" // 卡网络状态变化
|
||||
CardNetworkChangedPayloadVersionV1 = 1 // 卡网络状态变化载荷版本
|
||||
)
|
||||
@@ -80,10 +80,12 @@ const (
|
||||
TaskTypeAutoPurchaseAfterRecharge = "task:auto_purchase_after_recharge" // 充值后自动购包
|
||||
|
||||
// 定时任务类型(由 Asynq Scheduler 调度)
|
||||
TaskTypeAlertCheck = "alert:check" // 告警检查
|
||||
TaskTypeDataCleanup = "data:cleanup" // 数据清理
|
||||
TaskTypeDailyTrafficFlush = "traffic:daily:flush" // 每日流量落盘
|
||||
TaskTypeOutboxDeliver = "outbox:deliver" // 公共 Outbox 事件投递
|
||||
TaskTypeAlertCheck = "alert:check" // 告警检查
|
||||
TaskTypeDataCleanup = "data:cleanup" // 数据清理
|
||||
TaskTypeNotificationCleanup = "notification:cleanup" // 站内通知保留清理
|
||||
TaskTypeDailyTrafficFlush = "traffic:daily:flush" // 每日流量落盘
|
||||
TaskTypeOutboxDeliver = "outbox:deliver" // 公共 Outbox 事件投递
|
||||
TaskTypeCardObservationSeries = "card_observation:series" // 卡观测事件序列尝试
|
||||
)
|
||||
|
||||
// 用户状态常量
|
||||
@@ -225,6 +227,7 @@ const (
|
||||
QueueDataCleanup = TaskTypeDataCleanup // 数据清理任务队列
|
||||
QueueDailyTrafficFlush = TaskTypeDailyTrafficFlush // 每日流量落盘任务队列
|
||||
QueueOutboxDeliver = TaskTypeOutboxDeliver // 公共 Outbox 投递队列
|
||||
QueueCardObservationSeries = TaskTypeCardObservationSeries // 卡观测事件序列队列
|
||||
|
||||
DefaultRetryMax = 5 // 默认任务最大重试次数
|
||||
DefaultTimeout = 10 * time.Minute // 默认任务超时时间
|
||||
@@ -280,10 +283,14 @@ func QueueForTaskType(taskType string) string {
|
||||
return QueueAlertCheck
|
||||
case TaskTypeDataCleanup:
|
||||
return QueueDataCleanup
|
||||
case TaskTypeNotificationCleanup:
|
||||
return QueueDataCleanup
|
||||
case TaskTypeDailyTrafficFlush:
|
||||
return QueueDailyTrafficFlush
|
||||
case TaskTypeOutboxDeliver:
|
||||
return QueueOutboxDeliver
|
||||
case TaskTypeCardObservationSeries:
|
||||
return QueueCardObservationSeries
|
||||
default:
|
||||
return QueueDefault
|
||||
}
|
||||
@@ -318,6 +325,7 @@ func DefaultTaskQueueWeights() map[string]int {
|
||||
QueueDataCleanup: 1,
|
||||
QueueDailyTrafficFlush: 1,
|
||||
QueueOutboxDeliver: 4,
|
||||
QueueCardObservationSeries: 2,
|
||||
QueueDefault: 1,
|
||||
QueueLow: 1,
|
||||
}
|
||||
|
||||
@@ -233,13 +233,6 @@ const (
|
||||
ApprovalTypeManual = "manual" // 人工([预留])
|
||||
)
|
||||
|
||||
// 审批状态([预留] 用于审批流程功能,待产品规划)
|
||||
const (
|
||||
ApprovalStatusPending = 1 // 待审批([预留])
|
||||
ApprovalStatusApproved = 2 // 已通过([预留])
|
||||
ApprovalStatusRejected = 3 // 已拒绝([预留])
|
||||
)
|
||||
|
||||
// ========================================
|
||||
// 4. 财务管理常量
|
||||
// ========================================
|
||||
|
||||
119
pkg/constants/notification.go
Normal file
119
pkg/constants/notification.go
Normal file
@@ -0,0 +1,119 @@
|
||||
package constants
|
||||
|
||||
const (
|
||||
// NotificationRecipientKindAccount 表示后台账号接收人。
|
||||
NotificationRecipientKindAccount = "account"
|
||||
// NotificationRecipientKindPersonalCustomer 表示个人客户接收人。
|
||||
NotificationRecipientKindPersonalCustomer = "personal_customer"
|
||||
// NotificationTargetKindAccount 表示由稳定后台账号 ID 解析接收人。
|
||||
NotificationTargetKindAccount = "account"
|
||||
// NotificationTargetKindPlatformRole 表示由当前平台角色解析接收人。
|
||||
NotificationTargetKindPlatformRole = "platform_role"
|
||||
// NotificationTargetKindShop 表示由目标店铺解析主账号和当前业务员。
|
||||
NotificationTargetKindShop = "shop"
|
||||
|
||||
// NotificationCategoryApproval 表示审批类通知。
|
||||
NotificationCategoryApproval = "approval"
|
||||
// NotificationCategoryExpiry 表示临期类通知。
|
||||
NotificationCategoryExpiry = "expiry"
|
||||
// NotificationCategorySync 表示同步类通知。
|
||||
NotificationCategorySync = "sync"
|
||||
// NotificationCategorySystem 表示系统类通知。
|
||||
NotificationCategorySystem = "system"
|
||||
|
||||
// NotificationSeverityInfo 表示普通提示。
|
||||
NotificationSeverityInfo = "info"
|
||||
// NotificationSeverityWarning 表示需要关注的警告。
|
||||
NotificationSeverityWarning = "warning"
|
||||
// NotificationSeverityError 表示处理失败。
|
||||
NotificationSeverityError = "error"
|
||||
// NotificationSeverityCritical 表示严重系统异常。
|
||||
NotificationSeverityCritical = "critical"
|
||||
|
||||
// NotificationTypeSystemNotice 表示受控通用系统通知。
|
||||
NotificationTypeSystemNotice = "system.notice"
|
||||
// NotificationTypePackageExpiring 表示个人客户套餐临期提醒。
|
||||
NotificationTypePackageExpiring = "package.expiring"
|
||||
|
||||
// NotificationRefTypeSystemConfig 表示系统配置资源引用。
|
||||
NotificationRefTypeSystemConfig = "system_config"
|
||||
// NotificationRefTypeIntegrationLog 表示外部集成日志资源引用。
|
||||
NotificationRefTypeIntegrationLog = "integration_log"
|
||||
// NotificationRefTypePackage 表示套餐资源引用。
|
||||
NotificationRefTypePackage = "package"
|
||||
// NotificationRefTypeAsset 表示个人客户资产资源引用。
|
||||
NotificationRefTypeAsset = "asset"
|
||||
// NotificationRefTypeRefund 表示退款详情资源引用。
|
||||
NotificationRefTypeRefund = "refund"
|
||||
// NotificationRefTypeAgentRecharge 表示代理充值详情资源引用。
|
||||
NotificationRefTypeAgentRecharge = "agent_recharge"
|
||||
// NotificationRefTypeWeComApproval 表示企微审批详情资源引用。
|
||||
NotificationRefTypeWeComApproval = "wecom_approval"
|
||||
// NotificationRefTypeIotCard 表示物联网卡详情资源引用。
|
||||
NotificationRefTypeIotCard = "iot_card"
|
||||
// NotificationRefTypeDevice 表示设备详情资源引用。
|
||||
NotificationRefTypeDevice = "device"
|
||||
// NotificationRefTypeExpiringAsset 表示临期资产列表资源引用。
|
||||
NotificationRefTypeExpiringAsset = "expiring_asset"
|
||||
// NotificationRefTypeShopFund 表示店铺资金概况资源引用。
|
||||
NotificationRefTypeShopFund = "shop_fund"
|
||||
// NotificationRefTypeCardSync 表示卡同步外部集成资源引用。
|
||||
NotificationRefTypeCardSync = "card_sync"
|
||||
|
||||
// NotificationTargetTypeRefundDetail 表示退款详情前端目标。
|
||||
NotificationTargetTypeRefundDetail = "refund_detail"
|
||||
// NotificationTargetTypeAgentRechargeDetail 表示代理充值详情前端目标。
|
||||
NotificationTargetTypeAgentRechargeDetail = "agent_recharge_detail"
|
||||
// NotificationTargetTypeWeComApprovalDetail 表示企微审批详情前端目标。
|
||||
NotificationTargetTypeWeComApprovalDetail = "wecom_approval_detail"
|
||||
// NotificationTargetTypeIotCardDetail 表示物联网卡详情前端目标。
|
||||
NotificationTargetTypeIotCardDetail = "iot_card_detail"
|
||||
// NotificationTargetTypeDeviceDetail 表示设备详情前端目标。
|
||||
NotificationTargetTypeDeviceDetail = "device_detail"
|
||||
// NotificationTargetTypeExpiringAssetList 表示临期资产列表前端目标。
|
||||
NotificationTargetTypeExpiringAssetList = "expiring_asset_list"
|
||||
// NotificationTargetTypeShopFundSummary 表示店铺资金概况前端目标。
|
||||
NotificationTargetTypeShopFundSummary = "shop_fund_summary"
|
||||
// NotificationTargetTypeIntegrationLog 表示统一外部集成前端目标。
|
||||
NotificationTargetTypeIntegrationLog = "integration_log"
|
||||
// NotificationTargetTypeSystemConfig 表示受控系统配置前端目标。
|
||||
NotificationTargetTypeSystemConfig = "system_config"
|
||||
|
||||
// OutboxEventTypeAdminDirectNotification 表示向明确后台账号投递通知的稳定事件类型。
|
||||
OutboxEventTypeAdminDirectNotification = "notification.admin.direct.requested"
|
||||
// OutboxEventTypePersonalCustomerDirectNotification 表示向明确个人客户投递通知的稳定事件类型。
|
||||
OutboxEventTypePersonalCustomerDirectNotification = "notification.personal_customer.direct.requested"
|
||||
// OutboxEventTypeAdminDynamicNotification 表示按账号、平台角色或店铺动态解析后台接收人的事件类型。
|
||||
OutboxEventTypeAdminDynamicNotification = "notification.admin.dynamic.requested"
|
||||
// NotificationPayloadVersionV1 表示明确后台账号通知载荷第一版。
|
||||
NotificationPayloadVersionV1 = 1
|
||||
|
||||
// NotificationDefaultPageSize 表示后台通知默认每页数量。
|
||||
NotificationDefaultPageSize = 20
|
||||
// NotificationMaxPageSize 表示后台通知每页最大数量。
|
||||
NotificationMaxPageSize = 50
|
||||
// NotificationMaxPage 表示通知列表允许查询的最大页码,避免无界偏移。
|
||||
NotificationMaxPage = 10000
|
||||
// NotificationMaxTitleLength 表示通知纯文本标题最大字符数。
|
||||
NotificationMaxTitleLength = 200
|
||||
// NotificationMaxBodyLength 表示通知纯文本正文最大字符数。
|
||||
NotificationMaxBodyLength = 2000
|
||||
// NotificationExpiryRetentionDays 表示临期通知数据保留天数。
|
||||
NotificationExpiryRetentionDays = 180
|
||||
// NotificationApprovalRetentionDays 表示审批结果通知数据保留天数。
|
||||
NotificationApprovalRetentionDays = 365
|
||||
// NotificationSyncDisplayDays 表示同步异常默认展示天数。
|
||||
NotificationSyncDisplayDays = 30
|
||||
// NotificationSyncRetentionDays 表示同步异常通知数据保留天数。
|
||||
NotificationSyncRetentionDays = 180
|
||||
// NotificationSystemDefaultDisplayDays 表示系统告警默认展示天数。
|
||||
NotificationSystemDefaultDisplayDays = 30
|
||||
// NotificationSystemMaxDisplayDays 表示系统告警最长展示天数。
|
||||
NotificationSystemMaxDisplayDays = 365
|
||||
// NotificationSystemRetentionDays 表示系统告警数据保留天数。
|
||||
NotificationSystemRetentionDays = 365
|
||||
// NotificationCleanupBatchSize 表示单批清理通知数量。
|
||||
NotificationCleanupBatchSize = 500
|
||||
// NotificationCleanupMaxBatches 表示每类通知单次任务最多清理批次数。
|
||||
NotificationCleanupMaxBatches = 20
|
||||
)
|
||||
@@ -474,6 +474,36 @@ func RedisPollingRealnameReversalCountKey(cardID uint) string {
|
||||
return fmt.Sprintf("polling:card:realname:reversal:%d", cardID)
|
||||
}
|
||||
|
||||
// RedisCardObservationSeriesKey 返回同场景观测序列合并键。
|
||||
func RedisCardObservationSeriesKey(scene, resourceType, resourceID, syncType string) string {
|
||||
return fmt.Sprintf("cardsync:series:%s:%s:%s:%s", scene, resourceType, resourceID, syncType)
|
||||
}
|
||||
|
||||
// RedisCardObservationSeriesIndexKey 返回同资源、同步类型的活跃序列索引键。
|
||||
func RedisCardObservationSeriesIndexKey(resourceType, resourceID, syncType string) string {
|
||||
return fmt.Sprintf("cardsync:series:index:%s:%s:%s", resourceType, resourceID, syncType)
|
||||
}
|
||||
|
||||
// RedisCardObservationSeriesCompletedKey 返回序列提前完成标记键。
|
||||
func RedisCardObservationSeriesCompletedKey(seriesID string) string {
|
||||
return fmt.Sprintf("cardsync:series:completed:%s", seriesID)
|
||||
}
|
||||
|
||||
// RedisCardObservationAttemptKey 返回 series_id + attempt 幂等键。
|
||||
func RedisCardObservationAttemptKey(seriesID string, attempt int) string {
|
||||
return fmt.Sprintf("cardsync:attempt:%s:%d", seriesID, attempt)
|
||||
}
|
||||
|
||||
// RedisCardObservationInflightKey 返回一次实际 Gateway 请求的互斥键。
|
||||
func RedisCardObservationInflightKey(provider, syncType, resourceID string) string {
|
||||
return fmt.Sprintf("cardsync:inflight:%s:%s:%s", provider, syncType, resourceID)
|
||||
}
|
||||
|
||||
// RedisCardObservationLastRequestKey 返回运营商接入与同步类型的最近请求时间键。
|
||||
func RedisCardObservationLastRequestKey(provider, syncType, resourceID string) string {
|
||||
return fmt.Sprintf("cardsync:last_request:%s:%s:%s", provider, syncType, resourceID)
|
||||
}
|
||||
|
||||
// RedisPollingDeviceOpLockKey 设备维度停复机操作锁 Key
|
||||
// 防止设备下多张卡并发触发 EvaluateAndAct 导致重复 Gateway 调用
|
||||
// TTL 建议 30 秒(覆盖 stopDeviceCards/resumeDeviceCards 最长执行时间)
|
||||
|
||||
@@ -14,6 +14,15 @@ const (
|
||||
AgentWalletTypeCommission = "commission" // 分佣钱包
|
||||
)
|
||||
|
||||
// 代理主钱包信用管理权限
|
||||
const (
|
||||
PermissionRoleDefaultCreditManage = "role:default-credit:manage" // 配置客户角色的新建代理默认信用模板
|
||||
PermissionShopCreditLimitManage = "shop:credit-limit:manage" // 前端控制店铺实际信用额度按钮显示
|
||||
)
|
||||
|
||||
// AgentFundManagementForbiddenMessage 是企业账号访问代理资金功能时的统一拒绝提示。
|
||||
const AgentFundManagementForbiddenMessage = "企业账号无权访问代理资金功能"
|
||||
|
||||
// 代理钱包状态
|
||||
const (
|
||||
AgentWalletStatusNormal = 1 // 正常
|
||||
@@ -29,12 +38,37 @@ const (
|
||||
AgentTransactionTypeCommission = "commission" // 分佣
|
||||
AgentTransactionTypeWithdrawal = "withdrawal" // 提现
|
||||
AgentTransactionTypeCommissionDeduct = "commission_deduct" // 退款佣金回扣
|
||||
AgentTransactionTypeAdjustment = "adjustment" // 人工余额调整
|
||||
)
|
||||
|
||||
// 代理钱包交易子类型(当 transaction_type = "deduct" 用于订单支付时)
|
||||
const (
|
||||
WalletTransactionSubtypeSelfPurchase = "self_purchase" // 自购
|
||||
WalletTransactionSubtypePurchaseForSubordinate = "purchase_for_subordinate" // 给下级代理购买
|
||||
|
||||
// OutboxEventTypeAgentMainWalletDebited 表示代理主钱包订单扣款已提交。
|
||||
OutboxEventTypeAgentMainWalletDebited = "wallet.agent_main.debited"
|
||||
// AgentMainWalletDebitedPayloadVersionV1 是代理主钱包扣款事件载荷版本。
|
||||
AgentMainWalletDebitedPayloadVersionV1 = 1
|
||||
// OutboxEventTypeAgentMainWalletReservationChanged 表示代理主钱包预占状态已变化。
|
||||
OutboxEventTypeAgentMainWalletReservationChanged = "wallet.agent_main.reservation.changed"
|
||||
// AgentMainWalletReservationPayloadVersionV1 是代理主钱包预占事件载荷版本。
|
||||
AgentMainWalletReservationPayloadVersionV1 = 1
|
||||
// OutboxEventTypeAgentMainWalletCredited 表示代理主钱包正向入账已提交。
|
||||
OutboxEventTypeAgentMainWalletCredited = "wallet.agent_main.credited"
|
||||
// AgentMainWalletCreditedPayloadVersionV1 是代理主钱包入账事件载荷版本。
|
||||
AgentMainWalletCreditedPayloadVersionV1 = 1
|
||||
// OutboxEventTypeAgentMainWalletRefunded 表示代理主钱包订单退款回充已提交。
|
||||
OutboxEventTypeAgentMainWalletRefunded = "wallet.agent_main.refunded"
|
||||
// AgentMainWalletRefundedPayloadVersionV1 是代理主钱包退款回充事件载荷版本。
|
||||
AgentMainWalletRefundedPayloadVersionV1 = 1
|
||||
)
|
||||
|
||||
// 代理主钱包预占状态
|
||||
const (
|
||||
AgentWalletReservationStatusFrozen = 1 // 已冻结
|
||||
AgentWalletReservationStatusReleased = 2 // 已释放
|
||||
AgentWalletReservationStatusCompleted = 3 // 已完成扣除
|
||||
)
|
||||
|
||||
// 代理充值订单号前缀
|
||||
@@ -111,12 +145,13 @@ const (
|
||||
|
||||
// 关联业务类型
|
||||
const (
|
||||
ReferenceTypeOrder = "order" // 订单
|
||||
ReferenceTypeCommission = "commission" // 分佣
|
||||
ReferenceTypeWithdrawal = "withdrawal" // 提现
|
||||
ReferenceTypeTopup = "topup" // 充值
|
||||
ReferenceTypeRefund = "refund" // 退款
|
||||
ReferenceTypeExchange = "exchange" // 换货
|
||||
ReferenceTypeOrder = "order" // 订单
|
||||
ReferenceTypeCommission = "commission" // 分佣
|
||||
ReferenceTypeWithdrawal = "withdrawal" // 提现
|
||||
ReferenceTypeTopup = "topup" // 充值
|
||||
ReferenceTypeRefund = "refund" // 退款
|
||||
ReferenceTypeExchange = "exchange" // 换货
|
||||
ReferenceTypeManualAdjustment = "manual_adjustment" // 人工余额调整
|
||||
)
|
||||
|
||||
// ========== Redis Key 生成函数 ==========
|
||||
|
||||
Reference in New Issue
Block a user