36 lines
1.3 KiB
PHP
36 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V2;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Product;
|
|
use App\Models\Upload;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Order;
|
|
use App\Models\OrderDetail;
|
|
use File;
|
|
|
|
class DigitalProductController extends Controller
|
|
{
|
|
public function download(Request $request)
|
|
{
|
|
$product = Product::findOrFail($request->id);
|
|
$orders = Order::select("id")->where('user_id', auth()->user()->id)->pluck('id');
|
|
$orderDetails = OrderDetail::where("product_id",$request->id)->whereIn("order_id",$orders)->get();
|
|
if (auth()->user()->user_type == 'admin' || auth()->user()->id == $product->user_id || $orderDetails) {
|
|
$upload = Upload::findOrFail($product->file_name);
|
|
if (env('FILESYSTEM_DRIVER') == "s3") {
|
|
return \Storage::disk('s3')->download($upload->file_name, $upload->file_original_name . "." . $upload->extension);
|
|
} else {
|
|
if (file_exists(base_path('public/' . $upload->file_name))) {
|
|
$file = public_path()."/$upload->file_name";
|
|
return response()->download($file,config('app.name')."_".$upload->file_original_name);
|
|
}
|
|
}
|
|
} else {
|
|
return response()->download(File("dd.pdf"),"failed.jpg");
|
|
}
|
|
}
|
|
}
|
|
|