fix: align admin behavior and Kratos integrations

This commit is contained in:
2026-08-14 14:14:51 +08:00
parent 8c4c6ba661
commit e0b0e1d8c8
123 changed files with 4334 additions and 1877 deletions
+5 -10
View File
@@ -7,14 +7,14 @@ import (
"path/filepath"
"kra/internal/conf"
"kra/internal/server"
"kra/internal/worker"
"kra/pkg/logging"
"github.com/go-kratos/kratos/contrib/otel/v3/tracing"
"github.com/go-kratos/kratos/v3"
"github.com/go-kratos/kratos/v3/config"
"github.com/go-kratos/kratos/v3/config/file"
"github.com/go-kratos/kratos/v3/log"
kratoshttp "github.com/go-kratos/kratos/v3/transport/http"
_ "go.uber.org/automaxprocs"
)
@@ -35,7 +35,7 @@ func init() {
flag.StringVar(&flagconf, "conf", "../../configs", "config path, eg: -conf config.yaml")
}
func newApp(logger *slog.Logger, hs *server.GinServer, scheduler *worker.TaskScheduler) *kratos.App {
func newApp(logger *slog.Logger, hs *kratoshttp.Server, scheduler *worker.TaskScheduler) *kratos.App {
return kratos.New(
kratos.ID(id),
kratos.Name(Name),
@@ -51,17 +51,12 @@ func newApp(logger *slog.Logger, hs *server.GinServer, scheduler *worker.TaskSch
func main() {
flag.Parse()
logger := log.NewLogger(
slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
AddSource: true,
Level: slog.LevelInfo,
}),
log.WithExtractor(tracing.TraceAttrs),
).With(
logger, closeLogger := logging.NewZapLogger("logs", "application.log",
slog.String("service.id", id),
slog.String("service.name", Name),
slog.String("service.version", Version),
)
defer closeLogger()
log.SetDefault(logger)
c := config.New(
config.WithSource(
+1 -1
View File
@@ -20,5 +20,5 @@ import (
// wireApp init kratos application.
func wireApp(*conf.Server, *conf.Data, *conf.AdminBackend, *slog.Logger) (*kratos.App, func(), error) {
panic(wire.Build(server.ProviderSet, data.ProviderSet, biz.ProviderSet, service.ProviderSet, newApp))
panic(wire.Build(conf.NewRuntime, server.ProviderSet, data.ProviderSet, biz.ProviderSet, service.ProviderSet, newApp))
}
+9 -8
View File
@@ -26,7 +26,8 @@ import (
// wireApp init kratos application.
func wireApp(confServer *conf.Server, confData *conf.Data, adminBackend *conf.AdminBackend, logger *slog.Logger) (*kratos.App, func(), error) {
dataData, cleanup, err := data.NewData(confData, adminBackend)
runtime := conf.NewRuntime(confData, adminBackend)
dataData, cleanup, err := data.NewData(runtime)
if err != nil {
return nil, nil, err
}
@@ -40,8 +41,8 @@ func wireApp(confServer *conf.Server, confData *conf.Data, adminBackend *conf.Ad
systemUsecase := biz.NewSystemUsecase(systemRepo, cache, fileStorage)
settingsRepo := data.NewSettingsRepo(dataData)
settingsUsecase := biz.NewSettingsUsecase(settingsRepo)
settingsService := service.NewSettingsService(settingsUsecase, adminBackend)
systemService := service.NewSystemService(systemUsecase, adminBackend, settingsService)
settingsService := service.NewSettingsService(settingsUsecase, runtime, cache)
systemService := service.NewSystemService(systemUsecase, runtime, settingsService)
accessRepo := data.NewAccessRepo(dataData)
accessUsecase := biz.NewAccessUsecase(accessRepo)
accessService := service.NewAccessService(accessUsecase)
@@ -60,7 +61,7 @@ func wireApp(confServer *conf.Server, confData *conf.Data, adminBackend *conf.Ad
announcementUsecase := biz.NewAnnouncementUsecase(announcementRepo)
announcementService := service.NewAnnouncementService(announcementUsecase)
announcement := handler.NewAnnouncement(announcementService)
emailRepo := data.NewEmailRepo(adminBackend)
emailRepo := data.NewEmailRepo(runtime)
emailUsecase := biz.NewEmailUsecase(emailRepo)
emailService := service.NewEmailService(emailUsecase)
email := handler.NewEmail(emailService)
@@ -68,7 +69,7 @@ func wireApp(confServer *conf.Server, confData *conf.Data, adminBackend *conf.Ad
taskUsecase := biz.NewTaskUsecase(taskRepo)
mediaRepo := data.NewMediaRepo(dataData)
mediaUsecase := biz.NewMediaUsecase(mediaRepo, fileStorage)
taskService := service.NewTaskService(taskUsecase, mediaUsecase, adminBackend)
taskService := service.NewTaskService(taskUsecase, mediaUsecase, runtime)
taskScheduler := worker.NewTaskScheduler(taskService, logger)
task := handler.NewTask(taskService, taskScheduler)
mediaService := service.NewMediaService(mediaUsecase)
@@ -89,12 +90,12 @@ func wireApp(confServer *conf.Server, confData *conf.Data, adminBackend *conf.Ad
parameter := handler.NewParameter(settingsService)
apiToken := handler.NewAPIToken(settingsService)
systemConfig := handler.NewSystemConfig(systemService, settingsService, taskScheduler)
public := handler.NewPublic(adminBackend, systemService, settingsService, auditService, taskScheduler)
public := handler.NewPublic(runtime, systemService, settingsService, auditService, taskScheduler)
user := handler.NewUser(systemService)
navigation := handler.NewNavigation(systemService)
session := handler.NewSession(settingsService)
ginServer := server.NewGinServer(confServer, adminBackend, systemService, accessService, authority, menu, api, permission, organization, announcement, email, task, media, audit, export, version, dictionary, parameter, apiToken, systemConfig, public, user, navigation, session, settingsService, auditService, emailService, logger)
app := newApp(logger, ginServer, taskScheduler)
httpServer := server.NewGinServer(confServer, runtime, systemService, accessService, authority, menu, api, permission, organization, announcement, email, task, media, audit, export, version, dictionary, parameter, apiToken, systemConfig, public, user, navigation, session, settingsService, auditService, emailService, logger)
app := newApp(logger, httpServer, taskScheduler)
return app, func() {
cleanup()
}, nil