Commit c51fe832 c51fe832386eb72cf91ff7fb5eb24c15ac56253f by lemon

文件类型

1 parent 176ab1e2
...@@ -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
......