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
c51fe832
...
c51fe832386eb72cf91ff7fb5eb24c15ac56253f
authored
2022-12-05 17:52:05 +0800
by
lemon
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
文件类型
1 parent
176ab1e2
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
71 additions
and
5 deletions
app/Helper/ErrorCode.php
app/Http/Middleware/AuthShare.php
app/Models/Legal/PropertyFileType.php
app/Services/PropertyTrackService.php
routes/property.php
app/Helper/ErrorCode.php
View file @
c51fe83
...
...
@@ -37,6 +37,9 @@ class ErrorCode
const
MISSING_PARAMS
=
41000
;
const
URL_FAIL
=
42000
;
const
URL_CHECK_FAIL
=
42001
;
const
URL_EXPIRE
=
42002
;
const
URL_TOKEN_FAIL
=
42003
;
/**
...
...
@@ -71,7 +74,11 @@ class ErrorCode
self
::
INVALID_TIMESTAMP
=>
'时间戳timestamp已失效'
,
self
::
INVALID_NONCE
=>
'重复的nonce'
,
self
::
MISSING_PARAMS
=>
'缺少必填参数'
,
self
::
URL_CHECK_FAIL
=>
'验证失败'
,
self
::
URL_FAIL
=>
'链接不存在'
,
self
::
URL_CHECK_FAIL
=>
'链接验证失败'
,
self
::
URL_EXPIRE
=>
'链接已失效'
,
self
::
URL_TOKEN_FAIL
=>
'TOKEN失效'
,
];
...
...
app/Http/Middleware/AuthShare.php
View file @
c51fe83
...
...
@@ -5,6 +5,7 @@ namespace App\Http\Middleware;
use
App\Helper\AesEncrypt
;
use
App\Helper\ErrorCode
;
use
App\Helper\Identifier
;
use
App\Helper\RedisClient
;
use
App\Helper\Response
;
use
App\Helper\Snowflake
;
use
App\Models\Legal\Stakeholder
;
...
...
@@ -31,8 +32,17 @@ class AuthShare
{
//增加额外属性
$request
->
attributes
->
add
([
'request_id'
=>
Snowflake
::
gen
(),]);
$token
=
$request
->
header
(
'token'
);
$info
=
RedisClient
::
instance
()
->
get
(
$token
);
//验证token
if
(
is_null
(
$info
))
return
Response
::
error
(
ErrorCode
::
URL_TOKEN_FAIL
);
$info
=
json_decode
(
$info
,
true
);
foreach
(
$info
as
$key
=>
$value
)
{
$request
->
offsetSet
(
$key
,
$value
);
}
return
$next
(
$request
);
}
...
...
app/Models/Legal/PropertyFileType.php
View file @
c51fe83
...
...
@@ -7,4 +7,8 @@ use Illuminate\Database\Eloquent\Model;
class
PropertyFileType
extends
BaseModel
{
public
$hidden
=
[
'id'
,
'visible'
,
'type'
,
'created_at'
];
}
...
...
app/Services/PropertyTrackService.php
View file @
c51fe83
...
...
@@ -7,6 +7,7 @@ use App\Helper\ErrorCode;
use
App\Helper\RedisClient
;
use
App\Helper\Response
;
use
App\Models\Legal\Contract
;
use
App\Models\Legal\PropertyFileType
;
use
App\Models\Legal\PropertyShare
;
use
App\Models\Legal\PropertyShareVerification
;
use
App\Models\Legal\PropertyTrack
;
...
...
@@ -55,7 +56,6 @@ class PropertyTrackService extends Service
*/
public
function
show
()
{
$data
=
[];
//详情
...
...
@@ -182,9 +182,11 @@ class PropertyTrackService extends Service
{
$url
=
$this
->
request
->
input
(
'url'
);
if
(
!
$res
=
PropertyShare
::
query
()
->
where
([
'share_url_hash'
=>
crc64
(
$url
),
'from'
=>
$this
->
request
->
input
(
'from'
)])
->
where
(
'expire_time'
,
'<='
,
$this
->
now
)
->
first
())
{
if
(
!
$res
=
PropertyShare
::
withTrashed
()
->
where
([
'share_url_hash'
=>
crc64
(
$url
),
'from'
=>
$this
->
request
->
input
(
'from'
)])
->
where
(
'expire_time'
,
'<='
,
$this
->
now
)
->
first
())
{
return
Response
::
error
(
ErrorCode
::
URL_CHECK_FAIL
);
}
if
(
!
is_null
(
$res
->
deleted_at
))
return
Response
::
error
(
ErrorCode
::
URL_CHECK_FAIL
);
//验证成功 - 生成token
$info
=
[
...
...
@@ -196,4 +198,44 @@ class PropertyTrackService extends Service
RedisClient
::
instance
()
->
set
(
$token
,
json_encode
(
$info
),
'EX'
,
86400
);
return
Response
::
success
([
'token'
=>
$token
]);
}
/**
* @return \Illuminate\Http\JsonResponse
*/
public
function
shareShow
()
{
$data
=
[];
//详情
if
(
$track
=
PropertyTrack
::
query
()
->
with
(
'project:id,name'
)
->
where
([
'id'
=>
$this
->
request
->
get
(
'track_id'
),
'from'
=>
1
])
->
first
())
{
$user
=
AppCompany
::
query
()
->
where
([
'company_id'
=>
$track
->
create_admin
])
->
first
();
$track
->
setAttribute
(
'submit_name'
,
$user
?
$user
->
company_name
:
''
);
$data
=
$track
;
}
return
Response
::
success
(
$data
);
}
/**
* 歌曲上传文件列表
* @return \Illuminate\Http\JsonResponse
*/
public
function
shareFile
()
{
$trackFiles
=
PropertyTrackFile
::
query
()
->
with
(
'ptfTypes.type:id,type_name,remark'
)
->
where
([
'pt_id'
=>
$this
->
request
->
get
(
'track_id'
)])
->
paginate
(
$this
->
pageSize
);
return
Response
::
success
(
$trackFiles
);
}
/**
* 歌曲上传文件列表
* @return \Illuminate\Http\JsonResponse
*/
public
function
shareFileType
()
{
$res
=
PropertyFileType
::
query
()
->
where
([
'type'
=>
'track'
,
'visible'
=>
1
])
->
orderBy
(
'id'
)
->
get
();
return
Response
::
success
(
$res
);
}
}
...
...
routes/property.php
View file @
c51fe83
...
...
@@ -25,12 +25,15 @@ Route::group(["prefix"=>"property"], function (){
Route
::
get
(
'/track/share'
,
'PropertyTrackController@share'
);
Route
::
get
(
'/track/shareCheck'
,
'PropertyTrackController@shareCheck'
);
Route
::
get
(
'/track/shareUser'
,
'PropertyTrackController@shareUser'
);
Route
::
get
(
'/track/shareFileType'
,
'PropertyTrackController@shareFileType'
);
});
//资产-分享链接
Route
::
group
([
"prefix"
=>
"property"
,
"middleware"
=>
[
'auth.share'
]],
function
(){
Route
::
get
(
'/track/shareShow'
,
'PropertyTrackController@shareShow'
);
});
...
...
Please
register
or
sign in
to post a comment