This commit is contained in:
ct
2025-07-15 20:43:51 +08:00
parent d531649792
commit 326c6e3507
6 changed files with 11 additions and 10 deletions

View File

@@ -14,7 +14,7 @@ public function init(Request $request)
{
$meme = Meme::with('meme_media', 'background_media')->where('status', MemeGenerator::STATUS_COMPLETED)->inRandomOrder()->first();
$meme_media = MemeGenerator::getSuitableMemeMedia($meme, 2);
$meme_media = MemeGenerator::getSuitableMemeMedia($meme, 15);
return response()->json([
'success' => [
@@ -72,14 +72,14 @@ public function searchMemes(Request $request)
// Search in name and description using ILIKE for partial matches
$q->where('name', 'ILIKE', "%{$query}%")
->orWhere('description', 'ILIKE', "%{$query}%")
// Search in JSON arrays using PostgreSQL JSON operators
// Search in JSON arrays using PostgreSQL JSON operators
->orWhereRaw('keywords::text ILIKE ?', ["%{$query}%"])
->orWhereRaw('action_keywords::text ILIKE ?', ["%{$query}%"])
->orWhereRaw('emotion_keywords::text ILIKE ?', ["%{$query}%"])
->orWhereRaw('misc_keywords::text ILIKE ?', ["%{$query}%"]);
})
->orderByRaw('
CASE
CASE
WHEN name ILIKE ? THEN 1
WHEN description ILIKE ? THEN 2
WHEN keywords::text ILIKE ? THEN 3
@@ -116,7 +116,7 @@ public function searchBackgrounds(Request $request)
$backgrounds = BackgroundMedia::where('status', 'completed')
->where('prompt', 'ILIKE', "%{$query}%")
->orderByRaw('
CASE
CASE
WHEN prompt ILIKE ? THEN 1
ELSE 2
END, prompt ASC