get('sort', 'sales_num'); $order = $request->get('sortOrder', 'DESC'); if (empty($request->get('date'))) { $request->offsetSet('date', date('Y-m-d')); } $dailySalesReports = DailySalesReport::query() ->filter() ->orderBy($sort, $order) ->paginate($request->get('per_page')); foreach ($dailySalesReports as &$dailySalesReport) { $dailySalesReport['stock'] = $dailySalesReport['inventory'] + $dailySalesReport['arrived_today_num']; $dailySalesReport['goal_rate'] = FormatUtils::getPercent($dailySalesReport['goal_rate'], 1); $dailySalesReport['S1_rate'] = FormatUtils::getPercent($dailySalesReport['S1_rate'], 1); $dailySalesReport['S2_rate'] = FormatUtils::getPercent($dailySalesReport['S2_rate'], 1); $dailySalesReport['S3_rate'] = FormatUtils::getPercent($dailySalesReport['S3_rate'], 1); $dailySalesReport['S4_rate'] = FormatUtils::getPercent($dailySalesReport['S4_rate'], 1); $dailySalesReport['S5_rate'] = FormatUtils::getPercent($dailySalesReport['S5_rate'], 1); $dailySalesReport['S6_rate'] = FormatUtils::getPercent($dailySalesReport['S6_rate'], 1); $dailySalesReport['S7_rate'] = FormatUtils::getPercent($dailySalesReport['S7_rate'], 1); } return DailySalesReportResource::collection($dailySalesReports); } /** * 销售报表 * @param Request $request * @return void */ public function skuSalesReport(Request $request) { //获取所有参数 $allParams = $request->all(); //进行校验验证 $validator = Validator::make($allParams, [ 'type' => 'required|integer', //1表示今日 'start_day' => 'sometimes|string', 'end_day' => 'sometimes|string', 'title' => 'sometimes|string' ]); if ($validator->fails()) { //校验失败返回异常 $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } if (StaticTypeEnum::TODAY == $allParams->type) { //实时统计 $orderItems = BusinessOrderItem::query() ->leftJoin("business_orders as b", "business_order_id", "=", "b.id") ->select("business_order_items.external_sku_id" , DB::raw("sum(CASE WHEN b.shipping_status>0 THEN goods_number-already_cancel_number ELSE 0 END) as shipping_num") , DB::raw("sum(CASE WHEN b.shipping_status=0 THEN goods_number-already_cancel_number ELSE 0 END) as unshipping_num") , DB::raw("sum(goods_number-already_cancel_number) as goods_total")) ->where("business_order_items.created_at", ">",Carbon::now()->startOfDay()->toDateTimeString()) ->where("business_order_items.cancel_status", "=", 0) ->groupBy('external_sku_id') ->orderBy("goods_total","DESC") ->paginate($request->get('per_page')); return $orderItems; } else { $startTime = Carbon::parse($request->input("start_day"))->toDateTimeString(); $endTime = Carbon::parse($request->input("end_day"))->endOfDay()->toDateTimeString(); } } }