文件类型
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