reduce queue job statement process qty

This commit is contained in:
Steve Ng
2023-10-16 20:06:01 +08:00
parent 829ea9ad17
commit f943abcacb
4 changed files with 20 additions and 7 deletions
@@ -13,9 +13,15 @@ class CreateBankStatementTransactionOwners implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $transactions;
public function __construct($transactions) {
$this->transactions = $transactions;
}
public function handle()
{
(App()->make(CreateBankStatementTransactionOwnersProcessor::class))->execute();
(App()->make(CreateBankStatementTransactionOwnersProcessor::class))->execute($this->transactions);
}
public function delay($delay)
@@ -23,11 +23,7 @@ class CreateBankStatementTransactionOwnersProcessor
/**
* @return void
*/
public function execute() {
$transactions = StatementTransaction::whereDoesntHave('owners', function($query){
return $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]);
})->orderBy('posting_date')->get();
public function execute($transactions) {
// $transactions = StatementTransaction::whereDoesntHave('owners')->where('amount', '<', 0)->get();
@@ -22,6 +22,7 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use DateTime;
use App\Models\StatementTransaction;
class BankStatementController extends Controller
{
@@ -88,7 +89,9 @@ class BankStatementController extends Controller
public function rerun()
{
CreateBankStatementTransactionOwners::dispatch();
foreach (StatementTransaction::doesntMapStatement()->get()->chunk(30) as $key => $transaction) {
CreateBankStatementTransactionOwners::dispatch($transaction);
}
return redirect()->back()->with('success', 'Rerun triggered successfully');
}
+8
View File
@@ -5,6 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Staudenmeir\EloquentHasManyDeep\HasRelationships;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
class StatementTransaction extends Model
{
@@ -47,4 +48,11 @@ class StatementTransaction extends Model
{
return $this->hasMany(StatementTransactionOwner::class);
}
public function scopeDoesntMapStatement($query)
{
$query->whereDoesntHave('owners', function($query){
return $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]);
})->orderBy('posting_date');
}
}