// 客房销售量趋势 时间字端是时间戳的
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;
}
统计图接口代码
最新推荐文章于 2024-05-16 16:04:04 发布