$start_t, 'end_t' => $end_t, 'start_s' => $start_s, 'end_s' => $end_s, 'start_f' => $start_f, 'end_f' => $end_f, 'start_today' => $start_today, 'end_today' => $end_today, 'start_seven' => $start_seven, 'end_seven' => $end_seven, 'start_fifteen' => $start_fifteen, 'end_fifteen' => $end_fifteen, ]; } /** * Notes: 会员统计 * @param $post * @author 竹 * @return array */ public static function member($post) { $timeData = self::timeData(); // 会员总数 $count = Db::name('user')->where('del', 0)->count(); if (isset($post['days']) && $post['days'] == 'today') { // 今天新增会员数量 $add_today = Db::name('user') ->where('del', 0) ->whereTime('create_time', 'today') ->count(); return [ 'start' => $timeData['start_today'], 'end' => $timeData['end_today'], 'count' => $count, 'add' => $add_today, 'start_seven' => $timeData['start_seven'], 'end_seven' => $timeData['end_seven'], ]; } if (isset($post['days']) && $post['days'] == 'ago_seven') { // 获取7天新增会员数量 $add_seven = Db::name('user') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->count(); return [ 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'], 'count' => $count, 'add' => $add_seven ]; } if (isset($post['days']) && $post['days'] == 'ago_fifteen') { // 获取15天新增会员数量 $add_thirty = Db::name('user') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->count(); return [ 'start' => $timeData['start_fifteen'], 'end' => $timeData['end_fifteen'], 'count' => $count, 'add' => $add_thirty ]; } if (isset($post['member']) && $post['member'] == 'ago_seven') { $echarts_data = self::getMemberData($timeData['start_s'], 7); return [ 'echarts_count' => $echarts_data['count'], 'echarts_add' => $echarts_data['new'], 'days' => $echarts_data['days'], 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'] ]; } if (isset($post['member']) && $post['member'] == 'ago_fifteen') { $echarts_data = self::getMemberData($timeData['start_f'], 15); return [ 'echarts_count' => $echarts_data['count'], 'echarts_add' => $echarts_data['new'], 'days' => $echarts_data['days'], 'start' => $timeData['start_fifteen'], 'end' => $timeData['end_fifteen'] ]; } } /** * Notes: 会员图表数据 * @param $end_stamp * @param $days * @author 竹 * @return array */ public static function getMemberData($start_stamp, $days) { $dates = []; for ($i = 1; $i <= $days; $i++) { $time_start = strtotime("+ ".$i."day", $start_stamp); $time_end = strtotime("+ ".$i."day", $start_stamp) + 86399; $dates[] = date('m-d', $time_end); $echarts_count[] = Db::name('user') ->where('create_time', '<=', $time_end) ->where('del', 0) ->count(); $echarts_new[] = Db::name('user') ->where('create_time', 'between', [$time_start, $time_end]) ->where('del', 0) ->count(); } return [ 'count' => $echarts_count, 'new' => $echarts_new, 'days' => $dates, ]; } /** * Notes: 商品统计 * @param $post * @author 竹 * @return array */ public static function goods($post) { $timeData = self::timeData(); if (isset($post['days']) && $post['days'] == 'today') { $goods_click_today = Db::name('goods_click') ->whereTime('create_time', 'today') ->count(); $goods_sale_today = Db::name('order') ->where(['pay_status' => Pay::ISPAID, 'refund_status' => OrderGoods::REFUND_STATUS_NO]) ->whereTime('create_time', 'today') ->sum('total_num'); $goods_collect_today = Db::name('goods_collect') ->whereTime('create_time', 'today') ->count(); return [ 'start' => $timeData['start_today'], 'end' => $timeData['end_today'], 'goods_click' => $goods_click_today, 'goods_sale' => $goods_sale_today, 'goods_collect' => $goods_collect_today, 'start_seven' => $timeData['start_seven'], 'end_seven' => $timeData['end_seven'], ]; } if (isset($post['days']) && $post['days'] == 'ago_seven') { $goods_click_seven = Db::name('goods_click') ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->count(); $goods_sale_seven = Db::name('order') ->where(['pay_status' => Pay::ISPAID, 'refund_status' => OrderGoods::REFUND_STATUS_NO]) ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->sum('total_num'); $goods_collect_seven = Db::name('goods_collect') ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->count(); return [ 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'], 'goods_click' => $goods_click_seven, 'goods_sale' => $goods_sale_seven, 'goods_collect' => $goods_collect_seven ]; } if (isset($post['days']) && $post['days'] == 'ago_fifteen') { $goods_click_fifteen = Db::name('goods_click') ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->count(); $goods_sale_fifteen = Db::name('order') ->where(['pay_status' => Pay::ISPAID, 'refund_status' => OrderGoods::REFUND_STATUS_NO]) ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->sum('total_num'); $goods_collect_fifteen = Db::name('goods_collect') ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->count(); return [ 'start' => $timeData['start_fifteen'], 'end' => $timeData['end_fifteen'], 'goods_click' => $goods_click_fifteen, 'goods_sale' => $goods_sale_fifteen, 'goods_collect' => $goods_collect_fifteen ]; } if (isset($post['goods']) && $post['goods'] == 'ago_seven') { $echarts_data = self::getGoodsData($timeData['start_s'], 7); return [ 'echarts_goods_click' => $echarts_data['click'], 'echarts_goods_collect' => $echarts_data['collect'], 'echarts_goods_sale' => $echarts_data['sale'], 'days' => $echarts_data['days'], 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'] ]; } if (isset($post['goods']) && $post['goods'] == 'ago_fifteen') { $echarts_data = self::getGoodsData($timeData['start_f'], 15); return [ 'echarts_goods_click' => $echarts_data['click'], 'echarts_goods_collect' => $echarts_data['collect'], 'echarts_goods_sale' => $echarts_data['sale'], 'days' => $echarts_data['days'], 'start' => $timeData['start_fifteen'], 'end' => $timeData['start_fifteen'] ]; } } /** * Notes: 商品图表数据 * @param $end_stamp * @param $days * @author 竹 * @return array */ public static function getGoodsData($start_stamp, $days) { $dates = []; for ($i = 1; $i <= $days; $i++) { $time_start = strtotime("+ ".$i."day", $start_stamp); $time_end = strtotime("+ ".$i."day", $start_stamp) + 86399; $dates[] = date('m-d', $time_end); //7天每天商品浏览量 $echarts_goods_click[] = Db::name('goods_click') ->where('create_time', 'between', [$time_start, $time_end]) ->count(); //7天每天商品收藏量 $echarts_goods_collect[] = Db::name('goods_collect') ->where('create_time', 'between', [$time_start, $time_end]) ->count(); //7天每天商品销量 $echarts_goods_sale[] = Db::name('order') ->where(['pay_status' => Pay::ISPAID, 'refund_status' => OrderGoods::REFUND_STATUS_NO]) ->where('create_time', 'between', [$time_start, $time_end]) ->sum('total_num'); } return [ 'click' => $echarts_goods_click, 'collect' => $echarts_goods_collect, 'sale' => $echarts_goods_sale, 'days' => $dates, ]; } /** * Notes: 交易统计 * @param $post * @author 竹 * @return array */ public static function deal($post) { $timeData = self::timeData(); if (isset($post['days']) && $post['days'] == 'today') { //订单金额 $order_amount_today = Db::name('order') ->where('del', 0) ->whereTime('create_time', 'today') ->sum('order_amount'); //订单数量 $order_num_today = Db::name('order') ->where('del', 0) ->whereTime('create_time', 'today') ->count(); //商家售后单数量 $after_num_today = Db::name('after_sale') ->where('del', 0) ->whereTime('create_time', 'today') ->count(); return [ 'start' => $timeData['start_today'], 'end' => $timeData['end_today'], 'start_seven' => $timeData['start_seven'], 'end_seven' => $timeData['end_seven'], 'order_amount' => $order_amount_today, 'order_num' => $order_num_today, 'after_num' => $after_num_today ]; } if (isset($post['days']) && $post['days'] == 'ago_seven') { //订单金额 $order_amount_seven = Db::name('order') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->sum('order_amount'); //订单数量 $order_num_seven = Db::name('order') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->count(); //商家售后单数量 $after_num_seven = Db::name('after_sale') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->count(); return [ 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'], 'order_amount' => $order_amount_seven, 'order_num' => $order_num_seven, 'after_num' => $after_num_seven ]; } if (isset($post['days']) && $post['days'] == 'ago_fifteen') { //订单金额 $order_amount_fifteen = Db::name('order') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->sum('order_amount'); //订单数量 $order_num_fifteen = Db::name('order') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->count(); //商家售后单数量 $after_num_fifteen = Db::name('after_sale') ->where('del', 0) ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->count(); return [ 'start' => $timeData['start_fifteen'], 'end' => $timeData['end_fifteen'], 'order_amount' => $order_amount_fifteen, 'order_num' => $order_num_fifteen, 'after_num' => $after_num_fifteen ]; } if (isset($post['deal']) && $post['deal'] == 'ago_seven') { $echarts_data = self::getDealData($timeData['start_s'], 7); return [ 'echarts_order_amount' => $echarts_data['amount'], 'echarts_order_num' => $echarts_data['num'], 'echarts_after_num' => $echarts_data['after'], 'days' => $echarts_data['days'], 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'] ]; } if (isset($post['deal']) && $post['deal'] == 'ago_fifteen') { $echarts_data = self::getDealData($timeData['start_f'], 15); return [ 'echarts_order_amount' => $echarts_data['amount'], 'echarts_order_num' => $echarts_data['num'], 'echarts_after_num' => $echarts_data['after'], 'days' => $echarts_data['days'], 'start' => $timeData['start_fifteen'], 'end' => $timeData['end_fifteen'] ]; } } /** * Notes: 交易数据 * @param $end_stamp * @param $days * @author 竹 * @return array */ public static function getDealData($start_stamp, $days) { $dates = []; for ($i = 1; $i <= $days; $i++) { $time_start = strtotime("+ ".$i."day", $start_stamp); $time_end = strtotime("+ ".$i."day", $start_stamp) + 86399; $dates[] = date('m-d', $time_end); //每天订单金额 $echarts_order_amount[] = Db::name('order') ->where('create_time', 'between', [$time_start, $time_end]) ->sum('order_amount'); //每天订单数量 $echarts_order_num[] = Db::name('order') ->where('create_time', 'between', [$time_start, $time_end]) ->count(); //每天售后量 $echarts_after_num[] = Db::name('after_sale') ->where('create_time', 'between', [$time_start, $time_end]) ->count(); } return [ 'amount' => $echarts_order_amount, 'num' => $echarts_order_num, 'after' => $echarts_after_num, 'days' => $dates, ]; } /** * Notes: 访问统计 * @param $post * @author 竹 * @return array */ public static function visit($post) { $timeData = self::timeData(); if (isset($post['days']) && $post['days'] == 'today') { $goods_click_today = Db::name('goods_click') ->whereTime('create_time', 'today') ->count(); $user_click_today = Db::name('stat') ->whereTime('create_time', 'today') ->count(); return [ 'start' => $timeData['start_today'], 'end' => $timeData['end_today'], 'goods_click' => $goods_click_today, 'user_click' => $user_click_today, 'start_seven' => $timeData['start_seven'], 'end_seven' => $timeData['end_seven'], ]; } if (isset($post['days']) && $post['days'] == 'ago_seven') { $goods_click_seven = Db::name('goods_click') ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->count(); $user_click_seven = Db::name('stat') ->where('create_time', 'between', [$timeData['start_s'], $timeData['end_s']]) ->count(); return [ 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'], 'goods_click' => $goods_click_seven, 'user_click' => $user_click_seven ]; } if (isset($post['days']) && $post['days'] == 'ago_fifteen') { $goods_click_fifteen = Db::name('goods_click') ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->count(); $user_click_fifteen = Db::name('stat') ->where('create_time', 'between', [$timeData['start_f'], $timeData['end_f']]) ->count(); return [ 'start' => $timeData['start_fifteen'], 'end' => $timeData['end_fifteen'], 'goods_click' => $goods_click_fifteen, 'user_click' => $user_click_fifteen ]; } if (isset($post['goods']) && $post['goods'] == 'ago_seven') { $echarts_data = self::getVisitData($timeData['start_s'], 7); return [ 'echarts_goods_click' => $echarts_data['goods'], 'echarts_user_click' => $echarts_data['user'], 'days' => $echarts_data['days'], 'start' => $timeData['start_seven'], 'end' => $timeData['end_seven'], ]; } if (isset($post['goods']) && $post['goods'] == 'ago_fifteen') { $echarts_data = self::getVisitData($timeData['start_f'], 15); return [ 'echarts_goods_click' => $echarts_data['goods'], 'echarts_user_click' => $echarts_data['user'], 'days' => $echarts_data['days'], 'start' => $timeData['start_fifteen'], 'end' => $timeData['end_fifteen'], ]; } } /** * Notes: 访问统计数据 * @param $end_stamp * @param $days * @author 竹 * @return array */ public static function getVisitData($start_stamp, $days) { $dates = []; for ($i = 1; $i <= $days; $i++) { $time_start = strtotime("+ ".$i."day", $start_stamp); $time_end = strtotime("+ ".$i."day", $start_stamp) + 86399; $dates[] = date('m-d', $time_end); //每天商品浏览量 $echarts_goods_click[] = Db::name('goods_click') ->where('create_time', 'between', [$time_start, $time_end]) ->count(); //每天用户浏览量 $echarts_user_click[] = Db::name('stat') ->where('create_time', 'between', [$time_start, $time_end]) ->count(); } return [ 'goods' => $echarts_goods_click, 'user' => $echarts_user_click, 'days' => $dates, ]; } }