From 74c853d86188e995dd8e63cf14282c358e918f9e Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Thu, 15 Sep 2022 09:59:23 +0800 Subject: [PATCH 1/6] #1249 Fixed the display problem of cloudbrain specifications --- routers/api/v1/repo/cloudbrain_dashboard.go | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 55d7400b7..034dd306f 100755 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -733,6 +733,7 @@ func GetCloudbrainsDetailData(ctx *context.Context) { ctx.ServerError("Get job failed:", err) return } + models.LoadSpecs4CloudbrainInfo(ciTasks) nilTime := time.Time{} tasks := []models.TaskDetail{} for i, task := range ciTasks { From 926df6a63d00d4043048bd07ed7fed9fb1fd15bc Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Thu, 15 Sep 2022 10:08:20 +0800 Subject: [PATCH 2/6] #1249 Fixed the display problem of cloudbrain specifications --- models/cloudbrain_static.go | 1 + routers/api/v1/repo/cloudbrain_dashboard.go | 1 + 2 files changed, 2 insertions(+) diff --git a/models/cloudbrain_static.go b/models/cloudbrain_static.go index 371b30f66..58a93d476 100644 --- a/models/cloudbrain_static.go +++ b/models/cloudbrain_static.go @@ -34,6 +34,7 @@ type TaskDetail struct { CardDuration string `json:"CardDuration"` AiCenter string `json:"AiCenter"` FlavorName string `json:"FlavorName"` + Spec *Specification `json:"Spec"` } func GetTodayCreatorCount(beginTime time.Time, endTime time.Time) (int64, error) { diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 034dd306f..9d237d8e3 100755 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -770,6 +770,7 @@ func GetCloudbrainsDetailData(ctx *context.Context) { } else { taskDetail.IsDelete = false } + taskDetail.Spec = ciTasks[i].Spec tasks = append(tasks, taskDetail) } From 2611d9e31f8897a102a7dbb3861948eb5ed4d2b5 Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Mon, 19 Sep 2022 10:20:40 +0800 Subject: [PATCH 3/6] #2872 add rule config api --- models/task_config.go | 13 ++++++++++ routers/reward/point/point.go | 12 ++++++++++ routers/routes/routes.go | 1 + services/task/task_config.go | 45 +++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) diff --git a/models/task_config.go b/models/task_config.go index 204cbaf95..baa8c9adb 100644 --- a/models/task_config.go +++ b/models/task_config.go @@ -65,6 +65,19 @@ type TaskAndLimiterConfig struct { LimitConfig LimitConfig `xorm:"extends"` } +type PointRule struct { + UserDailyLimit int64 + TaskRules []TaskRule +} + +type TaskRule struct { + TaskCode string + AwardType string + AwardAmount int64 + RefreshRate string + LimitNum int64 +} + func (TaskAndLimiterConfig) TableName() string { return "task_config" } diff --git a/routers/reward/point/point.go b/routers/reward/point/point.go index 7b3e0fe49..88cd8b22a 100644 --- a/routers/reward/point/point.go +++ b/routers/reward/point/point.go @@ -8,6 +8,7 @@ import ( "code.gitea.io/gitea/routers/response" "code.gitea.io/gitea/services/reward" "code.gitea.io/gitea/services/reward/point/account" + "code.gitea.io/gitea/services/task" "errors" "net/http" ) @@ -92,6 +93,17 @@ func GetRulePage(ctx *context.Context) { ctx.HTML(200, tplPointRule) } +func GetRuleConfig(ctx *context.Context) { + r, err := task.GetPointRule() + if err != nil { + log.Error("GetRuleConfig error.%v", err) + ctx.JSON(http.StatusOK, response.ServerError(err.Error())) + return + } + + ctx.JSON(http.StatusOK, response.SuccessWithData(r)) +} + func GetAdminRewardList(ctx *context.Context) { opts, err := buildAdminRewardRecordListOpts(ctx) if err != nil { diff --git a/routers/routes/routes.go b/routers/routes/routes.go index d19a307e3..afb7f3187 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -1432,6 +1432,7 @@ func RegisterRoutes(m *macaron.Macaron) { m.Group("/reward/point", func() { m.Get("", point.GetPointPage) m.Get("/rule", point.GetRulePage) + m.Get("/rule/config", point.GetRuleConfig) m.Get("/account", point.GetPointAccount) m.Get("/record/list", point.GetPointRecordList) }, reqSignIn) diff --git a/services/task/task_config.go b/services/task/task_config.go index 424151098..87f66e00a 100644 --- a/services/task/task_config.go +++ b/services/task/task_config.go @@ -6,8 +6,10 @@ import ( "code.gitea.io/gitea/modules/redis/redis_client" "code.gitea.io/gitea/modules/redis/redis_key" "code.gitea.io/gitea/modules/redis/redis_lock" + "code.gitea.io/gitea/services/reward/limiter" "encoding/json" "errors" + "fmt" "time" ) @@ -181,3 +183,46 @@ func DelTaskConfig(id int64, doer *models.User) error { redis_client.Del(redis_key.TaskConfigList()) return nil } + +func GetPointRule() (*models.PointRule, error) { + r, err := limiter.GetSingleDailyPointLimitConfig() + if err != nil { + return nil, err + } + limiters, err := limiter.GetLimitersByLimitType(models.LimitTypeTask) + if err != nil { + return nil, err + } + limiterMap := make(map[string]*models.LimitConfig, 0) + for i := 0; i < len(limiters); i++ { + limiterMap[limiters[i].LimitCode] = &limiters[i] + } + + taskConfigs, err := GetTaskConfigList() + if err != nil { + return nil, err + } + taskRules := make([]models.TaskRule, len(taskConfigs)) + + for i, taskConfig := range taskConfigs { + rule := models.TaskRule{ + TaskCode: taskConfig.TaskCode, + AwardType: taskConfig.AwardType, + AwardAmount: taskConfig.AwardAmount, + } + limiter := limiterMap[fmt.Sprint(taskConfig.TaskCode)] + if limiter != nil { + rule.RefreshRate = limiter.RefreshRate + rule.LimitNum = limiter.LimitNum + } + taskRules[i] = rule + } + + pointRule := &models.PointRule{ + TaskRules: taskRules, + } + if r != nil { + pointRule.UserDailyLimit = r.LimitNum + } + return pointRule, nil +} From 0315cce21731700199dbe48b978222b827440cee Mon Sep 17 00:00:00 2001 From: chenshihai Date: Mon, 19 Sep 2022 16:51:46 +0800 Subject: [PATCH 4/6] =?UTF-8?q?2897=20=E3=80=90=E7=A7=AF=E5=88=86=E3=80=91?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83-=E7=AE=97=E5=8A=9B?= =?UTF-8?q?=E7=A7=AF=E5=88=86=E9=A1=B5=E9=9D=A2=E8=8E=B7=E5=8F=96=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E3=80=81=E6=B6=88=E8=80=97=E6=98=8E=E7=BB=86=E7=9A=84?= =?UTF-8?q?=E5=88=86=E9=9A=94=E7=BA=BF=E6=A0=B7=E5=BC=8F=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web_src/vuepages/pages/reward/point/vp-point.vue | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/web_src/vuepages/pages/reward/point/vp-point.vue b/web_src/vuepages/pages/reward/point/vp-point.vue index 34663d653..a178fdf4a 100644 --- a/web_src/vuepages/pages/reward/point/vp-point.vue +++ b/web_src/vuepages/pages/reward/point/vp-point.vue @@ -16,11 +16,11 @@
-
+
{{ summaryInfo.available }}
{{ $t('CurrAvailableCalcPoints') }}
-
-
+
+
{{ summaryInfo.gain }}
{{ $t('totalGainCalcPoints') }}
@@ -28,7 +28,7 @@
{{ summaryInfo.used }}
{{ $t('totalConsumeCalcPoints') }}
-
+
Date: Mon, 19 Sep 2022 16:52:24 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E8=A7=84=E5=88=99=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/reward/point/rule.tmpl | 131 ++++++++++++++++++++----------- 1 file changed, 86 insertions(+), 45 deletions(-) diff --git a/templates/reward/point/rule.tmpl b/templates/reward/point/rule.tmpl index c7eee3370..e9c31e41b 100644 --- a/templates/reward/point/rule.tmpl +++ b/templates/reward/point/rule.tmpl @@ -16,10 +16,10 @@ text-align: center; } -
+ -{{template "base/footer" .}} \ No newline at end of file + +{{template "base/footer" .}} + \ No newline at end of file From 82e8dcfdfdda4052c6b879e1e7e41861fcb5e91b Mon Sep 17 00:00:00 2001 From: chenshihai Date: Mon, 19 Sep 2022 17:48:02 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E8=A7=84=E5=88=99=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/reward/point/rule.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/reward/point/rule.tmpl b/templates/reward/point/rule.tmpl index e9c31e41b..3d81fd0f7 100644 --- a/templates/reward/point/rule.tmpl +++ b/templates/reward/point/rule.tmpl @@ -19,7 +19,7 @@