<?php
namespace App\Modules\Admin\Entities\System;
use App\Models\Model;
class Config extends Model
{
protected $primaryKey = 'config_id';
protected $is_delete = 0;
public function pushRefreshConfig()
{
$config_data = $this->where('is_check', 1)
->select('config_value', 'config_name', 'config_type')
->get()
->toArray() $_data = $data_list = [];
array_walk($config_data, function ($value) use (&$data_list) {
if ($value['config_type'] == 3) {
$value_ary = array_filter(explode('|', str_replace(["\r", "\r\n", "\n"], '|', $value['config_value'])));
foreach ($value_ary as $k => $v) {
if (empty($value['config_name'])) continue;
$array = explode(':', str_replace(["'", '"', "\r", "\r\n", "\n"], '', $v));
$_data[$array[0]] = $array[1];
}
$data_list[$value['config_name']] = $_data;
}else{
switch ($value['config_type']){
case 2: $config_value = floatval($value['config_value']);
break;
default:
$config_value = $value['config_value'];
break;
}
if (strstr($value['config_name'], '.')){
$ary = explode('.', $value['config_name']);
if (count($ary) > 2){
list($key, $val, $third) = $ary;
$data_list[$key][$val][$third] = $config_value;
}else{
list($key, $val) = $ary;
$data_list[$key][$val] = $config_value;
}
}else{
$data_list[$value['config_name']] = $config_value;
}
}
});
$res = file_put_contents( config_path() . '/cnpscy.php', '<?php return ' . var_export($data_list, true) . ';');
unset($config_data, $_data, $data_list, $array, $value_ary, $data_list);
return $res;
}
public static function getAdminGroupList()
{
$configs = self::where('is_check', 1)->select()->toArray();
if (!empty($configs)) {
foreach ($configs as &$v) {
if (in_array($v['config_type'], [4])){
if (!empty($v['config_extra'])) $v['config_extra'] = config_array_analysis($v['config_extra']);
}
}
}
$configs = array_field_group($configs, 'config_group') if (empty($configs[0])) $configs[0] = [];
return $configs;
}
}