0) { foreach ($data['user_ids'] as $member) { $this->addUserGroupMembers($member, $created->id); } } if ((int)$data['leader_id'] > 0) { $leader = UserGroupMembers::where('user_id', $data['leader_id'])->where('group_id', $created->id)->first(); if ($leader) { $leader->is_leader = 1; $leader->save(); } else { $this->addUserGroupMembers($data['leader_id'], $created->id, 1); } } return $created; } public function updateGroup(UserGroup $userGroup, array $data) { $userGroup->title = $data['title']; $userGroup->sort = $data['sort'] ?? 0; $userGroup->status = $data['status']; $userGroup->scenario_code = $data['scenario_code'] ?? ''; $userGroup->save(); // 删除所有成员 UserGroupMembers::where('group_id', $userGroup->id)->delete(); if (isset($data['user_ids']) && is_array($data['user_ids']) && count($data['user_ids']) > 0) { foreach ($data['user_ids'] as $member) { $this->addUserGroupMembers($member, $userGroup->id); } } if ((int)$data['leader_id'] > 0) { $leader = UserGroupMembers::where('user_id', $data['leader_id'])->where('group_id', $userGroup->id)->first(); if ($leader) { $leader->is_leader = 1; $leader->save(); } else { $this->addUserGroupMembers($data['leader_id'], $userGroup->id, 1); } } return $userGroup; } public function addUserGroupMembers(int $userId, int $groupId, int $isLeader = 0) { $udata = [ 'user_id' => $userId, 'group_id' => $groupId, 'is_leader' => $isLeader ]; return UserGroupMembers::create($udata); } }