logService = $logService; } /** * @throws Exception */ public function createModel(array $data): AdminUsers { try { DB::beginTransaction(); $model = AdminUsers::create([ 'username' => $data['username'], 'password' => Hash::make($data['password']), 'name' => $data['name'], 'avatar' => '', 'email' => $data['email'], 'status' => 1, 'created_at' => get_datetime() ]); $user_id = $model->id; // 角色id $role_id = $data['role_id']; $AdminRoleUsers = AdminRoleUsers::create([ 'user_id' => $user_id, 'role_id' => $role_id ]); // 职位id $permission_id = $data['permission_id']; // $packing_id = $data['packing']; $this->logService->logCreated($model, '创建用户'); $this->logService->logCreated($AdminRoleUsers, '创建用户关联角色'); return $model; } catch (Exception $e) { DB::rollBack(); throw $e; } } /** * @param array $data * @param int $id * @return AdminUsers * @throws Exception */ public function updateModel(array $data, int $id): AdminUsers { try { DB::beginTransaction(); if (AdminUsers::query()->where('username', $data['username'])->exists()) { throw new Exception(__('service.admin_role.role_exists')); } $model = AdminUsers::findOrFail($id); $model->update([ 'username' => $data['username'], 'password' => Hash::make($data['password']), 'name' => $data['name'], 'avatar' => '', 'email' => $data['email'], 'status' => $data['status'], 'created_at' => get_datetime() ]); // 角色id $role_id = $data['role_id']; $DelAdminRoleUsers = AdminRoleUsers::where('user_id', $id)->select(); $DelAdminRoleUsers->delete(); $AddAdminRoleUsers = AdminRoleUsers::create([ 'user_id' => $id, 'role_id' => $role_id ]); // 职位id $permission_id = $data['permission_id']; // $packing_id = $data['packing']; $this->logService->logCreated($model, '创建用户'); $this->logService->logDeleted($DelAdminRoleUsers, '删除用户关联角色'); $this->logService->logCreated($AddAdminRoleUsers, '创建用户关联角色'); return $model; } catch (Exception $e) { DB::rollBack(); throw $e; } } /** * @param $id * @return bool * @throws Exception */ public function deleteModel($id): bool { try { DB::beginTransaction(); $model = AdminUsers::findOrFail($id); $this->logService->logDeleted($model, '删除用户'); $model->delete(); $oldAdminRoleUser = AdminRoleUsers::where(['user_id' => $id])->select(); $this->logService->logDeleted($oldAdminRoleUser, '删除用户关联角色'); $oldAdminRoleUser->delete(); DB::commit(); return true; } catch (Exception $e) { DB::rollBack(); throw $e; } } }