Files
dafuweng-saiadmin6.x/server/plugin/saiadmin/app/model/system/SystemUser.php
zhenhui dd264b1e97 1.将部门修改为渠道,并且所有dice_表关联渠道表
2.将所有配置表,记录表设置关联渠道
3.优化后台页面设置
2026-05-19 09:49:02 +08:00

109 lines
2.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
// +----------------------------------------------------------------------
// | saiadmin [ saiadmin快速开发框架 ]
// +----------------------------------------------------------------------
// | Author: sai <1430792918@qq.com>
// +----------------------------------------------------------------------
namespace plugin\saiadmin\app\model\system;
use plugin\saiadmin\basic\think\BaseModel;
/**
* 用户信息模型
*
* sa_system_user 用户表
*
* @property $id
* @property $agent_id 代理标识md5(id)唯一
* @property $username 登录账号
* @property $password 加密密码
* @property $realname 真实姓名
* @property $gender 性别
* @property $avatar 头像
* @property $email 邮箱
* @property $phone 手机号
* @property $signed 个性签名
* @property $dashboard 工作台
* @property $dept_id 主归属渠道
* @property $is_super 是否超级管理员: 1是
* @property $status 状态: 1启用, 2禁用
* @property $remark 备注
* @property $login_time 最后登录时间
* @property $login_ip 最后登录IP
* @property $created_by 创建者
* @property $updated_by 更新者
* @property $create_time 创建时间
* @property $update_time 修改时间
*/
class SystemUser extends BaseModel
{
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 数据表完整名称
* @var string
*/
protected $table = 'sa_system_user';
/**
* 插入后:自动填充 agent_id = md5(id),保证唯一
*/
public static function onAfterInsert($model): void
{
$id = $model->getAttr('id');
if ($id !== null && $id !== '') {
$agentId = md5((string) $id);
(new static())->where('id', $id)->update(['agent_id' => $agentId]);
}
}
/**
* 获取 agent_id若未存储则返回 md5(id)
*/
public function getAgentIdAttr($value, $data)
{
if ($value !== null && $value !== '') {
return $value;
}
$id = $data['id'] ?? null;
return $id !== null ? md5((string) $id) : '';
}
public function searchKeywordAttr($query, $value)
{
if ($value) {
$query->where('username|realname|phone', 'like', '%' . $value . '%');
}
}
/**
* 权限范围 - 过滤同渠道用户
*/
public function scopeAuth($query, $value)
{
if (!empty($value) && isset($value['id'])) {
$query->where('dept_id', $value['id']);
}
}
/**
* 通过中间表关联角色
*/
public function roles()
{
return $this->belongsToMany(SystemRole::class, SystemUserRole::class, 'role_id', 'user_id');
}
/**
* 关联渠道
*/
public function depts()
{
return $this->belongsTo(SystemDept::class, 'dept_id', 'id');
}
}