Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kanyxmo
MineAdmin
提交
d47c7682
M
MineAdmin
项目概览
kanyxmo
/
MineAdmin
9 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
MineAdmin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d47c7682
编写于
5月 21, 2023
作者:
kanyxmo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 修复用户列表在查询部门用户的情况下子部门出现重复数据问题
上级
9c694520
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
13 deletion
+14
-13
app/System/Mapper/SystemUserMapper.php
app/System/Mapper/SystemUserMapper.php
+14
-13
未找到文件。
app/System/Mapper/SystemUserMapper.php
浏览文件 @
d47c7682
...
...
@@ -7,6 +7,7 @@ use App\System\Model\SystemDept;
use
App\System\Model\SystemUser
;
use
Hyperf\Database\Model\Builder
;
use
Hyperf\Database\Model\ModelNotFoundException
;
use
Hyperf\DbConnection\Db
;
use
Mine\Abstracts\AbstractMapper
;
use
Mine\Annotation\Transaction
;
use
Mine\MineModel
;
...
...
@@ -147,19 +148,19 @@ class SystemUserMapper extends AbstractMapper
*/
public
function
handleSearch
(
Builder
$query
,
array
$params
):
Builder
{
if
(
!
empty
(
$params
[
'dept_id'
]))
{
$
dept_ids
=
$params
[
'dept_id'
];
if
(
is_string
(
$dept_ids
))
{
$dept_ids
=
explode
(
','
,
$dept_ids
);
}
$dept_ids
=
array_unique
(
$dept_ids
);
$query
->
join
(
'system_user_dept as sud'
,
'system_user.id'
,
'='
,
'sud.user_id'
);
$query
->
join
(
'system_dept as sd'
,
'sud.dept_id'
,
'='
,
'sd.id'
);
$query
->
where
(
function
(
$query
)
use
(
$dept_ids
)
{
foreach
(
$dept_ids
as
$dept_id
)
{
$query
->
orWhereRaw
(
"sd.id = '
{
$dept_id
}
' OR FIND_IN_SET('
{
$dept_id
}
', `level`)"
);
}
}
);
if
(
!
empty
(
$params
[
'dept_id'
])
&&
is_string
(
$params
[
'dept_id'
])
)
{
$
query
->
selectRaw
(
Db
::
raw
(
'DISTINCT system_user.*'
))
->
join
(
'system_user_dept as dept'
,
'system_user.id'
,
'='
,
'dept.user_id'
)
->
whereIn
(
'dept.dept_id'
,
SystemDept
::
query
()
->
where
(
function
(
$query
)
use
(
$params
)
{
$query
->
where
(
'id'
,
'='
,
$params
[
'dept_id'
])
->
orWhere
(
'level'
,
'like'
,
$params
[
'dept_id'
]
.
',%'
)
->
orWhere
(
'level'
,
'like'
,
'%,'
.
$params
[
'dept_id'
])
->
orWhere
(
'level'
,
'like'
,
'%,'
.
$params
[
'dept_id'
]
.
',%'
);
})
->
pluck
(
'id'
)
->
toArray
()
);
}
if
(
isset
(
$params
[
'username'
]))
{
$query
->
where
(
'username'
,
'like'
,
'%'
.
$params
[
'username'
]
.
'%'
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录