wzq 5 rokov pred
rodič
commit
d6140d8220

+ 15 - 0
app/Http/Controllers/Topic/CategoryController.php

@@ -32,6 +32,7 @@ class CategoryController extends Controller {
           'name' => 'required|string|max:12',
           'img' => 'required|url',
           'desc' => 'required|string|max:100',
+          'sort' => 'required|integer',
           'topic_ids' => 'string',
       ]);
       if ($validator->fails()) {
@@ -46,6 +47,7 @@ class CategoryController extends Controller {
             'name' => 'required|string|max:12',
             'img' => 'required|url',
             'desc' => 'required|string|max:100',
+            'sort' => 'required|integer',
             'topic_ids' => 'string',
         ]);
         if ($validator->fails()) {
@@ -70,6 +72,8 @@ class CategoryController extends Controller {
                 'img',
                 'created_at',
                 'is_suggest',
+                'is_open',
+                'sort',
                 'topic_count'
             ]
         ];
@@ -98,4 +102,15 @@ class CategoryController extends Controller {
         }
         return  $this->categroupRepository->update($data);
     }
+
+    //设置开启
+    public function isOpen(Request $request){
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->categroupRepository->isOpen($request['id']);
+    }
 }

+ 40 - 2
app/Repositories/CategoryRepository.php

@@ -26,7 +26,7 @@ class CategoryRepository {
         if(isset($request['name'])){
             $where[] = ['name', 'like', "%{$request['name']}%"];
         }
-        return $this->category->where($where)->paginate($perPage);
+        return $this->category->where($where)->orderBy('sort', 'asc')->paginate($perPage);
     }
     //详情
     public function view($request){
@@ -44,7 +44,7 @@ class CategoryRepository {
         $data = [
             'name' => $request['name'],
             'img' => $request['img'],
-            //'is_suggest' => $request['is_suggest'],
+            'sort' => $request['sort'],
             'desc' => $request['desc'],
         ];
         $topic_ids = '';
@@ -97,6 +97,7 @@ class CategoryRepository {
         $category->name = $request['name'];
         $category->img = $request['img'];
         $category->desc = $request['desc'];
+        $category->sort = $request['sort'];
         $topic_ids = [];
         if(!empty($request['topic_ids'])){
             $topic_ids = explode(',', $request['topic_ids']);
@@ -142,4 +143,41 @@ class CategoryRepository {
             return Response::create();
         }
     }
+
+    /**
+     * 设置开启
+     */
+    public function isOpen($id)
+    {
+        $category = $this->category->where('id', $id)->first();
+        if (!$category) {
+            return Response::create([
+                'message' => '获取内容分类信息失败',
+                'status_code' => 500
+            ]);
+        }
+
+        if ($category->is_open == 1) {
+            $category->is_open = 0;
+        } else {
+            $category->is_open = 1;
+        }
+
+        DB::beginTransaction();
+        try {
+            $category->save();
+
+            DB::commit();
+            return Response::create();
+
+        } catch (QueryException $exception) {
+            DB::rollBack();
+            Log::debug('开启分类失败:' . $id . $exception->getMessage());
+            return Response::create([
+                'message' => '操作失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code' => 500
+            ]);
+        }
+    }
 }

+ 2 - 0
app/Transformers/CategoryTransformer.php

@@ -22,6 +22,8 @@ class CategoryTransformer extends TransformerAbstract{
             'name' => $category['name'],
             'img' => $category['img'],
             'is_suggest' => $category['is_suggest'],
+            'is_open' => $category['is_open'],
+            'sort' => $category['sort'],
             'desc' => $category['desc'],
             'created_at' => Carbon::parse($category['created_at'])->toDateTimeString(),
             'topic_list'=>$topic,

+ 2 - 0
app/Transformers/DetailCategoryTransformer.php

@@ -25,6 +25,8 @@ class DetailCategoryTransformer extends TransformerAbstract{
             'name' => $category['name'],
             'img' => $category['img'],
             'is_suggest' => $category['is_suggest'],
+            'is_open' => $category['is_open'],
+            'sort' => $category['sort'],
             'desc' => $category['desc'],
             'created_at' => Carbon::parse($category['created_at'])->toDateTimeString(),
             'topic_list'=>$topic,

+ 2 - 0
routes/api.php

@@ -92,6 +92,8 @@ $api->version('v1', [
             $api->get('topic/categoryView', 'CategoryController@view');
             //推荐分类
             $api->put('topic/categoryIsSuggest', 'CategoryController@isSuggest');
+            //开启分类
+            $api->put('topic/category/is_open', 'CategoryController@isOpen');
             //编辑话题
             $api->put('topic/categoryEdit', 'CategoryController@edit');
             //新增话题