From 31342f57a71514d43081ac45b2b9b7dd4cdd4ed1 Mon Sep 17 00:00:00 2001 From: denghy Date: Tue, 25 Dec 2018 17:34:52 +0800 Subject: [PATCH] withConditions --- .../Http/Controllers/OrderController.php | 3 ++ app/Domains/Virtual/Commands/Sync/LogSync.php | 38 +++++++++++-------- .../Http/Controllers/OrderController.php | 2 + .../Virtual/Repositories/OrderRepository.php | 9 +++++ 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/app/Domains/Company/Http/Controllers/OrderController.php b/app/Domains/Company/Http/Controllers/OrderController.php index 26133567..2ef94a70 100644 --- a/app/Domains/Company/Http/Controllers/OrderController.php +++ b/app/Domains/Company/Http/Controllers/OrderController.php @@ -33,6 +33,8 @@ class OrderController extends Controller { $conditions = $this->request->all(); $conditions['company_id'] = $this->account->company_id; + $conditions['source'] = 0; + $conditions['type'] = 0; $res = $this->orderService->paginate($conditions); @@ -113,6 +115,7 @@ class OrderController extends Controller { $attributes = $this->request->all(); $attributes['company_id'] = $this->account->company_id; + $attributes['source'] = 0; $res = $this->orderService->store($attributes); diff --git a/app/Domains/Virtual/Commands/Sync/LogSync.php b/app/Domains/Virtual/Commands/Sync/LogSync.php index 7c996d00..992701e0 100644 --- a/app/Domains/Virtual/Commands/Sync/LogSync.php +++ b/app/Domains/Virtual/Commands/Sync/LogSync.php @@ -49,7 +49,7 @@ class LogSync extends Command $query = DB::connection('vd_old')->table('logs') ->where('type', '<>', 10) - ->where('create_time', '>', $timestamp) + ->where('id', '>', $nextId) ->orderBy('id'); $total = $query->count(); @@ -65,6 +65,8 @@ class LogSync extends Command DB::beginTransaction(); foreach ($res as $key => $value) { + $value = (array)$value; + $package = $this->getPackage($value['content']); $unit_price = floatval($value['sale_account']) * 100; $custom_price = floatval($value['order_account']) * 100; @@ -93,18 +95,9 @@ class LogSync extends Command 'created_at' => date('Y-m-d H:i:s', $res['create_time']), ]; - $relationData = [ - 'sim' => $value['sim'], - 'order_id' => $order->id, - 'company_id' => $order->company_id, - 'package_id' => $order->package_id, - 'counts' => 1, - 'unit_price' => $order->unit_price - ]; - try { if ($order = Order::where('sn', $data['sn'])->first()) { - $order->count = $order->count + 1; + $order->counts = $order->counts + 1; $order->total_price = $order->total_price + $unit_price; $order->custom_price = $order->custom_price + $custom_price; $order->save(); @@ -112,13 +105,26 @@ class LogSync extends Command $order = Order::create($data); } - $query = (new $orderClasses[$type])->query(); + $relationData = [ + 'sim' => $value['sim'], + 'order_id' => $order->id, + 'company_id' => $order->company_id, + 'package_id' => $order->package_id, + 'counts' => 1, + ]; - if ($relation = $query->where('sim', $value['sim'])->where('order_id', $order->id)->first()) { - $relation->count = $relation->count + 1; - $relation->save(); + $class = (new self::$orderClasses[$type])->query(); + + if ($type) { + if ($relation = $class->where('sim', $value['sim'])->where('order_id', $order->id)->first()) { + $relation->counts = $relation->counts + 1; + $relation->save(); + } else { + $relation = $class->create($relationData); + } } else { - $relation = $query->create($relationData); + unset($relationData['counts']); + $relation = $class->upsert($relationData, ['sim', 'order_id']); } } catch (\Exception $e) { DB::rollback(); diff --git a/app/Domains/Virtual/Http/Controllers/OrderController.php b/app/Domains/Virtual/Http/Controllers/OrderController.php index 3354eb2a..e5e5d28d 100644 --- a/app/Domains/Virtual/Http/Controllers/OrderController.php +++ b/app/Domains/Virtual/Http/Controllers/OrderController.php @@ -33,6 +33,8 @@ class OrderController extends Controller { $conditions = $this->request->all(); $conditions['limit'] = $this->request->get('limit', 20); + $conditions['source'] = 0; + $conditions['type'] = 0; $orders = $this->orderService->paginate($conditions); diff --git a/app/Domains/Virtual/Repositories/OrderRepository.php b/app/Domains/Virtual/Repositories/OrderRepository.php index 563b0de5..aa3f1407 100644 --- a/app/Domains/Virtual/Repositories/OrderRepository.php +++ b/app/Domains/Virtual/Repositories/OrderRepository.php @@ -60,6 +60,15 @@ class OrderRepository extends Repository $this->model = $this->model->whereIn('id', $conditions['id']); } + if (isset($conditions['source'])) { + $this->model = $this->model->where('source', $conditions['source']); + } + + if (isset($conditions['type'])) { + $this->model = $this->model->where('type', $conditions['type']); + } + + if (isset($conditions['company_id'])) { $this->model = $this->model->where('company_id', $conditions['company_id']); }