request->param('tid', 0, 'int'); // 查询站点设置 $siteSetting = SystemSiteSetting::where('delete_time', null) ->where('tid', $tid) ->find(); // 如果没有数据,返回空值结构 if (!$siteSetting) { $data = [ 'sitename' => '', 'logo' => '', 'logow' => '', 'ico' => '', 'companyintroduction' => '', 'description' => '', 'copyright' => '', 'companyname' => '', 'icp' => '' ]; } else { $data = [ 'sitename' => $siteSetting->sitename ?? '', 'logo' => $siteSetting->logo ?? '', 'logow' => $siteSetting->logow ?? '', 'ico' => $siteSetting->ico ?? '', 'companyintroduction' => $siteSetting->companyintroduction ?? '', 'description' => $siteSetting->description ?? '', 'copyright' => $siteSetting->copyright ?? '', 'companyname' => $siteSetting->companyname ?? '', 'icp' => $siteSetting->icp ?? '' ]; } $this->logSuccess('站点设置管理', '查看基本信息配置', [], $this->getAdminUserInfo()); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $data ]); } /** * 保存基本信息 * @return Json */ public function saveNormalInfos() { $params = $this->request->param(); $rawData = isset($params['data']) ? json_decode($params['data'], true) : $params; $tid = $params['tid'] ?? 0; // 查找或创建记录 $siteSetting = SystemSiteSetting::where('delete_time', null) ->where('tid', $tid) ->find(); if (!$siteSetting) { $siteSetting = new SystemSiteSetting(); $siteSetting->tid = $tid; $siteSetting->create_time = date('Y-m-d H:i:s'); } // 更新字段 if (isset($rawData['sitename'])) { $siteSetting->sitename = (string)$rawData['sitename']; } if (isset($rawData['companyintroduction'])) { $siteSetting->companyintroduction = (string)$rawData['companyintroduction']; } if (isset($rawData['logo'])) { $siteSetting->logo = (string)$rawData['logo']; } if (isset($rawData['logow'])) { $siteSetting->logow = (string)$rawData['logow']; } if (isset($rawData['ico'])) { $siteSetting->ico = (string)$rawData['ico']; } if (isset($rawData['description'])) { $siteSetting->description = (string)$rawData['description']; } if (isset($rawData['copyright'])) { $siteSetting->copyright = (string)$rawData['copyright']; } if (isset($rawData['companyname'])) { $siteSetting->companyname = (string)$rawData['companyname']; } if (isset($rawData['icp'])) { $siteSetting->icp = (string)$rawData['icp']; } $siteSetting->update_time = date('Y-m-d H:i:s'); $siteSetting->save(); $this->logSuccess('站点设置管理', '保存基本信息', ['tid' => $tid], $this->getAdminUserInfo()); return json(['code' => 200, 'msg' => '基本信息保存成功']); } /** * 获取登录验证数据 * @return Json */ public function getVerifyInfos() { // 定义你需要的 label 列表 $targetLabels = [ 'openVerify', 'verifyModel', 'geetest3ID', 'geetest3KEY', 'geetest4ID', 'geetest4KEY' ]; $legalInfos = SystemSiteSettings::where('delete_time', null) ->whereIn('label', $targetLabels) // 仅筛选指定的 label ->field('label, value') ->select(); $this->logSuccess('站点设置管理', '查看登录验证数据', [], $this->getAdminUserInfo()); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $legalInfos->toArray() ]); } /** * 保存登录验证数据 * @return Json */ public function saveVerifyInfos() { $params = $this->request->param(); $allowedLabels = ['openVerify', 'verifyModel', 'geetest3ID', 'geetest3KEY', 'geetest4ID', 'geetest4KEY']; foreach ($allowedLabels as $label) { if (isset($params[$label])) { $val = $params[$label]; if (is_bool($val)) { $val = $val ? '1' : '0'; } SystemSiteSettings::where('label', $label)->update([ 'value' => (string)$val ]); } } $this->logSuccess('站点设置管理', '保存登录验证配置', $params, $this->getAdminUserInfo()); return json(['code' => 200, 'msg' => '保存成功']); } /** * 获取法律声明和隐私条款 * @return Json */ public function getLegalInfos() { // 定义你需要的 label 列表 $targetLabels = [ 'legalNotice', 'privacyTerms' ]; $legalInfos = SystemSiteSettings::where('delete_time', null) ->whereIn('label', $targetLabels) // 仅筛选指定的 label ->field('label, value') ->select(); $this->logSuccess('站点设置管理', '查看法律声明和隐私条款', [], $this->getAdminUserInfo()); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $legalInfos->toArray() ]); } /** * 保存法律声明和隐私条款 * @return Json */ public function saveLegalInfos() { $params = $this->request->param(); $rawData = isset($params['data']) ? json_decode($params['data'], true) : $params; $allowedLabels = ['legalNotice', 'privacyTerms']; foreach ($allowedLabels as $label) { if (isset($rawData[$label])) { SystemSiteSettings::update( ['value' => (string)$rawData[$label]], ['label' => $label] ); } } $this->logSuccess('站点设置管理', '保存法律声明和隐私条款', ['labels' => $allowedLabels], $this->getAdminUserInfo()); return json(['code' => 200, 'msg' => '法律声明和隐私条款保存成功']); } /** * 获取企业信息 * @return Json */ public function getCompanyInfos() { // 获取当前租户ID $tid = $this->request->param('tid', 0, 'int'); // 查询租户信息 $tenant = Tenant::where('delete_time', null) ->where('id', $tid) ->find(); // 如果没有数据,返回空值结构 if (!$tenant) { $data = [ 'contact_phone' => '', 'contact_email' => '', 'address' => '', 'worktime' => '' ]; } else { $data = [ 'contact_phone' => $tenant->contact_phone ?? '', 'contact_email' => $tenant->contact_email ?? '', 'address' => $tenant->address ?? '', 'worktime' => $tenant->worktime ?? '' ]; } $this->logSuccess('站点设置管理', '查看企业信息', [], $this->getAdminUserInfo()); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $data ]); } /** * 保存企业信息 * @return Json */ public function saveCompanyInfos() { $params = $this->request->param(); $tid = $params['tid'] ?? 0; // 查找租户记录 $tenant = Tenant::where('delete_time', null) ->where('id', $tid) ->find(); if (!$tenant) { return json([ 'code' => 404, 'msg' => '租户不存在' ]); } // 更新字段 if (isset($params['contact_phone'])) { $tenant->contact_phone = (string)$params['contact_phone']; } if (isset($params['contact_email'])) { $tenant->contact_email = (string)$params['contact_email']; } if (isset($params['address'])) { $tenant->address = (string)$params['address']; } if (isset($params['worktime'])) { $tenant->worktime = (string)$params['worktime']; } $tenant->save(); $this->logSuccess('站点设置管理', '保存企业信息', ['tid' => $tid], $this->getAdminUserInfo()); return json(['code' => 200, 'msg' => '企业信息保存成功']); } /** * 获取企业SEO * @return Json */ public function getCompanySeo() { // 获取当前租户ID $tid = $this->getTenantId(); // 直接根据 ID 查询租户记录 $tenant = Tenant::where('delete_time', null) ->where('id', $tid) ->field('seoTitle, seoKeywords, seoDescription') ->find(); // 如果没有数据,返回默认空值 if (!$tenant) { $data = [ 'seoTitle' => '', 'seoKeywords' => '', 'seoDescription' => '' ]; } else { // 直接读取模型对象的属性 $data = [ 'seoTitle' => $tenant->seoTitle ?? '', 'seoKeywords' => $tenant->seoKeywords ?? '', 'seoDescription' => $tenant->seoDescription ?? '' ]; } $this->logSuccess('站点设置管理', '查看企业SEO', ['tid' => $tid], $this->getAdminUserInfo()); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $data ]); } /** * 保存企业SEO * @return Json */ public function saveCompanySeo() { $params = $this->request->param(); $id = $this->getTenantId(); $tenant = Tenant::where('delete_time', null) ->where('id', $id) ->find(); if (!$tenant) { return json(['code' => 404, 'msg' => '租户不存在']); } // 构建更新数据 $updateData = []; if (isset($params['seoTitle'])) $updateData['seoTitle'] = (string)$params['seoTitle']; if (isset($params['seoKeywords'])) $updateData['seoKeywords'] = (string)$params['seoKeywords']; if (isset($params['seoDescription'])) $updateData['seoDescription'] = (string)$params['seoDescription']; if (!empty($updateData)) { $tenant->save($updateData); } $this->logSuccess('站点设置管理', '保存企业SEO', ['tid' => $id], $this->getAdminUserInfo()); return json(['code' => 200, 'msg' => '企业SEO保存成功']); } }