收口七月卡状态回调与系列授权兼容契约
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
完成运营商实名回调、业务事件观测序列与受控配置装配,同时恢复 UR43 已交付的 packages[].remove 字段及旧响应兼容,统一更新 OpenSpec、OpenAPI 和交付文档。 Constraint: 七月测试环境里程碑不新增或运行自动化测试 Rejected: 以必填 operation_type 替换 packages[].remove | 会破坏已交付前端契约 Confidence: high Scope-risk: broad Directive: 后续修改系列套餐管理接口必须保持 packages[].remove 和 ShopSeriesGrantResponse 兼容 Tested: go run ./cmd/gendocs;go build -buildvcs=false ./...;openspec validate complete-july-iteration-test-release --strict;git diff --check Not-tested: 按本 Change 约定未运行 go test,真实运营商与 Gateway 联调延期
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
cardapp "github.com/break/junhong_cmp_fiber/internal/application/cardobservation"
|
||||
"github.com/break/junhong_cmp_fiber/pkg/constants"
|
||||
pkgerrors "github.com/break/junhong_cmp_fiber/pkg/errors"
|
||||
)
|
||||
|
||||
// CardObservationSeriesScheduler 将固定阶梯任务提交到独立队列。
|
||||
@@ -23,6 +24,9 @@ func NewCardObservationSeriesScheduler(client *Client) *CardObservationSeriesSch
|
||||
|
||||
// Enqueue 以稳定 series_id + attempt 任务 ID 零重试入队。
|
||||
func (s *CardObservationSeriesScheduler) Enqueue(ctx context.Context, payload cardapp.SeriesTaskPayload) error {
|
||||
if s == nil || s.client == nil {
|
||||
return pkgerrors.New(pkgerrors.CodeInternalError, "卡观测序列队列客户端未配置")
|
||||
}
|
||||
taskID := "card-series-" + payload.SeriesID + "-" + strconv.Itoa(payload.Attempt)
|
||||
err := s.client.EnqueueTask(
|
||||
ctx,
|
||||
|
||||
@@ -228,6 +228,7 @@ func (h *Handler) registerPollingHandlers() {
|
||||
h.pollingBase, h.workerResult.Stores.IotCard,
|
||||
h.pollingStopResumeSvc)
|
||||
protectHandler := task.NewPollingProtectHandler(
|
||||
h.db, h.workerResult.Services.ObservationSeriesEvents,
|
||||
h.pollingBase, h.gatewayClient, h.workerResult.Stores.IotCard,
|
||||
h.workerResult.Stores.DeviceSimBinding, h.pollingStopResumeSvc)
|
||||
cardStatusHandler := task.NewPollingCardStatusHandler(
|
||||
@@ -295,6 +296,7 @@ func (h *Handler) registerAutoPurchaseHandler() {
|
||||
h.redis,
|
||||
h.asynqClient,
|
||||
h.logger,
|
||||
h.workerResult.Services.ObservationSeriesEvents,
|
||||
)
|
||||
h.mux.HandleFunc(constants.TaskTypeAutoPurchaseAfterRecharge, autoPurchaseHandler.ProcessTask)
|
||||
h.logger.Info("注册自动购包任务处理器", zap.String("task_type", constants.TaskTypeAutoPurchaseAfterRecharge))
|
||||
|
||||
@@ -54,17 +54,18 @@ type WorkerStores struct {
|
||||
|
||||
// WorkerServices Worker 侧所有 Service 的集合
|
||||
type WorkerServices struct {
|
||||
CardObservation *cardObservationApp.Service
|
||||
CardObservationSeries *cardObservationApp.SeriesAttemptService
|
||||
CommissionCalculation *commission_calculation.Service
|
||||
CommissionStats *commission_stats.Service
|
||||
UsageService *packagepkg.UsageService
|
||||
ActivationService *packagepkg.ActivationService
|
||||
ResetService *packagepkg.ResetService
|
||||
AlertService *pollingSvc.AlertService
|
||||
CleanupService *pollingSvc.CleanupService
|
||||
StopResumeService packagepkg.StopResumeCallback // 停复机服务,用于注入 Scheduler
|
||||
OrderExpirer OrderExpirer // 订单超时取消服务(接口类型,避免循环依赖)
|
||||
CardObservation *cardObservationApp.Service
|
||||
CardObservationSeries *cardObservationApp.SeriesAttemptService
|
||||
ObservationSeriesEvents cardObservationApp.SeriesEventWriter
|
||||
CommissionCalculation *commission_calculation.Service
|
||||
CommissionStats *commission_stats.Service
|
||||
UsageService *packagepkg.UsageService
|
||||
ActivationService *packagepkg.ActivationService
|
||||
ResetService *packagepkg.ResetService
|
||||
AlertService *pollingSvc.AlertService
|
||||
CleanupService *pollingSvc.CleanupService
|
||||
StopResumeService packagepkg.StopResumeCallback // 停复机服务,用于注入 Scheduler
|
||||
OrderExpirer OrderExpirer // 订单超时取消服务(接口类型,避免循环依赖)
|
||||
}
|
||||
|
||||
// WorkerBootstrapResult Worker Bootstrap 结果
|
||||
|
||||
Reference in New Issue
Block a user