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>
57 lines
2.7 KiB
Go
57 lines
2.7 KiB
Go
package bootstrap
|
||
|
||
import (
|
||
"github.com/redis/go-redis/v9"
|
||
"go.uber.org/zap"
|
||
"gorm.io/gorm"
|
||
|
||
approvalApp "github.com/break/junhong_cmp_fiber/internal/application/approval"
|
||
"github.com/break/junhong_cmp_fiber/internal/application/merchantpayment"
|
||
packagesilenceApp "github.com/break/junhong_cmp_fiber/internal/application/packagesilence"
|
||
refundchannelApp "github.com/break/junhong_cmp_fiber/internal/application/refundchannel"
|
||
auditInfra "github.com/break/junhong_cmp_fiber/internal/infrastructure/audit"
|
||
packageSvc "github.com/break/junhong_cmp_fiber/internal/service/package"
|
||
)
|
||
|
||
// packageSilenceBundle 是沉默期相关用例的装配结果(API 与 Worker 共用)。
|
||
type packageSilenceBundle struct {
|
||
Switch *packagesilenceApp.Switch
|
||
Resolver *packagesilenceApp.Resolver
|
||
Setter *packagesilenceApp.Setter
|
||
Outbound *packagesilenceApp.OutboundRecorder
|
||
// 以下仅 API 与 Worker 中延期相关入口装配
|
||
Extensions *packagesilenceApp.ExtensionService
|
||
Policies *packagesilenceApp.PolicyService
|
||
Switches *packagesilenceApp.SwitchService
|
||
}
|
||
|
||
// newPackageSilenceBundle 装配沉默期总开关、判定、设置与出库时间用例,并把激活闸门注入激活服务。
|
||
func newPackageSilenceBundle(db *gorm.DB, redisClient *redis.Client, logger *zap.Logger, auditWriter *auditInfra.Writer, activation *packageSvc.ActivationService) *packageSilenceBundle {
|
||
sw := packagesilenceApp.NewDefaultSwitch(db, redisClient, logger)
|
||
resolver := packagesilenceApp.NewResolver(db, sw, auditWriter, logger)
|
||
if activation != nil {
|
||
resolver.SetActivator(activation)
|
||
activation.SetSilenceGate(resolver, sw)
|
||
}
|
||
return &packageSilenceBundle{
|
||
Switch: sw, Resolver: resolver,
|
||
Setter: packagesilenceApp.NewSetter(db, auditWriter),
|
||
Outbound: packagesilenceApp.NewOutboundRecorder(auditWriter),
|
||
Extensions: packagesilenceApp.NewExtensionService(db, resolver, auditWriter, logger),
|
||
Policies: packagesilenceApp.NewPolicyService(db, auditWriter),
|
||
Switches: packagesilenceApp.NewSwitchService(db, redisClient, sw, auditWriter),
|
||
}
|
||
}
|
||
|
||
// wireExtensions 注入延期用例的审批、权限、资产归属、商户池与支付渠道。
|
||
func (b *packageSilenceBundle) wireExtensions(approval approvalApp.Port, perms packagesilenceApp.PermissionChecker, ownership packagesilenceApp.OwnershipChecker,
|
||
runtime *merchantpayment.RuntimeLoader, ports packagesilenceApp.PaymentPorts, refunder refundchannelApp.Refunder) {
|
||
b.Setter.SetApprovalPort(approval)
|
||
b.Setter.SetPermissionChecker(perms)
|
||
b.Extensions.SetApprovalPort(approval)
|
||
b.Extensions.SetPermissionChecker(perms)
|
||
b.Extensions.SetOwnershipChecker(ownership)
|
||
b.Extensions.SetPayment(runtime, ports, refunder)
|
||
b.Policies.SetPermissionChecker(perms)
|
||
}
|