<?php

namespace App\Modules\Book\Models;

use DB;
use Illuminate\Database\Eloquent\Model;

class BookSearchStat extends Model
{
    protected $table = 'book_search_stats';

    protected $fillable = ['uid', 'openid', 'type', 'content'];

    static function getInfo($params, $is_all = false)
    {
        \Log::info($params);
        $search_obj = self::select(
            'content',
            DB::raw('count(distinct uid) user_num'),
            DB::raw('count(*) search_num'));

        if (isset($params['begin_time']) && $params['begin_time']) {
            $search_obj->where('created_at', '>=', $params['begin_time']);
        }

        if (isset($params['end_time']) && $params['end_time']) {
            $search_obj->where('created_at', '<=', $params['end_time'] . ' 23:59:59');
        }

        if (isset($params['type']) && $params['type']) {
            $search_obj->where('type', $params['type']);
        }

        $search_obj->orderBy(DB::raw('count(*)'), 'desc');
        $search_obj->groupBy('content');

        \Log::info($search_obj->toSql());
        if ($is_all) {
            return $search_obj->get();
        } else {
            return $search_obj->paginate();
        }
    }
}