文件类型
Showing
5 changed files
with
71 additions
and
5 deletions
... | @@ -37,6 +37,9 @@ class ErrorCode | ... | @@ -37,6 +37,9 @@ class ErrorCode |
37 | const MISSING_PARAMS = 41000; | 37 | const MISSING_PARAMS = 41000; |
38 | const URL_FAIL = 42000; | 38 | const URL_FAIL = 42000; |
39 | const URL_CHECK_FAIL = 42001; | 39 | const URL_CHECK_FAIL = 42001; |
40 | const URL_EXPIRE = 42002; | ||
41 | const URL_TOKEN_FAIL = 42003; | ||
42 | |||
40 | 43 | ||
41 | 44 | ||
42 | /** | 45 | /** |
... | @@ -71,7 +74,11 @@ class ErrorCode | ... | @@ -71,7 +74,11 @@ class ErrorCode |
71 | self::INVALID_TIMESTAMP => '时间戳timestamp已失效', | 74 | self::INVALID_TIMESTAMP => '时间戳timestamp已失效', |
72 | self::INVALID_NONCE => '重复的nonce', | 75 | self::INVALID_NONCE => '重复的nonce', |
73 | self::MISSING_PARAMS => '缺少必填参数', | 76 | self::MISSING_PARAMS => '缺少必填参数', |
74 | self::URL_CHECK_FAIL => '验证失败', | 77 | self::URL_FAIL => '链接不存在', |
78 | self::URL_CHECK_FAIL => '链接验证失败', | ||
79 | self::URL_EXPIRE => '链接已失效', | ||
80 | self::URL_TOKEN_FAIL => 'TOKEN失效', | ||
81 | |||
75 | ]; | 82 | ]; |
76 | 83 | ||
77 | 84 | ... | ... |
... | @@ -5,6 +5,7 @@ namespace App\Http\Middleware; | ... | @@ -5,6 +5,7 @@ namespace App\Http\Middleware; |
5 | use App\Helper\AesEncrypt; | 5 | use App\Helper\AesEncrypt; |
6 | use App\Helper\ErrorCode; | 6 | use App\Helper\ErrorCode; |
7 | use App\Helper\Identifier; | 7 | use App\Helper\Identifier; |
8 | use App\Helper\RedisClient; | ||
8 | use App\Helper\Response; | 9 | use App\Helper\Response; |
9 | use App\Helper\Snowflake; | 10 | use App\Helper\Snowflake; |
10 | use App\Models\Legal\Stakeholder; | 11 | use App\Models\Legal\Stakeholder; |
... | @@ -31,8 +32,17 @@ class AuthShare | ... | @@ -31,8 +32,17 @@ class AuthShare |
31 | { | 32 | { |
32 | //增加额外属性 | 33 | //增加额外属性 |
33 | $request->attributes->add(['request_id' => Snowflake::gen(),]); | 34 | $request->attributes->add(['request_id' => Snowflake::gen(),]); |
35 | $token = $request->header('token'); | ||
36 | $info = RedisClient::instance()->get($token); | ||
34 | 37 | ||
38 | //验证token | ||
39 | if (is_null($info)) return Response::error(ErrorCode::URL_TOKEN_FAIL); | ||
35 | 40 | ||
41 | $info = json_decode($info, true); | ||
42 | |||
43 | foreach ($info as $key=>$value) { | ||
44 | $request->offsetSet($key, $value); | ||
45 | } | ||
36 | 46 | ||
37 | return $next($request); | 47 | return $next($request); |
38 | } | 48 | } | ... | ... |
... | @@ -7,4 +7,8 @@ use Illuminate\Database\Eloquent\Model; | ... | @@ -7,4 +7,8 @@ use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class PropertyFileType extends BaseModel | 8 | class PropertyFileType extends BaseModel |
9 | { | 9 | { |
10 | public $hidden = [ | ||
11 | 'id', 'visible', 'type', 'created_at' | ||
12 | ]; | ||
13 | |||
10 | } | 14 | } | ... | ... |
... | @@ -7,6 +7,7 @@ use App\Helper\ErrorCode; | ... | @@ -7,6 +7,7 @@ use App\Helper\ErrorCode; |
7 | use App\Helper\RedisClient; | 7 | use App\Helper\RedisClient; |
8 | use App\Helper\Response; | 8 | use App\Helper\Response; |
9 | use App\Models\Legal\Contract; | 9 | use App\Models\Legal\Contract; |
10 | use App\Models\Legal\PropertyFileType; | ||
10 | use App\Models\Legal\PropertyShare; | 11 | use App\Models\Legal\PropertyShare; |
11 | use App\Models\Legal\PropertyShareVerification; | 12 | use App\Models\Legal\PropertyShareVerification; |
12 | use App\Models\Legal\PropertyTrack; | 13 | use App\Models\Legal\PropertyTrack; |
... | @@ -55,7 +56,6 @@ class PropertyTrackService extends Service | ... | @@ -55,7 +56,6 @@ class PropertyTrackService extends Service |
55 | */ | 56 | */ |
56 | public function show() | 57 | public function show() |
57 | { | 58 | { |
58 | |||
59 | $data = []; | 59 | $data = []; |
60 | 60 | ||
61 | //详情 | 61 | //详情 |
... | @@ -182,9 +182,11 @@ class PropertyTrackService extends Service | ... | @@ -182,9 +182,11 @@ class PropertyTrackService extends Service |
182 | { | 182 | { |
183 | $url = $this->request->input('url'); | 183 | $url = $this->request->input('url'); |
184 | 184 | ||
185 | if (!$res = PropertyShare::query()->where(['share_url_hash'=>crc64($url), 'from'=>$this->request->input('from')])->where('expire_time', '<=', $this->now)->first()) { | 185 | if (!$res = PropertyShare::withTrashed()->where(['share_url_hash'=>crc64($url), 'from'=>$this->request->input('from')])->where('expire_time', '<=', $this->now)->first()) { |
186 | return Response::error(ErrorCode::URL_CHECK_FAIL); | 186 | return Response::error(ErrorCode::URL_CHECK_FAIL); |
187 | } | 187 | } |
188 | if (!is_null($res->deleted_at)) return Response::error(ErrorCode::URL_CHECK_FAIL); | ||
189 | |||
188 | 190 | ||
189 | //验证成功 - 生成token | 191 | //验证成功 - 生成token |
190 | $info = [ | 192 | $info = [ |
... | @@ -196,4 +198,44 @@ class PropertyTrackService extends Service | ... | @@ -196,4 +198,44 @@ class PropertyTrackService extends Service |
196 | RedisClient::instance()->set($token, json_encode($info), 'EX', 86400); | 198 | RedisClient::instance()->set($token, json_encode($info), 'EX', 86400); |
197 | return Response::success(['token'=>$token]); | 199 | return Response::success(['token'=>$token]); |
198 | } | 200 | } |
201 | |||
202 | |||
203 | /** | ||
204 | * @return \Illuminate\Http\JsonResponse | ||
205 | */ | ||
206 | public function shareShow() | ||
207 | { | ||
208 | $data = []; | ||
209 | |||
210 | //详情 | ||
211 | if ($track = PropertyTrack::query()->with('project:id,name')->where(['id'=>$this->request->get('track_id'), 'from'=>1])->first()) { | ||
212 | $user = AppCompany::query()->where(['company_id'=>$track->create_admin])->first(); | ||
213 | $track->setAttribute('submit_name', $user ? $user->company_name : ''); | ||
214 | $data = $track; | ||
215 | } | ||
216 | |||
217 | return Response::success($data); | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * 歌曲上传文件列表 | ||
222 | * @return \Illuminate\Http\JsonResponse | ||
223 | */ | ||
224 | public function shareFile() | ||
225 | { | ||
226 | $trackFiles = PropertyTrackFile::query()->with('ptfTypes.type:id,type_name,remark')->where(['pt_id'=>$this->request->get('track_id')]) | ||
227 | ->paginate($this->pageSize); | ||
228 | |||
229 | return Response::success($trackFiles); | ||
230 | } | ||
231 | |||
232 | /** | ||
233 | * 歌曲上传文件列表 | ||
234 | * @return \Illuminate\Http\JsonResponse | ||
235 | */ | ||
236 | public function shareFileType() | ||
237 | { | ||
238 | $res = PropertyFileType::query()->where(['type'=>'track', 'visible'=>1])->orderBy('id')->get(); | ||
239 | return Response::success($res); | ||
240 | } | ||
199 | } | 241 | } | ... | ... |
... | @@ -25,12 +25,15 @@ Route::group(["prefix"=>"property"], function (){ | ... | @@ -25,12 +25,15 @@ Route::group(["prefix"=>"property"], function (){ |
25 | Route::get('/track/share', 'PropertyTrackController@share'); | 25 | Route::get('/track/share', 'PropertyTrackController@share'); |
26 | Route::get('/track/shareCheck', 'PropertyTrackController@shareCheck'); | 26 | Route::get('/track/shareCheck', 'PropertyTrackController@shareCheck'); |
27 | Route::get('/track/shareUser', 'PropertyTrackController@shareUser'); | 27 | Route::get('/track/shareUser', 'PropertyTrackController@shareUser'); |
28 | |||
29 | Route::get('/track/shareFileType', 'PropertyTrackController@shareFileType'); | ||
30 | |||
31 | |||
28 | }); | 32 | }); |
29 | 33 | ||
30 | //资产-分享链接 | 34 | //资产-分享链接 |
31 | Route::group(["prefix"=>"property", "middleware"=>['auth.share']], function (){ | 35 | Route::group(["prefix"=>"property", "middleware"=>['auth.share']], function (){ |
32 | 36 | Route::get('/track/shareShow', 'PropertyTrackController@shareShow'); | |
33 | |||
34 | }); | 37 | }); |
35 | 38 | ||
36 | 39 | ... | ... |
-
Please register or sign in to post a comment