test_lgq/niucloud/app/service/admin/sys/ConfigService.php

391 lines
10 KiB
PHP
Raw Normal View History

2024-01-24 17:36:08 +08:00
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的saas管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud-admin.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\service\admin\sys;
use app\service\admin\site\SiteService;
use app\service\core\sys\CoreConfigService;
use app\service\core\sys\CoreSysConfigService;
use core\base\BaseAdminService;
use core\exception\AdminException;
/**
* 配置服务层
* Class ConfigService
* @package app\service\core\sys
*/
class ConfigService extends BaseAdminService
{
//系统配置文件
public $core_config_service;
public function __construct()
{
parent::__construct();
$this->core_config_service = new CoreConfigService();
}
/**
* 获取版权信息(网站整体,不按照站点设置)
* @return array|mixed
*/
public function getCopyright()
{
return (new CoreSysConfigService())->getCopyright();
}
/**
* 设置版权信息(整体设置,不按照站点)
* @param array $value
* @return bool
*/
public function setCopyright(array $value)
{
$data = [
'icp' => $value['icp'],
'gov_record' => $value['gov_record'],
'gov_url' => $value['gov_url'],
'market_supervision_url' => $value['market_supervision_url'],
'logo' => $value['logo'],
'company_name' => $value['company_name'],
'copyright_link' => $value['copyright_link'],
'copyright_desc' => $value['copyright_desc']
];
return $this->core_config_service->setConfig(0,'COPYRIGHT', $data);
}
/**
* 获取网站信息
* @return array
*/
public function getWebSite()
{
return (new SiteService())->getInfo($this->site_id);
}
/**
* 设置网站信息
* @return bool
*/
public function setWebSite($data)
{
return (new SiteService())->edit($this->site_id, $data);
}
/**
* 获取前端域名
* @return array|string[]
*/
public function getSceneDomain(){
return (new CoreSysConfigService())->getSceneDomain($this->site_id);
}
/**
* 获取服务信息
* @return array|mixed
*/
public function getService()
{
$info = (new CoreConfigService())->getConfig(0, 'SERVICE_INFO');
if(empty($info))
{
$info = [];
$info['value'] = [
'wechat_code' => '',
'enterprise_wechat' => '',
'tel' => '',
];
}
return $info['value'];
}
/**
* 设置服务信息
* @param array $value
* @return bool
*/
public function setService (array $value)
{
$data = [
"wechat_code" => $value['wechat_code'],
"enterprise_wechat" => $value['enterprise_wechat'],
"tel" => $value['tel']
];
return $this->core_config_service->setConfig(0,'SERVICE_INFO', $data);
}
/**
* 设置地图key
* @param array $value
* @return bool
*/
public function setMap(array $value)
{
$data = [
'key' => $value['key'],
];
return $this->core_config_service->setConfig($this->site_id,'MAPKEY', $data);
}
/**
* 获取地图key
*/
public function getMap()
{
$info = (new CoreConfigService())->getConfig($this->site_id, 'MAPKEY');
if(empty($info))
{
$info = [];
$info['value'] = [
'key' => 'IZQBZ-3UHEU-WTCVD-2464U-I5N4V-ZFFU3',
];
}
return $info['value'];
}
/**
* 获取站点主页配置
* @return mixed|string[]
*/
public function getSiteIndexConfig()
{
$config = (new CoreConfigService())->getConfig($this->site_id, "site_index");
if(empty($config))
{
$config['value'] = [
'view_path' => 'index/site_index'
];
}else{
$result = event("SiteIndex");
$index_list = [];
foreach ($result as $v)
{
$index_list = empty($index_list) ? $v: array_merge($index_list, $v);
}
$tag = 0;
$view_path = $config['value']['view_path'];
foreach ($index_list as $v)
{
$v_view_path = $v['view_path'] ?? '';
if($view_path == $v_view_path)
{
$tag = 1;
break;
}
}
if($tag == 0)
{
$config['value'] = [
'view_path' => 'index/site_index'
];
}
}
return $config['value']['view_path'];
}
/**
* 站点主页配置
* @param $data
* @return true
*/
public function setSiteIndexConfig($data)
{
$config = [
'view_path' => $data['view_path'] ,
];
//检测是否路劲一个异常
$index_list = $this->getSiteIndexList();
$check_tag = 0;
foreach($index_list as $v)
{
if($v['view_path'] == $data['view_path'])
{
$check_tag = 1;
}
}
if($check_tag == 0) throw new AdminException('SITE_INDEX_VIEW_PATH_NOT_EXIST');
(new CoreConfigService())->setConfig($this->site_id, "site_index", $config);
return true;
}
/**
* 获取站点配置的首页列表
* @return array
*/
public function getSiteIndexList()
{
$result = event("SiteIndex");
$index_list = [];
foreach ($result as $v)
{
$index_list = empty($index_list) ? $v: array_merge($index_list, $v);
}
$view_path = $this->getSiteIndexConfig();
foreach ($index_list as $k => $v)
{
$v_view_path = $v['view_path'] ?? '';
$index_list[$k]['is_use'] = ($v_view_path == $view_path) ? 1: 0;
}
return $index_list;
}
/**
* 设置站点快捷菜单
* @param $data
* @return bool
*/
public function setShortcutMenu($data)
{
(new CoreConfigService())->setConfig($this->site_id, 'shortcut_menu', $data);
return true;
}
/**
* 获取站点快捷菜单
* @return array|mixed
*/
public function getShortcutMenu()
{
$config = (new CoreConfigService())->getConfig($this->site_id, 'shortcut_menu');
$menu = $config['value'] ?? [];
if(!empty($menu)){
$menu_service = new MenuService();
foreach($menu as $k => &$v){
$menu_key = $v['menu_key'] ?? '';
if($menu_key != ''){
$item_router_path = $menu_service->getFullRouterPath($menu_key);
if(empty($item_router_path)){
unset($v[$k]);
}else{
$v['router_path'] = $item_router_path;
}
}
}
}
return $menu;
}
/**
* 获取平台主页配置
* @return mixed|string[]
*/
public function getAdminIndexConfig()
{
$config = (new CoreConfigService())->getConfig($this->site_id, "admin_index");
if(empty($config))
{
$config['value'] = [
'view_path' => 'index/index'
];
}else{
$result = event("AdminIndex");
$index_list = [];
foreach ($result as $v)
{
$index_list = empty($index_list) ? $v: array_merge($index_list, $v);
}
$tag = 0;
$view_path = $config['value']['view_path'];
foreach ($index_list as $v)
{
$v_view_path = $v['view_path'] ?? '';
if($view_path == $v_view_path)
{
$tag = 1;
break;
}
}
if($tag == 0)
{
$config['value'] = [
'view_path' => 'index/index'
];
}
}
return $config['value']['view_path'];
}
/**
* 站点主页配置
* @param $data
* @return true
*/
public function setAdminIndexConfig($data)
{
$config = [
'view_path' => $data['view_path'] ,
];
//检测是否路劲一个异常
$index_list = $this->getAdminIndexList();
$check_tag = 0;
foreach($index_list as $v)
{
if($v['view_path'] == $data['view_path'])
{
$check_tag = 1;
}
}
if($check_tag == 0) throw new AdminException('ADMIN_INDEX_VIEW_PATH_NOT_EXIST');
(new CoreConfigService())->setConfig($this->site_id, "admin_index", $config);
return true;
}
/**
* 获取站点配置的首页列表
* @return array
*/
public function getAdminIndexList()
{
$result = event("AdminIndex");
$index_list = [];
foreach ($result as $v)
{
$index_list = empty($index_list) ? $v: array_merge($index_list, $v);
}
$view_path = $this->getAdminIndexConfig();
foreach ($index_list as $k => $v)
{
$v_view_path = $v['view_path'] ?? '';
$index_list[$k]['is_use'] = ($v_view_path == $view_path) ? 1: 0;
}
return $index_list;
}
/**
* 获取手机端首页列表
* @param $data
* @return array
*/
public function getWapIndexList($data)
{
return ( new CoreSysConfigService() )->getWapIndexList($data);
}
/**
* 获取开发者key
* @return array
*/
public function getDeveloperToken() {
return (new CoreConfigService())->getConfigValue(0, "DEVELOPER_TOKEN");
}
/**
* 设置开发者key
* @param array $data
* @return array
*/
public function setDeveloperToken(array $data) {
return (new CoreConfigService())->setConfig(0, "DEVELOPER_TOKEN", $data);
}
}