middleware('checkUserPermission'); $this->service = $service; } /** * 列表 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { $lists = $this->service->handleList($request); return $this->response->success($lists); } /** * 获取商品数量对比统计 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Illuminate\Validation\ValidationException */ public function goodNumsStatistics(Request $request) { $data = $this->validateData($request, [ 'start_date' => 'nullable|date', 'end_date' => 'nullable|date', 'good_ids' => 'nullable|array' ], [ 'start_date' => '开始日期', 'end_date' => '结束日期', 'good_ids' => '产品' ]); if (empty($data['start_date'])) { $start_date = Carbon::now()->addMonths(-1); } else { $start_date = Carbon::parse($data['start_date']); } if (empty($data['end_date'])) { $end_date = Carbon::now(); } else { $end_date = Carbon::parse($data['end_date']); } $good_ids = false; if (!empty($data['good_ids'])) $good_ids = $data['good_ids']; $oldGoods = Good::getNames(); $goods = []; foreach ($oldGoods as $good) { if ($good_ids && !in_array($good['id'], $good_ids)) continue; $goods[] = $good; } $days = $start_date->diffInDays($end_date, false); if (!$days) { abort(ResponseCodeEnum::SERVICE_OPERATION_ERROR, '起止时间不合法'); return; } $statistics = []; for ($i = 0; $i < $days; $i++) { $day = $end_date->clone()->subDays($i)->toDateString(); $dayGoodNums = []; foreach ($goods as $good) { $dayNums = OrderGood::adminBbyDayGetGoodNums($day, $good['id']); $dayGoodNums[$good->id] = $dayNums['nums'] ?? 0; } $statistics[] = [ 'day' => $day, 'nums' => $dayGoodNums ]; } return $this->response->success(compact('statistics', 'goods')); } }