feat: 完善小组绩效与有效端统计并修复审查问题
This commit is contained in:
@@ -53,7 +53,7 @@ func TestAlertTriggerThroughNativeTaskHTTP(t *testing.T) {
|
||||
registry := platformtask.NewRegistry()
|
||||
tasks := taskbiz.NewTaskUsecaseWithRegistry(taskdata.NewTaskRepo(reportTaskHTTPData{provider}), registry)
|
||||
alerts := businessbiz.NewAlertTriggerUsecase(businessdata.NewAlertTriggerRepo(provider))
|
||||
worker.NewTaskMethods(tasks, nil, nil, nil, nil, alerts).RegisterTasks(registry)
|
||||
worker.NewTaskMethods(tasks, nil, nil, nil, nil, alerts, nil).RegisterTasks(registry)
|
||||
scheduler := worker.NewTaskScheduler(tasks, nil, worker.NewTaskExecutorWithRegistry(tasks, registry), nil)
|
||||
defer func() {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
|
||||
@@ -77,7 +77,7 @@ func TestChannelAndGameAnalyticsHTTP(t *testing.T) {
|
||||
}
|
||||
}
|
||||
provider := businessHTTPData{db}
|
||||
uc := businessbiz.NewAnalyticsUsecase(businessdata.NewAnalyticsRepo(provider), businessbiz.NewAccountUsecase(businessdata.NewAccountRepo(provider)), businessbiz.NewUserPreferenceUsecase(businessdata.NewUserPreferenceRepo(provider)))
|
||||
uc := businessbiz.NewAnalyticsUsecase(businessdata.NewAnalyticsRepo(provider), businessbiz.NewAccountUsecase(businessdata.NewAccountRepo(provider)), businessbiz.NewUserPreferenceUsecase(businessdata.NewUserPreferenceRepo(provider)), nil)
|
||||
h := handler.NewAnalytics(businessservice.NewAnalyticsService(uc))
|
||||
engine := gin.New()
|
||||
engine.Use(func(c *gin.Context) {
|
||||
|
||||
@@ -138,7 +138,7 @@ func TestBusinessHTTPListWithSystemOnlyAndCompleteDatabase(t *testing.T) {
|
||||
}
|
||||
return value
|
||||
}
|
||||
created := call("POST", "/sw/business", `{"userName":"http_child","realName":"接口测试","password":"abc123"}`, "")["data"].(map[string]any)
|
||||
created := call("POST", "/sw/business", `{"userName":"http_child","realName":"接口测试","password":"abc123","hireDate":"2026-11-01"}`, "")["data"].(map[string]any)
|
||||
channels := call("GET", "/sw/business/2/promotes", "", "")["data"].(map[string]any)
|
||||
if channels["total"] != float64(1) || channels["rows"].([]any)[0].(map[string]any)["promoteName"] != "测试渠道" {
|
||||
t.Fatalf("HTTP 旗下渠道范围错误: %+v", channels)
|
||||
|
||||
@@ -0,0 +1,168 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/glebarez/sqlite"
|
||||
"gorm.io/gorm"
|
||||
biz "kra/internal/biz/business"
|
||||
"kra/internal/biz/system"
|
||||
data "kra/internal/data/business"
|
||||
systemdata "kra/internal/data/system"
|
||||
"kra/internal/server/handler"
|
||||
"kra/internal/server/router"
|
||||
service "kra/internal/service/business"
|
||||
)
|
||||
|
||||
func TestBusinessManagementHTTPGroupsGoalsAndEffectivenessAgree(t *testing.T) {
|
||||
db, err := gorm.Open(sqlite.Open(filepath.Join(t.TempDir(), "management.db")), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
pool, _ := db.DB()
|
||||
t.Cleanup(func() { _ = pool.Close() })
|
||||
for _, step := range append(systemdata.Migrations(), data.Migrations()...) {
|
||||
if err := step.Migrate(db); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
for _, sql := range []string{
|
||||
"INSERT INTO sys_users(id,uuid,username,nick_name,level,parent_id,id_path,enable) VALUES(1,'root','root','root',0,0,'0',1),(7,'owner','owner','甲组织',1,0,'0',1),(8,'branch','branch','甲分部',2,7,'0,7',1),(9,'worker','worker','甲成员',3,8,'0,7,8',1),(10,'other','other','外部组织',1,0,'0',1)",
|
||||
"INSERT INTO sys_user_bind_platform(user_id,source_db,platform_busier_id,platform_busier_account,status) VALUES(9,'lx',14,'sdk','0'),(10,'hw',20,'outside','0')",
|
||||
"CREATE TABLE tab_promote(id INTEGER,source_db TEXT,account TEXT,nickname TEXT,parent_name TEXT,real_name TEXT,promote_level INTEGER,register_type INTEGER,status INTEGER,lock_status INTEGER,parent_id INTEGER,top_promote_id INTEGER,busier_id INTEGER,create_time INTEGER,last_login_time INTEGER)",
|
||||
"CREATE TABLE tab_spend(id INTEGER,source_db TEXT,user_id INTEGER,promote_id INTEGER,pay_amount DECIMAL(20,2),pay_time INTEGER,pay_status INTEGER)",
|
||||
"CREATE TABLE tab_user(id INTEGER,source_db TEXT,promote_id INTEGER,puid INTEGER,idcard TEXT)",
|
||||
"CREATE TABLE tab_promote_apply(source_db TEXT,promote_id INTEGER,game_id INTEGER,status INTEGER)",
|
||||
"CREATE TABLE tab_sw_report_day(source_db TEXT,promote_id INTEGER,game_id INTEGER,game_name TEXT,dedup_mode INTEGER,stat_date DATE,total_pay DECIMAL(20,2))",
|
||||
"CREATE TABLE tab_sw_report_day_key(source_db TEXT,promote_id INTEGER,game_id INTEGER,game_name TEXT,dedup_mode INTEGER,stat_date DATE,metric INTEGER,identity_key TEXT)",
|
||||
} {
|
||||
if err := db.Exec(sql).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
loc := time.FixedZone("Asia/Shanghai", 8*3600)
|
||||
now := time.Now().In(loc)
|
||||
month := time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, loc)
|
||||
previous := month.AddDate(0, 0, -1).Unix()
|
||||
stamp := month.Unix() + 1
|
||||
if err := db.Exec("INSERT INTO tab_promote VALUES(100,'lx','channel','渠道甲','','',1,0,1,0,0,0,14,?,?),(101,'hw','outside','渠道乙','','',1,0,1,0,0,0,20,?,?),(102,'lx','new','新渠道','','',1,0,1,0,0,0,14,?,?)", previous, stamp, stamp, stamp, stamp, stamp).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := db.Exec("INSERT INTO tab_spend VALUES(1,'lx',1,100,3500,?,1),(2,'hw',1,101,99999,?,1),(3,'lx',1,102,99999,?,0)", stamp, stamp, stamp).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := db.Exec("INSERT INTO tab_sw_report_day VALUES('lx',100,1,'game',0,?,3500),('hw',101,1,'game',0,?,99999)", month.Format("2006-01-02"), month.Format("2006-01-02")).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
provider := businessHTTPData{db}
|
||||
accounts := biz.NewAccountUsecase(data.NewAccountRepo(provider))
|
||||
preferences := biz.NewUserPreferenceUsecase(data.NewUserPreferenceRepo(provider))
|
||||
settings := data.NewOtherSettingsRepo(provider)
|
||||
effective := biz.NewEffectivenessUsecase(data.NewEffectivenessRepo(provider), settings)
|
||||
teams := biz.NewTeamUsecase(data.NewTeamRepo(provider), accounts)
|
||||
goalRepo := data.NewGoalRepo(provider)
|
||||
performance := biz.NewPerformanceUsecase(data.NewPerformanceRepo(provider), teams, effective, goalRepo)
|
||||
goals := biz.NewGoalUsecase(goalRepo, performance)
|
||||
dashboard := biz.NewDashboardUsecase(data.NewDashboardRepo(provider), biz.NewWorkbenchUsecase(data.NewWorkbenchRepo(provider), accounts, preferences), effective)
|
||||
engine := gin.New()
|
||||
engine.Use(func(c *gin.Context) {
|
||||
id, _ := strconv.ParseUint(c.GetHeader("X-Test-User"), 10, 64)
|
||||
role := uint(901)
|
||||
if id == 1 {
|
||||
role = 888
|
||||
} else if id == 8 {
|
||||
role = 902
|
||||
} else if id == 9 {
|
||||
role = 903
|
||||
}
|
||||
c.Request = c.Request.WithContext(system.NewActorContext(c.Request.Context(), system.Actor{UserID: uint(id), AuthorityID: role}))
|
||||
c.Next()
|
||||
})
|
||||
router.RegisterBusinessPerformance(engine.Group(""), handler.NewBusinessPerformance(service.NewBusinessPerformanceService(teams, performance, goals, dashboard)))
|
||||
router.RegisterOtherSettings(engine.Group(""), handler.NewOtherSettings(service.NewOtherSettingsService(biz.NewOtherSettingsUsecase(settings, effective))))
|
||||
channels := biz.NewChannelUsecase(data.NewChannelRepo(provider), nil, accounts, preferences, nil, effective)
|
||||
engine.GET("/sw/promote/list", handler.NewChannel(service.NewChannelService(channels)).List)
|
||||
call := func(user int, method, path, body string, code int) map[string]any {
|
||||
t.Helper()
|
||||
req := httptest.NewRequest(method, path, strings.NewReader(body))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
req.Header.Set("X-Test-User", strconv.Itoa(user))
|
||||
rec := httptest.NewRecorder()
|
||||
engine.ServeHTTP(rec, req)
|
||||
var value map[string]any
|
||||
if err := json.Unmarshal(rec.Body.Bytes(), &value); err != nil {
|
||||
t.Fatalf("%s: %s", path, rec.Body.String())
|
||||
}
|
||||
if value["code"] != float64(code) {
|
||||
t.Fatalf("%s: %+v", path, value)
|
||||
}
|
||||
result, _ := value["data"].(map[string]any)
|
||||
return result
|
||||
}
|
||||
view := call(7, "GET", "/sw/groups", "", 0)
|
||||
if len(view["members"].([]any)) != 3 {
|
||||
t.Fatal("不得包含其他一级组织")
|
||||
}
|
||||
view = call(7, "PUT", "/sw/groups", `{"revision":0,"groups":[{"name":"甲组","memberIds":[8,9]}]}`, 0)
|
||||
if len(view["groups"].([]any)) != 1 {
|
||||
t.Fatal("小组保存失败")
|
||||
}
|
||||
call(8, "PUT", "/sw/groups", `{"revision":1,"groups":[]}`, 7)
|
||||
call(7, "PUT", "/sw/goals", fmt.Sprintf(`{"kind":"person","targetId":9,"month":%q,"open":0,"effective":1,"amount":3000}`, month.Format("2006-01")), 0)
|
||||
call(9, "PUT", "/sw/goals", fmt.Sprintf(`{"kind":"person","targetId":9,"month":%q,"open":100}`, month.Format("2006-01")), 7)
|
||||
query := fmt.Sprintf("/sw/performance?year=%d&beginMonth=%d&endMonth=%d", now.Year(), now.Month(), now.Month())
|
||||
stats := call(7, "GET", query, "", 0)
|
||||
total := stats["total"].(map[string]any)
|
||||
if total["open"] != float64(1) || total["effective"] != float64(1) || total["pay"] != "3500.00" {
|
||||
t.Fatalf("权限范围/开端与达标月份/流水错误: %+v", total)
|
||||
}
|
||||
groupID := uint64(view["groups"].([]any)[0].(map[string]any)["id"].(float64))
|
||||
details := call(7, "GET", fmt.Sprintf("/sw/performance/details?kind=team&targetId=%d&begin=%s&end=%s&metric=effective", groupID, month.Format("2006-01-02"), now.Format("2006-01-02")), "", 0)
|
||||
if details["total"] != float64(2) || len(details["rows"].([]any)) != 2 {
|
||||
t.Fatal("team contribution drilldown must agree with summed member performance")
|
||||
}
|
||||
details = call(7, "GET", fmt.Sprintf("/sw/performance/details?kind=group&targetId=%d&memberIds=9&begin=%s&end=%s&metric=effective", groupID, month.Format("2006-01-02"), now.Format("2006-01-02")), "", 0)
|
||||
if details["total"] != float64(1) {
|
||||
t.Fatal("filtered matrix subtotal must return unique channels")
|
||||
}
|
||||
filtered := call(7, "GET", query+"&groupId=999", "", 0)
|
||||
if filtered["matrixTotal"].(map[string]any)["open"] != float64(0) || filtered["total"].(map[string]any)["open"] != float64(1) {
|
||||
t.Fatal("matrix filter must not corrupt scope cards")
|
||||
}
|
||||
overview := call(7, "GET", fmt.Sprintf("/sw/workbench/overview?sourceDbList=lx&period=custom&begin=%s&end=%s", month.Format("2006-01-02"), now.Format("2006-01-02")), "", 0)
|
||||
cards := overview["cards"].(map[string]any)
|
||||
if len(cards) != 8 || cards["lockedPromote"].(map[string]any)["value"] != nil || cards["terminatedPromote"].(map[string]any)["compareLabel"] != "事件数据未接入" {
|
||||
t.Fatal("event cards must be visible without fabricating historical counts")
|
||||
}
|
||||
mine := call(9, "GET", "/sw/goals/mine", "", 0)
|
||||
if mine["actual"].(map[string]any)["pay"] != "3500.00" {
|
||||
t.Fatal("首页目标必须与绩效同源")
|
||||
}
|
||||
listed := call(7, "GET", "/sw/promote/list?sourceDb=lx&effective=true", "", 0)
|
||||
if listed["total"] != float64(1) || listed["rows"].([]any)[0].(map[string]any)["effective"] != true {
|
||||
t.Fatal("渠道有效端筛选未接通")
|
||||
}
|
||||
call(7, "GET", fmt.Sprintf("/sw/performance/details?kind=person&targetId=10&begin=%s&end=%s&metric=effective", month.Format("2006-01-02"), now.Format("2006-01-02")), "", 7)
|
||||
call(1, "PUT", "/sw/settings/effectiveness", `{"amount":4000,"days":30}`, 0)
|
||||
stats = call(7, "GET", query, "", 0)
|
||||
if stats["total"].(map[string]any)["effective"] != float64(0) {
|
||||
t.Fatal("修改规则后绩效未重算")
|
||||
}
|
||||
listed = call(7, "GET", "/sw/promote/list?sourceDb=lx&effective=true", "", 0)
|
||||
if listed["total"] != float64(0) {
|
||||
t.Fatal("渠道列表仍然使用旧规则")
|
||||
}
|
||||
call(7, "PUT", "/sw/business/profile", `{"userId":9,"realName":"新负责人","phoneNumber":"13900000009","hireDate":"2025-01-02","employment":"probation"}`, 0)
|
||||
call(7, "PUT", "/sw/goals", fmt.Sprintf(`{"kind":"person","targetId":9,"month":%q,"open":null,"effective":null,"amount":null}`, month.Format("2006-01")), 0)
|
||||
if call(9, "GET", "/sw/goals/mine", "", 0) != nil {
|
||||
t.Fatal("清空目标后首页应隐藏目标卡")
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ func TestChannelHTTPListsMetricsOptionsAndAtomicCreation(t *testing.T) {
|
||||
}
|
||||
provider := businessHTTPData{db}
|
||||
passwords := &gameplatform.Passwords{AuthCode: "test-auth"}
|
||||
uc := businessbiz.NewChannelUsecase(businessdata.NewChannelRepo(provider), businessdata.NewChannelWriteRepo(channelHTTPDatabases{platform}), businessbiz.NewAccountUsecase(businessdata.NewAccountRepo(provider)), businessbiz.NewUserPreferenceUsecase(businessdata.NewUserPreferenceRepo(provider)), passwords)
|
||||
uc := businessbiz.NewChannelUsecase(businessdata.NewChannelRepo(provider), businessdata.NewChannelWriteRepo(channelHTTPDatabases{platform}), businessbiz.NewAccountUsecase(businessdata.NewAccountRepo(provider)), businessbiz.NewUserPreferenceUsecase(businessdata.NewUserPreferenceRepo(provider)), passwords, nil)
|
||||
engine := gin.New()
|
||||
engine.Use(func(c *gin.Context) {
|
||||
id, _ := strconv.ParseUint(c.GetHeader("X-Test-User"), 10, 64)
|
||||
|
||||
@@ -33,7 +33,7 @@ func TestOtherSettingsHTTPPersistenceAndAccess(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
uc := businessbiz.NewOtherSettingsUsecase(businessdata.NewOtherSettingsRepo(businessHTTPData{db}))
|
||||
uc := businessbiz.NewOtherSettingsUsecase(businessdata.NewOtherSettingsRepo(businessHTTPData{db}), nil)
|
||||
engine := gin.New()
|
||||
engine.Use(func(c *gin.Context) {
|
||||
role, _ := strconv.ParseUint(c.GetHeader("X-Test-Role"), 10, 64)
|
||||
|
||||
@@ -70,7 +70,7 @@ func TestReportBuildThroughNativeTaskHTTP(t *testing.T) {
|
||||
registry := platformtask.NewRegistry()
|
||||
tasks := taskbiz.NewTaskUsecaseWithRegistry(taskdata.NewTaskRepo(reportTaskHTTPData{provider}), registry)
|
||||
reports := businessbiz.NewReportBuildUsecase(businessdata.NewReportBuildRepo(provider))
|
||||
worker.NewTaskMethods(tasks, nil, nil, nil, reports, nil).RegisterTasks(registry)
|
||||
worker.NewTaskMethods(tasks, nil, nil, nil, reports, nil, nil).RegisterTasks(registry)
|
||||
scheduler := worker.NewTaskScheduler(tasks, nil, worker.NewTaskExecutorWithRegistry(tasks, registry), nil)
|
||||
defer func() {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
@@ -102,8 +102,8 @@ func TestReportBuildThroughNativeTaskHTTP(t *testing.T) {
|
||||
return value["data"].(map[string]any)
|
||||
}
|
||||
methods := call("GET", "getRegisteredMethods", nil)["methods"].([]any)
|
||||
if len(methods) != 9 {
|
||||
t.Fatalf("六个商务汇总方法未注册: %d", len(methods))
|
||||
if len(methods) != 11 {
|
||||
t.Fatalf("原生任务方法数量不正确: %d", len(methods))
|
||||
}
|
||||
for index, method := range []string{"swReportDayBackfillTask", "swReportServerDayBackfillTask"} {
|
||||
name := fmt.Sprintf("隔离汇总任务%d", index)
|
||||
|
||||
Generated
+61
-48
@@ -82,20 +82,32 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
|
||||
auditRecorderUsecase := system2.NewAuditRecorderUsecase(auditRecordRepo)
|
||||
auditRecorder := system3.NewAuditRecorder(auditRecorderUsecase)
|
||||
registry := taskRegistry()
|
||||
teamRepo := business.NewTeamRepo(dataData)
|
||||
accountRepo := business.NewAccountRepo(dataData)
|
||||
accountUsecase := business2.NewAccountUsecase(accountRepo)
|
||||
teamUsecase := business2.NewTeamUsecase(teamRepo, accountUsecase)
|
||||
performanceRepo := business.NewPerformanceRepo(dataData)
|
||||
effectivenessRepo := business.NewEffectivenessRepo(dataData)
|
||||
otherSettingsRepo := business.NewOtherSettingsRepo(dataData)
|
||||
otherSettingsUsecase := business2.NewOtherSettingsUsecase(otherSettingsRepo)
|
||||
effectivenessUsecase := business2.NewEffectivenessUsecase(effectivenessRepo, otherSettingsRepo)
|
||||
goalRepo := business.NewGoalRepo(dataData)
|
||||
performanceUsecase := business2.NewPerformanceUsecase(performanceRepo, teamUsecase, effectivenessUsecase, goalRepo)
|
||||
goalUsecase := business2.NewGoalUsecase(goalRepo, performanceUsecase)
|
||||
dashboardRepo := business.NewDashboardRepo(dataData)
|
||||
workbenchRepo := business.NewWorkbenchRepo(dataData)
|
||||
userPreferenceRepo := business.NewUserPreferenceRepo(dataData)
|
||||
userPreferenceUsecase := business2.NewUserPreferenceUsecase(userPreferenceRepo)
|
||||
workbenchUsecase := business2.NewWorkbenchUsecase(workbenchRepo, accountUsecase, userPreferenceUsecase)
|
||||
dashboardUsecase := business2.NewDashboardUsecase(dashboardRepo, workbenchUsecase, effectivenessUsecase)
|
||||
businessPerformanceService := business3.NewBusinessPerformanceService(teamUsecase, performanceUsecase, goalUsecase, dashboardUsecase)
|
||||
businessPerformance := handler.NewBusinessPerformance(businessPerformanceService)
|
||||
otherSettingsUsecase := business2.NewOtherSettingsUsecase(otherSettingsRepo, effectivenessUsecase)
|
||||
otherSettingsService := business3.NewOtherSettingsService(otherSettingsUsecase)
|
||||
otherSettings := handler.NewOtherSettings(otherSettingsService)
|
||||
rankingRepo := business.NewRankingRepo(dataData)
|
||||
accountRepo := business.NewAccountRepo(dataData)
|
||||
accountUsecase := business2.NewAccountUsecase(accountRepo)
|
||||
userPreferenceRepo := business.NewUserPreferenceRepo(dataData)
|
||||
userPreferenceUsecase := business2.NewUserPreferenceUsecase(userPreferenceRepo)
|
||||
rankingUsecase := business2.NewRankingUsecase(rankingRepo, accountUsecase, userPreferenceUsecase)
|
||||
rankingService := business3.NewRankingService(rankingUsecase)
|
||||
ranking := handler.NewRanking(rankingService)
|
||||
workbenchRepo := business.NewWorkbenchRepo(dataData)
|
||||
workbenchUsecase := business2.NewWorkbenchUsecase(workbenchRepo, accountUsecase, userPreferenceUsecase)
|
||||
workbenchService := business3.NewWorkbenchService(workbenchUsecase)
|
||||
workbench := handler.NewWorkbench(workbenchService)
|
||||
serverAnalysisRepo := business.NewServerAnalysisRepo(dataData)
|
||||
@@ -103,7 +115,7 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
|
||||
serverAnalysisService := business3.NewServerAnalysisService(serverAnalysisUsecase)
|
||||
serverAnalysis := handler.NewServerAnalysis(serverAnalysisService)
|
||||
analyticsRepo := business.NewAnalyticsRepo(dataData)
|
||||
analyticsUsecase := business2.NewAnalyticsUsecase(analyticsRepo, accountUsecase, userPreferenceUsecase)
|
||||
analyticsUsecase := business2.NewAnalyticsUsecase(analyticsRepo, accountUsecase, userPreferenceUsecase, effectivenessUsecase)
|
||||
analyticsService := business3.NewAnalyticsService(analyticsUsecase)
|
||||
analytics := handler.NewAnalytics(analyticsService)
|
||||
ledgerRepo := business.NewLedgerRepo(dataData)
|
||||
@@ -121,7 +133,7 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
|
||||
businessPortrait := handler.NewBusinessPortrait(businessPortraitService)
|
||||
channelWriteRepo := business.NewChannelWriteRepo(dataData)
|
||||
platformPasswordEncoder := gameplatform.NewPasswordEncoder()
|
||||
channelUsecase := business2.NewChannelUsecase(channelRepo, channelWriteRepo, accountUsecase, userPreferenceUsecase, platformPasswordEncoder)
|
||||
channelUsecase := business2.NewChannelUsecase(channelRepo, channelWriteRepo, accountUsecase, userPreferenceUsecase, platformPasswordEncoder, effectivenessUsecase)
|
||||
channelService := business3.NewChannelService(channelUsecase)
|
||||
channel := handler.NewChannel(channelService)
|
||||
activationRepo := business.NewActivationRepo(dataData, dataData)
|
||||
@@ -251,44 +263,45 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
|
||||
integrationConfigService := integration2.NewIntegrationConfigService(integrationConfigUsecase)
|
||||
integrationConfig := handler.NewIntegrationConfig(integrationConfigService)
|
||||
set := &handler.Set{
|
||||
OtherSettings: otherSettings,
|
||||
Ranking: ranking,
|
||||
Workbench: workbench,
|
||||
ServerAnalysis: serverAnalysis,
|
||||
Analytics: analytics,
|
||||
Ledger: ledger,
|
||||
ChannelPortrait: channelPortrait,
|
||||
BusinessPortrait: businessPortrait,
|
||||
Channel: channel,
|
||||
Activation: activation,
|
||||
AlertRecord: alertRecord,
|
||||
AlertRule: alertRule,
|
||||
BusinessPromote: businessPromote,
|
||||
Business: handlerBusiness,
|
||||
BusinessPassword: businessPassword,
|
||||
SMS: handlerSMS,
|
||||
Authority: authority,
|
||||
Menu: menu,
|
||||
API: api,
|
||||
Permission: permission,
|
||||
Organization: organization,
|
||||
Announcement: announcement,
|
||||
Email: handlerEmail,
|
||||
Payment: handlerPayment,
|
||||
Task: handlerTask,
|
||||
Media: media,
|
||||
Audit: audit,
|
||||
Export: export,
|
||||
Version: version,
|
||||
Dictionary: dictionary,
|
||||
Parameter: parameter,
|
||||
APIToken: apiToken,
|
||||
SystemConfig: systemConfig,
|
||||
Public: public,
|
||||
User: user,
|
||||
Navigation: navigation,
|
||||
Session: session,
|
||||
IntegrationConfig: integrationConfig,
|
||||
BusinessPerformance: businessPerformance,
|
||||
OtherSettings: otherSettings,
|
||||
Ranking: ranking,
|
||||
Workbench: workbench,
|
||||
ServerAnalysis: serverAnalysis,
|
||||
Analytics: analytics,
|
||||
Ledger: ledger,
|
||||
ChannelPortrait: channelPortrait,
|
||||
BusinessPortrait: businessPortrait,
|
||||
Channel: channel,
|
||||
Activation: activation,
|
||||
AlertRecord: alertRecord,
|
||||
AlertRule: alertRule,
|
||||
BusinessPromote: businessPromote,
|
||||
Business: handlerBusiness,
|
||||
BusinessPassword: businessPassword,
|
||||
SMS: handlerSMS,
|
||||
Authority: authority,
|
||||
Menu: menu,
|
||||
API: api,
|
||||
Permission: permission,
|
||||
Organization: organization,
|
||||
Announcement: announcement,
|
||||
Email: handlerEmail,
|
||||
Payment: handlerPayment,
|
||||
Task: handlerTask,
|
||||
Media: media,
|
||||
Audit: audit,
|
||||
Export: export,
|
||||
Version: version,
|
||||
Dictionary: dictionary,
|
||||
Parameter: parameter,
|
||||
APIToken: apiToken,
|
||||
SystemConfig: systemConfig,
|
||||
Public: public,
|
||||
User: user,
|
||||
Navigation: navigation,
|
||||
Session: session,
|
||||
IntegrationConfig: integrationConfig,
|
||||
}
|
||||
routes := router.NewRoutes(set)
|
||||
maintenanceRepo := system.NewMaintenanceRepo(dataData)
|
||||
@@ -297,7 +310,7 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
|
||||
reportBuildUsecase := business2.NewReportBuildUsecase(reportBuildRepo)
|
||||
alertTriggerRepo := business.NewAlertTriggerRepo(dataData)
|
||||
alertTriggerUsecase := business2.NewAlertTriggerUsecase(alertTriggerRepo)
|
||||
taskMethods := worker.NewTaskMethods(taskUsecase, maintenanceUsecase, mediaUsecase, store, reportBuildUsecase, alertTriggerUsecase)
|
||||
taskMethods := worker.NewTaskMethods(taskUsecase, maintenanceUsecase, mediaUsecase, store, reportBuildUsecase, alertTriggerUsecase, effectivenessUsecase)
|
||||
routeRegistrar := buildRuntime(registry, routes, taskMethods)
|
||||
websocketServer, cleanup2, err := websocket.New(runtimeconfigStore)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user