feat(sms): 新增节点短信提醒(审核未通过/被租用需辅助/上架未成交)
This commit is contained in:
@@ -14,13 +14,17 @@ import (
|
||||
"hfb_sys/backend/internal/database"
|
||||
"hfb_sys/backend/internal/jobs/distributionsettlement"
|
||||
"hfb_sys/backend/internal/jobs/fileuploadcleanup"
|
||||
"hfb_sys/backend/internal/jobs/listingstale"
|
||||
"hfb_sys/backend/internal/jobs/ordertimeout"
|
||||
"hfb_sys/backend/internal/jobs/refundretry"
|
||||
"hfb_sys/backend/internal/jobs/smsdispatch"
|
||||
"hfb_sys/backend/internal/logging"
|
||||
"hfb_sys/backend/internal/modules/adminauth"
|
||||
"hfb_sys/backend/internal/modules/distribution"
|
||||
"hfb_sys/backend/internal/modules/order"
|
||||
"hfb_sys/backend/internal/modules/payment"
|
||||
"hfb_sys/backend/internal/modules/paymentconfig"
|
||||
"hfb_sys/backend/internal/modules/systemconfig"
|
||||
"hfb_sys/backend/internal/router"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -112,6 +116,7 @@ func main() {
|
||||
if paymentRepo != nil {
|
||||
refundretry.New(deps.DB, deps.Redis, logger, paymentRepo).Start(jobCtx)
|
||||
}
|
||||
startSMSJobs(jobCtx, cfg, deps, logger)
|
||||
}
|
||||
server := &http.Server{
|
||||
Addr: cfg.AppAddr,
|
||||
@@ -178,3 +183,32 @@ func newPaymentConfigRepositoryForJobs(cfg config.Config, db *gorm.DB, logger *z
|
||||
}
|
||||
return paymentconfig.NewRepository(db, encryptor)
|
||||
}
|
||||
|
||||
// startSMSJobs 启动节点短信派发与「上架未成交」扫描任务。
|
||||
// 分站短信密钥需要解密,因此这里单独构造一份带业务字段加密器的分销仓库。
|
||||
func startSMSJobs(ctx context.Context, cfg config.Config, deps router.Dependencies, logger *zap.Logger) {
|
||||
if deps.DB == nil {
|
||||
return
|
||||
}
|
||||
configRepo := systemconfig.NewRepository(deps.DB)
|
||||
if err := configRepo.EnsureDefaults(ctx); err != nil {
|
||||
logger.Warn("系统配置默认值初始化失败,节点短信将按默认关闭处理", zap.Error(err))
|
||||
}
|
||||
|
||||
distributionRepo := distribution.NewRepository(deps.DB, deps.Redis)
|
||||
distributionRepo.SetEncryptor(router.NewFieldEncryptor(cfg, logger))
|
||||
distributionRepo.SetAllowMockSMS(!config.IsProductionEnv(cfg.AppEnv))
|
||||
resolver := distribution.NewSMSResolver(distributionRepo, logger)
|
||||
|
||||
smsdispatch.New(
|
||||
deps.DB,
|
||||
deps.Redis,
|
||||
logger,
|
||||
router.NewSMSProvider(cfg, logger),
|
||||
cfg.SMS.AliyunSignName,
|
||||
configRepo,
|
||||
resolver,
|
||||
).Start(ctx)
|
||||
|
||||
listingstale.New(deps.DB, deps.Redis, logger, configRepo).Start(ctx)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user