Add new chat effects and shop items
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 文件功能:为商店补充新增特效商品数据
|
||||
* 将 6 种新特效的单次卡与周卡写入 shop_items,供现有站点直接使用。
|
||||
*/
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
* 商店新增特效商品数据迁移
|
||||
* 负责把新特效商品同步到已有数据库。
|
||||
*/
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* 写入新增特效商品,已存在时按 slug 更新展示字段。
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$now = now();
|
||||
$items = [
|
||||
['name' => '樱花飘落单次卡', 'slug' => 'once_sakura', 'description' => '购买即刻在聊天室飘落浪漫樱花,适合欢迎、节日与轻氛围场景。', 'icon' => '🌸', 'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 5, 'is_active' => true],
|
||||
['name' => '流星单次卡', 'slug' => 'once_meteors', 'description' => '流星划过夜空,亮度更强、数量更多,适合 VIP 登场和晚间氛围。', 'icon' => '🌠', 'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 6, 'is_active' => true],
|
||||
['name' => '金币雨单次卡', 'slug' => 'once_gold-rain', 'description' => '金币从天而降,适合开奖、奖励和活动发放时刻。', 'icon' => '🪙', 'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 7, 'is_active' => true],
|
||||
['name' => '爱心飘落单次卡', 'slug' => 'once_hearts', 'description' => '柔和爱心缓缓飘落,适合婚礼、表白与祝福场景。', 'icon' => '💖', 'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 8, 'is_active' => true],
|
||||
['name' => '彩带庆典单次卡', 'slug' => 'once_confetti', 'description' => '连续彩带和纸屑庆典从天而降,适合公告、中奖和庆祝。', 'icon' => '🎊', 'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 9, 'is_active' => true],
|
||||
['name' => '萤火虫单次卡', 'slug' => 'once_fireflies', 'description' => '发光萤火虫在屏幕间穿梭,适合安静、夜色和浪漫房间。', 'icon' => '✨', 'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 10, 'is_active' => true],
|
||||
['name' => '樱花飘落周卡', 'slug' => 'week_sakura', 'description' => '连续7天,每次进入聊天室自动飘落樱花。同时只能激活一种周卡。', 'icon' => '🌸', 'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 15, 'is_active' => true],
|
||||
['name' => '流星周卡', 'slug' => 'week_meteors', 'description' => '连续7天,每次进入聊天室自动划过流星。同时只能激活一种周卡。', 'icon' => '🌠', 'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 16, 'is_active' => true],
|
||||
['name' => '金币雨周卡', 'slug' => 'week_gold-rain', 'description' => '连续7天,每次进入聊天室自动触发金币雨。同时只能激活一种周卡。', 'icon' => '🪙', 'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 17, 'is_active' => true],
|
||||
['name' => '爱心飘落周卡', 'slug' => 'week_hearts', 'description' => '连续7天,每次进入聊天室自动飘落爱心。同时只能激活一种周卡。', 'icon' => '💖', 'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 18, 'is_active' => true],
|
||||
['name' => '彩带庆典周卡', 'slug' => 'week_confetti', 'description' => '连续7天,每次进入聊天室自动触发彩带庆典。同时只能激活一种周卡。', 'icon' => '🎊', 'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 19, 'is_active' => true],
|
||||
['name' => '萤火虫周卡', 'slug' => 'week_fireflies', 'description' => '连续7天,每次进入聊天室自动飞出萤火虫。同时只能激活一种周卡。', 'icon' => '✨', 'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 20, 'is_active' => true],
|
||||
];
|
||||
|
||||
// 统一补齐创建/更新时间,便于 upsert 覆盖已有同 slug 商品。
|
||||
$payload = array_map(static function (array $item) use ($now): array {
|
||||
return $item + [
|
||||
'created_at' => $now,
|
||||
'updated_at' => $now,
|
||||
];
|
||||
}, $items);
|
||||
|
||||
DB::table('shop_items')->upsert(
|
||||
$payload,
|
||||
['slug'],
|
||||
['name', 'description', 'icon', 'price', 'type', 'duration_days', 'sort_order', 'is_active', 'updated_at']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 回滚新增特效商品,删除本次补进的 12 个商店条目。
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
DB::table('shop_items')->whereIn('slug', [
|
||||
'once_sakura',
|
||||
'once_meteors',
|
||||
'once_gold-rain',
|
||||
'once_hearts',
|
||||
'once_confetti',
|
||||
'once_fireflies',
|
||||
'week_sakura',
|
||||
'week_meteors',
|
||||
'week_gold-rain',
|
||||
'week_hearts',
|
||||
'week_confetti',
|
||||
'week_fireflies',
|
||||
])->delete();
|
||||
}
|
||||
};
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
/**
|
||||
* 文件功能:商店初始商品数据填充器
|
||||
* 初始化9种商品:4种单次特效卡 + 4种周卡 + 改名卡
|
||||
* 初始化商店基础商品:经典特效卡、新增特效卡、周卡与改名卡
|
||||
*/
|
||||
|
||||
namespace Database\Seeders;
|
||||
@@ -31,6 +31,24 @@ class ShopItemSeeder extends Seeder
|
||||
['name' => '下雪单次卡', 'slug' => 'once_snow', 'icon' => '❄️',
|
||||
'description' => '银装素裹,漫天飞雪!立即触发下雪特效(仅自己可见)。',
|
||||
'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 4],
|
||||
['name' => '樱花飘落单次卡', 'slug' => 'once_sakura', 'icon' => '🌸',
|
||||
'description' => '购买即刻在聊天室飘落浪漫樱花,适合欢迎、节日与轻氛围场景。',
|
||||
'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 5],
|
||||
['name' => '流星单次卡', 'slug' => 'once_meteors', 'icon' => '🌠',
|
||||
'description' => '流星划过夜空,亮度更强、数量更多,适合 VIP 登场和晚间氛围。',
|
||||
'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 6],
|
||||
['name' => '金币雨单次卡', 'slug' => 'once_gold-rain', 'icon' => '🪙',
|
||||
'description' => '金币从天而降,适合开奖、奖励和活动发放时刻。',
|
||||
'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 7],
|
||||
['name' => '爱心飘落单次卡', 'slug' => 'once_hearts', 'icon' => '💖',
|
||||
'description' => '柔和爱心缓缓飘落,适合婚礼、表白与祝福场景。',
|
||||
'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 8],
|
||||
['name' => '彩带庆典单次卡', 'slug' => 'once_confetti', 'icon' => '🎊',
|
||||
'description' => '连续彩带和纸屑庆典从天而降,适合公告、中奖和庆祝。',
|
||||
'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 9],
|
||||
['name' => '萤火虫单次卡', 'slug' => 'once_fireflies', 'icon' => '✨',
|
||||
'description' => '发光萤火虫在屏幕间穿梭,适合安静、夜色和浪漫房间。',
|
||||
'price' => 888, 'type' => 'instant', 'duration_days' => null, 'sort_order' => 10],
|
||||
|
||||
// ── 周卡(登录自动播放7天,8888金币)──────────────────
|
||||
['name' => '烟花周卡', 'slug' => 'week_fireworks', 'icon' => '🎆',
|
||||
@@ -45,11 +63,29 @@ class ShopItemSeeder extends Seeder
|
||||
['name' => '下雪周卡', 'slug' => 'week_snow', 'icon' => '❄️',
|
||||
'description' => '连续7天,每次进入聊天室自动下雪。同时只能激活一种周卡。',
|
||||
'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 14],
|
||||
['name' => '樱花飘落周卡', 'slug' => 'week_sakura', 'icon' => '🌸',
|
||||
'description' => '连续7天,每次进入聊天室自动飘落樱花。同时只能激活一种周卡。',
|
||||
'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 15],
|
||||
['name' => '流星周卡', 'slug' => 'week_meteors', 'icon' => '🌠',
|
||||
'description' => '连续7天,每次进入聊天室自动划过流星。同时只能激活一种周卡。',
|
||||
'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 16],
|
||||
['name' => '金币雨周卡', 'slug' => 'week_gold-rain', 'icon' => '🪙',
|
||||
'description' => '连续7天,每次进入聊天室自动触发金币雨。同时只能激活一种周卡。',
|
||||
'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 17],
|
||||
['name' => '爱心飘落周卡', 'slug' => 'week_hearts', 'icon' => '💖',
|
||||
'description' => '连续7天,每次进入聊天室自动飘落爱心。同时只能激活一种周卡。',
|
||||
'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 18],
|
||||
['name' => '彩带庆典周卡', 'slug' => 'week_confetti', 'icon' => '🎊',
|
||||
'description' => '连续7天,每次进入聊天室自动触发彩带庆典。同时只能激活一种周卡。',
|
||||
'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 19],
|
||||
['name' => '萤火虫周卡', 'slug' => 'week_fireflies', 'icon' => '✨',
|
||||
'description' => '连续7天,每次进入聊天室自动飞出萤火虫。同时只能激活一种周卡。',
|
||||
'price' => 8888, 'type' => 'duration', 'duration_days' => 7, 'sort_order' => 20],
|
||||
|
||||
// ── 改名卡(一次性,5000金币)────────────────────────
|
||||
['name' => '改名卡', 'slug' => 'rename_card', 'icon' => '🎭',
|
||||
'description' => '使用后可修改一次昵称(旧名保留30天黑名单,不可被他人注册)。注意:历史聊天记录中的旧名不会更改。',
|
||||
'price' => 5000, 'type' => 'one_time', 'duration_days' => null, 'sort_order' => 20],
|
||||
'price' => 5000, 'type' => 'one_time', 'duration_days' => null, 'sort_order' => 30],
|
||||
];
|
||||
|
||||
foreach ($items as $item) {
|
||||
|
||||
Reference in New Issue
Block a user