|
|
@@ -96,6 +96,9 @@ class OrderCountingRecordService
|
|
|
case'周':
|
|
|
$resultOrders = $this->getCreateByDatabaseUnitWeek($targetOwnerIdsUnderDates);
|
|
|
break;
|
|
|
+ case'月':
|
|
|
+ $resultOrders = $this->getCreateByDatabaseUnitMounth($targetOwnerIdsUnderDates);
|
|
|
+ break;
|
|
|
default:
|
|
|
$resultOrders = collect();
|
|
|
break;
|
|
|
@@ -117,7 +120,7 @@ class OrderCountingRecordService
|
|
|
return ['resultOrders' => $result];
|
|
|
}
|
|
|
|
|
|
- public function orderCountingRecords($start = '2020-10-1', $end = '2020-11-09', $unit = '日')
|
|
|
+ public function orderCountingRecords($start = '2020-10-1', $end = '2020-11-09', $unit = '月')
|
|
|
{
|
|
|
$orders = $this->get($start, $end, null, $unit);
|
|
|
$dataList = collect();
|
|
|
@@ -151,12 +154,16 @@ class OrderCountingRecordService
|
|
|
$dataArray[] = $item->year . '-' . $item->week . '';
|
|
|
}
|
|
|
break;
|
|
|
-// case '月';
|
|
|
-// $array = Carbon::parse($start)->monthsUntil($end, 1)->toArray();
|
|
|
-// break;
|
|
|
-// case '年';
|
|
|
-// $array = Carbon::parse($start)->yearsUntil($end, 1)->toArray();
|
|
|
-// break;
|
|
|
+ case '月';
|
|
|
+ foreach (Carbon::parse($start)->monthsUntil($end, 1)->toArray() as $item) {
|
|
|
+ $dataArray[] = $item->year . '-' . $item->month . '';
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case '年';
|
|
|
+ foreach (Carbon::parse($start)->yearsUntil($end, 1)->toArray() as $item) {
|
|
|
+ $dataArray[] = $item->year . '-' . $item->month . '';
|
|
|
+ }
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
@@ -210,4 +217,17 @@ class OrderCountingRecordService
|
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
|
}
|
|
|
+
|
|
|
+ private function getCreateByDatabaseUnitMounth($targetOwnerIdsUnderDates)
|
|
|
+ {
|
|
|
+ $orderSqlBuilder = Order::query()->selectRaw("owner_id,warehouse_id,shop_id,logistic_id,count(1) as amounts ,DATE_FORMAT(created_at,'%Y-%m') as date_target");
|
|
|
+ foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
+ $orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
|
+ $year = Str::of($dateStr)->explode('-')[0];
|
|
|
+ $month = Str::of($dateStr)->explode('-')[1];
|
|
|
+ $query->whereIn('owner_id', $ownerIds)->whereMonth('created_at', $month)->whereYear('created_at', $year);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
|
+ }
|
|
|
}
|