Files
web_template/internal/database/seed_music.go
2026-07-10 10:06:04 +00:00

76 lines
7.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package database
import (
"log"
"gotest/internal/model"
"gorm.io/gorm"
)
// seedMusicData 初始化音乐数据(3 套音乐网站共用)
func seedMusicData(db *gorm.DB) error {
var count int64
db.Model(&model.Song{}).Count(&count)
if count > 0 {
log.Println("检测到已有音乐数据,跳过初始化")
return nil
}
// 音乐分类(曲风)
categories := []model.MusicCategory{
{Name: "流行", Icon: "pop", Sort: 1},
{Name: "摇滚", Icon: "rock", Sort: 2},
{Name: "民谣", Icon: "folk", Sort: 3},
{Name: "电子", Icon: "electronic", Sort: 4},
{Name: "古典", Icon: "classical", Sort: 5},
{Name: "嘻哈", Icon: "hiphop", Sort: 6},
}
for i := range categories {
if err := db.Create(&categories[i]).Error; err != nil {
return err
}
}
// 歌曲数据
songs := []model.Song{
// 流行
{Title: "星海彼岸", Artist: "林夕音", Album: "星海彼岸", CategoryID: 1, CategoryName: "流行", Duration: 245, PlayCount: 98000000, LikeCount: 850000, ReleaseDate: "2026-06-15", Language: "华语", Tags: `["抒情","钢琴","治愈"]`, Lyrics: "越过星海的距离\n我在彼岸等你\n时光折叠成纸鹤\n飞向你的心里", IsHot: true, IsNew: true, Sort: 1, Status: 1},
{Title: "霓虹城市", Artist: "Echo 乐队", Album: "都市光影", CategoryID: 1, CategoryName: "流行", Duration: 198, PlayCount: 67000000, LikeCount: 520000, ReleaseDate: "2026-05-20", Language: "华语", Tags: `["都市","电子流行","动感"]`, Lyrics: "霓虹灯下的城市\n我们擦肩而过\n每一盏灯都是一个故事", IsHot: true, Sort: 2, Status: 1},
{Title: "夏日晚风", Artist: "苏念", Album: "夏日纪", CategoryID: 1, CategoryName: "流行", Duration: 213, PlayCount: 45000000, LikeCount: 380000, ReleaseDate: "2026-07-01", Language: "华语", Tags: `["夏日","清新","轻快"]`, Lyrics: "夏天的晚风轻轻吹\n带着栀子花的香味\n我们骑着单车\n追着夕阳跑", IsNew: true, Sort: 3, Status: 1},
// 摇滚
{Title: "燃烧的翅膀", Artist: "狂焰乐队", Album: "烈火纪元", CategoryID: 2, CategoryName: "摇滚", Duration: 312, PlayCount: 56000000, LikeCount: 680000, ReleaseDate: "2026-04-10", Language: "华语", Tags: `["硬摇滚","热血","励志"]`, Lyrics: "展开燃烧的翅膀\n冲破所有阻挡\n就算坠落也要\n飞向太阳的方向", IsHot: true, Sort: 1, Status: 1},
{Title: "破碎的镜", Artist: "黑曜石", Album: "反射", CategoryID: 2, CategoryName: "摇滚", Duration: 267, PlayCount: 34000000, LikeCount: 420000, ReleaseDate: "2026-03-15", Language: "华语", Tags: `["另类摇滚","深沉","思考"]`, Lyrics: "破碎的镜中\n映出无数个自己\n哪一个才是真实", IsHot: true, Sort: 2, Status: 1},
{Title: "自由之路", Artist: "远征者", Album: "无界", CategoryID: 2, CategoryName: "摇滚", Duration: 289, PlayCount: 28000000, LikeCount: 310000, ReleaseDate: "2026-06-28", Language: "华语", Tags: `["朋克","自由","公路"]`, Lyrics: "踏上自由之路\n油门踩到底\n风在耳边呼啸", IsNew: true, Sort: 3, Status: 1},
// 民谣
{Title: "故乡的云", Artist: "陈木然", Album: "远方", CategoryID: 3, CategoryName: "民谣", Duration: 256, PlayCount: 78000000, LikeCount: 920000, ReleaseDate: "2026-05-01", Language: "华语", Tags: `["乡愁","吉他","温暖"]`, Lyrics: "故乡的云\n慢慢地飘\n带走我的思念\n留在远方的家", IsHot: true, Sort: 1, Status: 1},
{Title: "老街时光", Artist: "江南月", Album: "巷子里的歌", CategoryID: 3, CategoryName: "民谣", Duration: 224, PlayCount: 42000000, LikeCount: 560000, ReleaseDate: "2026-04-22", Language: "华语", Tags: `["怀旧","口琴","叙事"]`, Lyrics: "老街的石板路\n刻着岁月的纹\n阿婆的摇椅\n还在门前摇晃", Sort: 2, Status: 1},
{Title: "山野间", Artist: "风之声", Album: "自然录", CategoryID: 3, CategoryName: "民谣", Duration: 198, PlayCount: 31000000, LikeCount: 410000, ReleaseDate: "2026-07-05", Language: "华语", Tags: `["自然","竹笛","宁静"]`, Lyrics: "山野间的风\n带着青草的味道\n溪水潺潺流过\n鸟儿在歌唱", IsNew: true, Sort: 3, Status: 1},
// 电子
{Title: "赛博梦境", Artist: "Neon Pulse", Album: "Digital Dreams", CategoryID: 4, CategoryName: "电子", Duration: 345, PlayCount: 89000000, LikeCount: 750000, ReleaseDate: "2026-06-18", Language: "纯音乐", Tags: `["合成器","赛博朋克","氛围"]`, Lyrics: "", IsHot: true, IsNew: true, Sort: 1, Status: 1},
{Title: "脉冲星", Artist: "Synthwave Lab", Album: "Cosmic Frequencies", CategoryID: 4, CategoryName: "电子", Duration: 278, PlayCount: 52000000, LikeCount: 480000, ReleaseDate: "2026-05-10", Language: "纯音乐", Tags: `["电子舞曲","太空","律动"]`, Lyrics: "", IsHot: true, Sort: 2, Status: 1},
{Title: "数据洪流", Artist: "CodeBeat", Album: "Binary", CategoryID: 4, CategoryName: "电子", Duration: 234, PlayCount: 36000000, LikeCount: 320000, ReleaseDate: "2026-07-08", Language: "纯音乐", Tags: `["Glitch","科技","实验"]`, Lyrics: "", IsNew: true, Sort: 3, Status: 1},
// 古典
{Title: "月光奏鸣曲 (改编)", Artist: "李云朗", Album: "古典新声", CategoryID: 5, CategoryName: "古典", Duration: 420, PlayCount: 65000000, LikeCount: 880000, ReleaseDate: "2026-03-20", Language: "纯音乐", Tags: `["钢琴","贝多芬","改编"]`, Lyrics: "", IsHot: true, Sort: 1, Status: 1},
{Title: "春之圆舞曲", Artist: "维也纳爱乐", Album: "四季", CategoryID: 5, CategoryName: "古典", Duration: 387, PlayCount: 43000000, LikeCount: 560000, ReleaseDate: "2026-04-05", Language: "纯音乐", Tags: `["管弦乐","圆舞曲","经典"]`, Lyrics: "", Sort: 2, Status: 1},
{Title: "二泉映月", Artist: "华彦钧", Album: "中国传统名曲", CategoryID: 5, CategoryName: "古典", Duration: 512, PlayCount: 38000000, LikeCount: 620000, ReleaseDate: "2026-01-15", Language: "纯音乐", Tags: `["二胡","传统","名曲"]`, Lyrics: "", Sort: 3, Status: 1},
// 嘻哈
{Title: "街头诗人", Artist: "MC 锋芒", Album: "地下之声", CategoryID: 6, CategoryName: "嘻哈", Duration: 187, PlayCount: 72000000, LikeCount: 650000, ReleaseDate: "2026-06-25", Language: "华语", Tags: `["说唱","街头","真实"]`, Lyrics: "我是街头诗人\n用韵脚写日记\n每一句都是生活\n每一个节拍都是心跳", IsHot: true, IsNew: true, Sort: 1, Status: 1},
{Title: "不眠夜", Artist: "Trap Master", Album: "Midnight", CategoryID: 6, CategoryName: "嘻哈", Duration: 165, PlayCount: 48000000, LikeCount: 430000, ReleaseDate: "2026-05-15", Language: "英语", Tags: `["Trap","夜店","律动"]`, Lyrics: "Midnight city lights\nWe don't sleep tonight\nBeat drops heavy\nFlow so tight", IsHot: true, Sort: 2, Status: 1},
{Title: "逐梦", Artist: "新生代", Album: "破茧", CategoryID: 6, CategoryName: "嘻哈", Duration: 198, PlayCount: 35000000, LikeCount: 390000, ReleaseDate: "2026-07-03", Language: "华语", Tags: `["励志","Flow","新生代"]`, Lyrics: "从地下到舞台\n每一步都不容易\n但梦想从不骗人\n只要你敢追", IsNew: true, Sort: 3, Status: 1},
}
for i := range songs {
if err := db.Create(&songs[i]).Error; err != nil {
return err
}
}
log.Printf("音乐数据初始化完成(%d 分类 + %d 歌曲)", len(categories), len(songs))
return nil
}