diff --git a/app/Domains/Real/Services/OrderService.php b/app/Domains/Real/Services/OrderService.php index 32a19d82..d2a8a4ae 100644 --- a/app/Domains/Real/Services/OrderService.php +++ b/app/Domains/Real/Services/OrderService.php @@ -3,13 +3,14 @@ namespace App\Domains\Real\Services; use App\Dicts; use App\Core\Service; +use Illuminate\Support\Facades\Log; +use App\Exceptions\NotAllowedException; use App\Domains\Virtual\Services\CompanyService; use App\Domains\Virtual\Services\PackageService; use App\Domains\Real\Repositories\OrderRepository; use App\Domains\Real\Repositories\OrderCardPartitionRepository; use App\Domains\Virtual\Repositories\OrderRepository as VirtualOrderRepository; use App\Domains\Virtual\Repositories\OrderCardPartitionRepository as VirtualOrderCardPartitionRepository; -use App\Exceptions\NotAllowedException; class OrderService extends Service { @@ -82,12 +83,16 @@ class OrderService extends Service $counts = $this->orderCardPartitionRepository->withConditions($conditions)->sum('counts'); - if ($counts > 50000) { + if ($counts > 200000) { throw new NotAllowedException("当前请求数据量过大,请筛选过滤后查询"); } + Log::info('1', [microtime(true)]); + $cards = $this->orderCardPartitionRepository->withVirtual($conditions)->currentModel()->get(); + Log::info('2', [microtime(true)]); + $tmpCards = $cards->groupBy('virtual_order_id'); $orderIds = $tmpCards->keys()->unique()->toArray(); @@ -98,13 +103,17 @@ class OrderService extends Service unset($orderIds[$key]); } + Log::info('3', [microtime(true)]); + $virtualOrders = []; // 有订单的从订单中读取公司和套餐 if (!empty($orderIds)) { $virtualOrders = app(VirtualOrderRepository::class)->withConditions(['id' => $orderIds])->get()->keyBy('id'); } - $cards->map(function ($item) use ($virtualOrders) { + Log::info('4', [microtime(true)]); + + foreach ($cards as &$item) { $item->sim = (string)$item->sim; $item->company_id = $item->company_id ?? 0; $item->package_id = $item->package_id ?? 0; @@ -117,7 +126,9 @@ class OrderService extends Service $item->company_name = !$item->company_id ? '' : CompanyService::load($item->company_id)['name'] ?? ''; $item->package_name = !$item->package_id ? '' : PackageService::load($item->package_id)['name'] ?? ''; - }); + } + + Log::info('5', [microtime(true)]); return $cards->sortBy('sim')->sortBy('order_id')->values(); } diff --git a/app/Domains/Virtual/Services/OrderService.php b/app/Domains/Virtual/Services/OrderService.php index 7b910d28..c639f676 100644 --- a/app/Domains/Virtual/Services/OrderService.php +++ b/app/Domains/Virtual/Services/OrderService.php @@ -295,7 +295,7 @@ class OrderService extends Service return; } - $array = array_chunk($data, 10000); + $array = array_chunk($data, 1000); foreach ($array as $value) { DB::table($table)->upsert($value, ['sim', 'order_id', 'deleted_at']); diff --git a/frontend/src/mixins/index.js b/frontend/src/mixins/index.js index 9402b7f3..074ba929 100644 --- a/frontend/src/mixins/index.js +++ b/frontend/src/mixins/index.js @@ -30,6 +30,37 @@ export default { }); return date && date.valueOf() > ym; } + }, + datePickerOptionsMonth: { + shortcuts: [ + { + text: '本月', + value: () => { + return [ + this.moment().startOf('month').format('YYYY-MM-DD'), + this.moment().endOf('month').format('YYYY-MM-DD') + ]; + } + }, + { + text: '前一个月', + value: () => { + return [ + this.moment().subtract('1', 'months').startOf('month').format('YYYY-MM-DD'), + this.moment().subtract('1', 'months').endOf('month').format('YYYY-MM-DD') + ]; + } + }, + { + text: '前两个月', + value: () => { + return [ + this.moment().subtract('2', 'months').startOf('month').format('YYYY-MM-DD'), + this.moment().subtract('2', 'months').endOf('month').format('YYYY-MM-DD') + ]; + } + } + ] } }; }, diff --git a/frontend/src/views/artisan/real-sync/index.vue b/frontend/src/views/artisan/real-sync/index.vue index be87742d..6e665ddf 100644 --- a/frontend/src/views/artisan/real-sync/index.vue +++ b/frontend/src/views/artisan/real-sync/index.vue @@ -47,6 +47,7 @@ placement="bottom-start" type="daterange" v-model.trim="options.time" + :options="datePickerOptionsMonth" > diff --git a/frontend/src/views/exports/index.vue b/frontend/src/views/exports/index.vue index d7979ba5..adee9940 100644 --- a/frontend/src/views/exports/index.vue +++ b/frontend/src/views/exports/index.vue @@ -46,7 +46,14 @@
总计 |
- - | {{stats.total}} |
- {{stats.counts}} |
- {{stats.renewed_counts}} |
+
+ 总计
+ |
+ + + | +
+ {{stats.total}}
+ |
+
+ {{stats.counts}}
+ |
+
+ {{stats.renewed_counts}}
+ |
---|