Browse Source

配置管理后台接口

master
wanghongjun 12 months ago
parent
commit
9224cfd87d
  1. 85
      app/controller/admin/Config.php
  2. 10
      app/model/Config.php
  3. 24
      app/validate/ConfigValidate.php
  4. 3
      route/app.php

85
app/controller/admin/Config.php

@ -0,0 +1,85 @@
<?php
namespace app\controller\admin;
use app\model\Config as ConfigModel;
use app\util\ReturnCode;
use app\validate\ConfigValidate;
use think\Response;
class Config extends Base
{
/**
* 首页列表显示
* @return \think\Response
*/
public function index(): Response
{
try {
$limit = $this->request->get('size', config('apiadmin.ADMIN_LIST_DEFAULT'));
$start = $this->request->get('page', 1);
$listObj = (new ConfigModel())->where('delete_time', 0)
->withoutField('delete_time, content')
->paginate(['page' => $start, 'list_rows' => $limit])
->toArray();
return $this->buildSuccess([
'list' => $listObj['data'],
'count' => $listObj['total'],
]);
} catch (\Exception $e) {
return $this->buildFailed(ReturnCode::RECORD_NOT_FOUND, $e->getMessage());
}
}
/**
* 新增字段
* @return Response
* @author zhaoxiang <zhaoxiang051405@gmail.com>
*/
public function add(): Response
{
try {
$postData = $this->request->post();
$id = $postData['id'] ?? '';
validate(ConfigValidate::class)->scene($id ? 'edit' : 'add')->check($postData);
$data = [
'title' => $postData['title'],
'name' => $postData['name'],
'status' => $postData['status'],
'content' => json_encode($postData['content']),
];
if ($id) {
$data['update_time'] = time();
ConfigModel::update($data, ['id' => $id]);
} else {
$data['create_time'] = time();
ConfigModel::create($data);
}
return $this->buildSuccess();
} catch (\Exception $e) {
return $this->buildFailed(ReturnCode::CACHE_SAVE_ERROR, $e->getMessage());
}
}
/**
* 编辑添加数据
* @return Response
*/
public function editIndex(): Response
{
try {
$id = $this->request->get('id', '');
if (!$id) throw new \Exception('缺少必填参数');
$data = (new ConfigModel())->withoutField('delete_time, update_time')->where('id', $id)->where('delete_time', 0)->find();
$data['content'] = $data['content'] ? json_decode($data['content'], true) : $data['content'];
return $this->buildSuccess($data);
} catch (\Exception $e) {
return $this->buildFailed(ReturnCode::NOT_EXISTS, $e->getMessage());
}
}
}

10
app/model/Config.php

@ -0,0 +1,10 @@
<?php
namespace app\model;
use think\Model;
class Config extends Model
{
}

24
app/validate/ConfigValidate.php

@ -0,0 +1,24 @@
<?php
namespace app\validate;
use think\Validate;
class ConfigValidate extends Validate
{
protected $rule = [
'id' => 'require|number',
'title' => 'require',
'name' => 'require',
'content' => 'require'
];
protected $message = [];
protected $scene = [
'add' => ['title', 'name', 'content'],
'edit' => ['id', 'title', 'name', 'content'],
];
}

3
route/app.php

@ -72,4 +72,7 @@ Route::group('admin', function() {
Route::rule('InvoiceHead/index', 'admin.InvoiceHead/index', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
Route::rule('Index/statistics', 'admin.Index/statistics', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminResponse::class]);
Route::miss('admin.Miss/index');
Route::rule('Config/index', 'admin.Config/index', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
Route::rule('Config/editIndex', 'admin.Config/editIndex', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
Route::rule('Config/add', 'admin.Config/add', 'post')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
});

Loading…
Cancel
Save