You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
3.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\EditConfigInput;
use App\Models\Config;
use Yo;
use Login;
class ConfigController extends Controller
{
public function create(EditConfigInput $request)
{
Login::admin([8]);
$label = $request->post('label');
$value = $request->post('value');
$type = $request->post('type');
$remark = $request->post('remark');
$config = new Config();
$config->label = $label;
$config->value = $value;
$config->type = $type;
$config->remark = $remark ?? '';
$config->save();
return Yo::create_echo($config->id);
}
public function delete()
{
Login::admin([8]);
$id = request()->post('id');
Config::where('id', $id)->delete();
return Yo::delete_echo($id);
}
public function update(EditConfigInput $request)
{
$config_id = $request->post('config_id');
Login::admin([8]);
$label = $request->post('label');
$value = $request->post('value');
$type = $request->post('type');
$remark = $request->post('remark');
$config = Config::find($config_id);
if (!$config) Yo::error_echo(100000, ['配置']);
$config->label = $label;
$config->value = $value;
$config->type = $type;
$config->remark = $remark ?? '';
$config->save();
return Yo::update_echo($config->id);
}
public function list()
{
$configs = Config::get();
$list = [];
foreach ($configs as $config) {
$value = $config->value;
if (in_array($config->type, [3, 4, 5])) {
$value = json_decode($value, true);
}
$config['value_turn'] = $value;
$list[] = $config;
}
return Yo::echo(['list' => $list]);
}
public function get()
{
$check_res = Login::admin_check();
$label_arr = request()->post('label_arr');
if ($check_res != 0) {
$can_get_arr = ['Logo', 'Favicon', 'Login欢迎图片', '网站名称', '客服电话', '小程序默认封面图'];
foreach ($label_arr as $item) {
if (!in_array($item, $can_get_arr)) {
return Yo::error_echo(100000, ['配置']);
}
}
}
$configs = $this->get_config_list($label_arr);
$list = [];
foreach ($configs as $config) {
$value = $config->value;
if (in_array($config->type, [3, 4, 5])) {
$value = json_decode($value, true);
}
$list[$config->label] = $value;
}
return Yo::echo($list);
}
public function mp_get()
{
$label_arr = request()->post('label_arr');
$can_get_arr = ['客服电话', '小程序默认封面图'];
foreach ($label_arr as $item) {
if (!in_array($item, $can_get_arr)) {
return Yo::error_echo(100000, ['配置']);
}
}
$configs = $this->get_config_list($label_arr);
$list = [];
foreach ($configs as $config) {
$value = $config->value;
if (in_array($config->type, [3, 4, 5])) {
$value = json_decode($value, true);
}
$list[$config->label] = $value;
}
return Yo::echo($list);
}
public function get_config_list($arr): array
{
$config_arr = [];
foreach ($arr as $item) {
$config = Config::where('label', $item)->first();
if ($config) $config_arr[] = $config;
}
return $config_arr;
}
}