Commit 43b77201 43b77201a012bf0ffcdda94217a3dcccf29552a2 by lemon

*

1 parent b220205c
......@@ -25,7 +25,7 @@ class Song extends BaseModel
/**
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function cover()
public function coverResource()
{
return $this->hasOne(SongFile::class, 'song_id')->where('type', 4);
}
......
......@@ -31,20 +31,21 @@ class MusicianSongService extends Service
$songip_table = SongsIp::table();
$res = Song::query()->join($songip_table, "{$song_table}.id", '=', "{$songip_table}.song_id")
->with(['contractDetail', 'cover'])->whereIn("{$songip_table}.song_id", $song_ids)->select(["{$song_table}.id", 'publish_song'])
->groupBy(["song_id"])->paginate($this->pageSize);
->with(['contractDetail', 'coverResource'])->whereIn("{$songip_table}.song_id", $song_ids)->select(["{$song_table}.id", 'publish_song'])
->groupBy(["song_id"])->get();
foreach ($res as &$item) {
list($name, $singer) = explode('|', $item->publish_song);
$item->setAttribute('name', $name);
$item->setAttribute('singer', $singer);
$item->setAttribute('cover', empty($item->cover->url) ? '' : $item->cover->url);
$item->setAttribute('cover', empty($item->coverResource) ? '' : $item->coverResource->url);
$tmp = $item->toArray();
if (empty($tmp['contract_detail'])) {
$item->setAttribute('role', []);
unset($item->contractDetail);
unset($item->contractDetail, $item->publish_song, $item->coverResource);
continue;
}
......@@ -61,7 +62,7 @@ class MusicianSongService extends Service
}
}
$item->setAttribute('role', array_unique($role));
unset($item->contractDetail, $item->publish_song);
unset($item->contractDetail, $item->publish_song, $item->coverResource);
}
return Response::success($res);
......