xielin před 5 roky
rodič
revize
89c0cc3a2e

+ 1 - 1
app/Http/Controllers/V1/CircleController.php

@@ -436,7 +436,7 @@ class CircleController extends Controller
      */
     public function deletePicture(Request $request){
         $validator = Validator::make($request->all(), [
-            'id' => 'required|integer',
+            'id' => 'required|string',
         ]);
         if ($validator->fails()) {
             return jsonError($validator->errors()->first());

+ 9 - 5
app/Repositories/Circle/CircleMessageRepository.php

@@ -511,12 +511,17 @@ class CircleMessageRepository
         DB::beginTransaction();
         try {
             $imgData = [];
-            foreach ($imgs as $img) {
+            foreach ($imgs as $k=>$img) {
+                $isMain = 0;
+                if($k==0){
+                    $isMain=1;
+                }
                 $imgData[] = [
                     'circle_id' => $request['circle_id'],
                     'uid' => $userInfo['uid'],
                     'image' => $img,
                     'patch_num' => $patchNum,
+                    'is_main' => $isMain,
                     'created_at' => $date,
                     'updated_at' => $date
                 ];
@@ -541,11 +546,10 @@ class CircleMessageRepository
     {
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
         $where[] = ['circle_id', $request['circle_id']];
+        $where[] = ['is_main', 1];
 
         return $this->interestCirclePicture
-            ->select('interest_circle_pictures.*','count(patch_num)')
             ->where($where)
-            ->groupby('patch_num')
             ->orderBy('id', 'desc')
             ->paginate($perPage);
     }
@@ -555,7 +559,7 @@ class CircleMessageRepository
      */
     public function deletePicture($request)
     {
-        $circle = $this->interestCirclePicture->where('id', $request['id'])->first();
+        $circle = $this->interestCirclePicture->where('patch_num', $request['id'])->first();
         if (!$circle) {
             return jsonError('相册不存在');
         }
@@ -570,7 +574,7 @@ class CircleMessageRepository
         }
         DB::beginTransaction();
         try {
-            $circle->delete();
+            $this->interestCirclePicture->where('patch_num', $request['id'])->delete();
             DB::commit();
             return jsonSuccess();
 

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

@@ -31,7 +31,7 @@ class MessageListTransformer extends TransformerAbstract
 
     public function transform(InterestCircleMessage $interestCircleMessage)
     {
-        $user = $this->userInfo($interestCircleMessage['uid']);
+        $user = $this->formatUser($this->userInfo($interestCircleMessage['uid']));
         $imgs = [];
         foreach ($interestCircleMessage->imgs as $img) {
             $imgs[] = $img['image'];

+ 15 - 8
app/Transformers/Circle/PictureListTransformer.php

@@ -22,23 +22,30 @@ class PictureListTransformer extends TransformerAbstract
 
     public function transform(InterestCirclePicture $interestCirclePicture)
     {
-        $user = $this->userInfo($interestCirclePicture['uid']);
+        $user = $this->formatUser($this->userInfo($interestCirclePicture['uid']));
 
         return [
-            'id' => $interestCirclePicture['id'],
+            'id' => $interestCirclePicture['patch_num'],
             'user' => $user ? $user : new \stdClass(),
-            'image' => $this->getImgs($interestCirclePicture),
+            'imgs' => $this->getImgs($interestCirclePicture),
             'created_at' => Carbon::parse($interestCirclePicture['created_at'])->toDateTimeString(),
         ];
     }
 
-    public function getImgs(InterestCirclePicture $interestCirclePicture){
+    public function getImgs(InterestCirclePicture $interestCirclePicture)
+    {
         $imgs = [];
-        $key = 'circle_picture_'.$interestCirclePicture['patch_num'];
+        $key = 'circle_picture_' . $interestCirclePicture['patch_num'];
         $tmp = Redis::get($key);
-        if(empty($tmp)){
-            return $imgs;
+        if (empty($tmp)) {
+            $picList = InterestCirclePicture::where('patch_num', $interestCirclePicture['patch_num'])->get();
+            foreach ($picList as $pic) {
+                $imgs[] = $pic->image;
+            }
+        } else {
+            $imgs = json_decode($tmp, true);
         }
-        return json_decode($tmp,true);
+
+        return $imgs;
     }
 }