perf: 通讯录显示部门负责人

This commit is contained in:
kuaifan
2023-03-04 12:27:09 +08:00
parent 20e236d429
commit ba3eb7f27c
4 changed files with 78 additions and 11 deletions

View File

@@ -460,7 +460,13 @@ class UsersController extends AbstractController
*/
public function search()
{
$builder = User::select(User::$basicField);
$user = User::auth();
//
$columns = User::$basicField;
if ($user->isAdmin()) {
$columns[] = 'identity';
}
$builder = User::select($columns);
//
$keys = Request::input('keys');
$sorts = Request::input('sorts');
@@ -513,12 +519,25 @@ class UsersController extends AbstractController
$list = $builder->orderBy('userid')->take(Base::getPaginate(100, 10, 'take'))->get();
}
//
if ($state === 1) {
$list->transform(function (User $userInfo) {
$userInfo->online = $userInfo->getOnlineStatus();
return $userInfo;
$list->transform(function (User $userInfo) use ($state) {
$tags = [];
$dep = $userInfo->getDepartmentName();
$dep = array_filter(explode(",", $dep), function($item) {
return preg_match("/\(M\)$/", $item);
});
}
if ($dep) {
$tags[] = preg_replace("/\(M\)$/", "", $dep[0]) . " " . Base::Lang("负责人");
}
if ($userInfo->isTemp()) {
$tags[] = Base::Lang("临时");
}
$userInfo->tags = $tags;
//
if ($state === 1) {
$userInfo->online = $userInfo->getOnlineStatus();
}
return $userInfo;
});
return Base::retSuccess('success', $list);
}
@@ -1365,6 +1384,12 @@ class UsersController extends AbstractController
if (mb_strlen($name) < 2 || mb_strlen($name) > 20) {
return Base::retError('部门名称长度限制2-20个字');
}
if (preg_match('/[\Q~!@#$%^&*()+-_=.:?<>,\E]/', $name)) {
return Base::retError('部门名称不能包含特殊符号');
}
if (str_contains($name, '(M)')) {
return Base::retError('部门名称不能包含:(M)');
}
//
if ($id > 0) {
$userDepartment = UserDepartment::find($id);