功能:商店完善戒指板块

迁移:
- 2026_03_01_153959:shop_items 增加 intimacy_bonus/charm_bonus 字段

Seeder(RingItemsSeeder):
- 银质戒指 500金  亲密+10 魅力+30
- 黄金戒指 2000金 亲密+30 魅力+80
- 红宝石戒指 8000金 亲密+80 魅力+200
- 钻石戒指 30000金 亲密+200 魅力+500
- 传说神戒 100000金 亲密+500 魅力+1000

ShopService:
- buyItem() 分支加 ring 类型
- buyRing():扣金币 + 写入 active UserPurchase(背包持有)

ShopController::items():
- 返回 intimacy_bonus/charm_bonus
- 统计 ring_counts(各戒指持有数量)

shop-panel.blade.php:
- 新增「💍 求婚戒指」分组(排在最后)
- 图标右上角红色数字徽章(持有时)
- 卡片下方显示亲密度/魅力加成
- 购买按钮与现有逻辑复用
This commit is contained in:
2026-03-01 15:42:25 +08:00
parent 1f33013216
commit 29e43507ac
5 changed files with 209 additions and 2 deletions
@@ -0,0 +1,37 @@
<?php
/**
* 文件功能:为 shop_items 表添加戒指属性字段
*
* intimacy_bonus 结婚时初始亲密度加成
* charm_bonus 结婚时双方魅力加成
* 对非戒指类商品均为 NULL,不影响现有数据。
*/
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* 添加戒指加成字段。
*/
public function up(): void
{
Schema::table('shop_items', function (Blueprint $table): void {
$table->unsignedSmallInteger('intimacy_bonus')->default(0)->after('duration_days')->comment('结婚初始亲密度加成(戒指专用)');
$table->unsignedSmallInteger('charm_bonus')->default(0)->after('intimacy_bonus')->comment('结婚魅力加成(戒指专用)');
});
}
/**
* 回滚:删除字段。
*/
public function down(): void
{
Schema::table('shop_items', function (Blueprint $table): void {
$table->dropColumn(['intimacy_bonus', 'charm_bonus']);
});
}
};