优化从mongodb上同步数据

This commit is contained in:
邓皓元 2019-04-26 09:34:24 +08:00
parent c23420584d
commit d0bea4eec9
3 changed files with 5 additions and 26 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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');
}
}