diff --git a/MySQL_change.sql b/MySQL_change.sql index c4775f8..f1f0d49 100644 --- a/MySQL_change.sql +++ b/MySQL_change.sql @@ -98,7 +98,6 @@ ALTER TABLE `slides` ADD COLUMN `type` TINYINT NOT NULL DEFAULT '0' COMMENT '链接类型,0:链接到内部页面;1:链接到webview url' AFTER `sort`, ADD COLUMN `url` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '链接地址' AFTER `type`; -################################################################# # 23:43 ‎2021/‎08/‎22 CREATE TABLE `waterfall_ads` ( `id` INT(10) NOT NULL AUTO_INCREMENT, @@ -117,3 +116,8 @@ CREATE TABLE `waterfall_ads` ( COMMENT='瀑布流内嵌广告' COLLATE='utf8_general_ci' ENGINE=InnoDB; + +################################################################# +# 12:39 2021/8/24 +ALTER TABLE `notices` + ADD COLUMN `sort` SMALLINT NOT NULL DEFAULT '255' COMMENT '排序,越小越靠前' AFTER `content`; diff --git a/app/AdminAgent/Controllers/NoticeController.php b/app/AdminAgent/Controllers/NoticeController.php new file mode 100644 index 0000000..e2616b5 --- /dev/null +++ b/app/AdminAgent/Controllers/NoticeController.php @@ -0,0 +1,101 @@ +model()->where('agent_id', Admin::user()->id) + ->orderBy('sort')->orderBy('id', 'DESC'); + + $grid->column('id')->sortable(); + $grid->column('title'); + $grid->column('sort')->editable()->width(120); + $grid->column('created_at'); + $grid->column('updated_at'); + + $grid->filter(function (Grid\Filter $filter) { + $filter->panel(); + + $filter->equal('id')->width(2); + $filter->like('title')->width(3); + }); + }); + } + + /** + * Make a show builder. + * + * @param mixed $id + * + * @return Show + */ + protected function detail($id) + { + return Show::make($id, new Notice(), function (Show $show) { + //不允许查看非自己的数据 + if ($show->model()->agent_id != Admin::user()->id) { + Admin::exit('数据不存在'); + } + + $show->field('id'); + $show->field('title'); + $show->field('content')->unescape(); + $show->field('sort'); + $show->field('created_at'); + $show->field('updated_at'); + }); + } + + /** + * Make a form builder. + * + * @return Form + */ + protected function form() + { + return Form::make(new Notice(), function (Form $form) { + //不允许查看非自己的数据 + if ($form->isEditing() && $form->model()->agent_id != Admin::user()->id) { + return $form->response()->error('数据不存在'); + } + + $form->display('id'); + $form->text('title'); + $form->editor('content'); + $form->text('sort')->default(255); + })->saving(function (Form $form) { + //不允许修改非自己的数据 + if ($form->isEditing() && $form->model()->agent_id != Admin::user()->id) { + return $form->response()->error('数据不存在'); + } + + //特殊字段处理 + $form->hidden(['agent_id']); + $form->agent_id = Admin::user()->id; + $form->sort = $form->sort ?? 255; + + //不允许编辑的字段 + $form->ignore(['id', 'created_at', 'updated_at']); + })->deleting(function (Form $form) { + //不允许删除非自己的数据 + if ($form->model()[0]['agent_id'] != Admin::user()->id) { + return $form->response()->error('数据不存在'); + } + }); + } +} diff --git a/app/AdminAgent/Repositories/Notice.php b/app/AdminAgent/Repositories/Notice.php new file mode 100644 index 0000000..2013af8 --- /dev/null +++ b/app/AdminAgent/Repositories/Notice.php @@ -0,0 +1,16 @@ +resource('special/list', 'SpecialController'); $router->resource('waterfall_ad/list', 'WaterfallAdController'); $router->resource('message/list', 'MessageController'); + $router->resource('notice/list', 'NoticeController'); $router->resource('agent_info', 'AgentInfoController'); }); diff --git a/app/Http/Controllers/Api/IndexController.php b/app/Http/Controllers/Api/IndexController.php index 8e9034e..6e162d7 100644 --- a/app/Http/Controllers/Api/IndexController.php +++ b/app/Http/Controllers/Api/IndexController.php @@ -31,7 +31,8 @@ class IndexController extends Controller } # 公告 - $notice = Notice::where('agent_id', $this->agent_id)->limit(10)->get(['id', 'title', 'updated_at']); + $notice = Notice::where('agent_id', $this->agent_id)->limit(10) + ->orderBy('sort')->orderBy('id', 'desc')->get(['id', 'title']); # 我的频道 if ($this->user_id) { diff --git a/resources/lang/zh_CN/notice.php b/resources/lang/zh_CN/notice.php new file mode 100644 index 0000000..7e5cd26 --- /dev/null +++ b/resources/lang/zh_CN/notice.php @@ -0,0 +1,15 @@ + [ + 'Notice' => '系统公告', + 'notice' => '系统公告', + ], + 'fields' => [ + 'agent_id' => '发布者ID', + 'title' => '公告标题', + 'sort' => '排序', + 'content' => '公告内容', + ], + 'options' => [ + ], +];