|
|
@@ -34,6 +34,41 @@ class OrderCountingRecordService
|
|
|
return $resultByCache['resultOrders'];
|
|
|
}
|
|
|
|
|
|
+ public function orderCountingRecords($start, $end, $unit = '日')
|
|
|
+ {
|
|
|
+ $orders = $this->get($start, $end, null, $unit);
|
|
|
+ $dataList = collect();
|
|
|
+ $orders->groupBy('date_target')->each(function ($items) use (&$dataList, $unit) {
|
|
|
+ $counter = $items->reduce(function ($sum, $item) {
|
|
|
+ return $sum + $item->amount;
|
|
|
+ }, 0);
|
|
|
+ $date_target = $items[0]->date_target;
|
|
|
+ if ($unit == '周') {
|
|
|
+ $date_target = (new DateTime())->setISODate(Str::of($date_target)->explode('-')[0], Str::of($date_target)->explode('-')[1])->format('yy-m-d');
|
|
|
+ }
|
|
|
+ $dataList->push([
|
|
|
+ 'counter' => $counter,
|
|
|
+ 'date_target' => $date_target,
|
|
|
+ ]);
|
|
|
+ });
|
|
|
+ return $dataList->sortBy("date_target");
|
|
|
+ }
|
|
|
+
|
|
|
+ public function logisticsCountingRecords($start, $end, $ownerIds = null)
|
|
|
+ {
|
|
|
+ $dataList = collect();
|
|
|
+ $resultOrders = $this->get($start, $end, $ownerIds);
|
|
|
+ $resultOrders->groupBy('logistic_id')->each(function ($item)use(&$dataList) {
|
|
|
+ $counter = $item->reduce(function ($sum, $item) {
|
|
|
+ return $sum + $item->amount;
|
|
|
+ }, 0);
|
|
|
+ $dataList->push([
|
|
|
+ 'counter' => $counter,
|
|
|
+ 'logistic_id' => $date_target,
|
|
|
+ ]);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
public function getByCache($start, $end, $ownerIds = null, $unit = '日')
|
|
|
{// Order[] results, Array [$date=>[$ownerIds]]
|
|
|
$countingOwnerIds = $this->getCountingOwnerIds($ownerIds);
|
|
|
@@ -109,7 +144,7 @@ class OrderCountingRecordService
|
|
|
'owner_id' => $order->owner_id,
|
|
|
'shop_id' => $order->shop_id,
|
|
|
'warehouse_id' => $order->warehouse_id,
|
|
|
- 'logistic_id' => $order->logistics_id,
|
|
|
+ 'logistic_id' => $order->logistic_id,
|
|
|
'date_target' => $order->date_target,
|
|
|
'counting_unit' => $unit,
|
|
|
'amount' => $order->amounts,
|
|
|
@@ -120,25 +155,6 @@ class OrderCountingRecordService
|
|
|
return ['resultOrders' => $result];
|
|
|
}
|
|
|
|
|
|
- public function orderCountingRecords($start, $end, $unit = '日')
|
|
|
- {
|
|
|
- $orders = $this->get($start, $end, null, $unit);
|
|
|
- $dataList = collect();
|
|
|
- $orders->groupBy('date_target')->each(function ($items) use (&$dataList, $unit) {
|
|
|
- $counter = $items->reduce(function ($sum, $item) {
|
|
|
- return $sum + $item->amount;
|
|
|
- }, 0);
|
|
|
- $date_target = $items[0]->date_target;
|
|
|
- if ($unit == '周') {
|
|
|
- $date_target = (new DateTime())->setISODate(Str::of($date_target)->explode('-')[0], Str::of($date_target)->explode('-')[1])->format('yy-m-d');
|
|
|
- }
|
|
|
- $dataList->push([
|
|
|
- 'counter' => $counter,
|
|
|
- 'date_target' => $date_target,
|
|
|
- ]);
|
|
|
- });
|
|
|
- return $dataList->sortBy("date_target");
|
|
|
- }
|
|
|
|
|
|
public function periodDateToArray($start, $end, $unit = '日')
|
|
|
{
|
|
|
@@ -200,7 +216,7 @@ class OrderCountingRecordService
|
|
|
$orderSqlBuilder = Order::query()->selectRaw("owner_id,warehouse_id,shop_id,logistic_id,count(1) as amounts ,DATE_FORMAT(created_at,'%Y-%m-%d') as date_target");
|
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
$orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
|
- $query->whereIn('owner_id', $ownerIds)->whereDate('created_at', $dateStr)->where('wms_status','订单完成');
|
|
|
+ $query->whereIn('owner_id', $ownerIds)->whereDate('created_at', $dateStr)->where('wms_status', '订单完成');
|
|
|
});
|
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
|
@@ -212,7 +228,7 @@ class OrderCountingRecordService
|
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
$orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
|
$dateStr = (new DateTime())->setISODate(Str::of($dateStr)->explode('-')[0], Str::of($dateStr)->explode('-')[1])->format('yy-m-d');
|
|
|
- $query->whereIn('owner_id', $ownerIds)->whereDate('created_at', '>=', $dateStr)->whereDate('created_at', '<', Carbon::parse($dateStr)->addWeek()->toDateString())->where('wms_status','订单完成');;
|
|
|
+ $query->whereIn('owner_id', $ownerIds)->whereDate('created_at', '>=', $dateStr)->whereDate('created_at', '<', Carbon::parse($dateStr)->addWeek()->toDateString())->where('wms_status', '订单完成');;
|
|
|
});
|
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
|
@@ -225,7 +241,7 @@ class OrderCountingRecordService
|
|
|
$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)->where('wms_status','订单完成');;
|
|
|
+ $query->whereIn('owner_id', $ownerIds)->whereMonth('created_at', $month)->whereYear('created_at', $year)->where('wms_status', '订单完成');;
|
|
|
});
|
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|