新增搜索器

This commit is contained in:
wuyanwen 2020-01-13 21:23:45 +08:00
parent be02170697
commit 3e0717c339
2 changed files with 29 additions and 14 deletions

View File

@ -1 +1,20 @@
<?php
namespace catchAdmin\user\model;
trait UserSearch
{
public function searchUsernameAttr($query, $value, $data)
{
return $query->whereLike('username', $value);
}
public function searchEmailAttr($query, $value, $data)
{
return $query->whereLike($this->aliasField('email'), $value);
}
public function searchStatusAttr($query, $value, $data)
{
return $query->where($this->aliasField('status'), $value);
}
}

View File

@ -1,14 +1,17 @@
<?php
namespace catchAdmin\user\model;
use catchAdmin\permissions\model\Department;
use catchAdmin\permissions\model\HasJobsTrait;
use catchAdmin\permissions\model\HasRolesTrait;
use catcher\base\CatchModel;
use catcher\Utils;
class Users extends CatchModel
{
use HasRolesTrait;
use HasJobsTrait;
use UserSearch;
protected $name = 'users';
@ -51,17 +54,10 @@ class Users extends CatchModel
public function getList($search): \think\Paginator
{
return (($search['trash'] ?? false) ? static::onlyTrashed() : $this)
->field(['id', 'username', 'email', 'status','last_login_time','last_login_ip', 'department_id','created_at', 'updated_at'])
->when($search['username'] ?? false, function ($query) use ($search){
$query->whereLike('username', '%' . $search['username'] . '%');
})
->when($search['email'] ?? false, function ($query) use ($search){
$query->whereLike('email', '%' . $search['email'] . '%');
})
->when($search['status'] ?? false, function ($query) use ($search){
$query->where('status', $search['status']);
})
->order('id', 'desc')
->withoutField(['updated_at'], true)
->catchSearch()
->catchLeftJoin(Department::class, 'id', 'department_id', ['department_name'])
->order('users.id', 'desc')
->paginate($search['limit'] ?? $this->limit);
}