超管后台 - 添加管理员返工

This commit is contained in:
柳清爽
2025-04-17 17:15:21 +08:00
parent 49900ba9cb
commit 4f838149e9
4 changed files with 184 additions and 24 deletions

View File

@@ -5,6 +5,7 @@ namespace app\superadmin\controller\administrator;
use app\common\model\Administrator as AdministratorModel;
use app\common\model\AdministratorPermissions as AdministratorPermissionsModel;
use app\superadmin\controller\BaseController;
use think\Db;
use think\Validate;
/**
@@ -80,8 +81,8 @@ class UpdateAdministratorController extends BaseController
/**
* 保存管理员权限
*
* @param int $adminId 管理员ID
* @param array $permissionIds 权限ID数组
* @param int $adminId
* @param array $permissionIds
* @return bool
*/
protected function savePermissions(int $adminId, array $permissionIds)
@@ -97,7 +98,7 @@ class UpdateAdministratorController extends BaseController
'permissions' => json_encode($permissionData),
]);
} else {
return self::create([
return AdministratorPermissionsModel::create([
'adminId' => $adminId,
'permissions' => json_encode($permissionData),
]);
@@ -117,21 +118,29 @@ class UpdateAdministratorController extends BaseController
// 被修改的管理员id
$adminId = $params['id'] ?? 0;
$this->dataValidate($params)->checkPermission($adminId)->udpateAdministrator($params);
$this->dataValidate($params)->checkPermission($adminId);
Db::startTrans();
$this->udpateAdministrator($params);
// 如果当前是超级管理员(ID为1),并且修改的不是自己,则更新权限
if ($this->getAdminInfo('id') == 1
&& $this->getAdminInfo('id') != $adminId
&& !empty($permissionIds)
&& !empty($params['permissionIds'])
) {
$this->savePermissions($adminId);
$this->savePermissions($adminId, $params['permissionIds']);
}
Db::commit();
return json([
'code' => 200,
'msg' => '更新成功',
]);
} catch (\Exception $e) {
Db::rollback();
return json([
'code' => $e->getCode(),
'msg' => $e->getMessage()