diff --git a/internal/database/seed_game.go b/internal/database/seed_game.go new file mode 100644 index 0000000..962e223 --- /dev/null +++ b/internal/database/seed_game.go @@ -0,0 +1,74 @@ +package database + +import ( + "log" + + "gotest/internal/model" + + "gorm.io/gorm" +) + +// seedGameData 初始化游戏数据(3 套游戏网站共用) +func seedGameData(db *gorm.DB) error { + var count int64 + db.Model(&model.Game{}).Count(&count) + if count > 0 { + log.Println("检测到已有游戏数据,跳过初始化") + return nil + } + + // 游戏分类 + categories := []model.GameCategory{ + {Name: "动作冒险", Icon: "action", Sort: 1}, + {Name: "角色扮演", Icon: "rpg", Sort: 2}, + {Name: "策略模拟", Icon: "strategy", Sort: 3}, + {Name: "休闲益智", Icon: "casual", Sort: 4}, + {Name: "体育竞速", Icon: "sports", Sort: 5}, + {Name: "射击对战", Icon: "shooter", Sort: 6}, + } + for i := range categories { + if err := db.Create(&categories[i]).Error; err != nil { + return err + } + } + + // 游戏数据 + games := []model.Game{ + // 动作冒险 + {Name: "暗影纪元:觉醒", Description: "开放世界动作冒险巨作。探索广袤的奇幻大陆,与远古巨龙激战,揭开失落文明的秘密。流畅的战斗系统,震撼的视觉效果,超过 100 小时的主线剧情等你体验。", CategoryID: 1, CategoryName: "动作冒险", Developer: "Phoenix Studio", Publisher: "Nexus Games", Rating: 4.9, Plays: 890000, Downloads: 560000, Size: "45.2 GB", Version: "v2.1.0", ReleaseDate: "2026-03-15", Platform: "PC / PS5 / Xbox", Tags: `["开放世界","巨龙","史诗"]`, Features: `["无缝开放世界","实时战斗系统","动态天气","多结局剧情"]`, IsHot: true, Sort: 1, Status: 1}, + {Name: "忍者之刃:影遁", Description: "硬核动作游戏,融合忍术与暗杀。在战国时代的日本,扮演最后的影忍,用速度和技巧消灭敌人。像素级精准操作,爽快连招系统。", CategoryID: 1, CategoryName: "动作冒险", Developer: "Shadow Forge", Publisher: "Nexus Games", Rating: 4.7, Plays: 450000, Downloads: 280000, Size: "18.5 GB", Version: "v1.3.2", ReleaseDate: "2026-01-20", Platform: "PC / Switch", Tags: `["忍术","硬核","连招"]`, Features: `["精准格挡系统","忍术技能树","无UI沉浸模式"], "速通排行榜"`, IsHot: true, Sort: 2, Status: 1}, + {Name: "深海迷踪", Description: "水下探险生存游戏。在神秘的深海世界中采集资源、建造基地、发现远古遗迹。 beware 隐藏在黑暗中的深海巨兽。", CategoryID: 1, CategoryName: "动作冒险", Developer: "Abyss Team", Publisher: "Ocean Interactive", Rating: 4.5, Plays: 320000, Downloads: 190000, Size: "22.0 GB", Version: "v1.0.5", ReleaseDate: "2026-05-01", Platform: "PC / PS5", Tags: `["生存","水下","探索"]`, Features: `["深海生态系统","基地建造","多人协作"]`, IsNew: true, Sort: 3, Status: 1}, + + // 角色扮演 + {Name: "星域编年史", Description: "科幻 MMORPG 巨作。跨越银河系的史诗冒险,选择你的种族和职业,与千万玩家共同书写星际历史。自由度极高的技能搭配和装备系统。", CategoryID: 2, CategoryName: "角色扮演", Developer: "Galaxy Works", Publisher: "Nexus Games", Rating: 4.8, Plays: 1200000, Downloads: 890000, Size: "80.0 GB", Version: "v5.0.1", ReleaseDate: "2025-11-10", Platform: "PC / Mobile", Tags: `["MMORPG","科幻","多人"]`, Features: `["6大种族12职业","星际舰队战","玩家经济系统","跨服竞技"]`, IsHot: true, Sort: 1, Status: 1}, + {Name: "幻灵大陆:重生", Description: "经典日式 RPG 回归。手绘风格画面,感人至深的剧情,回合制战斗系统全新升级。收集 200+ 幻灵伙伴,组建你的最强队伍。", CategoryID: 2, CategoryName: "角色扮演", Developer: "Dreamlight", Publisher: "Square Nexus", Rating: 4.7, Plays: 670000, Downloads: 450000, Size: "12.8 GB", Version: "v3.2.0", ReleaseDate: "2026-02-28", Platform: "PC / Switch / Mobile", Tags: `["JRPG","回合制","收集"]`, Features: `["200+幻灵收集","手绘动画","分支剧情","宠物养成"]`, Sort: 2, Status: 1}, + {Name: "修仙问道录", Description: "国风仙侠开放世界 RPG。从凡人修炼至飞升仙界,体验完整的修仙体系。御剑飞行、炼丹炼器、渡劫飞升,感受东方仙侠之美。", CategoryID: 2, CategoryName: "角色扮演", Developer: "云海工作室", Publisher: "仙界互娱", Rating: 4.6, Plays: 980000, Downloads: 720000, Size: "35.0 GB", Version: "v2.0.0", ReleaseDate: "2026-04-01", Platform: "PC / Mobile", Tags: `["仙侠","开放世界","国风"]`, Features: `["修仙境界体系","御剑飞行","炼丹炼器","宗门争霸"]`, IsNew: true, IsHot: true, Sort: 3, Status: 1}, + + // 策略模拟 + {Name: "帝国黎明:文明崛起", Description: "4X 策略巨作。从石器时代到星际文明,带领你的民族走过万年历史。外交、战争、科技、文化,多种胜利方式。支持最多 12 人联机。", CategoryID: 3, CategoryName: "策略模拟", Developer: "Strategy Labs", Publisher: "Nexus Games", Rating: 4.8, Plays: 560000, Downloads: 340000, Size: "28.0 GB", Version: "v4.1.0", ReleaseDate: "2026-01-05", Platform: "PC / Mac", Tags: `["4X","文明","策略"]`, Features: `["万年文明演进","12人联机","随机地图生成","科技树系统"]`, IsHot: true, Sort: 1, Status: 1}, + {Name: "星际拓荒者", Description: "太空殖民模拟经营。建立你的星际帝国,开发星球资源,研究科技,与外星文明交流或对抗。沙盒式自由玩法。", CategoryID: 3, CategoryName: "策略模拟", Developer: "Cosmic Dev", Publisher: "Space Games", Rating: 4.5, Plays: 380000, Downloads: 210000, Size: "15.0 GB", Version: "v1.5.0", ReleaseDate: "2026-03-20", Platform: "PC", Tags: `["模拟","太空","经营"]`, Features: `["星球殖民","科技研究","外交系统","沙盒模式"]`, Sort: 2, Status: 1}, + {Name: "农场物语:四季", Description: "治愈系农场模拟。种田、养殖、钓鱼、采矿、交友。四季变换的美景,温馨的村庄生活。支持 4 人联机合作。", CategoryID: 3, CategoryName: "策略模拟", Developer: "Green Valley", Publisher: "Harvest Games", Rating: 4.7, Plays: 720000, Downloads: 520000, Size: "8.5 GB", Version: "v2.3.0", ReleaseDate: "2026-02-14", Platform: "PC / Switch / Mobile", Tags: `["农场","治愈","联机"]`, Features: `["四季农场经营","4人联机","村民社交","节日活动"]`, IsHot: true, Sort: 3, Status: 1}, + + // 休闲益智 + {Name: "方块消消乐:无尽版", Description: "经典三消玩法全新升级。数百个精心设计的关卡,丰富的道具和障碍,每周更新限时活动。轻松上手,难以放下。", CategoryID: 4, CategoryName: "休闲益智", Developer: "Fun Factory", Publisher: "Casual Games", Rating: 4.6, Plays: 3500000, Downloads: 2800000, Size: "320 MB", Version: "v8.0.0", ReleaseDate: "2026-04-15", Platform: "Mobile / PC", Tags: `["三消","休闲","限时活动"]`, Features: `["500+关卡","每周活动","社交排行榜","离线可玩"]`, IsHot: true, Sort: 1, Status: 1}, + {Name: "脑洞大师", Description: "创意脑筋急转弯合集。1000+ 脑洞题目,考验你的逆向思维和创意。每关都有意想不到的解法,让你大呼过瘾。", CategoryID: 4, CategoryName: "休闲益智", Developer: "Brain Box", Publisher: "Puzzle Games", Rating: 4.4, Plays: 1800000, Downloads: 1200000, Size: "150 MB", Version: "v3.0.0", ReleaseDate: "2026-05-10", Platform: "Mobile", Tags: `["益智","脑筋急转弯","创意"]`, Features: `["1000+题目","每日挑战","提示系统","成就收集"]`, IsNew: true, Sort: 2, Status: 1}, + {Name: "音符跳跃", Description: "音乐节奏游戏。跟随节拍跳跃,感受音乐与操作的完美融合。100+ 授权热门曲目,多种难度可选。", CategoryID: 4, CategoryName: "休闲益智", Developer: "Rhythm Works", Publisher: "Music Games", Rating: 4.5, Plays: 920000, Downloads: 680000, Size: "680 MB", Version: "v2.1.0", ReleaseDate: "2026-03-01", Platform: "Mobile / PC", Tags: `["音乐","节奏","手速"]`, Features: `["100+授权曲目","多难度","自定义谱面","全球排名"]`, Sort: 3, Status: 1}, + + // 体育竞速 + {Name: "极速狂飙:霓虹之城", Description: "赛博朋克风格竞速游戏。在霓虹闪烁的未来都市飙车,改装你的超跑,挑战极限赛道。支持 16 人在线竞速。", CategoryID: 5, CategoryName: "体育竞速", Developer: "Turbo Studio", Publisher: "Racing Games", Rating: 4.7, Plays: 680000, Downloads: 430000, Size: "55.0 GB", Version: "v2.0.0", ReleaseDate: "2026-04-20", Platform: "PC / PS5 / Xbox", Tags: `["竞速","赛博朋克","改装"]`, Features: `["16人在线","车辆改装","开放城市","动态天气"]`, IsHot: true, Sort: 1, Status: 1}, + {Name: "绿茵传奇 2026", Description: "次世代足球模拟。真实球员授权,精细到每个动作的动作捕捉。全新战术系统,经理模式深度运营。电竞赛事指定用游。", CategoryID: 5, CategoryName: "体育竞速", Developer: "Sports Pro", Publisher: "Champion Games", Rating: 4.6, Plays: 1100000, Downloads: 820000, Size: "65.0 GB", Version: "v2026.1", ReleaseDate: "2026-01-01", Platform: "PC / PS5 / Xbox / Switch", Tags: `["足球","模拟","电竞"]`, Features: `["真实球员授权","经理模式","在线对战","UT卡牌"]`, Sort: 2, Status: 1}, + + // 射击对战 + {Name: "战术先锋:零点行动", Description: "5v5 战术 FPS 对战。精准枪械手感,丰富的战术道具,公平竞技无付费增强。排位赛、休闲赛、僵尸模式应有尽有。", CategoryID: 6, CategoryName: "射击对战", Developer: "Tactical Ops", Publisher: "Nexus Games", Rating: 4.8, Plays: 2500000, Downloads: 1800000, Size: "40.0 GB", Version: "v6.0", ReleaseDate: "2025-12-01", Platform: "PC / Console", Tags: `["FPS","5v5","电竞"]`, Features: `["精准枪械手感","战术道具系统","排位竞技","僵尸模式"]`, IsHot: true, Sort: 1, Status: 1}, + {Name: "星际战甲:远征", Description: "PvE 合作射击 RPG。扮演星际战士,穿着可定制战甲,使用超能力和先进武器,与队友一起完成史诗任务。50+ 战甲可选。", CategoryID: 6, CategoryName: "射击对战", Developer: "Digital Forge", Publisher: "Space Games", Rating: 4.7, Plays: 1300000, Downloads: 950000, Size: "50.0 GB", Version: "v3.5.0", ReleaseDate: "2026-02-10", Platform: "PC / PS5 / Xbox", Tags: `["PvE","战甲","合作"]`, Features: `["50+可定制战甲","4人合作","开放世界任务","免费游玩"]`, IsHot: true, Sort: 2, Status: 1}, + {Name: "荒野求生:大逃杀", Description: "100 人大逃杀。跳伞、搜装备、缩圈、活到最后。多种地图和模式,真实弹道物理。战术竞技的极致体验。", CategoryID: 6, CategoryName: "射击对战", Developer: "Battle Royal", Publisher: "Nexus Games", Rating: 4.6, Plays: 3200000, Downloads: 2500000, Size: "35.0 GB", Version: "v12.0", ReleaseDate: "2026-03-01", Platform: "PC / Mobile / Console", Tags: `["大逃杀","100人","战术"]`, Features: `["100人对战","多地图模式","真实弹道","免费游玩"]`, IsNew: true, IsHot: true, Sort: 3, Status: 1}, + } + for i := range games { + if err := db.Create(&games[i]).Error; err != nil { + return err + } + } + + log.Printf("游戏数据初始化完成(%d 分类 + %d 游戏)", len(categories), len(games)) + return nil +}