Commit 9a02e09c by 杨树贤

优化展示

parent b2f59072
Showing with 51 additions and 2 deletions
......@@ -121,6 +121,13 @@ class IntracodeModel extends Model
//获取采购员和对应的编码
public function getChannelUsersEncode($includeResign = true)
{
$redis = new RedisModel();
$cacheKey = 'ChannelUsersEncode_' . $includeResign;
$result = json_decode($redis->get($cacheKey), true);
if ($result) {
return $result;
}
$departmentService = new DepartmentService();
//市场部
$usersMarket = $departmentService->getUserByDepartmentId(4);
......@@ -133,14 +140,56 @@ class IntracodeModel extends Model
$users = array_merge(array_merge($usersMarket, $usersOperation), $userChannel);
$userIds = array_column($users, 'userId');
$users = $this->getEncodeByUserIds($userIds, $includeResign);
// 获取用户的部门信息
$userDepartmentMap = $departmentService->getDepartmentNameMapByUserIds($userIds);
$userIdToDepartmentId = UserInfoModel::whereIn('userId', $userIds)->pluck('department_id', 'userId')->toArray();
$departmentIds = array_unique(array_values($userIdToDepartmentId));
// 获取部门及其父级部门信息
$departmentInfo = [];
foreach ($departmentIds as $deptId) {
$dept = DepartmentModel::where('department_id', $deptId)->first();
if ($dept) {
$parentName = '';
if ($dept->parent_id > 0) {
$parentDept = DepartmentModel::where('department_id', $dept->parent_id)->first();
$parentName = $parentDept ? $parentDept->department_name : '';
}
$departmentInfo[$deptId] = [
'name' => $dept->department_name,
'parent_name' => $parentName,
];
}
}
$result = [];
foreach ($users as $code) {
$userId = $code['admin_id'];
$deptId = isset($userIdToDepartmentId[$userId]) ? $userIdToDepartmentId[$userId] : 0;
// 构建部门显示字符串
$deptStr = '';
if ($deptId && isset($departmentInfo[$deptId])) {
$dept = $departmentInfo[$deptId];
if ($dept['parent_name']) {
$deptStr = ' - ' . $dept['parent_name'] . '/' . $dept['name'];
} else {
$deptStr = ' - ' . $dept['name'];
}
}
if ($code['status'] == 0) {
$result[$code['code_id']] = $code['name'] . '(' . $code['code_id'] . ')';
$result[$code['code_id']] = $code['name'] . '(' . $code['code_id'] . ')' . $deptStr;
} else {
$result[$code['code_id']] = $code['name'] . '(' . $code['code_id'] . ')' . ' (已离职)';
$result[$code['code_id']] = $code['name'] . '(' . $code['code_id'] . ')' . $deptStr . ' (已离职)';
}
}
// 缓存1分钟
$redis->set($cacheKey, json_encode($result));
$redis->expire($cacheKey, 60);
return $result;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment