'timestamp', ]; /** * 数据表主键 * @var string */ protected $pk = 'uid'; /** * 模型名称 * @var string */ protected $name = 'sys_user'; /** * 定义软删除标记字段 * @var string */ protected $deleteTime = 'delete_time'; /** * 定义软删除字段的默认值 * @var int */ protected $defaultSoftDelete = 0; public function userrole() { return $this->hasOne(SysUserRole::class, 'uid', 'uid')->joinType('inner'); } /** * 权限组 * @return HasMany */ public function roles() { return $this->hasMany(SysUserRole::class, 'uid', 'uid'); } public function getCreateTimeAttr($value, $data) { return $data['create_time'] ? get_date_by_time($data['create_time']) : ''; } /** * 账号搜索器 * @param $query * @param $value */ public function searchUsernameAttr($query, $value) { if ($value) { $query->whereLike('username', '%' . $value . '%'); } } /** * 用户实际姓名搜索器 * @param $query * @param $value */ public function searchRealnameAttr($query, $value) { if ($value) { $query->whereLike('real_name', '%' . $value . '%'); } } /** * 角色状态 * @param $value * @param $data * @return string */ public function getStatusNameAttr($value, $data) { if (empty($data['status'])) return ''; return RoleStatusDict::getStatus()[$data['status']] ?? ''; } /** * 是否删除搜索器 * @param $query */ public function searchIsDelAttr($query) { $query->where('is_del', 0); } /** * 创建时间搜索器 * @param $query * @param $value * @param $data */ public function searchCreateTimeAttr($query, $value, $data) { $start_time = empty($value[0]) ? 0 : strtotime($value[0]); $end_time = empty($value[1]) ? 0 : strtotime($value[1]); if ($start_time > 0 && $end_time > 0) { $query->whereBetweenTime('sys_user.create_time', $start_time, $end_time); } else if ($start_time > 0 && $end_time == 0) { $query->where([['sys_user.create_time', '>=', $start_time]]); } else if ($start_time == 0 && $end_time > 0) { $query->where([['sys_user.create_time', '<=', $end_time]]); } } }