hasPagePermission()) { return $this->fail('权限不足,无法访问企业微信推广助手'); } return $this->run(fn () => $this->data(WecomPromotionLogic::overview( $this->adminId, $this->adminInfo, $this->request->domain() ))); } public function authorizationUrl() { if (!$this->hasPagePermission()) { return $this->fail('权限不足'); } return $this->run(fn () => $this->data(WecomPromotionLogic::authorizationUrl( $this->adminId, $this->adminInfo, $this->request->domain() ))); } public function verifyAccount() { if (!$this->hasPagePermission()) { return $this->fail('权限不足'); } $id = (int) $this->request->post('id', 0); return $this->run(fn () => $this->success('凭证验证成功', WecomPromotionLogic::verifyAccount( $id, $this->adminId, $this->adminInfo ))); } public function savePool() { if (!$this->hasPagePermission()) { return $this->fail('权限不足'); } return $this->run(fn () => $this->success('分流方案已保存', WecomPromotionLogic::savePool( $this->request->post(), $this->adminId, $this->adminInfo ))); } public function deletePool() { if (!$this->hasPagePermission()) { return $this->fail('权限不足'); } $id = (int) $this->request->post('id', 0); return $this->run(function () use ($id) { WecomPromotionLogic::deletePool($id, $this->adminId, $this->adminInfo); return $this->success('分流方案已删除'); }); } public function saveLink() { if (!$this->hasPagePermission()) { return $this->fail('权限不足'); } return $this->run(fn () => $this->success('推广链接已保存', WecomPromotionLogic::saveLink( $this->request->post(), $this->adminId, $this->adminInfo ))); } public function toggleLink() { if (!$this->hasPagePermission()) { return $this->fail('权限不足'); } $id = (int) $this->request->post('id', 0); $status = (int) $this->request->post('status', 0); return $this->run(function () use ($id, $status) { WecomPromotionLogic::toggleLink($id, $status, $this->adminId, $this->adminInfo); return $this->success('状态已更新'); }); } public function deleteLink() { if (!$this->hasPagePermission()) { return $this->fail('权限不足'); } $id = (int) $this->request->post('id', 0); return $this->run(function () use ($id) { WecomPromotionLogic::deleteLink($id, $this->adminId, $this->adminInfo); return $this->success('推广链接已删除'); }); } private function run(callable $callback) { try { return $callback(); } catch (\Throwable $e) { return $this->fail($e->getMessage()); } } private function hasPagePermission(): bool { if ((int) ($this->adminInfo['root'] ?? 0) === 1) { return true; } return in_array(self::PAGE_PERMISSION, AuthLogic::getAuthByAdminId($this->adminId), true); } }