新增搜索器
This commit is contained in:
parent
be02170697
commit
3e0717c339
@ -1 +1,20 @@
|
|||||||
<?php
|
<?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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace catchAdmin\user\model;
|
namespace catchAdmin\user\model;
|
||||||
|
|
||||||
|
use catchAdmin\permissions\model\Department;
|
||||||
use catchAdmin\permissions\model\HasJobsTrait;
|
use catchAdmin\permissions\model\HasJobsTrait;
|
||||||
use catchAdmin\permissions\model\HasRolesTrait;
|
use catchAdmin\permissions\model\HasRolesTrait;
|
||||||
use catcher\base\CatchModel;
|
use catcher\base\CatchModel;
|
||||||
|
use catcher\Utils;
|
||||||
|
|
||||||
class Users extends CatchModel
|
class Users extends CatchModel
|
||||||
{
|
{
|
||||||
use HasRolesTrait;
|
use HasRolesTrait;
|
||||||
use HasJobsTrait;
|
use HasJobsTrait;
|
||||||
|
use UserSearch;
|
||||||
|
|
||||||
protected $name = 'users';
|
protected $name = 'users';
|
||||||
|
|
||||||
@ -17,8 +20,8 @@ class Users extends CatchModel
|
|||||||
'username', // 用户名
|
'username', // 用户名
|
||||||
'password', // 用户密码
|
'password', // 用户密码
|
||||||
'email', // 邮箱 登录
|
'email', // 邮箱 登录
|
||||||
'creator_id', // 创建者ID
|
'creator_id', // 创建者ID
|
||||||
'department_id', // 部门ID
|
'department_id', // 部门ID
|
||||||
'status', // 用户状态 1 正常 2 禁用
|
'status', // 用户状态 1 正常 2 禁用
|
||||||
'last_login_ip', // 最后登录IP
|
'last_login_ip', // 最后登录IP
|
||||||
'last_login_time', // 最后登录时间
|
'last_login_time', // 最后登录时间
|
||||||
@ -51,17 +54,10 @@ class Users extends CatchModel
|
|||||||
public function getList($search): \think\Paginator
|
public function getList($search): \think\Paginator
|
||||||
{
|
{
|
||||||
return (($search['trash'] ?? false) ? static::onlyTrashed() : $this)
|
return (($search['trash'] ?? false) ? static::onlyTrashed() : $this)
|
||||||
->field(['id', 'username', 'email', 'status','last_login_time','last_login_ip', 'department_id','created_at', 'updated_at'])
|
->withoutField(['updated_at'], true)
|
||||||
->when($search['username'] ?? false, function ($query) use ($search){
|
->catchSearch()
|
||||||
$query->whereLike('username', '%' . $search['username'] . '%');
|
->catchLeftJoin(Department::class, 'id', 'department_id', ['department_name'])
|
||||||
})
|
->order('users.id', 'desc')
|
||||||
->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')
|
|
||||||
->paginate($search['limit'] ?? $this->limit);
|
->paginate($search['limit'] ?? $this->limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user