优化从mongodb上同步数据
This commit is contained in:
parent
c23420584d
commit
d0bea4eec9
@ -2,12 +2,9 @@
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Card\Card;
|
||||
use App\Models\Real\Order;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Domains\Card\Jobs\MongoCardJob;
|
||||
use App\Domains\Real\Services\CommonService;
|
||||
use App\Domains\Real\Repositories\OrderRepository;
|
||||
use App\Domains\Real\Repositories\CompanyRepository;
|
||||
@ -118,15 +115,6 @@ class AddedOrderSync extends Command
|
||||
$value['virtual_order_id'] = $orders[$value['sim']][$i]['order_id'] ?? 0;
|
||||
}
|
||||
|
||||
$exists = Card::select('sim')->whereIn('sim', array_pluck($data, 'sim'))
|
||||
->whereNotNull('virtual_activated_at')->get()->pluck('sim')->toArray();
|
||||
|
||||
$simArray = array_diff(array_pluck($data, 'sim'), $exists);
|
||||
|
||||
if (!empty($simArray)) {
|
||||
MongoCardJob::dispatch($simArray)->onQueue('sync');
|
||||
}
|
||||
|
||||
$only = ['company_id', 'package_id', 'counts', 'unit_price'];
|
||||
|
||||
DB::table($table)->upsert($data, ['sim', 'order_id', 'deleted_at'], $only);
|
||||
|
@ -3,11 +3,8 @@
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Card\Card;
|
||||
use App\Models\Real\Order;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Domains\Card\Jobs\MongoCardJob;
|
||||
use App\Models\Real\OrderCardPartition;
|
||||
use App\Domains\Real\Repositories\OrderRepository;
|
||||
use App\Domains\Real\Repositories\CompanyRepository;
|
||||
use App\Domains\Real\Repositories\PackageRepository;
|
||||
@ -57,15 +54,6 @@ class OrderBaseSync extends Command
|
||||
$value['virtual_order_id'] = $orders[$value['sim']] ?? 0;
|
||||
}
|
||||
|
||||
$exists = Card::select('sim')->whereIn('sim', array_pluck($data, 'sim'))
|
||||
->whereNotNull('virtual_activated_at')->get()->pluck('sim')->toArray();
|
||||
|
||||
$simArray = array_diff(array_pluck($data, 'sim'), $exists);
|
||||
|
||||
if (!empty($simArray)) {
|
||||
MongoCardJob::dispatch($simArray)->onQueue('sync');
|
||||
}
|
||||
|
||||
$only = [ 'order_id', 'company_id', 'package_id', 'counts', 'unit_price'];
|
||||
|
||||
DB::table('real_order_cards')->upsert($data, ['sim', 'deleted_at'], $only);
|
||||
|
@ -11,6 +11,7 @@ use App\Models\Virtual\OrderCard;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Exceptions\ExistedException;
|
||||
use App\Exceptions\NotExistException;
|
||||
use App\Domains\Card\Jobs\MongoCardJob;
|
||||
use App\Exceptions\NotAllowedException;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Domains\Card\Services\CardService;
|
||||
@ -972,10 +973,12 @@ class OrderService extends Service
|
||||
}
|
||||
|
||||
DB::table($table)->upsert($value, ['sim', 'order_id', 'deleted_at']);
|
||||
$simArray = implode(',', array_pluck($value, 'sim'));
|
||||
DB::statement("select fix_timelines('{{$simArray}}'::INT8[]);");
|
||||
|
||||
RealOrderCardPartition::whereIn('order_id', array_pluck($array, 'order_id'))
|
||||
->whereIn('sim', array_pluck($value, 'sim'))->update(['virtual_order_id' => $node['id']]);
|
||||
}
|
||||
|
||||
$simArray = array_pluck($data, 'sim');
|
||||
MongoCardJob::dispatch($simArray)->onQueue('sync');
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user