xielin 5 年之前
父节点
当前提交
1ed3aab3ca

+ 4 - 2
app/Repositories/Circle/CircleMessageRepository.php

@@ -507,7 +507,7 @@ class CircleMessageRepository
         }
 
         $date = date('Y-m-d H:i:s');
-        $patchNum = Str::uuid();
+        $patchNum = Str::random(32);
         DB::beginTransaction();
         try {
             $imgData = [];
@@ -522,8 +522,9 @@ class CircleMessageRepository
                 ];
             }
             $this->interestCirclePicture->insert($imgData);
-
             $this->interestCircle->where('id', $request['circle_id'])->increment('picture_count', $imgCount);
+            $key = 'circle_picture_'.$patchNum;
+            Redis::set($key,json_encode($imgs));
             DB::commit();
             return jsonSuccess();
         } catch (QueryException $exception) {
@@ -542,6 +543,7 @@ class CircleMessageRepository
         $where[] = ['circle_id', $request['circle_id']];
 
         return $this->interestCirclePicture
+            ->select('interest_circle_pictures.*','count(patch_num)')
             ->where($where)
             ->groupby('patch_num')
             ->orderBy('id', 'desc')

+ 46 - 21
app/Traits/UserTrait.php

@@ -6,7 +6,9 @@
  * Date: 2019/5/5
  * Time: 17:11
  */
+
 namespace App\Traits;
+
 use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Facades\Redis;
 use Tymon\JWTAuth\Facades\JWTAuth;
@@ -14,14 +16,15 @@ use Tymon\JWTAuth\Facades\JWTAuth;
 trait UserTrait
 {
     //获取用户
-    public function getUserInfo() {
+    public function getUserInfo()
+    {
         try {
             $sign = generateSign([], config('customer.app_secret'));
-            $url = config("customer.app_service_url").'/user/userInfo';
+            $url = config("customer.app_service_url") . '/user/userInfo';
             $array = [
-                'json' => ['sign' => $sign], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+                'json' => ['sign' => $sign], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
             ];
-            return http($url,$array);
+            return http($url, $array);
         } catch (\Exception $e) {
             return [];
         }
@@ -29,21 +32,22 @@ trait UserTrait
     }
 
     //获取用户信息
-    public function userInfo($uid) {
+    public function userInfo($uid)
+    {
         $user = Redis::HGETALL('userInfo:' . $uid);
-        if(!$user){
+        if (!$user) {
             try {
                 $sign = generateSign(['uid' => $uid], config('customer.app_secret'));
-                $url = config("customer.app_service_url").'/user/getUserInfo';
+                $url = config("customer.app_service_url") . '/user/getUserInfo';
                 $array = [
-                    'json' => ['sign' => $sign,'uid' => $uid], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+                    'json' => ['sign' => $sign, 'uid' => $uid], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
                 ];
-                $user =  http($url,$array,'get');
+                $user = http($url, $array, 'get');
             } catch (\Exception $e) {
-                $user =  [];
+                $user = [];
             }
         }
-        if(!$user){
+        if (!$user) {
             $user = [
                 'uid' => $uid,
                 'username' => '老板',
@@ -55,42 +59,63 @@ trait UserTrait
         return $user;
     }
 
+    /**
+     * 格式化user的字段类型
+     * @param $user
+     * @return array
+     */
+    public function formatUser($user)
+    {
+        $u = [
+            'uid' => intval($user['uid']),
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
+            'gender' => intval($user['gender']),
+            'invite_code' => $user['invite_code']
+        ];
+        return $u;
+    }
+
     //获取关注状态
     public function getFollowStatus($uid, $followUid)
     {
         $status = 0;
-        if(Redis::ZSCORE('follow:'.$uid, $followUid)){
+        if (Redis::ZSCORE('follow:' . $uid, $followUid)) {
             $status = 1;
-            if(Redis::ZSCORE('follow:'.$followUid, $uid)){
+            if (Redis::ZSCORE('follow:' . $followUid, $uid)) {
                 $status = 2;
             }
         }
         return $status;
     }
+
     //检查关注状态 多个uid
-    public function getFollowMembersStatus($uids) {
+    public function getFollowMembersStatus($uids)
+    {
         try {
             $sign = generateSign(['uids' => $uids], config('customer.app_secret'));
-            $url = config("customer.app_service_url").'/user/v2/member/getMemberIds';
+            $url = config("customer.app_service_url") . '/user/v2/member/getMemberIds';
             $array = [
-                'json' => ['sign' => $sign, 'uids' => $uids], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+                'json' => ['sign' => $sign, 'uids' => $uids], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
             ];
-            return http($url,$array,'get');
+            return http($url, $array, 'get');
         } catch (\Exception $e) {
             Log::debug($e->getMessage());
             return [];
         }
     }
+
     //检查关注状态 多个uid
-    public function getFollowMemberFans($follow_id) {
+    public function getFollowMemberFans($follow_id)
+    {
         try {
             $sign = generateSign(['follow_id' => $follow_id], config('customer.app_secret'));
-            $url = config("customer.app_service_url").'/user/v2/member/getFollowMemberFans';
+            $url = config("customer.app_service_url") . '/user/v2/member/getFollowMemberFans';
             //$url = 'http://localhost:8080/v2/member/getFollowMemberFans';
             $array = [
-                'json' => ['sign' => $sign, 'follow_id' => $follow_id], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+                'json' => ['sign' => $sign, 'follow_id' => $follow_id], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
             ];
-            return http($url,$array,'get');
+            return http($url, $array, 'get');
         } catch (\Exception $e) {
             Log::debug($e->getMessage());
             return [];

+ 1 - 1
app/Transformers/Circle/CircleMemberTransformer.php

@@ -20,7 +20,7 @@ class CircleMemberTransformer extends TransformerAbstract
     use UserTrait;
     public function transform(InterestCircleUser $interestCircleUser)
     {
-        $user = $this->userInfo($interestCircleUser['uid']);
+        $user = $this->formatUser($this->userInfo($interestCircleUser['uid']));
         return [
             'user' => $user?$user:new \stdClass(),
             'created_at' => Carbon::parse($interestCircleUser['created_at'])->toDateTimeString()

+ 13 - 1
app/Transformers/Circle/PictureListTransformer.php

@@ -13,6 +13,7 @@ use App\Models\InterestCircle;
 use App\Models\InterestCirclePicture;
 use App\Traits\UserTrait;
 use Illuminate\Support\Carbon;
+use Illuminate\Support\Facades\Redis;
 use League\Fractal\TransformerAbstract;
 
 class PictureListTransformer extends TransformerAbstract
@@ -22,11 +23,22 @@ class PictureListTransformer extends TransformerAbstract
     public function transform(InterestCirclePicture $interestCirclePicture)
     {
         $user = $this->userInfo($interestCirclePicture['uid']);
+
         return [
             'id' => $interestCirclePicture['id'],
             'user' => $user ? $user : new \stdClass(),
-            'image' => $interestCirclePicture['image'],
+            'image' => $this->getImgs($interestCirclePicture),
             'created_at' => Carbon::parse($interestCirclePicture['created_at'])->toDateTimeString(),
         ];
     }
+
+    public function getImgs(InterestCirclePicture $interestCirclePicture){
+        $imgs = [];
+        $key = 'circle_picture_'.$interestCirclePicture['patch_num'];
+        $tmp = Redis::get($key);
+        if(empty($tmp)){
+            return $imgs;
+        }
+        return json_decode($tmp,true);
+    }
 }

+ 9 - 3
routes/api.php

@@ -133,8 +133,7 @@ $api->version('v1', [
         $api->post('circle/join', 'CircleController@joinCircle');
         //退出圈子
         $api->delete('circle/join', 'CircleController@exitCircle');
-        //圈子成员
-        $api->get('circle/members', 'CircleController@memberList');
+
         //创建提问
         $api->post('circle/message', 'CircleController@messageCreate');
         //创建提问评论
@@ -146,7 +145,14 @@ $api->version('v1', [
         //删除评论
         $api->delete('circle/comment', 'CircleController@deleteComment');
     });
-
+    //圈子成员
+    $api->get('circle/members', 'CircleController@memberList');
+    //创建相册
+    $api->post('circle/picture', 'CircleController@CreatePictures');
+    //相册列表
+    $api->get('circle/pictures', 'CircleController@pictureList');
+    //删除相册
+    $api->delete('circle/picture', 'CircleController@deletePicture');
 
     //分享/邀请首页
     $api->get('starDetail', 'BeanDetailController@starDetail');