| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | <?phpnamespace App\Repositories;use App\Models\SysMessage;use Prettus\Repository\Eloquent\BaseRepository;use Prettus\Repository\Criteria\RequestCriteria;/** * Class SysMessageRepository. * * @package namespace App\Repositories; */class SysMessageRepository extends BaseRepository{    /**     * Specify Model class name     *     * @return string     */    public function model()    {        return SysMessage::class;    }    //获取最新消息记录    public function getNewestSysMessage($where, $subsite_id)    {        //return $this->model->whereRaw($where)->orderBy('created_at', 'desc')->first();        return $this->model->whereHas('subsites', function ($query) use ($subsite_id) {            $query->where('subsite_id', $subsite_id);}        )->whereRaw($where)->orderBy('created_at', 'desc')->first();    }    public function getSysMessages($where, $whereIn = array(), $subsite_id = 0)    {        /*        if ($whereIn) {            reset($whereIn);            return $this->model->where($where)->whereIn(key($whereIn), $whereIn[key($whereIn)])->get();        } else {            return $this->model->where($where)->get();        }        */        $rst = $this->model->whereHas('subsites', function ($query) use ($subsite_id) {$query->where('subsite_id', $subsite_id);})->where($where);        if ($whereIn && is_array($whereIn)) {            foreach ($whereIn as $k => $v) {                $rst->whereIn($k, $v);            }        }        return $rst->get();    }    public function getFilterMessages($where, $subsite_id = 0)    {        return $this->model->whereHas('subsites', function ($query) use ($subsite_id) {$query->where('subsite_id', $subsite_id);})->whereRaw($where)->get();    }}
 |