Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Cong.Zhao
/
musician-api.hikoon.com
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
37d7e612
...
37d7e612ffa96fd22f0b9be3a544226dba5b4648
authored
2021-12-23 19:36:57 +0800
by
Yang.Zhang
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
阶段备份提交
1 parent
10e23b8a
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
114 additions
and
37 deletions
.gitignore
app/Http/Controllers/Icms/BaseController.php
app/Http/Controllers/Icms/WorkController.php
app/Jobs/HandleAlbumStatus.php
database/icms/submit-tme.query.php
routes/icms.php
.gitignore
View file @
37d7e61
...
...
@@ -14,3 +14,4 @@ yarn-error.log
/.idea
/.vscode
/database/icms/*.resp
/database/icms/*.notify
...
...
app/Http/Controllers/Icms/BaseController.php
View file @
37d7e61
...
...
@@ -13,7 +13,8 @@ class BaseController extends Controller
* 基础变量
* @var string
*/
private
$domain
,
$cp_id
,
$key
;
protected
$domain
,
$cp_id
;
private
$key
;
public
function
__construct
()
{
...
...
@@ -44,13 +45,11 @@ class BaseController extends Controller
/**
* 获取签名和去空的参数
* @param array $array
* @param int $timestamp
* @return array
*/
pr
ivate
function
signData
(
array
$array
,
int
$timestamp
)
pr
otected
function
signData
(
array
$array
)
{
$common_params
=
[
'timestamp'
=>
$timestamp
,
'cp_id'
=>
$this
->
cp_id
];
$param_arr
=
array_merge
(
$common_params
,
$array
);
...
...
@@ -88,8 +87,8 @@ class BaseController extends Controller
}
else
{
$params
=
$reqData
;
}
$
timestamp
=
time
();
return
$this
->
signData
(
$params
,
$timestamp
);
$
params
[
'timestamp'
]
=
time
();
return
$this
->
signData
(
$params
);
}
/**
...
...
@@ -115,18 +114,14 @@ class BaseController extends Controller
$response
=
$client
->
request
(
'POST'
,
$url
,
[
'json'
=>
$data
]);
break
;
}
$
data
=
json_decode
(
$response
->
getBody
()
->
getContents
(),
true
);
Log
::
channel
(
'api'
)
->
info
(
__METHOD__
,
$
data
);
if
(
200
!==
$
data
[
'code'
])
{
return
Response
::
error
(
-
1
,
$
data
[
'msg'
]
??
'操作失败'
);
$
respArr
=
json_decode
(
$response
->
getBody
()
->
getContents
(),
true
);
Log
::
channel
(
'api'
)
->
info
(
__METHOD__
,
$
respArr
);
if
(
200
!==
$
respArr
[
'code'
])
{
return
Response
::
error
(
-
1
,
$
respArr
[
'msg'
]
??
'操作失败'
);
}
else
{
$response_path
=
'Icms/'
.
$uri
;
if
(
!
is_dir
(
$response_path
))
{
@
mkdir
(
$response_path
,
'0777'
);
}
$response_file
=
database_path
(
$response_path
.
'.resp'
);
file_put_contents
(
$response_file
,
var_export
(
$data
[
'data'
],
true
));
return
Response
::
success
(
$data
[
'data'
]);
$response_file
=
database_path
(
'icms/'
.
$uri
.
'.resp'
);
file_put_contents
(
$response_file
,
var_export
(
$respArr
[
'data'
],
true
));
return
Response
::
success
(
$respArr
[
'data'
]);
}
}
catch
(
\Exception
$e
)
{
Log
::
channel
(
'api'
)
->
error
(
__METHOD__
,
[
'msg'
=>
$e
->
getMessage
()]);
...
...
app/Http/Controllers/Icms/WorkController.php
View file @
37d7e61
...
...
@@ -2,6 +2,8 @@
namespace
App\Http\Controllers\Icms
;
use
App\Helper\Response
;
use
App\Jobs\HandleAlbumStatus
;
use
Illuminate\Http\Request
;
class
WorkController
extends
BaseController
...
...
@@ -28,7 +30,7 @@ class WorkController extends BaseController
public
function
submitTme
(
Request
$request
)
{
//todo:参数验证
return
$this
->
doApi
(
's
ave-album
'
);
return
$this
->
doApi
(
's
ubmit-tme
'
);
}
/**
...
...
@@ -137,4 +139,28 @@ class WorkController extends BaseController
//todo:参数验证
return
$this
->
doApi
(
'sign-subject'
);
}
/**
* 异步通知专辑上架信息(队列处理)
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public
function
albumStatus
(
Request
$request
)
{
$callData
=
$request
->
only
([
'album_id'
,
'tme_album_id'
,
'album_status'
,
'song_id'
,
'timestamp'
]);
$callSign
=
$request
->
post
(
'sign'
);
$callCpId
=
$request
->
post
(
'cp_id'
);
if
(
$callCpId
!==
$this
->
cp_id
)
{
return
Response
::
error
(
40001
,
'没有请求权限!'
);
}
//验签
$signData
=
$this
->
signData
(
$callData
);
if
(
$callSign
!==
$signData
[
'sign'
])
{
return
Response
::
error
(
40003
,
'签名鉴权未通过!'
);
}
//入队批量处理业务(暂时只保存请求数据)
HandleAlbumStatus
::
dispatch
(
$callData
)
->
onQueue
(
'handle-album-status'
);
return
response
()
->
json
([
'code'
=>
200
,
'data'
=>
true
,
'message'
=>
'OK'
]);
}
}
...
...
app/Jobs/HandleAlbumStatus.php
0 → 100644
View file @
37d7e61
<?php
namespace
App\Jobs
;
use
Illuminate\Bus\Queueable
;
use
Illuminate\Contracts\Queue\ShouldQueue
;
use
Illuminate\Foundation\Bus\Dispatchable
;
use
Illuminate\Queue\InteractsWithQueue
;
use
Illuminate\Queue\SerializesModels
;
class
HandleAlbumStatus
implements
ShouldQueue
{
use
Dispatchable
,
InteractsWithQueue
,
Queueable
,
SerializesModels
;
private
$callData
=
[];
/**
* Create a new job instance.
* @param array $callData
* @return void
*/
public
function
__construct
(
array
$callData
)
{
$this
->
callData
=
$callData
;
}
/**
* Execute the job.
*
* @return void
*/
public
function
handle
()
{
//php artisan queue:work --queue=handle-album-status --tries=3 --sleep=3
$response_file
=
database_path
(
'icms/album-status.notify'
);
file_put_contents
(
$response_file
,
'======接收回调数据在'
.
date
(
'Y-m-n H:i:s'
)
.
'======'
.
PHP_EOL
.
var_export
(
$this
->
callData
,
true
)
.
PHP_EOL
,
FILE_APPEND
);
}
/**
* @param null $exception
*/
public
function
fail
(
$exception
=
null
)
{
//todo: Artisan创建任务失败记录表
}
}
database/icms/submit-tme.query.php
View file @
37d7e61
<?php
return
[
'id'
=>
''
,
'id'
=>
37968
,
'album_name'
=>
'海葵测试专辑01'
,
//专辑名
'tran_name'
=>
'测试专辑01'
,
//翻译名称
'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 [
'album_type'
=>
17
,
//专辑类型ID int
'region'
=>
18
,
//地区 int 17: "港台"; 18: "内地"; 19: "日韩"; 20: "欧美"; 21: "其他"; 22: "东南亚"; 23: "未知";
'language'
=>
'0,1'
,
//语言 string,多种语言逗号分割
'album_genre'
=>
'
1|2
'
,
//专辑流派 string 单竖杠分割
'album_genre'
=>
'
Children\'s|Country
'
,
//专辑流派 string 单竖杠分割
'album_upc'
=>
''
,
//专辑UPC
'version'
=>
'1.0'
,
//专辑版本
'brand_company'
=>
''
,
//外显厂牌公司
...
...
@@ -24,7 +24,7 @@ return [
'signsubject_id'
=>
1
,
//签约主体ID
'song_list'
=>
[
[
'id'
=>
0
,
'id'
=>
10
0
,
'external_id'
=>
''
,
//外部歌曲ID - 海葵歌曲ID?
'name'
=>
'想'
,
//歌曲名
'subtitle'
=>
''
,
//副标题
...
...
routes/icms.php
View file @
37d7e61
...
...
@@ -13,21 +13,27 @@ use Illuminate\Support\Facades\Route;
|
*/
Route
::
group
([
'middleware'
=>
'throttle:
10
0,1'
],
function
(){
Route
::
get
(
'/'
,
function
(){
return
'Welcome To ICMS !!'
;
});
Route
::
group
([
'middleware'
=>
'throttle:
6
0,1'
],
function
(){
Route
::
get
(
'/'
,
function
(){
return
'Welcome To ICMS !!'
;
});
Route
::
post
(
'album-list'
,
'WorkController@albumList'
);
//专辑列表
Route
::
post
(
'submit-tme'
,
'WorkController@submitTme'
);
//专辑上线
Route
::
post
(
'get-album'
,
'WorkController@getAlbum'
);
//获取专辑详情
// Route::post('del-album','WorkController@delAlbum'); //删除专辑草稿
Route
::
post
(
'create-shower'
,
'WorkController@createShower'
);
//艺人创建
Route
::
post
(
'shower-list'
,
'WorkController@showerList'
);
//艺人查询
Route
::
post
(
'get-leaders'
,
'WorkController@getLeaders'
);
//查询候选负责人
Route
::
post
(
'check-repeat'
,
'WorkController@checkRepeat'
);
//作品重复检测
Route
::
post
(
'original-company'
,
'WorkController@originalCompany'
);
//原始版权公司列表
Route
::
post
(
'work-file'
,
'WorkController@workFile'
);
//作品录入文件上传
Route
::
post
(
'sign-subject'
,
'WorkController@signSubject'
);
//获取授权主体列表
/**
* 主动请求
*/
Route
::
post
(
'album-list'
,
'WorkController@albumList'
);
//专辑列表
Route
::
post
(
'submit-tme'
,
'WorkController@submitTme'
);
//专辑上线
Route
::
post
(
'get-album'
,
'WorkController@getAlbum'
);
//获取专辑详情
Route
::
post
(
'create-shower'
,
'WorkController@createShower'
);
//艺人创建
Route
::
post
(
'shower-list'
,
'WorkController@showerList'
);
//艺人查询
Route
::
post
(
'get-leaders'
,
'WorkController@getLeaders'
);
//查询候选负责人
Route
::
post
(
'check-repeat'
,
'WorkController@checkRepeat'
);
//作品重复检测
Route
::
post
(
'original-company'
,
'WorkController@originalCompany'
);
//原始版权公司列表
Route
::
post
(
'work-file'
,
'WorkController@workFile'
);
//作品录入文件上传
Route
::
post
(
'sign-subject'
,
'WorkController@signSubject'
);
//获取授权主体列表
});
/**
* 回调通知接收
*/
Route
::
post
(
'notify-album-status'
,
'WorkController@albumStatus'
);
});
...
...
Please
register
or
sign in
to post a comment