|
|
@@ -30,7 +30,7 @@ class OrderCountingRecordService
|
|
|
/**
|
|
|
* @param $start
|
|
|
* @param $end
|
|
|
- * @param null $ownerIds
|
|
|
+ * @param null $ownerIds ;
|
|
|
* @param string $unit
|
|
|
* @param $user
|
|
|
* @return mixed
|
|
|
@@ -49,7 +49,7 @@ class OrderCountingRecordService
|
|
|
public function orderCountingRecords($start, $end, $ownerIds = null, $unit = '日', $user = null)
|
|
|
{
|
|
|
$key = 'orderCountingRecords_' . $start . '_' . $end . '_' . $unit . '_' . Auth::user()->id;
|
|
|
- return Cache::remember($key, 600, function () use ($start, $end, $unit, $ownerIds, $user) {
|
|
|
+ return Cache::remember($key, 1, function () use ($start, $end, $unit, $ownerIds, $user) {
|
|
|
$orders = $this->get($start, $end, null, $unit, null);
|
|
|
$dataList = collect();
|
|
|
$orders->groupBy('date_target')->each(function ($items) use (&$dataList, $unit) {
|
|
|
@@ -203,7 +203,8 @@ class OrderCountingRecordService
|
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
foreach ($ownerIds as $key => $ownerId) {
|
|
|
$key1 = 'owner_id=' . $ownerId . ' date_target' . $dateStr;
|
|
|
- if (isset($map[$key1])) {
|
|
|
+ if (isset($map[$key1])&&$this->isNotCurrentDate($dateStr)) {
|
|
|
+ //中间表查找到数据,并且时间不是当前日期
|
|
|
unset($targetOwnerIdsUnderDates[$dateStr][$key]);
|
|
|
}
|
|
|
}
|
|
|
@@ -228,15 +229,14 @@ class OrderCountingRecordService
|
|
|
break;
|
|
|
}
|
|
|
$result = collect();
|
|
|
-
|
|
|
+ $isHasCurrentDate = false;
|
|
|
+ $currentDate = null;
|
|
|
foreach ($targetOwnerIdsUnderDates as $dateStr => $ownerIds) {
|
|
|
- if ($dateStr != Carbon::now()->format('Y-m-d')
|
|
|
- || $dateStr != Carbon::now()->year . '-' . Carbon::now()->week
|
|
|
- ||$dateStr != Carbon::now()->year . '-' . Carbon::now()->month)
|
|
|
+ if ($this->isNotCurrentDate($dateStr))
|
|
|
{
|
|
|
foreach ($ownerIds as $ownerId) {
|
|
|
if ($resultOrders->where('date_target', $dateStr)->where('owner_id', $ownerId)->count()==0) {
|
|
|
- $result->push([
|
|
|
+ $result->push([
|
|
|
'owner_id' =>$ownerId,
|
|
|
'shop_id' => null,
|
|
|
'warehouse_id' => null,
|
|
|
@@ -247,6 +247,10 @@ class OrderCountingRecordService
|
|
|
]);
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //查询范围包含当天
|
|
|
+ $isHasCurrentDate = true;
|
|
|
+ $currentDate = $dateStr;
|
|
|
}
|
|
|
}
|
|
|
$resultOrders->each(function ($order) use (&$result, $unit) {
|
|
|
@@ -261,6 +265,11 @@ class OrderCountingRecordService
|
|
|
]);
|
|
|
$result->push($orderCountingRecord);
|
|
|
});
|
|
|
+ if ($isHasCurrentDate) {
|
|
|
+ //删除OrderCountingRecord表中与当前日期相关的数据,之后的批量插入重新插入这部分数据
|
|
|
+ dump($currentDate,$unit);
|
|
|
+ OrderCountingRecord::query()->where('date_target', $currentDate)->where('counting_unit',$unit)->delete();
|
|
|
+ }
|
|
|
OrderCountingRecord::query()->insert($result->toArray());
|
|
|
return ['resultOrders' => $result];
|
|
|
}
|
|
|
@@ -358,4 +367,15 @@ class OrderCountingRecordService
|
|
|
}
|
|
|
return $orderSqlBuilder->groupBy(['owner_id', 'warehouse_id', 'shop_id', 'logistic_id', 'date_target'])->get();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param $dateStr
|
|
|
+ * @return bool
|
|
|
+ */
|
|
|
+ public function isNotCurrentDate($dateStr): bool
|
|
|
+ {
|
|
|
+ return $dateStr != Carbon::now()->format('Y-m-d')
|
|
|
+ && $dateStr != Carbon::now()->year . '-' . Carbon::now()->week
|
|
|
+ && $dateStr != Carbon::now()->year . '-' . Carbon::now()->month;
|
|
|
+ }
|
|
|
}
|