增加婚姻 查看已婚列表

This commit is contained in:
2026-04-12 17:28:42 +08:00
parent 705af810a9
commit 2090250967
5 changed files with 263 additions and 22 deletions
+25 -2
View File
@@ -46,6 +46,29 @@ class MarriageController extends Controller
]);
}
/**
* 获取全站已婚列表(按亲密度或结婚时间排序)。
*/
public function list(Request $request): JsonResponse
{
$marriages = Marriage::query()
->where('status', 'married')
->with(['user:id,username,usersf,sex', 'partner:id,username,usersf,sex', 'ringItem:id,name,icon'])
->orderByDesc('intimacy')
->orderByDesc('married_at')
->paginate(20);
return response()->json([
'status' => 'success',
'data' => $marriages->items(),
'pagination' => [
'current_page' => $marriages->currentPage(),
'last_page' => $marriages->lastPage(),
'total' => $marriages->total(),
],
]);
}
/**
* 获取当前用户的婚姻状态(名片/用户列表用)。
*/
@@ -58,7 +81,7 @@ class MarriageController extends Controller
return response()->json(['married' => false]);
}
$marriage->load(['user:id,username,headface', 'partner:id,username,headface', 'ringItem:id,name,slug,icon']);
$marriage->load(['user:id,username,usersf', 'partner:id,username,usersf', 'ringItem:id,name,slug,icon']);
return response()->json([
'married' => $marriage->status === 'married',
@@ -95,7 +118,7 @@ class MarriageController extends Controller
->where(function ($q) use ($target) {
$q->where('user_id', $target->id)->orWhere('partner_id', $target->id);
})
->with(['user:id,username,headface', 'partner:id,username,headface', 'ringItem:id,name,icon'])
->with(['user:id,username,usersf', 'partner:id,username,usersf', 'ringItem:id,name,icon'])
->first();
if (! $marriage) {
+10
View File
@@ -24,6 +24,16 @@ class User extends Authenticatable
{
use HasFactory, Notifiable;
/**
* 追加到 JSON 序列化的属性。
*
* @var array<int, string>
*/
protected $appends = [
'headface',
'headface_url',
];
/**
* The attributes that are mass assignable.
*
+1 -1
View File
@@ -103,7 +103,7 @@ class MarriageService
$marriage = Marriage::create([
'user_id' => $proposer->id,
'partner_id' => $target->id,
'ring_item_id' => $ring->item_id,
'ring_item_id' => $ring->shop_item_id,
'ring_purchase_id' => $ring->id,
'status' => 'pending',
'proposed_at' => now(),