56 lines
2.1 KiB
PHP
56 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V2;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Mail\AuctionBidMailManager;
|
|
use App\Models\AuctionProductBid;
|
|
use App\Models\Product;
|
|
use Auth;
|
|
use Illuminate\Http\Request;
|
|
use Mail;
|
|
|
|
class AuctionProductBidController extends Controller
|
|
{
|
|
public function store(Request $request)
|
|
{
|
|
$bid = AuctionProductBid::where('product_id', $request->product_id)->where('user_id', Auth::user()->id)->first();
|
|
if ($bid == null) {
|
|
$bid = new AuctionProductBid;
|
|
$bid->user_id = Auth::user()->id;
|
|
}
|
|
$bid->product_id = $request->product_id;
|
|
$bid->amount = $request->amount;
|
|
if ($bid->save()) {
|
|
$secound_max_bid = AuctionProductBid::where('product_id', $request->product_id)->orderBy('amount', 'desc')->skip(1)->first();
|
|
if ($secound_max_bid != null) {
|
|
if ($secound_max_bid->user->email != null) {
|
|
$product = Product::where('id', $request->product_id)->first();
|
|
$array['view'] = 'emails.auction_bid';
|
|
$array['subject'] = translate('Auction Bid');
|
|
$array['from'] = env('MAIL_FROM_ADDRESS');
|
|
$array['content'] = 'Hi! A new user bidded more then you for the product, ' . $product->name . '. ' . 'Highest bid amount: ' . $bid->amount;
|
|
$array['link'] = route('auction-product', $product->slug);
|
|
try {
|
|
Mail::to($secound_max_bid->user->email)->queue(new AuctionBidMailManager($array));
|
|
} catch (\Exception $e) {
|
|
//dd($e->getMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
return response()->json([
|
|
'result' => true,
|
|
'message' => translate('Bid Placed Successfully.'),
|
|
|
|
], 200);
|
|
} else {
|
|
return response()->json([
|
|
'result' => false,
|
|
'message' => translate('Something Went Wrong'),
|
|
], 201);
|
|
}
|
|
return back();
|
|
}
|
|
}
|