whereDay('create_time')->count(); $orderPayNum = StoreOrder::where($where)->where('paid', 1)->whereDay('create_time')->group('uid')->count(); $monthOrderNum = StoreOrder::where($where)->whereMonth('create_time')->count(); $monthOrderPayNum = StoreOrder::where($where)->where('paid', 1)->whereMonth('create_time')->group('uid')->count(); $data = [ "orderNum" => $orderNum, "monthOrderNum" => $monthOrderNum, "monthOrderNumRate" => 0, "orderNumRate" => 0, "orderPayNum" => $orderPayNum, "monthOrderPayNum" => $monthOrderPayNum, "monthOrderPayRate" => 0, "orderOrderPayRate" => 0 ]; return $data; } public static function Currday($where, $date) { $startTime = strtotime($date . ' 00:00:00'); // 当天的开始时间戳 $endTime = strtotime($date . ' 23:59:59'); // 当天的结束时间戳 $interval = 4 * 60 * 60; // 4小时的秒数 $data = []; for ($time = $startTime; $time < $endTime; $time += $interval) { $endTimeSegment = $time + $interval; $startTimeSegment = date('Y-m-d H:i:s', $time); $yesterendTimeSegment = date('Y-m-d H:i:s', $endTimeSegment - 86400); $endTimeSegment = date('Y-m-d H:i:s', $endTimeSegment); $yesterstartTimeSegment = date('Y-m-d H:i:s', $time - 86400); // 统计当前时间段的订单 $todayAmount = StoreOrder::where($where) ->where('paid', 1) ->whereBetween('create_time', [strtotime($startTimeSegment), strtotime($endTimeSegment)]) ->sum('pay_price'); $yesterdayAmount = StoreOrder::where($where) ->where('paid', 1) ->whereBetween('create_time', [strtotime($yesterstartTimeSegment), strtotime($yesterendTimeSegment)]) ->sum('pay_price'); $data[] = [ 'todayAmount' => $todayAmount, 'yesterdayAmount' => $yesterdayAmount, ]; } return $data; } public static function dayPayPrice($where, $time) { $todayAmount = UserRecharge::where($where) ->whereDay('create_time', $time) ->sum('price'); $pay_price = StoreOrder::where($where) ->whereDay('create_time', $time) ->sum('pay_price'); return bcadd($todayAmount, $pay_price, 2); } public static function dealFlexiblePrice($where, $start, $end) { //排除退款 $todayAmount = UserRecharge::where($where)->where('status', 1) ->whereBetweenTime('create_time', $start, $end) ->sum('price'); $pay_price = StoreOrder::where($where)->where('refund_status', 0) ->whereBetweenTime('create_time', $start, $end) ->sum('pay_price'); return bcadd($todayAmount, $pay_price, 2); } public static function sales($where, $time) { $select = StoreOrder::where($where); if ($time) { $select->whereDay('create_time', $time); } $select = $select->limit(20)->order('id desc')->field('id,order_id,pay_price,create_time')->select(); return $select?->toArray(); } }