Commit e77ede5c e77ede5c490e821bd15742ceb019fc3c80e726ff by lemon

授权发行歌曲指数统计

1 parent 1aedcc30
...@@ -63,4 +63,13 @@ class MusicianSongController extends Controller ...@@ -63,4 +63,13 @@ class MusicianSongController extends Controller
63 return $this->musicianSongService->songRights(); 63 return $this->musicianSongService->songRights();
64 } 64 }
65 65
66 /**
67 * 指数统计
68 * @return \Illuminate\Http\JsonResponse
69 */
70 public function releaseSongCnt()
71 {
72 return $this->musicianSongService->releaseSongCnt();
73 }
74
66 } 75 }
......
...@@ -21,7 +21,6 @@ use Carbon\Carbon; ...@@ -21,7 +21,6 @@ use Carbon\Carbon;
21 class MusicianSongService extends Service 21 class MusicianSongService extends Service
22 { 22 {
23 /** 23 /**
24 * 分贝授权发行歌曲 - 绑定版权数据 - 对应的权益
25 * @return \Illuminate\Http\JsonResponse 24 * @return \Illuminate\Http\JsonResponse
26 */ 25 */
27 public function songRights() 26 public function songRights()
...@@ -56,6 +55,48 @@ class MusicianSongService extends Service ...@@ -56,6 +55,48 @@ class MusicianSongService extends Service
56 return Response::success($data); 55 return Response::success($data);
57 } 56 }
58 57
58 /**
59 * 授权发行歌曲指数统计
60 * @return \Illuminate\Http\JsonResponse
61 */
62 public function releaseSongCnt()
63 {
64 $cnt = [
65 'favCnt' => 0.00, //收藏指数 - 月
66 'playCnt' => 0.00, //播放指数 - 月
67 'downloadCnt' => 0.00, //下载指数 - 月
68 'favCnt_week' => 0.00, //收藏指数 - 周
69 'playCnt_week' => 0.00, //播放指数 - 周
70 'downloadCnt_week' => 0.00, //下载指数 - 周
71 'favCnt_years' => 0.00, //收藏指数 - 年
72 'playCnt_years' => 0.00, //播放指数 - 年
73 'downloadCnt_years' => 0.00 //下载指数 - 年
74 ];
75
76 $song_ids = array_filter(array_unique(SongStakeholder::query()->identify()->pluck('song_id')->toArray()));
77 if (empty($song_ids)) return Response::success($cnt);
78
79 $res = SongsIp::query()->with('songsIpExt:song_ip_id,favCnt,playCnt,downloadCnt,favCnt_week,playCnt_week,downloadCnt_week,favCnt_years,playCnt_years,downloadCnt_years')
80 ->join('songs as s', 'songs_ip.song_id', '=', 's.id')
81 ->where('auth_channel', 1)->whereIn('s.id', $song_ids)->select(['s.id as sid', 'songs_ip.id as id', 'songs_ip.song_id'])->get();
82
83 foreach ($res as $item) {
84 if (empty($item->songsIpExt)) continue;
85
86 $cnt['favCnt'] = bcadd($cnt['favCnt'], $item->songsIpExt->favCnt, 2);
87 $cnt['playCnt'] = bcadd($cnt['playCnt'], $item->songsIpExt->playCnt, 2);
88 $cnt['downloadCnt'] = bcadd($cnt['downloadCnt'], $item->songsIpExt->downloadCnt, 2);
89 $cnt['favCnt_week'] = bcadd($cnt['favCnt_week'], $item->songsIpExt->favCnt_week, 2);
90 $cnt['playCnt_week'] = bcadd($cnt['playCnt_week'], $item->songsIpExt->playCnt_week, 2);
91 $cnt['downloadCnt_week'] = bcadd($cnt['downloadCnt_week'], $item->songsIpExt->downloadCnt_week, 2);
92 $cnt['favCnt_years'] = bcadd($cnt['favCnt_years'], $item->songsIpExt->favCnt_years, 2);
93 $cnt['playCnt_years'] = bcadd($cnt['playCnt_years'], $item->songsIpExt->playCnt_years, 2);
94 $cnt['downloadCnt_years'] = bcadd($cnt['downloadCnt_years'], $item->songsIpExt->downloadCnt_years, 2);
95 }
96
97 return Response::success($cnt);
98 }
99
59 100
60 /** 101 /**
61 * 授权发行歌曲 102 * 授权发行歌曲
......
...@@ -17,10 +17,10 @@ Route::group([], function (){ ...@@ -17,10 +17,10 @@ Route::group([], function (){
17 17
18 //首页-音乐人 18 //首页-音乐人
19 Route::get('musician_song', 'MusicianSongController@list'); 19 Route::get('musician_song', 'MusicianSongController@list');
20 20 Route::get('musician_song/releaseSongCnt', 'MusicianSongController@releaseSongCnt');
21 Route::post('musician_song/rights', 'MusicianSongController@songRights');
21 Route::get('musician_song/{song_id}', 'MusicianSongController@detail'); 22 Route::get('musician_song/{song_id}', 'MusicianSongController@detail');
22 Route::get('musician_song/{song_id}/right', 'MusicianSongController@right'); 23 Route::get('musician_song/{song_id}/right', 'MusicianSongController@right');
23 Route::post('musician_song/rights', 'MusicianSongController@songRights');
24 24
25 //经纪约列表 25 //经纪约列表
26 Route::get('musician_treaty', 'MusicianTreatyController@list'); 26 Route::get('musician_treaty', 'MusicianTreatyController@list');
......