tradeTotalMoney(['create_time' => 'today'], 'sum'); $month = $logic->tradeTotalMoney(['create_time'=>'month'], 'sum'); $todayOrder = $storeOrder->where(['paid'=>1])->whereDay('create_time')->count(); $MonthOrder = $storeOrder->where(['paid'=>1])->whereMonth('create_time')->count(); $todayUser = $user->whereDay('create_time')->count(); $MonthUser = $user->whereMonth('create_time')->count(); $todayUserVisit = $userVisit->whereDay('create_time')->group('uid')->count(); $MonthUserVisit = $userVisit->whereMonth('create_time')->group('uid')->count(); return [ 'today' => $today, //今日销售额 'month' => $month, //本月销售额 'todayOrder' => $todayOrder, //今日订单量 'MonthOrder' => $MonthOrder, //本月订单量 'todayUser' => $todayUser, //今日新增用户量 'MonthUser' => $MonthUser, //本月新增用户量 'todayUserVisit' => $todayUserVisit, //今日活跃用户量 'MonthUserVisit' => $MonthUserVisit, //本月活跃用户量 ]; } //-------------------------------商品统计---------------------------------------// /** * 商品概况 */ public static function get_basic($where) { $browse = StoreVisit::where($where)->count(); $user = 0; $cart = Cart::where($where)->where('is_fail', 0)->sum('cart_num'); $order = StoreOrder::where($where)->count(); $pay = StoreOrder::where($where)->where('paid', 1)->where('refund_status', 0)->count(); $payPrice = StoreOrder::where($where)->where('paid', 1)->where('refund_status', 0)->sum('pay_price'); $cost = StoreOrder::where($where)->where('paid', 1)->sum('cost'); $refundPrice = StoreOrder::where($where)->where('status', 'in', [-1, -2])->sum('refund_price'); $refund = StoreOrder::where($where)->where('status', 'in', [-1, -2])->count(); $payPercent = 0; return [ 'browse' => ['num' => $browse, 'title' => '浏览量'], //浏览量 'user' => ['num' => $user, 'title' => '访客数'], //访客数 'cart' => ['num' => $cart, 'title' => '加购人数'], //加购人数 'order' => ['num' => $order, 'title' => '订单量'], //订单量 'pay' => ['num' => $pay, 'title' => '支付订单量'], //支付订单量 'payPrice' => ['num' => $payPrice, 'title' => '支付金额'], //支付金额 'cost' => ['num' => $cost, 'title' => '成本'], //成本 'refundPrice' => ['num' => $refundPrice, 'title' => '退款金额'], //退款金额 'refund' => ['num' => $refund, 'title' => '退款订单量'], //退款订单量 'payPercent' => ['num' => $payPercent, 'title' => '支付转化率'], //支付转化率 ]; } /** * 商品浏览量 */ public static function store_visit_count($dates) { $data = []; foreach ($dates as $date) { $data[] = StoreVisit::whereDay('create_time', $date)->cache('store_visit_count_' . $date, 300)->sum('count'); } return $data; } /** * 商品浏览量 */ public static function store_visit_user($dates) { $data = []; foreach ($dates as $date) { $data[] = StoreVisit::whereDay('create_time', $date)->cache('store_visit_user_' . $date, 300)->count('uid'); } return $data; } /** * 支付金额 */ public static function payPrice($dates) { $data = []; foreach ($dates as $date) { $data[] = StoreOrder::whereDay('create_time', $date)->cache('payPrice_' . $date, 300)->where('paid', 1)->where('refund_status', 0)->sum('pay_price'); } return $data; } /** * 退款金额 */ public static function refundPrice($dates) { $data = []; foreach ($dates as $date) { $data[] = StoreOrder::whereDay('create_time', $date)->where('status', 'in', [-1, -2])->cache('refundPrice_' . $date, 300)->where('paid', 1)->sum('pay_price'); } return $data; } /** * 当日订单金额 */ public static function day_order_pay_price($where, $time) { $money = StoreOrder::whereDay('create_time', $time)->where('paid', 1)->where('refund_status', 0)->sum('pay_price'); $data = []; foreach ($where as $date) { $data[] = StoreOrder::where('create_time','between', $date)->cache('day_order_pay_price_' . $date[0], 300)->where('paid', 1)->where('refund_status', 0)->sum('pay_price'); } return ['money' => $money, 'value' => $data]; } /** * 今日订单数 */ public static function day_order_count($where,$name) { $now_money = StoreOrder::whereDay('create_time')->where('paid', 1)->where('refund_status', 0)->count(); $last_money = StoreOrder::whereDay('create_time', 'yesterday')->where('paid', 1)->where('refund_status', 0)->count(); $data = []; foreach ($where as $date) { $data[] = StoreOrder::where('create_time','between', $date)->cache('day_order_count' . $date[0], 300)->where('paid', 1)->where('refund_status', 0)->count(); } if ($now_money > $last_money) { if($last_money == 0){ $rate = bcmul($now_money, '100'); }else{ $rate = bcmul(bcmul($now_money, '100'), bcdiv($last_money, $now_money, 2), 2); } } else { $rate = bcmul(bcmul($last_money, '100'), bcdiv($now_money, $last_money, 2), 2); } return ['name' => $name, 'now_money' => $now_money, 'last_money' => $last_money, 'rate' => $rate, 'value' => $data]; } /** * 今日支付人数 */ public static function day_order_user($where,$name) { $now_money = StoreOrder::whereDay('create_time')->where('paid', 1)->where('refund_status', 0)->count('uid'); $last_money = StoreOrder::whereDay('create_time', 'yesterday')->where('paid', 1)->where('refund_status', 0)->count('uid'); $data = []; foreach ($where as $date) { $data[] = StoreOrder::where('create_time','between', $date)->cache('day_order_count' . $date[0], 300)->where('paid', 1)->where('refund_status', 0)->count('uid'); } if ($now_money > $last_money) { if($last_money == 0){ $rate = bcmul($now_money, '100'); }else{ $rate = bcmul(bcmul($now_money, '100'), bcdiv($last_money, $now_money, 2), 2); } } else { $rate = bcmul(bcmul($last_money, '100'), bcdiv($now_money, $last_money, 2), 2); } return ['name' => $name, 'now_money' => $now_money, 'last_money' => $last_money, 'rate' => $rate, 'value' => $data]; } /** * 本月订单数 */ public static function month_order_count($name) { $now_money = StoreOrder::whereMonth('create_time')->where('paid', 1)->where('refund_status', 0)->count(); $last_money = StoreOrder::whereMonth('create_time', 'last month')->where('paid', 1)->where('refund_status', 0)->count(); $data = []; if ($now_money > $last_money) { if($last_money == 0){ $rate = bcmul($now_money, '100'); }else{ $rate = bcmul(bcmul($now_money, '100'), bcdiv($last_money, $now_money, 2), 2); } } else { $rate = bcmul(bcmul($last_money, '100'), bcdiv($now_money, $last_money, 2), 2); } return ['name' => $name, 'now_money' => $now_money, 'last_money' => $last_money, 'rate' => $rate, 'value' => $data]; } /** * 本月支付人数 */ public static function month_order_user($name) { $now_money = StoreOrder::whereMonth('create_time')->where('paid', 1)->where('refund_status', 0)->count('uid'); $last_money = StoreOrder::whereMonth('create_time','last month')->where('paid', 1)->where('refund_status', 0)->count('uid'); $data = []; if ($now_money > $last_money) { if($last_money == 0){ $rate = bcmul($now_money, '100'); }else{ $rate = bcmul(bcmul($now_money, '100'), bcdiv($last_money, $now_money, 2), 2); } } else { $rate = bcmul(bcmul($last_money, '100'), bcdiv($now_money, $last_money, 2), 2); } return ['name' => $name, 'now_money' => $now_money, 'last_money' => $last_money, 'rate' => $rate, 'value' => $data]; } }