Files
team-api/internal/controller/admin/admin_v1_data_governance.go

32 lines
1.6 KiB
Go

package admin
import (
"context"
"github.com/qianfree/team-api/api/admin/v1"
"github.com/qianfree/team-api/internal/logic/task"
"github.com/qianfree/team-api/internal/service"
)
func (c *ControllerV1) DataGovernanceSettingsGet(ctx context.Context, req *v1.DataGovernanceSettingsGetReq) (res *v1.DataGovernanceSettingsGetRes, err error) {
return service.Admin().DataGovernanceSettingsGet(ctx, req)
}
func (c *ControllerV1) DataGovernanceSettingsUpdate(ctx context.Context, req *v1.DataGovernanceSettingsUpdateReq) (res *v1.DataGovernanceSettingsUpdateRes, err error) {
return service.Admin().DataGovernanceSettingsUpdate(ctx, req)
}
func (c *ControllerV1) DataGovernanceExport(ctx context.Context, req *v1.DataGovernanceExportReq) (res *v1.DataGovernanceExportRes, err error) {
res, err = service.Admin().DataGovernanceExport(ctx, req)
if err == nil && res != nil && res.TaskID > 0 {
// 创建后立即异步执行,无需等待 cron 周期(最长 60s 的轮询延迟对交互式操作不可接受)。
// ExecuteTask 有 CAS 保护(WHERE status='pending'),即使 cron 同时捡起也不会重复执行。
task.ExecuteTaskAfterCreate(res.TaskID)
}
return
}
func (c *ControllerV1) DataGovernanceDeletion(ctx context.Context, req *v1.DataGovernanceDeletionReq) (res *v1.DataGovernanceDeletionRes, err error) {
return service.Admin().DataGovernanceDeletion(ctx, req)
}
func (c *ControllerV1) DataGovernanceCleanup(ctx context.Context, req *v1.DataGovernanceCleanupReq) (res *v1.DataGovernanceCleanupRes, err error) {
return service.Admin().DataGovernanceCleanup(ctx, req)
}