feat: live module and jenkins pipeline to harbor deploy

This commit is contained in:
Yvan
2026-09-21 16:45:44 +08:00
parent 451c8e2abc
commit 829d75c657
145 changed files with 8984 additions and 269 deletions
+2 -1
View File
@@ -9,6 +9,7 @@ import (
"strings"
"kra/internal/config"
liveintegration "kra/internal/integration/live"
"kra/internal/logging"
"kra/internal/server/router"
"kra/internal/service/dto"
@@ -62,7 +63,7 @@ func buildRuntime(registry *platformtask.Registry, systemRoutes *router.Routes,
return systemRoutes
}
func newApp(logger *slog.Logger, hs *kratoshttp.Server, scheduler *worker.TaskScheduler, audit *systemservice.AuditRecorder, loggerControl *logging.ReloadableLogger, _ mq.Client) *kratos.App {
func newApp(logger *slog.Logger, hs *kratoshttp.Server, scheduler *worker.TaskScheduler, audit *systemservice.AuditRecorder, loggerControl *logging.ReloadableLogger, _ mq.Client, _ *liveintegration.Manager) *kratos.App {
if audit != nil && loggerControl != nil {
loggerControl.SetErrorSink(logging.ErrorSinkFunc(func(ctx context.Context, entry logging.ErrorEntry) error {
return audit.CreateErrorRequest(ctx, &dto.ErrorRecordRequest{Form: entry.Form, Info: entry.Info, Level: entry.Level, RequestID: entry.RequestID, TraceID: entry.TraceID})
+90 -7
View File
@@ -8,20 +8,37 @@ package main
import (
"github.com/go-kratos/kratos/v3"
analytics2 "kra/internal/biz/analytics"
asset2 "kra/internal/biz/asset"
gift2 "kra/internal/biz/gift"
integration3 "kra/internal/biz/integration"
live2 "kra/internal/biz/live"
livechat2 "kra/internal/biz/livechat"
liveclient2 "kra/internal/biz/liveclient"
payment3 "kra/internal/biz/payment"
platformsetting2 "kra/internal/biz/platformsetting"
recharge2 "kra/internal/biz/recharge"
system2 "kra/internal/biz/system"
task2 "kra/internal/biz/task"
"kra/internal/config"
"kra/internal/data"
"kra/internal/data/analytics"
"kra/internal/data/asset"
"kra/internal/data/gift"
"kra/internal/data/integration"
"kra/internal/data/live"
"kra/internal/data/livechat"
"kra/internal/data/liveclient"
payment2 "kra/internal/data/payment"
"kra/internal/data/platformsetting"
"kra/internal/data/recharge"
"kra/internal/data/system"
"kra/internal/data/task"
"kra/internal/initialize"
integration2 "kra/internal/integration"
"kra/internal/integration/cache"
"kra/internal/integration/email"
live4 "kra/internal/integration/live"
"kra/internal/integration/mq"
"kra/internal/integration/payment"
"kra/internal/integration/storage"
@@ -32,8 +49,16 @@ import (
"kra/internal/server"
"kra/internal/server/handler"
"kra/internal/server/router"
analytics3 "kra/internal/service/analytics"
asset3 "kra/internal/service/asset"
gift3 "kra/internal/service/gift"
integration4 "kra/internal/service/integration"
live3 "kra/internal/service/live"
livechat3 "kra/internal/service/livechat"
liveclient3 "kra/internal/service/liveclient"
payment4 "kra/internal/service/payment"
platformsetting3 "kra/internal/service/platformsetting"
recharge3 "kra/internal/service/recharge"
system3 "kra/internal/service/system"
task3 "kra/internal/service/task"
"kra/internal/worker"
@@ -170,6 +195,59 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
integrationConfigUsecase := integration3.NewIntegrationConfigUsecase(integrationConfigRepo, connectivityTester)
integrationConfigService := integration4.NewIntegrationConfigService(integrationConfigUsecase)
integrationConfig := handler.NewIntegrationConfig(integrationConfigService)
streamRepo := live.NewStreamRepo()
streamUsecase := live2.NewStreamUsecase(streamRepo)
streamService := live3.NewStreamService(streamUsecase)
catalogRepo := live.NewCatalogRepo(dataData)
categoryUsecase := live2.NewCategoryUsecase(catalogRepo)
roomUsecase := live2.NewRoomUsecase(catalogRepo, streamUsecase)
catalogService := live3.NewCatalogService(categoryUsecase, roomUsecase)
handlerLive := handler.NewLive(streamService, catalogService)
repo := livechat.NewRepo(dataData)
usecase := livechat2.NewUsecase(repo)
service := livechat3.NewService(usecase)
liveChat := handler.NewLiveChat(service)
liveclientRepo := liveclient.NewRepo(dataData)
liveclientUsecase := liveclient2.NewUsecase(liveclientRepo, securityUsecase, authenticationUsecase, userUsecase)
liveclientService := liveclient3.NewService(liveclientUsecase)
liveClient := handler.NewLiveClient(liveclientService)
giftRepo := gift.NewRepo(dataData)
websocketServer, cleanup2, err := websocket.New(runtimeconfigStore)
if err != nil {
cleanup()
return nil, nil, err
}
manager, cleanup3, err := live4.New(websocketServer, streamUsecase, roomUsecase, usecase, logger)
if err != nil {
cleanup2()
cleanup()
return nil, nil, err
}
giftUsecase := gift2.NewUsecase(giftRepo, manager)
giftService := gift3.NewService(giftUsecase)
handlerGift := handler.NewGift(giftService)
rechargeRepo := recharge.NewRepo(dataData)
rechargeUsecase, err := recharge2.NewUsecase(rechargeRepo, paymentUsecase)
if err != nil {
cleanup3()
cleanup2()
cleanup()
return nil, nil, err
}
rechargeService := recharge3.NewService(rechargeUsecase)
handlerRecharge := handler.NewRecharge(rechargeService)
assetRepo := asset.NewRepo(dataData)
assetUsecase := asset2.NewUsecase(assetRepo)
assetService := asset3.NewService(assetUsecase)
handlerAsset := handler.NewAsset(assetService)
platformsettingRepo := platformsetting.NewRepo(dataData)
platformsettingUsecase := platformsetting2.NewUsecase(platformsettingRepo)
platformsettingService := platformsetting3.NewService(platformsettingUsecase)
platformSetting := handler.NewPlatformSetting(platformsettingService)
analyticsRepo := analytics.NewRepo(dataData)
analyticsUsecase := analytics2.NewUsecase(analyticsRepo, streamUsecase)
analyticsService := analytics3.NewService(analyticsUsecase)
handlerAnalytics := handler.NewAnalytics(analyticsService)
set := &handler.Set{
Authority: authority,
Menu: menu,
@@ -193,27 +271,32 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
Navigation: navigation,
Session: session,
IntegrationConfig: integrationConfig,
Live: handlerLive,
LiveChat: liveChat,
LiveClient: liveClient,
Gift: handlerGift,
Recharge: handlerRecharge,
Asset: handlerAsset,
PlatformSetting: platformSetting,
Analytics: handlerAnalytics,
}
routes := router.NewRoutes(set)
maintenanceRepo := system.NewMaintenanceRepo(dataData)
maintenanceUsecase := system2.NewMaintenanceUsecase(maintenanceRepo)
taskMethods := worker.NewTaskMethods(taskUsecase, maintenanceUsecase, mediaUsecase, store)
routeRegistrar := buildRuntime(registry, routes, taskMethods)
websocketServer, cleanup2, err := websocket.New(runtimeconfigStore)
if err != nil {
cleanup()
return nil, nil, err
}
engine := server.NewGinEngineWithRuntime(store, accessControlService, authService, securityService, auditRecorder, logger, string2, routeRegistrar, websocketServer)
httpServer := server.NewGinServer(configServer, engine)
mqReloadable, cleanup3, err := mq.New(runtimeconfigStore, logger)
mqReloadable, cleanup4, err := mq.New(runtimeconfigStore, logger)
if err != nil {
cleanup3()
cleanup2()
cleanup()
return nil, nil, err
}
app := newApp(logger, httpServer, taskScheduler, auditRecorder, reloadableLogger, mqReloadable)
app := newApp(logger, httpServer, taskScheduler, auditRecorder, reloadableLogger, mqReloadable, manager)
return app, func() {
cleanup4()
cleanup3()
cleanup2()
cleanup()