Преглед изворни кода

Merge branch 'develop' of http://git.caihongxingqiu.net/rainbow/community-service into develop

xielin пре 5 година
родитељ
комит
fe888b8ea3

+ 41 - 0
app/Http/Controllers/V1/CategoryController.php

@@ -0,0 +1,41 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-15
+ * Time: 10:53
+ */
+
+namespace App\Http\Controllers\V1;
+
+
+use App\Repositories\CategoryRepository;
+use App\Transformers\CategoryTransformer;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+
+class CategoryController extends Controller {
+    public function __construct(CategoryRepository $categoryRepository) {
+        $this->categoryRepository = $categoryRepository;
+    }
+    //列表
+    public function index(Request $request) {
+        $categoryList = $this->categoryRepository->lists($request->all());
+        return $this->jsonSuccess($categoryList);
+    }
+    //获取多个话题
+    public function getTopics(Request $request){
+        $data = $request->only('ids');
+        $validator = Validator::make($data, [
+            'ids' => 'required|string',
+        ]);
+        if ($validator->fails()) {
+            return jsonError($validator->errors()->first());
+        }
+        $categoryList = $this->categoryRepository->getTopics($request->all());
+        return $this->jsonSuccess($categoryList);
+    }
+}

+ 44 - 0
app/Http/Controllers/V1/Controller.php

@@ -9,4 +9,48 @@ use App\Http\Controllers\Controller as BaseController;
 class Controller extends BaseController
 {
     use Helpers;
+
+    public function jsonSuccess($data = [], $msg = "成功")
+    {
+        $response = array(
+            'code' => 0,
+            'msg' => $msg,
+            'data' => []
+        );
+        if ($data) {
+            if (is_array($data)) {
+                //带有分页格式转换
+                if (isset($data['meta'])) {
+                    // 更改元数据格式,全部包含在data下
+                    $temp = array(
+                        'data' => array(
+                            'data' => $data['data'],
+                            'pagination' => $data['meta']['pagination']
+                        )
+                    );
+                    $response = array_merge($response, $temp);
+                } elseif(isset($data['data'])) {
+                    $response = array_merge($response, $data);
+                }else{
+                    $temp = array(
+                        'data' => $data
+                    );
+                    $response = array_merge($response, $temp);
+                }
+            } else {
+                $response['data'] = $data;
+            }
+        }
+        return $response;
+    }
+
+    public function jsonError($msg)
+    {
+        $response = array(
+            'code' => 1,
+            'msg' => $msg,
+            'data' => ""
+        );
+        return $response;
+    }
 }

+ 17 - 0
app/Modles/Category.php

@@ -0,0 +1,17 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-15
+ * Time: 10:47
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class Category extends Model {
+    protected $table = 'category';
+    protected $guarded = [];
+}

+ 17 - 0
app/Modles/CategoryTopic.php

@@ -0,0 +1,17 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-15
+ * Time: 10:47
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class CategoryTopic extends Model {
+    protected $table = 'category_topic';
+    protected $guarded = [];
+}

+ 38 - 0
app/Repositories/CategoryRepository.php

@@ -0,0 +1,38 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-15
+ * Time: 11:16
+ */
+
+namespace App\Repositories;
+
+use App\Models\Category;
+use App\Models\CategoryTopic;
+
+class CategoryRepository {
+
+    public function __construct(Category $category,CategoryTopic $categoryTopic) {
+        $this->category = $category;
+        $this->categoryTopic = $categoryTopic;
+    }
+    //列表
+    public function lists($request)
+    {
+        $where = [];
+        if(isset($request['is_suggest'])){
+            $where[] = ['is_suggest', '=', $request['is_suggest']];
+        }
+        return $this->category->where($where)->get();
+    }
+    //获取多个话题
+    public function getTopics($ids = []){
+        return $this->categoryTopic
+            ->leftJoin('topic', 'categoryTopic.topic_id', '=', 'topic.id')
+            ->where('topic.is_suggest',1)
+            ->whereIn('topic.category_id',$ids)
+            ->select('topic.id','topic.name','topic.is_suggest')
+            ->get();
+    }
+}

+ 17 - 0
app/Topic.php

@@ -0,0 +1,17 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-15
+ * Time: 10:47
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class Topic extends Model {
+    protected $table = 'topic';
+    protected $guarded = [];
+}

+ 26 - 0
app/Transformers/CategoryTransformer.php

@@ -0,0 +1,26 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: wangzhiqiang
+ * Date: 2019/4/23
+ * Time: 11:11
+ */
+namespace App\Transformers;
+
+use App\Models\Category;
+use League\Fractal\TransformerAbstract;
+
+class CategoryTransformer extends TransformerAbstract
+{
+
+    public function transform(Category $category)
+    {
+        return [
+            'id' => $category['id'],
+            'name' => $category['name'],
+            'img' => $category['img'],
+            'is_suggest' => $category['is_suggest'],
+            'desc' => $category['desc'],
+        ];
+    }
+}

+ 2 - 2
routes/api.php

@@ -19,10 +19,10 @@ $api->version('v1', [
     //根据行为标识查询行为
     $api->get('getBehaviorByIdentify', 'BehaviorController@getBehaviorByIdentify');
     //登录+验签
-//    $api->group(['middleware' => ['chxq_jwt_auth','chxq_sign']], function ($api) {
     $api->group(['middleware' => ['chxq_jwt_auth']], function ($api) {
-        $api->get('test', 'TestController@index');
+        //$api->get('test', 'TestController@index');
         $api->get('post/suggest', 'PostController@suggestPost');
+        $api->get('topicCategory', 'CategoryController@index');
     });
 
 });