阶段备份提交
Showing
6 changed files
with
114 additions
and
37 deletions
... | @@ -13,7 +13,8 @@ class BaseController extends Controller | ... | @@ -13,7 +13,8 @@ class BaseController extends Controller |
13 | * 基础变量 | 13 | * 基础变量 |
14 | * @var string | 14 | * @var string |
15 | */ | 15 | */ |
16 | private $domain, $cp_id, $key; | 16 | protected $domain, $cp_id; |
17 | private $key; | ||
17 | 18 | ||
18 | public function __construct() | 19 | public function __construct() |
19 | { | 20 | { |
... | @@ -44,13 +45,11 @@ class BaseController extends Controller | ... | @@ -44,13 +45,11 @@ class BaseController extends Controller |
44 | /** | 45 | /** |
45 | * 获取签名和去空的参数 | 46 | * 获取签名和去空的参数 |
46 | * @param array $array | 47 | * @param array $array |
47 | * @param int $timestamp | ||
48 | * @return array | 48 | * @return array |
49 | */ | 49 | */ |
50 | private function signData(array $array, int $timestamp) | 50 | protected function signData(array $array) |
51 | { | 51 | { |
52 | $common_params = [ | 52 | $common_params = [ |
53 | 'timestamp' => $timestamp, | ||
54 | 'cp_id' => $this->cp_id | 53 | 'cp_id' => $this->cp_id |
55 | ]; | 54 | ]; |
56 | $param_arr = array_merge($common_params,$array); | 55 | $param_arr = array_merge($common_params,$array); |
... | @@ -88,8 +87,8 @@ class BaseController extends Controller | ... | @@ -88,8 +87,8 @@ class BaseController extends Controller |
88 | } else { | 87 | } else { |
89 | $params = $reqData; | 88 | $params = $reqData; |
90 | } | 89 | } |
91 | $timestamp = time(); | 90 | $params['timestamp'] = time(); |
92 | return $this->signData($params,$timestamp); | 91 | return $this->signData($params); |
93 | } | 92 | } |
94 | 93 | ||
95 | /** | 94 | /** |
... | @@ -115,18 +114,14 @@ class BaseController extends Controller | ... | @@ -115,18 +114,14 @@ class BaseController extends Controller |
115 | $response = $client->request('POST', $url, ['json' => $data]); | 114 | $response = $client->request('POST', $url, ['json' => $data]); |
116 | break; | 115 | break; |
117 | } | 116 | } |
118 | $data = json_decode($response->getBody()->getContents(), true); | 117 | $respArr = json_decode($response->getBody()->getContents(), true); |
119 | Log::channel('api')->info(__METHOD__, $data); | 118 | Log::channel('api')->info(__METHOD__, $respArr); |
120 | if (200 !== $data['code']) { | 119 | if (200 !== $respArr['code']) { |
121 | return Response::error(-1,$data['msg'] ?? '操作失败'); | 120 | return Response::error(-1,$respArr['msg'] ?? '操作失败'); |
122 | } else { | 121 | } else { |
123 | $response_path = 'Icms/'.$uri; | 122 | $response_file = database_path('icms/' . $uri . '.resp'); |
124 | if (! is_dir($response_path)) { | 123 | file_put_contents($response_file, var_export($respArr['data'],true)); |
125 | @mkdir($response_path,'0777'); | 124 | return Response::success($respArr['data']); |
126 | } | ||
127 | $response_file = database_path($response_path.'.resp'); | ||
128 | file_put_contents($response_file, var_export($data['data'],true)); | ||
129 | return Response::success($data['data']); | ||
130 | } | 125 | } |
131 | } catch (\Exception $e) { | 126 | } catch (\Exception $e) { |
132 | Log::channel('api')->error(__METHOD__, ['msg'=>$e->getMessage()]); | 127 | Log::channel('api')->error(__METHOD__, ['msg'=>$e->getMessage()]); | ... | ... |
... | @@ -2,6 +2,8 @@ | ... | @@ -2,6 +2,8 @@ |
2 | 2 | ||
3 | namespace App\Http\Controllers\Icms; | 3 | namespace App\Http\Controllers\Icms; |
4 | 4 | ||
5 | use App\Helper\Response; | ||
6 | use App\Jobs\HandleAlbumStatus; | ||
5 | use Illuminate\Http\Request; | 7 | use Illuminate\Http\Request; |
6 | 8 | ||
7 | class WorkController extends BaseController | 9 | class WorkController extends BaseController |
... | @@ -28,7 +30,7 @@ class WorkController extends BaseController | ... | @@ -28,7 +30,7 @@ class WorkController extends BaseController |
28 | public function submitTme(Request $request) | 30 | public function submitTme(Request $request) |
29 | { | 31 | { |
30 | //todo:参数验证 | 32 | //todo:参数验证 |
31 | return $this->doApi('save-album'); | 33 | return $this->doApi('submit-tme'); |
32 | } | 34 | } |
33 | 35 | ||
34 | /** | 36 | /** |
... | @@ -137,4 +139,28 @@ class WorkController extends BaseController | ... | @@ -137,4 +139,28 @@ class WorkController extends BaseController |
137 | //todo:参数验证 | 139 | //todo:参数验证 |
138 | return $this->doApi('sign-subject'); | 140 | return $this->doApi('sign-subject'); |
139 | } | 141 | } |
142 | |||
143 | /** | ||
144 | * 异步通知专辑上架信息(队列处理) | ||
145 | * @param Request $request | ||
146 | * @return \Illuminate\Http\JsonResponse | ||
147 | */ | ||
148 | public function albumStatus(Request $request) | ||
149 | { | ||
150 | $callData = $request->only(['album_id','tme_album_id','album_status','song_id','timestamp']); | ||
151 | $callSign = $request->post('sign'); | ||
152 | $callCpId = $request->post('cp_id'); | ||
153 | if ($callCpId !== $this->cp_id) { | ||
154 | return Response::error(40001,'没有请求权限!'); | ||
155 | } | ||
156 | //验签 | ||
157 | $signData = $this->signData($callData); | ||
158 | if ($callSign !== $signData['sign']) { | ||
159 | return Response::error(40003,'签名鉴权未通过!'); | ||
160 | } | ||
161 | |||
162 | //入队批量处理业务(暂时只保存请求数据) | ||
163 | HandleAlbumStatus::dispatch($callData)->onQueue('handle-album-status'); | ||
164 | return response()->json(['code' => 200,'data' => true,'message' => 'OK']); | ||
165 | } | ||
140 | } | 166 | } | ... | ... |
app/Jobs/HandleAlbumStatus.php
0 → 100644
1 | <?php | ||
2 | |||
3 | namespace App\Jobs; | ||
4 | |||
5 | use Illuminate\Bus\Queueable; | ||
6 | use Illuminate\Contracts\Queue\ShouldQueue; | ||
7 | use Illuminate\Foundation\Bus\Dispatchable; | ||
8 | use Illuminate\Queue\InteractsWithQueue; | ||
9 | use Illuminate\Queue\SerializesModels; | ||
10 | |||
11 | class HandleAlbumStatus implements ShouldQueue | ||
12 | { | ||
13 | use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; | ||
14 | |||
15 | private $callData = []; | ||
16 | |||
17 | /** | ||
18 | * Create a new job instance. | ||
19 | * @param array $callData | ||
20 | * @return void | ||
21 | */ | ||
22 | public function __construct(array $callData) | ||
23 | { | ||
24 | $this->callData = $callData; | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * Execute the job. | ||
29 | * | ||
30 | * @return void | ||
31 | */ | ||
32 | public function handle() | ||
33 | { | ||
34 | //php artisan queue:work --queue=handle-album-status --tries=3 --sleep=3 | ||
35 | |||
36 | $response_file = database_path('icms/album-status.notify'); | ||
37 | file_put_contents($response_file, | ||
38 | '======接收回调数据在'.date('Y-m-n H:i:s').'======'. PHP_EOL | ||
39 | .var_export($this->callData,true). PHP_EOL,FILE_APPEND); | ||
40 | } | ||
41 | |||
42 | /** | ||
43 | * @param null $exception | ||
44 | */ | ||
45 | public function fail($exception = null) | ||
46 | { | ||
47 | //todo: Artisan创建任务失败记录表 | ||
48 | } | ||
49 | } |
1 | <?php | 1 | <?php |
2 | return [ | 2 | return [ |
3 | 'id' => '', | 3 | 'id' => 37968, |
4 | 'album_name' => '海葵测试专辑01',//专辑名 | 4 | 'album_name' => '海葵测试专辑01',//专辑名 |
5 | 'tran_name' => '测试专辑01',//翻译名称 | 5 | 'tran_name' => '测试专辑01',//翻译名称 |
6 | 'album_cover' => 'https://legal-test-1305250541.cos.ap-shanghai.myqcloud.com/logo/logo.png?q-sign-algorithm=sha1&q-ak=AKIDCT_ihvi7dCVjXklSUcitkOuvzUm-40NrZw0Aljp7XOLd1XZwU4LzHqizS4WQSR8B&q-sign-time=1639989345;1639992945&q-key-time=1639989345;1639992945&q-header-list=host&q-url-param-list=&q-signature=ddbebf368aee6b4f413002a4b27c93e045b5261d&x-cos-security-token=DQxyuKoPLh59NX7U7UbmtVcdPz7iAaha854bb74d0a2ea2a0939bc0227b133da6X5zte-0TxXocfdG-GF2HIRZ3HU0iYAtmnH7EHo3ELSGGJozkOhTPe5L0e1SZh6Rjxi90Q8-e-3dQJ-GzCSyu-NJnMFjfB5rMYKxYcLAE1YCCF_Yu8S64oy6o-O9TP2HbM6ZwqPdcI8JnYpcuRys9M3Of8w4bAr87K6ghv3wjpwDVcNCAC-jp8Wu_JQjRK6tb',//专辑封面url | 6 | 'album_cover' => 'https://legal-test-1305250541.cos.ap-shanghai.myqcloud.com/logo/logo.png?q-sign-algorithm=sha1&q-ak=AKIDCT_ihvi7dCVjXklSUcitkOuvzUm-40NrZw0Aljp7XOLd1XZwU4LzHqizS4WQSR8B&q-sign-time=1639989345;1639992945&q-key-time=1639989345;1639992945&q-header-list=host&q-url-param-list=&q-signature=ddbebf368aee6b4f413002a4b27c93e045b5261d&x-cos-security-token=DQxyuKoPLh59NX7U7UbmtVcdPz7iAaha854bb74d0a2ea2a0939bc0227b133da6X5zte-0TxXocfdG-GF2HIRZ3HU0iYAtmnH7EHo3ELSGGJozkOhTPe5L0e1SZh6Rjxi90Q8-e-3dQJ-GzCSyu-NJnMFjfB5rMYKxYcLAE1YCCF_Yu8S64oy6o-O9TP2HbM6ZwqPdcI8JnYpcuRys9M3Of8w4bAr87K6ghv3wjpwDVcNCAC-jp8Wu_JQjRK6tb',//专辑封面url |
... | @@ -8,7 +8,7 @@ return [ | ... | @@ -8,7 +8,7 @@ return [ |
8 | 'album_type' => 17,//专辑类型ID int | 8 | 'album_type' => 17,//专辑类型ID int |
9 | 'region' => 18,//地区 int 17: "港台"; 18: "内地"; 19: "日韩"; 20: "欧美"; 21: "其他"; 22: "东南亚"; 23: "未知"; | 9 | 'region' => 18,//地区 int 17: "港台"; 18: "内地"; 19: "日韩"; 20: "欧美"; 21: "其他"; 22: "东南亚"; 23: "未知"; |
10 | 'language' => '0,1',//语言 string,多种语言逗号分割 | 10 | 'language' => '0,1',//语言 string,多种语言逗号分割 |
11 | 'album_genre' => '1|2',//专辑流派 string 单竖杠分割 | 11 | 'album_genre' => 'Children\'s|Country',//专辑流派 string 单竖杠分割 |
12 | 'album_upc' => '',//专辑UPC | 12 | 'album_upc' => '',//专辑UPC |
13 | 'version' => '1.0',//专辑版本 | 13 | 'version' => '1.0',//专辑版本 |
14 | 'brand_company' => '',//外显厂牌公司 | 14 | 'brand_company' => '',//外显厂牌公司 |
... | @@ -24,7 +24,7 @@ return [ | ... | @@ -24,7 +24,7 @@ return [ |
24 | 'signsubject_id' => 1,//签约主体ID | 24 | 'signsubject_id' => 1,//签约主体ID |
25 | 'song_list' => [ | 25 | 'song_list' => [ |
26 | [ | 26 | [ |
27 | 'id' => 0, | 27 | 'id' => 100, |
28 | 'external_id' => '',//外部歌曲ID - 海葵歌曲ID? | 28 | 'external_id' => '',//外部歌曲ID - 海葵歌曲ID? |
29 | 'name' => '想',//歌曲名 | 29 | 'name' => '想',//歌曲名 |
30 | 'subtitle' => '',//副标题 | 30 | 'subtitle' => '',//副标题 | ... | ... |
... | @@ -13,21 +13,27 @@ use Illuminate\Support\Facades\Route; | ... | @@ -13,21 +13,27 @@ use Illuminate\Support\Facades\Route; |
13 | | | 13 | | |
14 | */ | 14 | */ |
15 | 15 | ||
16 | Route::group(['middleware'=>'throttle:100,1'], function (){ | 16 | Route::group(['middleware'=>'throttle:60,1'], function (){ |
17 | Route::get('/',function(){ | 17 | Route::get('/',function(){ |
18 | return 'Welcome To ICMS !!'; | 18 | return 'Welcome To ICMS !!'; |
19 | }); | 19 | }); |
20 | 20 | ||
21 | Route::post('album-list','WorkController@albumList'); //专辑列表 | 21 | /** |
22 | Route::post('submit-tme','WorkController@submitTme'); //专辑上线 | 22 | * 主动请求 |
23 | Route::post('get-album','WorkController@getAlbum'); //获取专辑详情 | 23 | */ |
24 | // Route::post('del-album','WorkController@delAlbum'); //删除专辑草稿 | 24 | Route::post('album-list','WorkController@albumList'); //专辑列表 |
25 | Route::post('create-shower','WorkController@createShower'); //艺人创建 | 25 | Route::post('submit-tme','WorkController@submitTme'); //专辑上线 |
26 | Route::post('shower-list','WorkController@showerList'); //艺人查询 | 26 | Route::post('get-album','WorkController@getAlbum'); //获取专辑详情 |
27 | Route::post('get-leaders','WorkController@getLeaders'); //查询候选负责人 | 27 | Route::post('create-shower','WorkController@createShower'); //艺人创建 |
28 | Route::post('check-repeat','WorkController@checkRepeat'); //作品重复检测 | 28 | Route::post('shower-list','WorkController@showerList'); //艺人查询 |
29 | Route::post('original-company','WorkController@originalCompany'); //原始版权公司列表 | 29 | Route::post('get-leaders','WorkController@getLeaders'); //查询候选负责人 |
30 | Route::post('work-file','WorkController@workFile'); //作品录入文件上传 | 30 | Route::post('check-repeat','WorkController@checkRepeat'); //作品重复检测 |
31 | Route::post('sign-subject','WorkController@signSubject'); //获取授权主体列表 | 31 | Route::post('original-company','WorkController@originalCompany'); //原始版权公司列表 |
32 | Route::post('work-file','WorkController@workFile'); //作品录入文件上传 | ||
33 | Route::post('sign-subject','WorkController@signSubject'); //获取授权主体列表 | ||
32 | 34 | ||
33 | }); | 35 | /** |
36 | * 回调通知接收 | ||
37 | */ | ||
38 | Route::post('notify-album-status','WorkController@albumStatus'); | ||
39 | }); | ... | ... |
-
Please register or sign in to post a comment