|
@@ -10,6 +10,7 @@ use App\OrderCountingRecord;
|
|
|
use App\Warehouse;
|
|
use App\Warehouse;
|
|
|
use Carbon\Carbon;
|
|
use Carbon\Carbon;
|
|
|
use DateTime;
|
|
use DateTime;
|
|
|
|
|
+use Illuminate\Database\Eloquent\Builder;
|
|
|
use Illuminate\Database\Eloquent\Collection;
|
|
use Illuminate\Database\Eloquent\Collection;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
use Illuminate\Support\Facades\Cache;
|
|
@@ -30,7 +31,7 @@ class OrderCountingRecordService
|
|
|
/**
|
|
/**
|
|
|
* @param $start
|
|
* @param $start
|
|
|
* @param $end
|
|
* @param $end
|
|
|
- * @param null $ownerIds ;
|
|
|
|
|
|
|
+ * @param null $ownerIds ;
|
|
|
* @param string $unit
|
|
* @param string $unit
|
|
|
* @param $user
|
|
* @param $user
|
|
|
* @return mixed
|
|
* @return mixed
|
|
@@ -189,7 +190,7 @@ class OrderCountingRecordService
|
|
|
$item->each(function ($item, $owner_id) use ($dateStr, $unit) {
|
|
$item->each(function ($item, $owner_id) use ($dateStr, $unit) {
|
|
|
$key = "order_counting_records_{$dateStr}_{$owner_id}_{$unit}";
|
|
$key = "order_counting_records_{$dateStr}_{$owner_id}_{$unit}";
|
|
|
$ttl = 3600 * 24;
|
|
$ttl = 3600 * 24;
|
|
|
- if ($dateStr==Carbon::now()->toDateString()) {
|
|
|
|
|
|
|
+ if ($dateStr == Carbon::now()->toDateString()) {
|
|
|
$ttl = 1;
|
|
$ttl = 1;
|
|
|
}
|
|
}
|
|
|
Cache::put($key, $item, $ttl);
|
|
Cache::put($key, $item, $ttl);
|
|
@@ -203,7 +204,7 @@ class OrderCountingRecordService
|
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
foreach ($ownerIds as $key => $ownerId) {
|
|
foreach ($ownerIds as $key => $ownerId) {
|
|
|
$key1 = 'owner_id=' . $ownerId . ' date_target' . $dateStr;
|
|
$key1 = 'owner_id=' . $ownerId . ' date_target' . $dateStr;
|
|
|
- if (isset($map[$key1])&&$this->isNotCurrentDate($dateStr)) {
|
|
|
|
|
|
|
+ if (isset($map[$key1]) && $this->isNotCurrentDate($dateStr)) {
|
|
|
//中间表查找到数据,并且时间不是当前日期
|
|
//中间表查找到数据,并且时间不是当前日期
|
|
|
unset($targetOwnerIdsUnderDates[$dateStr][$key]);
|
|
unset($targetOwnerIdsUnderDates[$dateStr][$key]);
|
|
|
}
|
|
}
|
|
@@ -232,12 +233,11 @@ class OrderCountingRecordService
|
|
|
$isHasCurrentDate = false;
|
|
$isHasCurrentDate = false;
|
|
|
$currentDate = null;
|
|
$currentDate = null;
|
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
- if ($this->isNotCurrentDate($dateStr))
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ if ($this->isNotCurrentDate($dateStr)) {
|
|
|
foreach ($ownerIds as $ownerId) {
|
|
foreach ($ownerIds as $ownerId) {
|
|
|
- if ($resultOrders->where('date_target', $dateStr)->where('owner_id', $ownerId)->count()==0) {
|
|
|
|
|
- $result->push([
|
|
|
|
|
- 'owner_id' =>$ownerId,
|
|
|
|
|
|
|
+ if ($resultOrders->where('date_target', $dateStr)->where('owner_id', $ownerId)->count() == 0) {
|
|
|
|
|
+ $result->push([
|
|
|
|
|
+ 'owner_id' => $ownerId,
|
|
|
'shop_id' => null,
|
|
'shop_id' => null,
|
|
|
'warehouse_id' => null,
|
|
'warehouse_id' => null,
|
|
|
'logistic_id' => null,
|
|
'logistic_id' => null,
|
|
@@ -267,7 +267,7 @@ class OrderCountingRecordService
|
|
|
});
|
|
});
|
|
|
if ($isHasCurrentDate) {
|
|
if ($isHasCurrentDate) {
|
|
|
//删除OrderCountingRecord表中与当前日期相关的数据,之后的批量插入重新插入这部分数据
|
|
//删除OrderCountingRecord表中与当前日期相关的数据,之后的批量插入重新插入这部分数据
|
|
|
- OrderCountingRecord::query()->where('date_target', $currentDate)->where('counting_unit',$unit)->delete();
|
|
|
|
|
|
|
+ OrderCountingRecord::query()->where('date_target', $currentDate)->where('counting_unit', $unit)->delete();
|
|
|
}
|
|
}
|
|
|
OrderCountingRecord::query()->insert($result->toArray());
|
|
OrderCountingRecord::query()->insert($result->toArray());
|
|
|
return ['resultOrders' => $result];
|
|
return ['resultOrders' => $result];
|
|
@@ -329,14 +329,14 @@ class OrderCountingRecordService
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @param $targetOwnerIdsUnderDates
|
|
* @param $targetOwnerIdsUnderDates
|
|
|
- * @return \Illuminate\Database\Eloquent\Builder[]|Collection
|
|
|
|
|
|
|
+ * @return Builder[]|Collection
|
|
|
*/
|
|
*/
|
|
|
private function getCreateByDatabaseUnitDay($targetOwnerIdsUnderDates)
|
|
private function getCreateByDatabaseUnitDay($targetOwnerIdsUnderDates)
|
|
|
{
|
|
{
|
|
|
$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");
|
|
$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) {
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
$orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
$orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
|
- $query->whereIn('owner_id', $ownerIds)->whereDate('created_at', $dateStr)->where('wms_status', '订单完成');
|
|
|
|
|
|
|
+ $query->whereIn('owner_id', $ownerIds)->where('created_at', '>', $dateStr)->where('created_at', '<', Carbon::parse($dateStr)->addDay()->toDateString())->where('wms_status', '订单完成');
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
@@ -348,7 +348,7 @@ class OrderCountingRecordService
|
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
$orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
$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');
|
|
$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)->where('created_at', '>', $dateStr)->where('created_at', '<=', Carbon::parse($dateStr)->addWeek()->toDateString())->where('wms_status', '订单完成');
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
@@ -361,7 +361,8 @@ class OrderCountingRecordService
|
|
|
$orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
$orderSqlBuilder->orWhere(function ($query) use ($ownerIds, $dateStr) {
|
|
|
$year = Str::of($dateStr)->explode('-')[0];
|
|
$year = Str::of($dateStr)->explode('-')[0];
|
|
|
$month = Str::of($dateStr)->explode('-')[1];
|
|
$month = Str::of($dateStr)->explode('-')[1];
|
|
|
- $query->whereIn('owner_id', $ownerIds)->whereMonth('created_at', $month)->whereYear('created_at', $year)->where('wms_status', '订单完成');;
|
|
|
|
|
|
|
+ $dateStr = $year . '-' . $month . '-01';
|
|
|
|
|
+ $query->whereIn('owner_id', $ownerIds)->where('created_at', '>', $dateStr)->where('created_at', '<', Carbon::parse($dateStr)->addMonth()->toDateString())->where('wms_status', '订单完成');
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|