$end_time) { $this->err('开始时间不能大于结束时间'); } $whe1[] = ['addtime', 'BETWEEN', array($start_time, $end_time)]; $whe2[] = ['addtime', 'BETWEEN', array($start_time, $end_time)]; } $list1 = OrderModel::where($whe1)->select(); $count = count($list1); // $price = $list1 -> count('price'); $numbers = $list1->toArray(); $count_price = array_sum(array_map(function ($price) { return $price['price']; //支付金额 2 }, $numbers)); $count_yue = array_sum(array_map(function ($price) { return $price['use_money']; //用户余额 2 }, $numbers)); $use_integral = array_sum(array_map(function ($price) { return $price['use_integral']; //潮币抵扣 2 }, $numbers)); $use_score = array_sum(array_map(function ($price) { return $price['use_score']; //积分抵扣 2 }, $numbers)); $use_coupon = array_sum(array_map(function ($price) { return $price['use_coupon']; //优惠卷抵扣 2 }, $numbers)); $order_zhe_total = array_sum(array_map(function ($price) { return $price['order_zhe_total']; //折扣后总金额 2 }, $numbers)); $order_total = array_sum(array_map(function ($price) { return $price['order_total']; //实际总金额 2 }, $numbers)); if ($use_integral > 0) { $use_integral = $use_integral / 100; } // 订单价值 $whe2[] = ['goods_id', '=', $value['id']]; $orderList = OrderList::where($whe2)->select(); $orderArray = $orderList->toArray(); $count_OrderList = count($orderList); $goodslist_price = 0; if ($count_OrderList > 0) { $goodslist_price = array_sum(array_map(function ($goodslist) { return $goodslist['goodslist_money']; //实际总金额 2 }, $orderArray)); } $value['order_count'] = $count; $value['count_price'] = $count_price; $value['order_total'] = $order_total; $value['count_yue'] = $count_yue; $value['count_use_integral'] = $use_integral; $value['count_use_score'] = $use_score; $value['order_zhe_total'] = $order_zhe_total; $value['count_use_coupon'] = $use_coupon; $value['count_heji'] = $count_price + $count_yue + $use_integral + $use_score + $use_coupon; $value['count_heji_yanzheng'] = $count_OrderList * $value['price']; $value['count_OrderList'] = $count_OrderList; $goodslist_price1 = round($goodslist_price, 2); $value['goodslist_price'] = $goodslist_price1; $value['lirun'] = round($order_zhe_total - $goodslist_price1, 2); $count_heji_yanzheng = $count_OrderList * $value['price']; $value['liruns'] = round($count_heji_yanzheng - $goodslist_price1, 2); if ($goodslist_price1 == 0) { $value['lirulv'] = 0; $value['lirulvs'] = 0; } else { $value['lirulv'] = round(($order_zhe_total - $goodslist_price1) / $goodslist_price1 * 100, 2); $value['lirulvs'] = round(($count_heji_yanzheng - $goodslist_price1) / $goodslist_price1 * 100, 2); } $sum_dingdan += $count_OrderList * $value['price']; $sum_shiji += $order_zhe_total; $sum_chuhuo += $goodslist_price1; $sum_shijilirun += $value['lirun']; $sum_dingdanlirun += $value['liruns']; } View::assign('list', $data['list']); View::assign('count', $data['count']); View::assign('page', $data['page']); View::assign('sum_dingdan', $sum_dingdan); View::assign('sum_shiji', $sum_shiji); View::assign('sum_chuhuo', $sum_chuhuo); View::assign('sum_shijilirun', $sum_shijilirun); View::assign('sum_dingdanlirun', $sum_dingdanlirun); return View::fetch("Statistics/profit"); } /** * 数据统计 * @param \think\Request $request * @return string */ public function DataStand(Request $request) { $userCount = User::count("id"); $userList = User::where('istest', '=', 1)->field('id')->select(); $userArray = $userList->toArray(); // 本日充值金额 // $order_today = OrderModel::whereNotIn('user_id', $userArray)->where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('price'); // 今日时间 $ranges['today_start'] = strtotime('today'); $ranges['today_end'] = strtotime('tomorrow') - 1; // 昨日时间 $ranges['yesterday_start'] = strtotime('yesterday'); $ranges['yesterday_end'] = strtotime('today') - 1; // 本周时间(周一到周日) $ranges['this_week_start'] = strtotime('monday this week'); $ranges['this_week_end'] = strtotime('sunday this week') + 86399; // 上周时间(上周一到上周日) $ranges['last_week_start'] = strtotime('monday last week'); $ranges['last_week_end'] = strtotime('sunday last week') + 86399; // 本月时间(1号到月末) $ranges['this_month_start'] = strtotime(date('Y-m-01')); $ranges['this_month_end'] = strtotime(date('Y-m-t')) + 86399; // 上月时间(上个月1号到月末) $ranges['last_month_start'] = strtotime(date('Y-m-01', strtotime('-1 month'))); $ranges['last_month_end'] = strtotime(date('Y-m-t', strtotime('-1 month'))) + 86399; // 今日注册人数 $user_today = User::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count('id'); // 昨日注册人数 $user_yesterday = User::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->count('id'); // 本周注册人数 $user_this_week = User::whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->count('id'); // 上周注册人数 $user_last_week = User::whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->count('id'); // 本月注册人数 $user_this_month = User::whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->count('id'); // 上月注册人数 $user_last_month = User::whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->count('id'); // 本日充值金额 $order_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('price'); // 昨日充值金额 $order_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('price'); // 本周充值金额 $order_this_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('price'); // 上周充值金额 $order_last_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('price'); // 本月充值金额 $order_this_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('price'); // 上月充值金额 $order_last_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('price'); // 消费人数统计 $consume_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id'); $consume_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id'); $consume_this_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id'); $consume_last_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id'); $consume_this_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id'); $consume_last_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id'); // RMB消费人数统计 $rmb_consume_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id'); $rmb_consume_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id'); $rmb_consume_this_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id'); $rmb_consume_last_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id'); $rmb_consume_this_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id'); $rmb_consume_last_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id'); //今日余额消费 $money_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_money'); $money_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_money'); //今日积分抵扣 $score_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_score'); $score_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_score'); //今日余额发放 $money_recovery_today = OrderListRecovery::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->sum('money'); $money_recovery_yesterday = OrderListRecovery::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->whereNotIn('user_id', $userArray)->sum('money'); //今日优惠卷消费 $coupon_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->sum('use_coupon'); //今日收入 $order_zhe_total = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('order_zhe_total'); $order_goodslist_money = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'); $order_goodslist_count = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->count(); $order_count = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count(); $order_zhe_total_yester = round(OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('order_zhe_total'), 2); $order_goodslist_money_yester = round(OrderList::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2); $order_zhe_total_week = round(OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('order_zhe_total'), 2); $order_goodslist_money_week = round(OrderList::whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2); $order_zhe_total_last_week = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->whereNotIn('user_id', $userArray)->sum('order_zhe_total'), 2); $order_goodslist_money__last_week = round(OrderList::whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2); $order_zhe_total_month = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->whereNotIn('user_id', $userArray)->sum('order_zhe_total'), 2); $order_goodslist_money_month = round(OrderList::whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2); $order_zhe_total_last_month = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->whereNotIn('user_id', $userArray)->sum('order_zhe_total'), 2); $order_goodslist_money__last_month = round(OrderList::whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2); $profit_expenses = ProfitExpenses::getTotalAmountByDate(date('Y-m-d')); $profit_expenses_yester = ProfitExpenses::getTotalAmountByDate(date('Y-m-d', strtotime('-1 day'))); $profit_expenses_week = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['this_week_start']), date('Y-m-d', $ranges['this_week_end'])); $profit_expenses_last_week = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['last_week_start']), date('Y-m-d', $ranges['last_week_end'])); $profit_expenses_money = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['this_month_start']), date('Y-m-d', $ranges['this_month_end'])); $profit_expenses_last_money = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['last_month_start']), date('Y-m-d', $ranges['last_month_end'])); View::assign('profit_expenses', $profit_expenses); View::assign('money_today', $money_today); View::assign('money_yesterday', $money_yesterday); View::assign('coupon_today', $coupon_today); View::assign('score_today', $score_today); View::assign('score_yesterday', $score_yesterday); View::assign('money_recovery_today', $money_recovery_today); View::assign('money_recovery_yesterday', $money_recovery_yesterday); View::assign('order_zhe_total', $order_zhe_total); View::assign('order_goodslist_money', $order_goodslist_money); View::assign('order_goodslist_count', $order_goodslist_count); View::assign('order_count', $order_count); View::assign('order_lirun', round($order_zhe_total - $order_goodslist_money - $profit_expenses, 2)); View::assign('order_lirun_yester', round($order_zhe_total_yester - $order_goodslist_money_yester - $profit_expenses_yester, 2) . " ($order_zhe_total_yester - $order_goodslist_money_yester - $profit_expenses_yester)"); View::assign('order_lirun_week', round($order_zhe_total_week - $order_goodslist_money_week - $profit_expenses_week, 2) . " ({$order_zhe_total_week} - $order_goodslist_money_week - $profit_expenses_week)"); View::assign('order_lirun_last_week', round($order_zhe_total_last_week - $order_goodslist_money__last_week - $profit_expenses_last_week, 2) . " ($order_zhe_total_last_week - $order_goodslist_money__last_week - $profit_expenses_last_week)"); View::assign('order_zhe_total_month', round($order_zhe_total_month - $order_goodslist_money_month - $profit_expenses_money, 2) . " ($order_zhe_total_month - $order_goodslist_money_month - $profit_expenses_money)"); View::assign('order_lirun_last_month', round($order_zhe_total_last_month - $order_goodslist_money__last_month -$profit_expenses_last_money, 2) . " ($order_zhe_total_last_month - $order_goodslist_money__last_month- $profit_expenses_last_money)"); // 赋值给模板 View::assign('userCount', $userCount); View::assign('user_today', $user_today); View::assign('user_yesterday', $user_yesterday); View::assign('user_this_week', $user_this_week); View::assign('user_last_week', $user_last_week); View::assign('user_this_month', $user_this_month); View::assign('user_last_month', $user_last_month); // 充值订单数据 View::assign('order_today', $order_today); View::assign('order_yesterday', $order_yesterday); View::assign('order_this_week', $order_this_week); View::assign('order_last_week', $order_last_week); View::assign('order_this_month', $order_this_month); View::assign('order_last_month', $order_last_month); View::assign('consume_today', $consume_today); View::assign('consume_yesterday', $consume_yesterday); View::assign('consume_this_week', $consume_this_week); View::assign('consume_last_week', $consume_last_week); View::assign('consume_this_month', $consume_this_month); View::assign('consume_last_month', $consume_last_month); View::assign('rmb_consume_today', $rmb_consume_today); View::assign('rmb_consume_yesterday', $rmb_consume_yesterday); View::assign('rmb_consume_this_week', $rmb_consume_this_week); View::assign('rmb_consume_last_week', $rmb_consume_last_week); View::assign('rmb_consume_this_month', $rmb_consume_this_month); View::assign('rmb_consume_last_month', $rmb_consume_last_month); View::assign('ranges', $ranges); return View::fetch("Statistics/dataStand"); } }