first commit
This commit is contained in:
100
app/Services/System/SettingService.php
Normal file
100
app/Services/System/SettingService.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace App\Services\System;
|
||||
|
||||
use App\Models\System\Config;
|
||||
|
||||
class SettingService {
|
||||
|
||||
/**
|
||||
* @title 获取配置列表
|
||||
*
|
||||
* @param [type] $request
|
||||
* @return void
|
||||
*/
|
||||
public function getDataList($request){
|
||||
$map = [];
|
||||
|
||||
if ($request->filled('group_name')) {
|
||||
$map[] = ['group', '=', $request->input('group_name')];
|
||||
}
|
||||
|
||||
$data = Config::where($map)->orderBy('sort', 'asc')->pluck('values', 'name');
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function create($request){
|
||||
$request->validate([
|
||||
'title' => 'required',
|
||||
'name' => 'required',
|
||||
'values' => 'required',
|
||||
]);
|
||||
|
||||
$data = $request->all();
|
||||
$config = Config::create($data);
|
||||
|
||||
$this->setConfigCache(true);
|
||||
return $config;
|
||||
}
|
||||
|
||||
public function update($request){
|
||||
$request->validate([
|
||||
'title' => 'required',
|
||||
'name' => 'required',
|
||||
]);
|
||||
$config = Config::where('id', $request->input('id'))->first();
|
||||
|
||||
|
||||
foreach ($config->setFilterFields($request->all()) as $key => $value) {
|
||||
$config->$key = $value;
|
||||
}
|
||||
$config->save();
|
||||
|
||||
$this->setConfigCache(true);
|
||||
return $config;
|
||||
}
|
||||
|
||||
public function saveSetting($request){
|
||||
$data = $request->all();
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
Config::where('name', $key)->update(['values' => $value]);
|
||||
}
|
||||
|
||||
$this->setConfigCache(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
public function delete($request){
|
||||
$data = $request->all();
|
||||
$config = Config::find($data['id']);
|
||||
$config->delete();
|
||||
|
||||
$this->setConfigCache(true);
|
||||
return $config;
|
||||
}
|
||||
|
||||
public function getFields($request){
|
||||
$map = [];
|
||||
|
||||
if ($request->filled('group_name')) {
|
||||
$map[] = ['group', '=', $request->input('group_name')];
|
||||
}
|
||||
|
||||
$config = Config::where($map)->orderBy('sort', 'asc')->get()->append(['options', 'label']);
|
||||
return $config;
|
||||
}
|
||||
|
||||
public static function setConfigCache($refresh = false){
|
||||
if (!cache('config') || $refresh){
|
||||
$config = Config::orderBy('sort', 'asc')->pluck('values', 'name');
|
||||
cache('config', $config);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user