Files
bsh_sample/app/admin/logic/UserLogic.php
T

94 lines
2.6 KiB
PHP
Raw Normal View History

2025-12-08 17:37:34 +08:00
<?php
namespace app\admin\logic;
use app\common\traits\crud\CrudLogicTrait;
use app\common\model\User;
use support\Db;
class UserLogic
{
use CrudLogicTrait;
/**
* 指定当前要操作的模型
*/
protected string $modelClass = User::class;
public function updateRoleAndSystem(array $data): bool
{
$roleIds = $data['role_ids'] ?? [];
$systemIds = $data['system_ids'] ?? [];
$userId = $data['user_id'] ?? 0;
Db::beginTransaction();
try {
Db::table('user_roles')->where('user_id', $userId)->delete();
if (count($roleIds) > 0) {
$insertDataRole = [];
foreach ($roleIds as $roleId) {
$insertDataRole[] = [
'role_id' => $roleId,
'user_id' => $userId
];
}
$res = Db::table('user_roles')->insert($insertDataRole);
var_dump($res);
}
Db::table('user_systems')->where('user_id', $userId)->delete();
if (count($systemIds) > 0) {
$insertDataSystem = [];
foreach ($systemIds as $systemId) {
$insertDataSystem[] = [
'system_id' => $systemId,
'user_id' => $userId
];
}
Db::table('user_systems')->insert($insertDataSystem);
}
Db::commit();
return true;
} catch (\Throwable $exception) {
Db::rollBack();
return false;
}
}
public function updateUserResources(array $data): bool
{
$userId = $data['user_id'] ?? 0;
$resources = $data['resources'] ?? [];
if (empty($userId)) {
return false;
}
Db::beginTransaction();
try {
// 删除原有资源关联
Db::table('user_resources')->where('user_id', $userId)->delete();
// 批量插入新角色资源关联
if (!empty($resources)) {
$insertData = [];
foreach ($resources as $resourceId) {
$insertData[] = [
'user_id' => $userId,
'resource_id' => $resourceId
];
}
Db::table('user_resources')->insert($insertData);
}
Db::commit();
return true;
} catch (\Throwable $exception) {
Db::rollBack();
return false;
}
}
}