Overhaul [1/n]

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-01-29 02:42:28 +08:00
parent 989acd6ff1
commit c77241a883
2267 changed files with 7158 additions and 5583 deletions
+18
View File
@@ -0,0 +1,18 @@
package startup
import (
"honoka-chan/internal/model/user"
"honoka-chan/pkg/db"
)
func CreateTable() {
// db.UserEng.ShowSQL(true)
db.UserEng.Sync2(new(user.Users))
db.UserEng.Sync2(new(user.UserKey))
db.UserEng.Sync2(new(user.UserPref))
db.UserEng.Sync2(new(user.UserAccessoryWear))
db.UserEng.Sync2(new(user.UserDeck))
db.UserEng.Sync2(new(user.UserUnit))
db.UserEng.Sync2(new(user.UserDeckUnit))
db.UserEng.Sync2(new(user.UserUnitSkillEquip))
}
+6
View File
@@ -0,0 +1,6 @@
package startup
func StartUp() {
CreateTable()
InitUserData(0)
}
+142
View File
@@ -0,0 +1,142 @@
package startup
import (
"fmt"
"honoka-chan/internal/model/user"
"honoka-chan/internal/schema/api/profile"
"honoka-chan/internal/schema/api/unit"
"honoka-chan/internal/utils"
"honoka-chan/pkg/db"
"strconv"
"time"
)
func InitUserData(userId int) {
userList := []user.Users{}
if userId != 0 {
err := db.UserEng.Table("users").Where("user_id = ?", userId).Find(&userList)
utils.CheckErr(err)
} else {
err := db.UserEng.Table("users").Asc("id").Find(&userList)
utils.CheckErr(err)
}
// 同步用户表
// db.UserEng.ShowSQL(true)
// db.UserEng.Table("user_info_m").Sync2(new(user.UserInfo))
// db.UserEng.Table("user_pref").Sync2(new(UserPref))
// 开始会话
session := db.UserEng.NewSession()
defer session.Close()
if err := session.Begin(); err != nil {
panic(err)
}
for _, u := range userList {
// 检查用户配置
exists, err := db.UserEng.Table("user_pref").Where("user_id = ?", u.UserID).Exist()
utils.CheckErr(err)
if !exists {
// 默认中心成员()
var oId int
_, err = db.MainEng.Table("common_unit_m").Cols("unit_owning_user_id").Where("unit_id = ?", 31).Get(&oId)
utils.CheckErr(err)
fmt.Println("Center UnitOwningUserId:", oId)
userPref := user.UserPref{
UserID: u.UserID,
AwardID: 1, // 音乃木坂学生
BackgroundID: 1, // 初始背景
UnitOwningUserID: oId,
UserName: "音乃木坂学生",
UserLevel: 1,
UserDesc: "你好。",
InviteCode: strconv.Itoa(u.UserID),
UpdateTime: time.Now().Unix(),
}
_, err = session.Table("user_pref").Insert(&userPref)
utils.CheckErr(err)
// fmt.Println("UserPref Id", userPref.Id)
}
// 检查用户信息
exists, err = db.UserEng.Table("user_info_m").Where("user_id = ?", u.UserID).Exist()
// 检查用户卡组配置
exists, err = db.UserEng.Table("user_deck").Where("user_id = ?", u.UserID).Asc("deck_id").Exist()
utils.CheckErr(err)
// fmt.Println("UserDeck exists:", exists)
if !exists {
userDeck := unit.UserDeckData{
DeckID: 1,
MainFlag: 1,
DeckName: "队伍A",
UserID: u.UserID,
InsertDate: time.Now().Unix(),
}
// 默认队伍
_, err = session.Table("user_deck").Insert(&userDeck)
if err != nil {
session.Rollback()
panic(err)
}
userDeckId := userDeck.ID
// fmt.Println("New UserDeck:", userDeckId)
// 默认卡组
unitIds := []int{}
err = db.MainEng.Table("unit_m").Cols("unit_id").Where("album_series_id = ?", 615).Find(&unitIds)
if err != nil {
session.Rollback()
panic(err)
}
unitData := []profile.UnitData{}
err = db.MainEng.Table("common_unit_m").In("unit_id", unitIds).Find(&unitData)
if err != nil {
session.Rollback()
panic(err)
}
// fmt.Println(unitData)
position := 1
for _, u := range unitData {
unitDeckData := unit.UnitDeckData{
UserDeckID: userDeckId,
UnitOwningUserID: u.UnitOwningUserID,
UnitID: u.UnitID,
Position: position,
Level: 100,
LevelLimitID: 1,
DisplayRank: 2,
Love: 1000,
UnitSkillLevel: 8,
IsRankMax: true,
IsLoveMax: true,
IsLevelMax: true,
IsSigned: u.IsSigned,
BeforeLove: 1000,
MaxLove: 1000,
InsertData: time.Now().Unix(),
}
_, err = session.Table("user_deck_unit").Insert(&unitDeckData)
if err != nil {
session.Rollback()
panic(err)
}
// fmt.Println("New DeckUnit:", unitDeckData.Id)
position++
}
// 结束会话
if err = session.Commit(); err != nil {
panic(err)
}
}
}
}