- ExportCode Opti
This commit is contained in:
parent
a05c09b6d8
commit
8af6d1f459
3 changed files with 27 additions and 8 deletions
|
|
@ -76,12 +76,23 @@ class ProcessExportCodesUniques implements ShouldQueue
|
|||
Mail::to(config('mail.MAIL_ADMIN'))->send(new ExportCodesUniques(Settings::find(1)->name, $nbCodeFic, $nbCodeTot, $nbCodeLigne));
|
||||
}
|
||||
|
||||
private function process($nbCodeFic, $nbCodeTot, $nbCodeLigne, $totalExportedCodes, $currentFilename, $currentExportedCodes, $currentLineCodes){
|
||||
// TODO : Tester avec plus de 1000 dans le take
|
||||
$nbCodeToRetrieve = $nbCodeTot < 1000 ? $nbCodeTot : 1000;
|
||||
$codes = Codes::where('code_exported', 0)->take($nbCodeToRetrieve)->get();
|
||||
private function process($nbCodeFic, $nbCodeTot, $nbCodeLigne, $totalExportedCodes, $currentFilename, $currentExportedCodes, $currentLineCodes, $lastExportedCodeId = null){
|
||||
$paginate = config('code.paginate');
|
||||
$nbCodeToRetrieve = $nbCodeTot < $paginate ? $nbCodeTot : $paginate;
|
||||
|
||||
if ($lastExportedCodeId === null) {
|
||||
$codes = Codes::where('code_exported', 0)->take($nbCodeToRetrieve)->get();
|
||||
}else{
|
||||
$codes = Codes::where([
|
||||
['code_exported', '=', 0],
|
||||
['id', '>', $lastExportedCodeId]
|
||||
])->take($nbCodeToRetrieve)->get();
|
||||
}
|
||||
|
||||
$countCodes = count($codes);
|
||||
|
||||
$exportedCodesId = [];
|
||||
|
||||
foreach ($codes as $k => $code){
|
||||
if ($currentExportedCodes < $nbCodeTot){
|
||||
if ($currentLineCodes === ($nbCodeLigne === 1 ? 1 : $nbCodeLigne - 1)){
|
||||
|
|
@ -95,14 +106,17 @@ class ProcessExportCodesUniques implements ShouldQueue
|
|||
$currentExportedCodes++;
|
||||
$currentLineCodes++;
|
||||
}
|
||||
$code->code_exported = 1;
|
||||
$code->save();
|
||||
|
||||
array_push($exportedCodesId, $code->id);
|
||||
$lastExportedCodeId = $code->id;
|
||||
|
||||
if ($currentExportedCodes === $nbCodeFic) {
|
||||
$currentFilename++;
|
||||
$currentExportedCodes = 0;
|
||||
}
|
||||
if ((($k + 1) === $countCodes) && $totalExportedCodes < $nbCodeTot){
|
||||
return $this->process($nbCodeFic, $nbCodeTot, $nbCodeLigne, $totalExportedCodes, $currentFilename, $currentExportedCodes, $currentLineCodes);
|
||||
Codes::whereIn('id', $exportedCodesId)->update(['code_exported' => 1]);
|
||||
return $this->process($nbCodeFic, $nbCodeTot, $nbCodeLigne, $totalExportedCodes, $currentFilename, $currentExportedCodes, $currentLineCodes, $lastExportedCodeId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
class Codes extends Model
|
||||
{
|
||||
protected $fillable = ['code_unique', 'code_used', 'date_creation'];
|
||||
protected $fillable = ['code_unique', 'code_used', 'code_exported', 'date_creation'];
|
||||
public $timestamps = false;
|
||||
|
||||
public function participations() {
|
||||
|
|
|
|||
5
config/codes.php
Normal file
5
config/codes.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'paginate' => env('CODE_PAGINATE')
|
||||
];
|
||||
Loading…
Add table
Reference in a new issue