Bläddra i källkod

Merge branch 'develop'

wzq 5 år sedan
förälder
incheckning
85634f250a

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

@@ -113,4 +113,27 @@ class CategoryController extends Controller {
         }
         return  $this->categroupRepository->isOpen($request['id']);
     }
+
+    /**
+     * 编辑话题分类(推荐内容首页用)
+     */
+    public function suggestEdit(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'category_ids' => 'required|array',
+            'category_ids.*' => 'required|exists:category,id',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->categroupRepository->suggestEdit($request->all());
+    }
+
+    /**
+     * 话题分类详情(推荐内容首页用)
+     */
+    public function suggestDetail()
+    {
+        return $this->categroupRepository->suggestDetail();
+    }
 }

+ 20 - 0
app/Models/CategorySuggest.php

@@ -0,0 +1,20 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/9/4
+ * Time: 14:48
+ */
+namespace App\Models;
+use Illuminate\Database\Eloquent\Model;
+
+class CategorySuggest extends Model
+{
+    protected $table = 'category_suggest';
+    protected $guarded = [];
+
+    public function category()
+    {
+        return $this->hasOne('App\Models\Category', 'id', 'category_id');
+    }
+}

+ 55 - 1
app/Repositories/CategoryRepository.php

@@ -8,16 +8,19 @@
 namespace App\Repositories;
 
 use App\Models\Category;
+use App\Models\CategorySuggest;
 use App\Models\CategoryTopic;
 use Dingo\Api\Http\Response;
+use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Database\QueryException;
 use Illuminate\Support\Facades\Log;
 
 class CategoryRepository {
-    public function __construct(Category $category,CategoryTopic $categoryTopic){
+    public function __construct(Category $category,CategoryTopic $categoryTopic,CategorySuggest $categorySuggest){
         $this->category = $category;
         $this->categoryTopic = $categoryTopic;
+        $this->categorySuggest = $categorySuggest;
     }
     //列表
     public function index($request){
@@ -180,4 +183,55 @@ class CategoryRepository {
             ]);
         }
     }
+
+    /**
+     * 编辑话题分类(推荐内容首页用)
+     */
+    public function suggestEdit($request)
+    {
+        $date = Carbon::now()->toDateTimeString();
+
+        $data = [];
+        $ids = array_unique($request['category_ids']);
+        foreach($ids as $id){
+            $data[] = [
+                'category_id' => $id,
+                'created_at' => $date,
+                'updated_at' => $date
+            ];
+        }
+        DB::beginTransaction();
+        try {
+            $this->categorySuggest->where('id', '>', 0)->delete();
+            $this->categorySuggest->insert($data);
+
+            DB::commit();
+            return Response::create();
+
+        } catch (QueryException $exception) {
+            DB::rollBack();
+            Log::debug('编辑话题分类失败:' . $exception->getMessage());
+            return Response::create([
+                'message' => '编辑失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code' => 500
+            ]);
+        }
+    }
+
+    /**
+     * 话题分类详情(推荐内容首页用)
+     */
+    public function suggestDetail()
+    {
+        $lists = $this->categorySuggest->get();
+        $data = [];
+        foreach($lists as $item){
+            $data[] = [
+                'id' => $item->category_id,
+                'name' => $item->category->name
+            ];
+        }
+        return $data;
+    }
 }

+ 35 - 0
database/migrations/2019_09_04_143108_create_table_category_suggest.php

@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateTableCategorySuggest extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('category_suggest', function (Blueprint $table) {
+            $table->bigIncrements('id');
+
+            $table->integer('category_id')
+                ->comment('话题分类id');
+
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('category_suggest');
+    }
+}

+ 2 - 0
resources/lang/zh-CN/validation.php

@@ -119,6 +119,8 @@ return [
         'add_share_count' => '增加分享数',
         'download_type' => '下载类型',
         'download_status' => '下载状态',
+        'category_ids' => '话题分类id',
+        'category_ids.*' => '话题分类子id',
     ],
 
 ];

+ 4 - 0
routes/api.php

@@ -96,6 +96,10 @@ $api->version('v1', [
             $api->put('topic/category/is_open', 'CategoryController@isOpen');
             //编辑话题
             $api->put('topic/categoryEdit', 'CategoryController@edit');
+            //话题分类详情(推荐内容首页用)
+            $api->get('topic/category_suggest', 'CategoryController@suggestDetail');
+            //编辑话题分类(推荐内容首页用)
+            $api->put('topic/category_suggest', 'CategoryController@suggestEdit');
             //新增话题
             $api->post('topic/topicCreate', 'TopicController@create');
             //编辑话题