|
@@ -0,0 +1,111 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Http\Controllers\V3;
|
|
|
+
|
|
|
+use App\Http\Controllers\Controller;
|
|
|
+use App\Repositories\NoticeRuleRepository;
|
|
|
+use App\Transformers\MessageRuleDetailTransformer;
|
|
|
+use App\Transformers\NoticeRuleDetailTransformer;
|
|
|
+use App\Transformers\NoticeRuleListTransformer;
|
|
|
+use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\Validator;
|
|
|
+use Illuminate\Validation\Rule;
|
|
|
+use League\Fractal\Manager;
|
|
|
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
|
|
+use League\Fractal\Resource\Collection;
|
|
|
+use League\Fractal\Resource\Item;
|
|
|
+
|
|
|
+class StartupController extends Controller
|
|
|
+{
|
|
|
+ public function __construct(NoticeRuleRepository $noticeRuleRepository)
|
|
|
+ {
|
|
|
+ $this->noticeRuleRepository = $noticeRuleRepository;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 启动页列表
|
|
|
+ */
|
|
|
+ public function index(Request $request)
|
|
|
+ {
|
|
|
+ $productList = $this->noticeRuleRepository->lists($request->all());
|
|
|
+ $fractal = new Manager();
|
|
|
+ $resource = new Collection($productList, new NoticeRuleListTransformer());
|
|
|
+ $resource->setPaginator(new IlluminatePaginatorAdapter($productList));
|
|
|
+ $data = $fractal->createData($resource)->toArray();
|
|
|
+ $data['extra'] = [
|
|
|
+ 'filters' => [
|
|
|
+ 'title',
|
|
|
+ ],
|
|
|
+ 'columns' => [
|
|
|
+ 'id',
|
|
|
+ 'title',
|
|
|
+ 'cover',
|
|
|
+ 'updated_at',
|
|
|
+ 'send_count',
|
|
|
+ 'notice_user_type',
|
|
|
+ 'notice_status'
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建启动页
|
|
|
+ */
|
|
|
+ public function create(Request $request)
|
|
|
+ {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'title' => 'required|string|max:12',
|
|
|
+ 'img' => 'required|url',
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->response->error($validator->errors()->first(), 500);
|
|
|
+ }
|
|
|
+ return $this->noticeRuleRepository->create($request->all());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 启动页详情
|
|
|
+ */
|
|
|
+ public function detail(Request $request)
|
|
|
+ {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'id' => 'required|exists:notice_rule'
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->response->error($validator->errors()->first(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ $post = $this->noticeRuleRepository->detail($request->all());
|
|
|
+ return $this->response->item($post, new NoticeRuleDetailTransformer());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送启动页
|
|
|
+ */
|
|
|
+ public function send(Request $request)
|
|
|
+ {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'id' => 'required|exists:notice_rule'
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->response->error($validator->errors()->first(), 500);
|
|
|
+ }
|
|
|
+ return $this->noticeRuleRepository->send($request->all());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除通知
|
|
|
+ */
|
|
|
+ public function delete(Request $request)
|
|
|
+ {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'id' => 'required|exists:notice_rule'
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->response->error($validator->errors()->first(), 500);
|
|
|
+ }
|
|
|
+ return $this->noticeRuleRepository->delete($request->all());
|
|
|
+ }
|
|
|
+}
|