统计图接口代码

 // 客房销售量趋势 时间字端是时间戳的
    public function hotelTrend()
    {
        if ($this->request->isPost()) {
            $start_range = date('Y-m-d 00:00:00', strtotime('-6 days'));
            $end_range = date('Y-m-d 23:59:59');
            $weeks = getDateRange($start_range, $end_range);
            $start_time = strtotime($weeks[0] . ' 00:00:00');
            $end_time = strtotime($weeks[count($weeks) - 1] . ' 23:59:59');
            $field = 'FROM_UNIXTIME(create_time,\'%Y-%m-%d\') as time';
            $field .= ',count(*) as orderAll';
            $sssdata = model('OrderHotel')->where([['create_time', 'BETWEEN', [$start_time, $end_time]]])
                ->field($field)
                ->group('time')
                ->select();
            $categoryData = [];
            foreach ($weeks as $key => $val) {
                $categoryData[$key] = 0;
                if ($sssdata) {
                    foreach ($sssdata as $k => $v) {
                        if ($v['time'] == $val) {
                            $categoryData[$key] = $v['orderAll'];
                        }
                    }
                }
            }
            return __success('查询成功', ['category' => $weeks, 'num' => $categoryData]);
        } else {
            return __error('非法请求!');
        }
    }
 // 客房销售量趋势 时间字端是时间格式的
     public function hotelTrenddd()
    {
        if ($this->request->isPost()) {
            $start_range = date('Y-m-d 00:00:00', strtotime('-6 days'));
            $end_range = date('Y-m-d 23:59:59');
            $weeks = getDateRange($start_range, $end_range);
            $start_time = $weeks[0] . ' 00:00:00';
            $end_time = $weeks[count($weeks) - 1] . ' 23:59:59';
            $field = 'DATE_FORMAT(create_at,\'%Y-%m-%d\') as time';
            $field .= ',count(*) as orderAll';
            $sssdata = model('OrderHotel')->where([['create_at', 'BETWEEN', [$start_time, $end_time]]])
                ->field($field)
                ->group('time')
                ->select();
            $categoryData = [];
            foreach ($weeks as $key => $val) {
                $categoryData[$key] = 0;
                if ($sssdata) {
                    foreach ($sssdata as $k => $v) {
                        if ($v['time'] == $val) {
                            $categoryData[$key] = $v['orderAll'];
                        }
                    }
                }
            }
            return __success('查询成功', ['category' => $weeks, 'num' => $categoryData]);
        } else {
            return __error('非法请求!');
        }
    }

      /**
     * 获取指定日期段内每一天的日期
     * @param Date $startdate 开始日期
     * @param Date $enddate 结束日期
     * @return Array
     */
 function getDateRange($startdate, $enddate)
    {
        $stimestamp = strtotime($startdate);
        $etimestamp = strtotime($enddate);
        // 计算日期段内有多少天
        $days = (int) (($etimestamp - $stimestamp) / 86400) + 1;
        // 保存每天日期
        $date = [];
        for ($i = 0; $i < $days; $i++) {
            $date[] = date('Y-m-d', $stimestamp + (86400 * $i));
        }
        // unset($date[$days-1]);
        return $date;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值