Преглед на файлове

新增推荐用户组内容排序

zhangchangchun преди 5 години
родител
ревизия
1b7d915ffa

+ 15 - 22
app/Http/Controllers/V2/MemberGroupController.php

@@ -10,6 +10,7 @@ namespace App\Http\Controllers\V2;
 
 use App\Http\Controllers\Controller;
 use App\Repositories\V2\MemberGroupRepository;
+use App\Transformers\DetailMemberGroupInfoTransformer;
 use App\Transformers\MemberGroupTansformer;
 use Illuminate\Validation\Rule;
 use Illuminate\Http\Request;
@@ -67,28 +68,8 @@ class MemberGroupController extends Controller {
         if ($validator->fails()) {
             return $this->response->error($validator->errors()->first(), 500);
         }
-        $info = $this->videoGroupRepository->view($data);
-        $videoInfo = $this->videoGroupRepository->VideoInfoIndex($data);
-        $fractal = new Manager();
-        $resource = new Collection($videoInfo, new VideoGroupInfoTransformer());
-        $resource->setPaginator(new IlluminatePaginatorAdapter($videoInfo));
-        $data = $fractal->createData($resource)->toArray();
-        $data['extra'] = [
-            'filters' => [
-                'name',
-            ],
-            'columns' => [
-                'post_id',
-                'username',
-                'topic',
-                'video',
-                'pv',
-                'praise_count',
-            ],
-            'name'=>$info['name'],
-            'id'=>$info['id'],
-        ];
-        return $data;
+        $info = $this->memberGroupRepository->view($data);
+        return $this->response->item($info, new DetailMemberGroupInfoTransformer());
     }
     //设置排序
     public function edit(Request $request){
@@ -139,5 +120,17 @@ class MemberGroupController extends Controller {
         }
         return  $this->memberGroupRepository->setIsSuggest($data);
     }
+    //设置内容排序
+    public function setSort(Request $request){
+        $data = $request->only('id','member_info');
+        $validator = Validator::make($data, [
+            'id' => 'required|string|max:20',
+            'member_info' => 'required',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->memberGroupRepository->setSort($data);
+    }
 
 }

+ 45 - 2
app/Repositories/V2/MemberGroupRepository.php

@@ -48,8 +48,15 @@ class MemberGroupRepository {
         ];
         if(!empty($request['member_list'])){
             $member_ids = explode(',', $request['member_list']);
+            $count = count($member_ids);
+            if($count >= 50){
+                return Response::create([
+                    'message'  => '推荐用户最多选50个,当前人数:'.$count.'人',
+                    'status_code'   => 500
+                ]);
+            }
         }
-        $count =$member_ids;
+
         DB::beginTransaction();
         try{
             if($request['is_suggest'] == 1){
@@ -93,10 +100,17 @@ class MemberGroupRepository {
             ]);
         }
         $memberGroup->name = $request['name'];
-        $memberGroup->name = $request['name'];
+        $memberGroup->is_suggest = $request['is_suggest'];
 
         if(!empty($request['member_list'])){
             $member_ids = explode(',', $request['member_list']);
+            $count = count($member_ids);
+            if($count >= 50){
+                return Response::create([
+                    'message'  => '推荐用户最多选50个,当前人数:'.$count.'人',
+                    'status_code'   => 500
+                ]);
+            }
         }
         DB::beginTransaction();
         try{
@@ -206,6 +220,35 @@ class MemberGroupRepository {
                 'status_code'   => 500
             ]);
         }
+    }
+    //设置排序
+    public function setSort($request){
+        $memberGroup = $this->memberGroup->where('id',$request['id'])->first();
+        if(!$memberGroup){
+            return Response::create([
+                'message'  => '该分组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        DB::beginTransaction();
+        try{
+            if(!empty($request['member_info'])){
+                $memberInfo = json_decode($request['member_info']);
+                foreach ($memberInfo as $key=>$value){
+                    $this->memberGroupInfo->where('id',$value->id)->update(['sort'=>$value->sort]);
+                }
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('设置推荐用户分组内容排序:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '设置推荐用户分组内容排序,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
 
     }
 }

+ 51 - 0
app/Transformers/DetailMemberGroupInfoTransformer.php

@@ -0,0 +1,51 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 19:15
+ */
+
+namespace App\Transformers;
+use App\Models\MemberGroup;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+use Tymon\JWTAuth\Facades\JWTAuth;
+
+class DetailMemberGroupInfoTransformer extends TransformerAbstract{
+    public function transform(MemberGroup $memberGroup)
+    {
+
+        foreach ($memberGroup->mgi as $key=>$value){
+            $member = $this->getUser($value->uid);
+            $value['uid'] = $member['uid'];
+            $value['username'] = $member['username'];
+            $value['avatar'] = $member['avatar'];
+            $value['type'] = $member['type'];
+            $value['post_count'] = $member['post_count'];
+            $value['share_count'] = $member['share_count'];
+            $value['fans_count'] = $member['fans_count'];
+            $memberList[] = $value;
+        }
+        return [
+            'id' => $memberGroup['id'],
+            'name' => $memberGroup['name'],
+            'is_suggest' => $memberGroup['is_suggest'],
+            'created_at' => Carbon::parse($memberGroup['created_at'])->toDateTimeString(),
+            'member_list'=>$memberList,
+        ];
+    }
+    public function getUser($id) {
+        try {
+            $url = config("customer.manage_service_url").'/user/memberView';
+            $url = 'https://manage.dev.caihongxingqiu.com/user/memberView';
+            $array = [
+                'json' => ['uid'=>$id], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            $res = http($url,$array,true,'get');
+            return $res;
+        } catch (\Exception $e) {
+            return [];
+        }
+    }
+}

+ 1 - 1
app/Transformers/MemberGroupTansformer.php

@@ -11,7 +11,7 @@ use App\Models\MemberGroup;
 use League\Fractal\TransformerAbstract;
 use Illuminate\Support\Carbon;
 
-class MemberGroupTansformer {
+class MemberGroupTansformer extends TransformerAbstract{
     public function transform(MemberGroup $memberGroup)
     {
         $memberList = [];

+ 2 - 0
routes/api.php

@@ -150,6 +150,8 @@ $api->version('v1', [
             $api->delete('MemberGroupDelete', 'MemberGroupController@delete');
             //设置推荐
             $api->put('MemberGroupSetIsSuggest', 'MemberGroupController@setIsSuggest');
+            //设置内容排序
+            $api->put('MemberGroupSetInfoSort', 'MemberGroupController@setSort');
 
         });