wzq 5 年之前
父節點
當前提交
fd3a6fe1cd

+ 69 - 0
app/Http/Controllers/MessageRuleController.php

@@ -0,0 +1,69 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/12
+ * Time: 9:08
+ */
+
+namespace App\Http\Controllers;
+
+use App\Repositories\MessageRuleRepository;
+use App\Transformers\MessageRuleListTransformer;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+use App\Http\Controllers\Controller;
+use Illuminate\Validation\Rule;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Resource\Item;
+
+class MessageRuleController extends Controller
+{
+    public function __construct(MessageRuleRepository $messageRuleRepository)
+    {
+        $this->messageRuleRepository = $messageRuleRepository;
+    }
+
+    /**
+     * 消息规则列表
+     */
+    public function index(Request $request)
+    {
+        $productList = $this->messageRuleRepository->lists($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($productList, new MessageRuleListTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($productList));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'keyword',
+                'content',
+                'topic_ids',
+                'category_ids',
+                'is_suggest',
+                'created_at',
+                'type',
+                'sort'
+            ],
+            'columns' => [
+                'id',
+                'created_at',
+                'uid',
+                'topic',
+                'content',
+                'location',
+                'pv',
+                'praise_count',
+                'share_count',
+                'comment_count',
+                'collect_count',
+                'create_bean',
+                'is_suggest',
+                'is_hide',
+            ]
+        ];
+        return $data;
+    }
+}

+ 17 - 0
app/Models/MessageRule.php

@@ -0,0 +1,17 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/12
+ * Time: 9:11
+ */
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class MessageRule extends Model
+{
+    protected $table = 'message_rule';
+    protected $guarded = [];
+}

+ 46 - 0
app/Repositories/MessageRuleRepository.php

@@ -0,0 +1,46 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/12
+ * Time: 9:13
+ */
+
+namespace App\Repositories;
+
+use App\Models\MessageRule;
+use Illuminate\Database\QueryException;
+use Dingo\Api\Http\Response;
+use Illuminate\Support\Carbon;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Log;
+use Illuminate\Support\Facades\Redis;
+use Symfony\Component\HttpKernel\Exception\HttpException;
+use Tymon\JWTAuth\Facades\JWTAuth;
+
+class MessageRuleRepository
+{
+    public function __construct(MessageRule $messageRule)
+    {
+        $this->messageRule = $messageRule;
+    }
+
+    /**
+     * 内容列表
+     */
+    public function lists($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['title'])){
+            $where[] = ['title', 'like', "%{$request['title']}%"];
+        }
+        if(isset($request['message_type'])){
+            $where[] = ['message_type', $request['message_type']];
+        }
+        return $this->messageRule
+            ->where($where)
+            ->orderBy('id','desc')
+            ->paginate($perPage);
+    }
+}

+ 22 - 0
app/Transformers/MessageRuleListTransformer.php

@@ -0,0 +1,22 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/12
+ * Time: 9:15
+ */
+
+namespace App\Transformers;
+
+use App\Models\MessageRule;
+use League\Fractal\TransformerAbstract;
+
+class MessageRuleListTransformer extends TransformerAbstract
+{
+    public function transform(MessageRule $messageRule)
+    {
+        return [
+            'id' => $messageRule['id'],
+        ];
+    }
+}