From 66c8a4db235f6b2b14d1214bdc9853167f3243fa Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 21 Nov 2022 14:00:19 +0800 Subject: [PATCH] no message --- app/Http/Controllers/Api/DialogController.php | 2 +- app/Http/Controllers/Api/ReportController.php | 2 +- app/Http/Controllers/Api/UsersController.php | 9 ++++-- app/Models/User.php | 30 ++++++++++++++----- app/Models/UserDelete.php | 5 ++-- app/Module/Base.php | 11 +++---- ...4_26_110223_project_logs_record_userid.php | 2 +- .../manage/components/TeamManagement.vue | 8 ++--- 8 files changed, 45 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index dbabc024d..49c8570e5 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -503,7 +503,7 @@ class DialogController extends AbstractController $user = User::auth(); // $id = Request::input('id'); - $ids = Base::arrayRetainInt(is_array($id) ? $id : Base::explodeInt($id)); + $ids = Base::explodeInt($id); // WebSocketDialogMsg::whereIn('id', $ids)->chunkById(20, function($list) use ($user) { /** @var WebSocketDialogMsg $item */ diff --git a/app/Http/Controllers/Api/ReportController.php b/app/Http/Controllers/Api/ReportController.php index 22ab48cdb..663f34d09 100755 --- a/app/Http/Controllers/Api/ReportController.php +++ b/app/Http/Controllers/Api/ReportController.php @@ -497,7 +497,7 @@ class ReportController extends AbstractController } if (is_string($ids)) { - $ids = explode(",", $ids); + $ids = Base::explodeInt($ids); } $data = Report::with(["receivesUser" => function (BelongsToMany $query) use ($user) { diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index b4e9ef37e..087508052 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -214,6 +214,7 @@ class UsersController extends AbstractController { "userid": 1, "identity": [ ], + "department": [ ], "az": "", "email": "admin@admin.com", "nickname": "admin", @@ -234,6 +235,7 @@ class UsersController extends AbstractController // $data = $user->toArray(); $data['nickname_original'] = $user->getRawOriginal('nickname'); + $data['department_name'] = $user->getDepartmentName(); return Base::retSuccess('success', $data); } @@ -638,6 +640,9 @@ class UsersController extends AbstractController if (!is_array($data['department'])) { $data['department'] = []; } + if (count($data['department']) > 10) { + return Base::retError('最多只可加入10个部门'); + } foreach ($data['department'] as $id) { if (!UserDepartment::whereId($id)->exists()) { return Base::retError('修改部门不存在'); @@ -791,7 +796,7 @@ class UsersController extends AbstractController * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息(错误描述) - * @apiSuccess {Object} data 返回数据(同"获取我的信息"接口) + * @apiSuccess {Object} data 返回数据 */ public function email__verification() { @@ -839,7 +844,7 @@ class UsersController extends AbstractController * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息(错误描述) - * @apiSuccess {Object} data 返回数据(同"获取我的信息"接口) + * @apiSuccess {Object} data 返回数据 */ public function umeng__alias() { diff --git a/app/Models/User.php b/app/Models/User.php index 1117123bf..503c423dd 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -145,7 +145,24 @@ class User extends AbstractModel if (empty($value)) { return []; } - return array_filter(is_array($value) ? $value : explode(",", trim($value, ","))); + return array_filter(is_array($value) ? $value : Base::explodeInt($value)); + } + + /** + * 获取所属部门名称 + * @return string + */ + public function getDepartmentName() + { + if (empty($this->department)) { + return ""; + } + $list = UserDepartment::select(['id', 'owner_userid', 'name'])->whereIn('id', $this->department)->take(10)->get(); + $array = []; + foreach ($list as $item) { + $array[] = $item->name . ($item->owner_userid === $this->userid ? '(M)' : ''); + } + return implode(', ', $array); } /** @@ -213,7 +230,9 @@ class User extends AbstractModel 'userid' => $this->userid, 'email' => $this->email, 'reason' => $reason, - 'cache' => $this->getRawOriginal() + 'cache' => array_merge($this->getRawOriginal(), [ + 'department_name' => $this->getDepartmentName() + ]) ]); $userDelete->save(); // 删除未读 @@ -478,12 +497,7 @@ class User extends AbstractModel $userInfo = self::whereUserid($userid)->select(User::$basicField)->first(); if ($userInfo) { $userInfo->online = $userInfo->getOnlineStatus(); - $departments = []; - $list = UserDepartment::select(['id', 'owner_userid', 'name'])->whereIn('id', $userInfo->department)->get(); - foreach ($list as $item) { - $departments[] = $item->name . ($item->owner_userid === $userid ? '(M)' : ''); - } - $userInfo->department_name = implode(', ', $departments); + $userInfo->department_name = $userInfo->getDepartmentName(); } return $_A["__static_userid2basic_" . $userid] = ($userInfo ?: []); } diff --git a/app/Models/UserDelete.php b/app/Models/UserDelete.php index a3d9dfeac..bb0c21aef 100644 --- a/app/Models/UserDelete.php +++ b/app/Models/UserDelete.php @@ -53,6 +53,8 @@ class UserDelete extends AbstractModel $name = ($value['userid'] - 1) % 21 + 1; $value['userimg'] = url("images/avatar/default_{$name}.png"); } + // 部门 + $value['department'] = array_filter(is_array($value['department']) ? $value['department'] : Base::explodeInt($value['department'])); } return $value; } @@ -69,9 +71,8 @@ class UserDelete extends AbstractModel return null; } $cache = $row->cache; - $cache = array_intersect_key($cache, array_flip(User::$basicField)); + $cache = array_intersect_key($cache, array_flip(array_merge(User::$basicField, ['department_name']))); $cache['delete_at'] = $row->created_at->format($row->dateFormat ?: 'Y-m-d H:i:s'); - $cache['department_name'] = $cache['department'] ? UserDepartment::whereIn('id', $cache['department'])->pluck('name')->implode(',') : ''; return $cache; } } diff --git a/app/Module/Base.php b/app/Module/Base.php index cb392d764..149b65d52 100755 --- a/app/Module/Base.php +++ b/app/Module/Base.php @@ -873,30 +873,31 @@ class Base * 打散字符串,只留为数字的项 * @param $delimiter * @param $string + * @param bool $reInt 是否格式化值 * @return array */ - public static function explodeInt($delimiter, $string = null) + public static function explodeInt($delimiter, $string = null, $reInt = true) { if ($string == null) { $string = $delimiter; $delimiter = ','; } $array = is_array($string) ? $string : explode($delimiter, $string); - return self::arrayRetainInt($array); + return self::arrayRetainInt($array, $reInt); } /** * 数组只保留数字的 * @param $array - * @param bool $int 是否格式化值 + * @param bool $reInt 是否格式化值 * @return array */ - public static function arrayRetainInt($array, $int = false) + public static function arrayRetainInt($array, $reInt = false) { foreach ($array as $k => $v) { if (!is_numeric($v)) { unset($array[$k]); - } elseif ($int === true) { + } elseif ($reInt === true) { $array[$k] = intval($v); } } diff --git a/database/migrations/2022_04_26_110223_project_logs_record_userid.php b/database/migrations/2022_04_26_110223_project_logs_record_userid.php index ef30b5d09..26a1ca535 100644 --- a/database/migrations/2022_04_26_110223_project_logs_record_userid.php +++ b/database/migrations/2022_04_26_110223_project_logs_record_userid.php @@ -25,7 +25,7 @@ class ProjectLogsRecordUserid extends Migration foreach ($lists as $log) { $record = $log->record; if (is_string($record['userid']) && str_contains($record['userid'], ",")) { - $record['userid'] = Base::explodeInt(',', $record['userid']); + $record['userid'] = Base::explodeInt($record['userid']); $log->record = Base::array2json($record); $log->save(); } diff --git a/resources/assets/js/pages/manage/components/TeamManagement.vue b/resources/assets/js/pages/manage/components/TeamManagement.vue index f7e90e816..019dc4aac 100644 --- a/resources/assets/js/pages/manage/components/TeamManagement.vue +++ b/resources/assets/js/pages/manage/components/TeamManagement.vue @@ -199,10 +199,10 @@
{{$L(`正在进行帐号【ID:${departmentEditData.userid},${departmentEditData.nickname}】部门修改。`)}} -
{{departmentEditData.old || '-'}}
+
- @@ -718,7 +718,7 @@ export default { row.department.some(did => { const data = this.departmentList.find(d => d.id == did) if (data) { - departments.push(data.name) + departments.push(data.owner_userid === row.userid ? `${data.name} (${this.$L('负责人')})` : data.name) } }) this.departmentEditData = { @@ -726,7 +726,7 @@ export default { userid: row.userid, nickname: row.nickname, department: row.department.map(id => parseInt(id)), - old: departments.join(", ") + old: departments.join("
") }; this.departmentEditShow = true; break;