feat: 实名即生效套餐沉默期、延期办理与资产出库时间
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8m39s
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8m39s
- 迁移 000259~000265:套餐记录沉默期字段与扫描索引、套餐默认沉默期、延期政策/流水/订单/批次/明细 5 张表、默认政策与系统配置(总开关默认关闭)、企微审批白名单、卡与设备出库时间及出库记录 - 沉默期设置(订单发放、自动购包、钱包续费)、后台购买时调整(超默认值按政策免审或企微审批)、统一判定与激活闸门、排队与孤儿扫描跳过过期套餐、过期套餐禁止退款、每 10 分钟扫描 - 总开关专用接口与打开前 4 项检查;延期政策;延期资格与计费;H5 自助与后台二维码在线支付(商户池路由)、支付回调与查单恢复、线下登记、特殊/批量延期、异常重试与原路退款;沉默期审批场景与终态处理 - 换货沉默期流水与出库时间;卡/设备列表、详情、导出与出库记录接口;延期订单与即将过期套餐列表及导出;财务流水纳入延期支付 - 沉默期与出库时间回填工具 cmd/silence-backfill;前端接口变更说明 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -95,6 +95,7 @@ func (h *Handler) RegisterHandlers() *asynq.ServeMux {
|
||||
h.registerNotificationCleanupHandler()
|
||||
h.registerPackageExpiryReminderHandler()
|
||||
h.registerPackageTrafficAlertScanHandler()
|
||||
h.registerPackageSilenceHandlers()
|
||||
h.registerAutoPurchaseHandler()
|
||||
h.registerDailyTrafficFlushHandler()
|
||||
h.registerOperationsReportSnapshotHandler()
|
||||
@@ -369,6 +370,23 @@ func (h *Handler) registerPackageTrafficAlertScanHandler() {
|
||||
h.logger.Info("注册每日套餐真流量达量预警扫描任务处理器", zap.String("task_type", constants.TaskTypePackageTrafficAlertScan))
|
||||
}
|
||||
|
||||
// registerPackageSilenceHandlers 注册沉默期扫描与延期订单查单恢复任务处理器。
|
||||
func (h *Handler) registerPackageSilenceHandlers() {
|
||||
services := h.workerResult.Services
|
||||
if services == nil || services.SilenceResolver == nil {
|
||||
h.logger.Warn("沉默期用例未装配,跳过注册沉默期任务处理器")
|
||||
return
|
||||
}
|
||||
scan := task.NewPackageSilenceScanHandler(services.SilenceResolver, h.logger)
|
||||
h.mux.HandleFunc(constants.TaskTypePackageSilenceScan, scan.Handle)
|
||||
h.logger.Info("注册沉默期扫描任务处理器", zap.String("task_type", constants.TaskTypePackageSilenceScan))
|
||||
if services.SilenceExtensions != nil {
|
||||
recoverHandler := task.NewPackageSilenceOrderRecoverHandler(services.SilenceExtensions, h.logger)
|
||||
h.mux.HandleFunc(constants.TaskTypePackageSilenceOrderRecover, recoverHandler.Handle)
|
||||
h.logger.Info("注册沉默期延期订单恢复任务处理器", zap.String("task_type", constants.TaskTypePackageSilenceOrderRecover))
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Handler) registerAutoPurchaseHandler() {
|
||||
autoPurchaseHandler := task.NewAutoPurchaseHandler(
|
||||
h.db,
|
||||
@@ -385,6 +403,10 @@ func (h *Handler) registerAutoPurchaseHandler() {
|
||||
h.workerResult.Services.PriorityEvents,
|
||||
audit.NewWriter(audit.NewRegistry(), nil),
|
||||
)
|
||||
if services := h.workerResult.Services; services != nil {
|
||||
autoPurchaseHandler.SetSilenceSetter(services.SilenceSetter)
|
||||
autoPurchaseHandler.SetOutboundRecorder(services.SilenceOutbound)
|
||||
}
|
||||
h.mux.HandleFunc(constants.TaskTypeAutoPurchaseAfterRecharge, autoPurchaseHandler.ProcessTask)
|
||||
h.logger.Info("注册自动购包任务处理器", zap.String("task_type", constants.TaskTypeAutoPurchaseAfterRecharge))
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package queue
|
||||
|
||||
import (
|
||||
"context"
|
||||
packagesilenceApp "github.com/break/junhong_cmp_fiber/internal/application/packagesilence"
|
||||
iotCardSvc "github.com/break/junhong_cmp_fiber/internal/service/iot_card"
|
||||
|
||||
agentrechargeApp "github.com/break/junhong_cmp_fiber/internal/application/agentrecharge"
|
||||
@@ -91,6 +92,13 @@ type WorkerServices struct {
|
||||
AssetPolling *pollingSvc.AssetPollingService
|
||||
// IotCardPolling 是 AssetPolling 使用的卡服务,Worker 启动时注入轮询生命周期回调。
|
||||
IotCardPolling *iotCardSvc.Service
|
||||
// 沉默期:总开关、统一判定、设置与出库时间用例(扫描、自动购包、延期执行共用)。
|
||||
SilenceSwitch *packagesilenceApp.Switch
|
||||
SilenceResolver *packagesilenceApp.Resolver
|
||||
SilenceSetter *packagesilenceApp.Setter
|
||||
SilenceOutbound *packagesilenceApp.OutboundRecorder
|
||||
// SilenceExtensions 执行沉默期审批通过后的延期、延期订单查单恢复与异常原路退款。
|
||||
SilenceExtensions *packagesilenceApp.ExtensionService
|
||||
}
|
||||
|
||||
// WorkerBootstrapResult Worker Bootstrap 结果
|
||||
|
||||
Reference in New Issue
Block a user