Mike 8 vuotta sitten
vanhempi
commit
5ead060e20

+ 1 - 0
server/app/Http/Controllers/Api/V1/AttachmentController.php

xqd
@@ -105,6 +105,7 @@ class AttachmentController extends Controller
             'image/png',
             'image/gif',
             'video/mp4',
+            'video/quicktime',
         ]);
         if (is_array($result)) {
             return $this->api($result);

+ 63 - 0
server/app/Http/Controllers/Api/V1/AuthController.php

xqd
@@ -230,6 +230,69 @@ class AuthController extends Controller
         ]);
     }
 
+    /**
+     * @api {post} /api/auth/avatar 上传头像(avatar)
+     * @apiDescription 上传头像(reset)
+     * @apiGroup Auth
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiParam {File} avatar 头像图片
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     * {
+     *     "state": true,
+     *     "code": 0,
+     *     "message": "",
+     *     "data": {
+     *         "md5": "fdf8dd78eb383b8acf6d94d4752c1424",
+     *     }
+     * }
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     * {
+     *     "state": false,
+     *     "code": 1000,
+     *     "message": "传入参数不正确",
+     *     "data": null or []
+     * }
+     * 可能出现的错误代码:
+     *    200     SAVE_USER_FAILED                保存用户数据失败
+     *    201     ATTACHMENT_MKDIR_FAILED         创建附件目录失败
+     *    202     ATTACHMENT_UPLOAD_INVALID       上传附件文件无效
+     *    203     ATTACHMENT_SAVE_FAILED          保存附件失败
+     *    204     ATTACHMENT_MOVE_FAILED          移动附件失败
+     *    205     ATTACHMENT_DELETE_FAILED        删除附件文件失败
+     *    206     ATTACHMENT_RECORD_DELETE_FAILED 删除附件记录失败
+     *    1000    CLIENT_WRONG_PARAMS             传入参数不正确
+     *    1101    INCORRECT_VERIFY_CODE           输入验证码错误
+     *    1105    USER_DOES_NOT_EXIST             用户不存在
+     *    1200    ATTACHMENT_UPLOAD_FAILED        附件上传失败
+     *    1201    ATTACHMENT_SIZE_EXCEEDED        附件大小超过限制
+     *    1202    ATTACHMENT_MIME_NOT_ALLOWED     附件类型不允许
+     *    1203    ATTACHMENT_NOT_EXIST            附件不存在
+     */
+    public function avatar(Request $request) {
+//        $user = Auth::user();
+        $user = $this->getUser();
+        $old_avatar = $user->avatar;
+        $result = $this->uploadAttachment($request, 'avatar', 'avatar', 4 * 1024 * 1024, [
+            'image/jpeg',
+            'image/png',
+            'image/gif',
+        ]);
+        if (is_array($result)) {
+            $result = array_shift($result);
+        }
+        if (is_string($result)) {
+            $user->avatar = $result;
+            if (!$user->save()) {
+                return $this->error(ErrorCode::SAVE_USER_FAILED);
+            }
+            $this->deleteAttachment($old_avatar);
+            return $this->api(['md5' => $result]);
+        }
+        return $this->error($result);
+    }
 
 
 }

+ 60 - 61
server/app/Http/Controllers/Api/V1/DreamController.php

xqd xqd xqd xqd
@@ -17,12 +17,12 @@ use App\Services\Base\ErrorCode;
 class DreamController extends Controller
 {
     /**
-     * @api {get} /api/dream/index    梦想
+     * @api {get} /api/dream/show    梦想
      * @apiDescription 梦想
      * @apiGroup Dream
      * @apiPermission Passport
      * @apiVersion 0.1.0
-     * @apiParam {int} type interaction paihang  默认index
+     * @apiParam {int} type index interaction paihang  默认all
      * @apiParam {int} id 梦想ID
      * @apiSuccessExample {json} Success-Response:
      * HTTP/1.1 200 OK
@@ -132,74 +132,71 @@ class DreamController extends Controller
      *  "data": null
      * }
      */
-    public function index(Request $request)
+    public function show(Request $request)
     {
         $user = $this->getUser();
         $type = $request->type;    //类型
         $id = $request->id;    //梦想ID
         if (empty($id)) return $this->error(ErrorCode::KEY_ERROR);
 
-        if ($type == 'paihang') {
-            $data = [];
-            $info = SupportDreamModel::where('dream_id',$id)->get();
-            $arr = [] ;
-            foreach ($info as $item) {
-                if (!array_key_exists($item->user_id,$arr)) {
-                    $arr[$item->user_id] = $item->score;
-                }else{
-                    $arr[$item->user_id] += $item->score;
-                }
-            }
-            arsort($arr);
-            foreach ($arr as $k => $v){
-                $user = UserInfoModel::find($k);
-                $user->score = $v;
-                $data[] = $user;
+        $info = SupportDreamModel::where('dream_id',$id)->get();
+        $top = [] ;
+        $topuser = [];
+        $top3user = [];
+        foreach ($info as $item) {
+            if (!array_key_exists($item->user_id,$top)) {
+                $top[$item->user_id] = $item->score;
+            }else{
+                $top[$item->user_id] += $item->score;
             }
-            return $this->api($data);
+        }
+        arsort($top);
+        foreach ($top as $user_id => $score){
+            $user = UserInfoModel::find($user_id);
+            $user->score = $score;
+            $topuser[] = $user;
+            if(count($top3user)<=2)$top3user[] = $user;
+        }
+        if ($type == 'paihang') return $this->api($topuser);
 
-        } elseif ($type == 'interaction') {
-            $times = DreamInfoModel::find($id)->time;
-            $data = InteractionInfo::where('dream_id',$id)->orderBy('id','desc')->get();
-            foreach ($data as $item) {
-                $item->comments = $item->comments;
-                foreach ($item->comments as $comment) {
-                    $comment->pic = UserInfoModel::find($comment->user_id)->pic;
-                    $comment->replay = $comment->replay;
-                    foreach ($comment->replay as $k1 => $v1){
-                        $v1->pic =  UserInfoModel::find($v1->user_id)->pic;
-                    }
+        $interactios = InteractionInfo::where('dream_id',$id)->orderBy('id','desc')->get();
+        foreach ($interactios as $item) {
+            $item->comments = $item->comments;
+            foreach ($item->comments as $comment) {
+                $comment->pic = UserInfoModel::find($comment->user_id)->pic;
+                $comment->replay = $comment->replay;
+                foreach ($comment->replay as $k1 => $v1){
+                    $v1->pic =  UserInfoModel::find($v1->user_id)->pic;
                 }
             }
-            return $this->api(compact('data','times'));
-        }else{
+        }
+        if ($type == 'interaction') return $this->api(compact('data'));
 //            梦想  图片  支持者前三    支持乘数参数    用户余额   梦想分数
-            $score = 0 ;
-            $a = SupportDreamModel::where('dream_id',$id)->get();
-            foreach ($a as $value){
-                $score += $value->score;
-            }
-            $money = $user->money;
-            $number = BaseSettingsModel::where('category','score')->select('key','value')->first();
-            $a = count($number) > 0 ? $number->key : '';
-            $c = count($number) > 0 ? $number->value : '';
-            $dream = DreamInfoModel::find($id);
-            $imgs = DreamImages::where('dream_id',$id)->orderBy('id','desc')->get();
-            $info = SupportDreamModel::where('dream_id',$id)->get();
-            $arr = [] ;
-            foreach ($info as $item) {
-                if (!array_key_exists($item->user_id,$arr)) {
-                    $arr[$item->user_id] = $item->score;
-                }else{
-                    $arr[$item->user_id] += $item->score;
-                }
-            }
-            arsort($arr);
-            foreach ($arr as $k => $v){
-                $arr[$k] = UserInfoModel::find($k)->pic;
+
+//            $money = $user->money;
+        $number = BaseSettingsModel::where('category','score')->select('key','value')->first();
+        $a = count($number) > 0 ? $number->key : '';
+        $c = count($number) > 0 ? $number->value : '';
+        $dream = DreamInfoModel::with(['dreamImgs','dreamUser'])->find($id);
+//            $imgs = DreamImages::where('dream_id',$id)->orderBy('id','desc')->get();
+//        $info = SupportDreamModel::where('dream_id',$id)->get();
+        $top3 = [] ;
+        $score = 0 ;
+        foreach ($info as $item) {
+            $score += $item->score;
+            if (!array_key_exists($item->user_id,$top3)) {
+                $top3[$item->user_id] = $item->score;
+            }else{
+                $top3[$item->user_id] += $item->score;
             }
-            return $this->api(compact('dream','imgs','money','arr','a','c','score'));
         }
+        arsort($top3);
+        foreach ($top3 as $k => $v){
+            $user = UserInfoModel::find($k);
+            if($user)
+            $top3[$k] = $user->pic;
+        }
+        return $this->api(compact('dream','top3user','a','c','score','topuser'));
     }
 
     /**
@@ -242,12 +239,10 @@ class DreamController extends Controller
             [
                 'coin'  => 'required',
                 'id'  => 'required',
-                'number'  => 'required',
             ],
             [
                 'coin.required'  => '梦想币不能为空',
                 'id.required'  => '支持梦想不能为空',
-                'number.required'  => '支持乘数不能为空',
             ]
         );
         if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
@@ -255,9 +250,13 @@ class DreamController extends Controller
         $dream_id = $request->id;
         $dream_info = DreamInfoModel::find($dream_id);
         $user_id = $dream_info->user_id;
-
         $coin = $request->coin;
-        $number = $request->number;
+
+        $setting = BaseSettingsModel::where('category','score')->select('key','value')->first();
+        $a = count($setting) > 0 ? $setting->key : '';
+        $c = count($setting) > 0 ? $setting->value : '';
+        //Todo 支持乘数目公式
+        $number = 2;
 
         if ($user->money < $coin) {
             return $this->error(ErrorCode::MERCHANT_BALANCE_NOT_ENOUGH);

+ 20 - 18
server/app/Http/Controllers/Api/V1/IndexController.php

xqd xqd
@@ -174,25 +174,27 @@ class IndexController extends Controller
     {
         $user = $this->getUser();
         //        关注的梦想
-        $arr =  $user->UserCareDream;
+        $users =  $user->UserCareDream;
 //        $arr = UserInfoModel::where('id',$user->id)->whereHas('UserCareDream', function ($query) {
 //            $query->where('interaction_number', '>', 0);
 //        })->get();
-        $users = [] ;
-        $arr1 = [];
-        foreach ($arr as $k => $v){
-            if ($v->pivot->interaction_number > 0) {
-                if (!array_key_exists($v->pivot->dream_user_id,$arr1)) {
-                    $arr1[$v->pivot->dream_user_id] = $v->pivot->interaction_number;
-                }else{
-                    $arr1[$v->pivot->dream_user_id] += $v->pivot->interaction_number;
-                }
-            }
-        }
-        foreach ($arr1 as $k => $v){
-            $a = UserInfoModel::find($k);
-            $users[$k] =[$a->allInteraction,$a->pic,$v] ;
-        }
+//        dd($arr->toArray());
+//        $users = [] ;
+//        $arr1 = [];
+//        foreach ($arr as $k => $v){
+//            if ($v->pivot->interaction_number > 0) {
+//                if (!array_key_exists($v->pivot->dream_user_id,$arr1)) {
+//                    $arr1[$v->pivot->dream_user_id] = $v->pivot->interaction_number;
+//                }else{
+//                    $arr1[$v->pivot->dream_user_id] += $v->pivot->interaction_number;
+//                }
+//            }
+//        }
+//        dd($arr1);
+//        foreach ($arr1 as $k => $v){
+//            $a = UserInfoModel::find($k);
+//            $users[$k] =[$a->allInteraction,$a->pic,$v] ;
+//        }
         $type = $request->type;
         if ($type == 'trend') {
             $dreams = DreamInfoModel::orderBy('score','desc')->offset(20)->limit(100)->paginate(20);
@@ -201,11 +203,11 @@ class IndexController extends Controller
             $dreams = DreamInfoModel::orderBy('score','desc')->offset(100)->limit(500)->paginate(20);
             return $this->api(compact('users','dreams'));
         } else{
-            $banner = $this->getBanner();
+            $banners = $this->getBanner();
     //        获取其他用户信息 及梦想
             $dreams = DreamInfoModel::orderBy('score','desc')->limit(20)->paginate(20);
             $this->dreams($dreams);
-            return $this->api(compact('banner','users','dreams'));
+            return $this->api(compact('banners','users','dreams'));
         }
     }
 

+ 3 - 0
server/app/Models/DreamImages.php

xqd
@@ -9,4 +9,7 @@ class DreamImages extends Model
     protected $table = 'dream_images';
     protected $fillable = ['dream_id','title','pic'];
     protected $hidden = ['dream_id','created_at','updated_at','deleted_at','id'];
+
+
+
 }

+ 1 - 8
server/app/Models/DreamInfoModel.php

xqd
@@ -48,16 +48,9 @@ class DreamInfoModel extends BaseModel
         return $this->hasOne('App\Models\UserInfoModel','id','user_id');
     }
 
-//    public function dreamFindUser()
-//    {
-//        return $this->belongsToMany('App\Models\UserInfoModel','user_dream','dream_id','user_id');
-//    }
-
-
-
     public function dreamImgs()
     {
-        return $this->hasMany('App\Models\DreamImages','dream_id','id');
+        return $this->hasMany('App\Models\DreamImages','dream_id');
     }
 
     public function dreamImgsFirst()

+ 3 - 2
server/app/Models/UserInfoModel.php

xqd xqd
@@ -41,7 +41,8 @@ class UserInfoModel extends Authenticatable
                            'sign',
                            'pic',
                            'money',
-                           'sex',
+        'sex',
+        'city',
                            'signture',
                            'tall',
                            'job',
@@ -60,7 +61,7 @@ class UserInfoModel extends Authenticatable
     }
     public function UserCareDream()
     {
-        return $this->belongsToMany('App\Models\DreamInfoModel','user_care_dream','user_id','dream_id')->withPivot('interaction_number','dream_user_id');
+        return $this->belongsToMany('App\Models\DreamInfoModel','user_care_dream','user_id','dream_id')->with(['dreamUser'])->withPivot('interaction_number','dream_user_id')->orderBy('updated_at');
     }
 
 

+ 3 - 3
server/routes/api.php

xqd
@@ -182,9 +182,9 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\V1'], function ($a
     ]);
 
 //    梦想
-    $api->get('dream/index', [
-        'as' => 'dream.index',
-        'uses' => 'DreamController@index',
+    $api->get('dream/show', [
+        'as' => 'dream.show',
+        'uses' => 'DreamController@show',
     ]);
     $api->get('dream/collection', [
         'as' => 'dream.collection',