This is an automated email from the ASF dual-hosted git repository.
kumfo pushed a commit to branch feat/1.4.0/badge
in repository https://gitbox.apache.org/repos/asf/incubator-answer.git
The following commit(s) were added to refs/heads/feat/1.4.0/badge by this push:
new 37981c13 feat(badge): init badge update data
37981c13 is described below
commit 37981c139b04a70d29a459ab3737a0df32bfc9f8
Author: kumfo <[email protected]>
AuthorDate: Thu Aug 1 15:44:11 2024 +0800
feat(badge): init badge update data
---
i18n/en_US.yaml | 2 +-
internal/base/constant/object_type.go | 3 -
internal/entity/badge.go | 7 +-
internal/entity/badge_award.go | 2 +-
internal/entity/badge_group.go | 2 +-
internal/migrations/init.go | 21 +++++
internal/migrations/init_data.go | 3 +
internal/migrations/migrations.go | 1 +
internal/migrations/v22.go | 152 ++++++++++++++++++++++++++++------
9 files changed, 159 insertions(+), 34 deletions(-)
diff --git a/i18n/en_US.yaml b/i18n/en_US.yaml
index bfe53305..5cd06573 100644
--- a/i18n/en_US.yaml
+++ b/i18n/en_US.yaml
@@ -527,7 +527,7 @@ backend:
tooltip:
other: "{{ .Names }} and {{ .Count }} more..."
badge:
- badges:
+ default_badges:
autobiographer:
name:
other: Autobiographer
diff --git a/internal/base/constant/object_type.go
b/internal/base/constant/object_type.go
index eef952c4..e4ac3d20 100644
--- a/internal/base/constant/object_type.go
+++ b/internal/base/constant/object_type.go
@@ -29,7 +29,6 @@ const (
ReportObjectType = "report"
BadgeObjectType = "badge"
BadgeAwardObjectType = "badge_award"
- BadgeGroupObjectType = "badge_group"
)
var (
@@ -43,7 +42,6 @@ var (
ReportObjectType: 8,
BadgeObjectType: 9,
BadgeAwardObjectType: 10,
- BadgeGroupObjectType: 11,
}
ObjectTypeNumberMapping = map[int]string{
@@ -56,6 +54,5 @@ var (
8: ReportObjectType,
9: BadgeObjectType,
10: BadgeAwardObjectType,
- 11: BadgeGroupObjectType,
}
)
diff --git a/internal/entity/badge.go b/internal/entity/badge.go
index 7a375af7..976bb47d 100644
--- a/internal/entity/badge.go
+++ b/internal/entity/badge.go
@@ -22,8 +22,9 @@ package entity
import "time"
const (
- BadgeStatusAvailable = 1
- BadgeStatusDeleted = 10
+ BadgeStatusActive = 1
+ BadgeStatusDeleted = 10
+ BadgeStatusInactive = 11
BadgeLevelBronze = 1
BadgeLevelSilver = 2
@@ -52,6 +53,6 @@ type Badge struct {
}
// TableName badge table name
-func (*Badge) TableName() string {
+func (Badge) TableName() string {
return "badge"
}
diff --git a/internal/entity/badge_award.go b/internal/entity/badge_award.go
index 01100b1f..235d369c 100644
--- a/internal/entity/badge_award.go
+++ b/internal/entity/badge_award.go
@@ -34,6 +34,6 @@ type BadgeAward struct {
}
// TableName badge_award table name
-func (*BadgeAward) TableName() string {
+func (BadgeAward) TableName() string {
return "badge_award"
}
diff --git a/internal/entity/badge_group.go b/internal/entity/badge_group.go
index 9953d067..3be4d820 100644
--- a/internal/entity/badge_group.go
+++ b/internal/entity/badge_group.go
@@ -30,6 +30,6 @@ type BadgeGroup struct {
}
// TableName badge_group table name
-func (*BadgeGroup) TableName() string {
+func (BadgeGroup) TableName() string {
return "badge_group"
}
diff --git a/internal/migrations/init.go b/internal/migrations/init.go
index a56216aa..40e9a91a 100644
--- a/internal/migrations/init.go
+++ b/internal/migrations/init.go
@@ -65,6 +65,7 @@ func (m *Mentor) InitDB() error {
m.do("init version table", m.initVersionTable)
m.do("init admin user", m.initAdminUser)
m.do("init config", m.initConfig)
+ m.do("init badge", m.initBadge)
m.do("init default privileges config", m.initDefaultRankPrivileges)
m.do("init role", m.initRole)
m.do("init power", m.initPower)
@@ -126,6 +127,26 @@ func (m *Mentor) initConfig() {
_, m.err = m.engine.Context(m.ctx).Insert(defaultConfigTable)
}
+// initBadge init badge's table and data
+func (m *Mentor) initBadge() {
+ uniqueIDRepo := unique.NewUniqueIDRepo(&data.Data{DB: m.engine})
+ _, m.err = m.engine.Context(m.ctx).Insert(defaultBadgeGroupTable)
+ if m.err != nil {
+ return
+ }
+
+ for _, badge := range defaultBadgeTable {
+ badge.ID, m.err = uniqueIDRepo.GenUniqueIDStr(m.ctx,
entity.Badge{}.TableName())
+ if m.err != nil {
+ return
+ }
+ _, m.err = m.engine.Context(m.ctx).Insert(badge)
+ if m.err != nil {
+ return
+ }
+ }
+}
+
func (m *Mentor) initDefaultRankPrivileges() {
chooseOption :=
schema.DefaultPrivilegeOptions.Choose(schema.PrivilegeLevel2)
for _, privilege := range chooseOption.Privileges {
diff --git a/internal/migrations/init_data.go b/internal/migrations/init_data.go
index adbe7175..f9a09f52 100644
--- a/internal/migrations/init_data.go
+++ b/internal/migrations/init_data.go
@@ -69,6 +69,9 @@ var (
&entity.UserNotificationConfig{},
&entity.PluginUserConfig{},
&entity.Review{},
+ &entity.Badge{},
+ &entity.BadgeGroup{},
+ &entity.BadgeAward{},
}
roles = []*entity.Role{
diff --git a/internal/migrations/migrations.go
b/internal/migrations/migrations.go
index 463f68ed..a32e851a 100644
--- a/internal/migrations/migrations.go
+++ b/internal/migrations/migrations.go
@@ -97,6 +97,7 @@ var migrations = []Migration{
NewMigration("v1.2.5", "add notification plugin and theme config",
addNotificationPluginAndThemeConfig, true),
NewMigration("v1.3.0", "add review", addReview, false),
NewMigration("v1.3.6", "add hot score to question table",
addQuestionHotScore, true),
+ NewMigration("v1.4.0", "add badge/badge_group/badge_award table",
addBadges, true),
}
func GetMigrations() []Migration {
diff --git a/internal/migrations/v22.go b/internal/migrations/v22.go
index 20b1eb3c..d55a57d9 100644
--- a/internal/migrations/v22.go
+++ b/internal/migrations/v22.go
@@ -21,7 +21,9 @@ package migrations
import (
"context"
+ "github.com/apache/incubator-answer/internal/base/data"
"github.com/apache/incubator-answer/internal/entity"
+ "github.com/apache/incubator-answer/internal/repo/unique"
"time"
"xorm.io/xorm"
)
@@ -37,11 +39,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.autobiographer.name",
+ Name:
"badge.default_badges.autobiographer.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.autobiographer.desc",
- Status: entity.BadgeStatusAvailable,
+ Description:
"badge.default_badges.autobiographer.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 1,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -52,11 +54,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.editor.name",
+ Name: "badge.default_badges.editor.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.editor.desc",
- Status: entity.BadgeStatusAvailable,
+ Description: "badge.default_badges.editor.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 1,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -67,11 +69,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.first_flag.name",
+ Name: "badge.default_badges.first_flag.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.first_flag.desc",
- Status: entity.BadgeStatusAvailable,
+ Description: "badge.default_badges.first_flag.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 1,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -82,11 +84,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.first_upvote.name",
+ Name: "badge.default_badges.first_upvote.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.first_upvote.desc",
- Status: entity.BadgeStatusAvailable,
+ Description: "badge.default_badges.first_upvote.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 1,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -97,11 +99,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.first_reaction.name",
+ Name:
"badge.default_badges.first_reaction.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.first_reaction.desc",
- Status: entity.BadgeStatusAvailable,
+ Description:
"badge.default_badges.first_reaction.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 1,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -112,11 +114,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.first_share.name",
+ Name: "badge.default_badges.first_share.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.first_share.desc",
- Status: entity.BadgeStatusAvailable,
+ Description: "badge.default_badges.first_share.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 1,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -127,11 +129,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.scholar.name",
+ Name: "badge.default_badges.scholar.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.scholar.desc",
- Status: entity.BadgeStatusAvailable,
+ Description: "badge.default_badges.scholar.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 1,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -142,11 +144,11 @@ var (
{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
- Name: "badge.badges.solved.name",
+ Name: "badge.default_badges.solved.name",
Icon: "",
AwardCount: 0,
- Description: "badge.badges.solved.desc",
- Status: entity.BadgeStatusAvailable,
+ Description: "badge.default_badges.solved.desc",
+ Status: entity.BadgeStatusActive,
BadgeGroupId: 2,
Level: entity.BadgeLevelBronze,
Single: entity.BadgeSingleAward,
@@ -154,10 +156,101 @@ var (
Handler: "",
Param: "",
},
+ {
+ CreatedAt: time.Now(),
+ UpdatedAt: time.Now(),
+ Name: "badge.default_badges.nice_answer.name",
+ Icon: "",
+ AwardCount: 0,
+ Description: "badge.default_badges.nice_answer.desc",
+ Status: entity.BadgeStatusActive,
+ BadgeGroupId: 3,
+ Level: entity.BadgeLevelBronze,
+ Single: entity.BadgeMultiAward,
+ Collect: "",
+ Handler: "",
+ Param: "",
+ },
+ {
+ CreatedAt: time.Now(),
+ UpdatedAt: time.Now(),
+ Name: "badge.default_badges.good_answer.name",
+ Icon: "",
+ AwardCount: 0,
+ Description: "badge.default_badges.good_answer.desc",
+ Status: entity.BadgeStatusActive,
+ BadgeGroupId: 3,
+ Level: entity.BadgeLevelBronze,
+ Single: entity.BadgeMultiAward,
+ Collect: "",
+ Handler: "",
+ Param: "",
+ },
+ {
+ CreatedAt: time.Now(),
+ UpdatedAt: time.Now(),
+ Name: "badge.default_badges.great_answer.name",
+ Icon: "",
+ AwardCount: 0,
+ Description: "badge.default_badges.great_answer.desc",
+ Status: entity.BadgeStatusActive,
+ BadgeGroupId: 3,
+ Level: entity.BadgeLevelBronze,
+ Single: entity.BadgeMultiAward,
+ Collect: "",
+ Handler: "",
+ Param: "",
+ },
+ {
+ CreatedAt: time.Now(),
+ UpdatedAt: time.Now(),
+ Name: "badge.default_badges.nice_question.name",
+ Icon: "",
+ AwardCount: 0,
+ Description: "badge.default_badges.nice_question.desc",
+ Status: entity.BadgeStatusActive,
+ BadgeGroupId: 3,
+ Level: entity.BadgeLevelBronze,
+ Single: entity.BadgeMultiAward,
+ Collect: "",
+ Handler: "",
+ Param: "",
+ },
+ {
+ CreatedAt: time.Now(),
+ UpdatedAt: time.Now(),
+ Name: "badge.default_badges.good_question.name",
+ Icon: "",
+ AwardCount: 0,
+ Description: "badge.default_badges.good_question.desc",
+ Status: entity.BadgeStatusActive,
+ BadgeGroupId: 3,
+ Level: entity.BadgeLevelBronze,
+ Single: entity.BadgeSingleAward,
+ Collect: "",
+ Handler: "",
+ Param: "",
+ },
+ {
+ CreatedAt: time.Now(),
+ UpdatedAt: time.Now(),
+ Name:
"badge.default_badges.great_question.name",
+ Icon: "",
+ AwardCount: 0,
+ Description:
"badge.default_badges.great_question.desc",
+ Status: entity.BadgeStatusActive,
+ BadgeGroupId: 3,
+ Level: entity.BadgeLevelBronze,
+ Single: entity.BadgeMultiAward,
+ Collect: "",
+ Handler: "",
+ Param: "",
+ },
}
)
func addBadges(ctx context.Context, x *xorm.Engine) (err error) {
+ uniqueIDRepo := unique.NewUniqueIDRepo(&data.Data{DB: x})
// create table
err = x.Context(ctx).Sync(new(entity.Badge))
if err != nil {
@@ -179,6 +272,15 @@ func addBadges(ctx context.Context, x *xorm.Engine) (err
error) {
if err != nil {
return
}
- _, err = x.Context(ctx).Insert(defaultBadgeTable)
+ for _, badge := range defaultBadgeTable {
+ badge.ID, err = uniqueIDRepo.GenUniqueIDStr(ctx,
entity.Badge{}.TableName())
+ if err != nil {
+ return
+ }
+ _, err = x.Context(ctx).Insert(badge)
+ if err != nil {
+ return
+ }
+ }
return
}