feat(业务用户组): AUG26-003 业务用户组与店铺负责人分组导入
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 1h43m42s
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 1h43m42s
- 迁移 000221:新增 tb_business_user_group、tb_business_user_group_member、tb_shop_business_owner_import_task,成员一账号一行由部分唯一索引保证,店铺所属组按当前负责人实时推导,不回填历史分组。 - 用户组 CRUD、成员改组/清空归属、店铺批量交接(原子失败不部分写入)。 - 店铺负责人 CSV 导入任务:逐行独立事务、逐行明细、任务级与行级失败分离。 - 读侧推导与筛选:未分组、业务线、停用组可筛出并带停用标记。 - 补齐操作审计动作与资源、openapi 清单、发布门禁巡检表清单。 - 归档 add-shop-salesperson-groups 变更并同步 openspec/specs/business-user-group,补齐 AUG26-003 验证证据链。
This commit is contained in:
@@ -75,6 +75,8 @@ const (
|
||||
// 订单套餐失效任务类型
|
||||
TaskTypeOrderPackageInvalidate = "order:package:invalidate" // 批量失效订单套餐
|
||||
TaskTypeAssetPackageBatchOrder = "asset:package:batch_order" // 资产套餐批量订购
|
||||
// 店铺负责人 CSV 导入任务类型,独立成队列以隔离逐行执行的长时任务。
|
||||
TaskTypeShopBusinessOwnerImport = "shop_business_owner:import"
|
||||
|
||||
// 订单超时任务类型
|
||||
TaskTypeOrderExpire = "order:expire" // 订单超时自动取消
|
||||
@@ -209,34 +211,35 @@ const (
|
||||
QueueDefault = "default" // 旧版默认队列(兼容历史任务)
|
||||
QueueLow = "low" // 旧版低优先级队列(兼容历史任务)
|
||||
|
||||
QueueEmailSend = TaskTypeEmailSend // 发送邮件任务队列
|
||||
QueueCommission = TaskTypeCommission // 分佣计算任务队列
|
||||
QueueIotCardImport = TaskTypeIotCardImport // IoT 卡导入任务队列
|
||||
QueueDeviceImport = TaskTypeDeviceImport // 设备导入任务队列
|
||||
QueueExportDispatch = TaskTypeExportDispatch // 导出分发任务队列
|
||||
QueueExportShard = TaskTypeExportShard // 导出分片任务队列
|
||||
QueueExportFinalize = TaskTypeExportFinalize // 导出收尾任务队列
|
||||
QueueCommissionStatsUpdate = TaskTypeCommissionStatsUpdate // 佣金统计更新任务队列
|
||||
QueueCommissionStatsSync = TaskTypeCommissionStatsSync // 佣金统计同步任务队列
|
||||
QueueCommissionStatsArchive = TaskTypeCommissionStatsArchive // 佣金统计归档任务队列
|
||||
QueuePollingRealname = TaskTypePollingRealname // 实名轮询任务队列
|
||||
QueuePollingCarddata = TaskTypePollingCarddata // 流量轮询任务队列
|
||||
QueuePollingPackage = TaskTypePollingPackage // 套餐轮询任务队列
|
||||
QueuePollingProtect = TaskTypePollingProtect // 保护期轮询任务队列
|
||||
QueuePollingCardStatus = TaskTypePollingCardStatus // 卡状态轮询任务队列
|
||||
QueuePackageFirstActivation = TaskTypePackageFirstActivation // 首次实名激活任务队列
|
||||
QueuePackageQueueActivation = TaskTypePackageQueueActivation // 主套餐排队激活任务队列
|
||||
QueuePackageDataReset = TaskTypePackageDataReset // 套餐流量重置任务队列
|
||||
QueueOrderPackageInvalidate = TaskTypeOrderPackageInvalidate // 批量失效订单套餐任务队列
|
||||
QueueAssetPackageBatchOrder = TaskTypeAssetPackageBatchOrder // 资产套餐批量订购任务队列
|
||||
QueueOrderExpire = TaskTypeOrderExpire // 订单超时取消任务队列
|
||||
QueueAutoPurchase = TaskTypeAutoPurchaseAfterRecharge // 充值后自动购包任务队列
|
||||
QueueAlertCheck = TaskTypeAlertCheck // 告警检查任务队列
|
||||
QueueDataCleanup = TaskTypeDataCleanup // 数据清理任务队列
|
||||
QueueDailyTrafficFlush = TaskTypeDailyTrafficFlush // 每日流量落盘任务队列
|
||||
QueueOutboxDeliver = TaskTypeOutboxDeliver // 公共 Outbox 投递队列
|
||||
QueueCardObservationSeries = TaskTypeCardObservationSeries // 卡观测事件序列队列
|
||||
QueueWeComApproval = "wecom:approval" // 企业微信审批同步与恢复队列
|
||||
QueueEmailSend = TaskTypeEmailSend // 发送邮件任务队列
|
||||
QueueCommission = TaskTypeCommission // 分佣计算任务队列
|
||||
QueueIotCardImport = TaskTypeIotCardImport // IoT 卡导入任务队列
|
||||
QueueDeviceImport = TaskTypeDeviceImport // 设备导入任务队列
|
||||
QueueExportDispatch = TaskTypeExportDispatch // 导出分发任务队列
|
||||
QueueExportShard = TaskTypeExportShard // 导出分片任务队列
|
||||
QueueExportFinalize = TaskTypeExportFinalize // 导出收尾任务队列
|
||||
QueueCommissionStatsUpdate = TaskTypeCommissionStatsUpdate // 佣金统计更新任务队列
|
||||
QueueCommissionStatsSync = TaskTypeCommissionStatsSync // 佣金统计同步任务队列
|
||||
QueueCommissionStatsArchive = TaskTypeCommissionStatsArchive // 佣金统计归档任务队列
|
||||
QueuePollingRealname = TaskTypePollingRealname // 实名轮询任务队列
|
||||
QueuePollingCarddata = TaskTypePollingCarddata // 流量轮询任务队列
|
||||
QueuePollingPackage = TaskTypePollingPackage // 套餐轮询任务队列
|
||||
QueuePollingProtect = TaskTypePollingProtect // 保护期轮询任务队列
|
||||
QueuePollingCardStatus = TaskTypePollingCardStatus // 卡状态轮询任务队列
|
||||
QueuePackageFirstActivation = TaskTypePackageFirstActivation // 首次实名激活任务队列
|
||||
QueuePackageQueueActivation = TaskTypePackageQueueActivation // 主套餐排队激活任务队列
|
||||
QueuePackageDataReset = TaskTypePackageDataReset // 套餐流量重置任务队列
|
||||
QueueOrderPackageInvalidate = TaskTypeOrderPackageInvalidate // 批量失效订单套餐任务队列
|
||||
QueueAssetPackageBatchOrder = TaskTypeAssetPackageBatchOrder // 资产套餐批量订购任务队列
|
||||
QueueShopBusinessOwnerImport = TaskTypeShopBusinessOwnerImport // 店铺负责人 CSV 导入任务队列
|
||||
QueueOrderExpire = TaskTypeOrderExpire // 订单超时取消任务队列
|
||||
QueueAutoPurchase = TaskTypeAutoPurchaseAfterRecharge // 充值后自动购包任务队列
|
||||
QueueAlertCheck = TaskTypeAlertCheck // 告警检查任务队列
|
||||
QueueDataCleanup = TaskTypeDataCleanup // 数据清理任务队列
|
||||
QueueDailyTrafficFlush = TaskTypeDailyTrafficFlush // 每日流量落盘任务队列
|
||||
QueueOutboxDeliver = TaskTypeOutboxDeliver // 公共 Outbox 投递队列
|
||||
QueueCardObservationSeries = TaskTypeCardObservationSeries // 卡观测事件序列队列
|
||||
QueueWeComApproval = "wecom:approval" // 企业微信审批同步与恢复队列
|
||||
|
||||
DefaultRetryMax = 5 // 默认任务最大重试次数
|
||||
DefaultTimeout = 10 * time.Minute // 默认任务超时时间
|
||||
@@ -286,6 +289,8 @@ func QueueForTaskType(taskType string) string {
|
||||
return QueueOrderPackageInvalidate
|
||||
case TaskTypeAssetPackageBatchOrder:
|
||||
return QueueAssetPackageBatchOrder
|
||||
case TaskTypeShopBusinessOwnerImport:
|
||||
return QueueShopBusinessOwnerImport
|
||||
case TaskTypeOrderExpire:
|
||||
return QueueOrderExpire
|
||||
case TaskTypeAutoPurchaseAfterRecharge:
|
||||
@@ -318,37 +323,38 @@ func QueueForTaskType(taskType string) string {
|
||||
// DefaultTaskQueueWeights 返回 Worker 默认监听的全部任务队列及其权重。
|
||||
func DefaultTaskQueueWeights() map[string]int {
|
||||
return map[string]int{
|
||||
QueueCritical: 6,
|
||||
QueueIotCardImport: 6,
|
||||
QueueDeviceImport: 6,
|
||||
QueueAutoPurchase: 5,
|
||||
QueuePackageFirstActivation: 5,
|
||||
QueuePackageQueueActivation: 5,
|
||||
QueueOrderPackageInvalidate: 5,
|
||||
QueueAssetPackageBatchOrder: 5,
|
||||
QueueOrderExpire: 4,
|
||||
QueueEmailSend: 4,
|
||||
QueueExportDispatch: 4,
|
||||
QueueExportFinalize: 4,
|
||||
QueueCommission: 3,
|
||||
QueueAlertCheck: 3,
|
||||
QueueExportShard: 2,
|
||||
QueueCommissionStatsUpdate: 2,
|
||||
QueueCommissionStatsSync: 2,
|
||||
QueueCommissionStatsArchive: 2,
|
||||
QueuePollingRealname: 1,
|
||||
QueuePollingCarddata: 1,
|
||||
QueuePollingPackage: 1,
|
||||
QueuePollingProtect: 1,
|
||||
QueuePollingCardStatus: 1,
|
||||
QueuePackageDataReset: 1,
|
||||
QueueDataCleanup: 1,
|
||||
QueueDailyTrafficFlush: 1,
|
||||
QueueOutboxDeliver: 4,
|
||||
QueueCardObservationSeries: 2,
|
||||
QueueWeComApproval: 2,
|
||||
QueueDefault: 1,
|
||||
QueueLow: 1,
|
||||
QueueCritical: 6,
|
||||
QueueIotCardImport: 6,
|
||||
QueueDeviceImport: 6,
|
||||
QueueAutoPurchase: 5,
|
||||
QueuePackageFirstActivation: 5,
|
||||
QueuePackageQueueActivation: 5,
|
||||
QueueOrderPackageInvalidate: 5,
|
||||
QueueAssetPackageBatchOrder: 5,
|
||||
QueueShopBusinessOwnerImport: 4,
|
||||
QueueOrderExpire: 4,
|
||||
QueueEmailSend: 4,
|
||||
QueueExportDispatch: 4,
|
||||
QueueExportFinalize: 4,
|
||||
QueueCommission: 3,
|
||||
QueueAlertCheck: 3,
|
||||
QueueExportShard: 2,
|
||||
QueueCommissionStatsUpdate: 2,
|
||||
QueueCommissionStatsSync: 2,
|
||||
QueueCommissionStatsArchive: 2,
|
||||
QueuePollingRealname: 1,
|
||||
QueuePollingCarddata: 1,
|
||||
QueuePollingPackage: 1,
|
||||
QueuePollingProtect: 1,
|
||||
QueuePollingCardStatus: 1,
|
||||
QueuePackageDataReset: 1,
|
||||
QueueDataCleanup: 1,
|
||||
QueueDailyTrafficFlush: 1,
|
||||
QueueOutboxDeliver: 4,
|
||||
QueueCardObservationSeries: 2,
|
||||
QueueWeComApproval: 2,
|
||||
QueueDefault: 1,
|
||||
QueueLow: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user