Browse Source

Merge branch 'gq' of http://git.9026.com/roobe/miao

Mike 7 years ago
parent
commit
28a36020f3
47 changed files with 3401 additions and 192 deletions
  1. 97 32
      server/app/Console/Commands/DreamDJS.php
  2. 44 0
      server/app/Console/Commands/refurbish.php
  3. 3 0
      server/app/Console/Kernel.php
  4. 23 0
      server/app/Http/Controllers/Admin/Comment/InfoController.php
  5. 32 2
      server/app/Http/Controllers/Admin/Dream/InfoController.php
  6. 180 1
      server/app/Http/Controllers/Admin/Interaction/InfoController.php
  7. 18 3
      server/app/Http/Controllers/Admin/System/InfoController.php
  8. 14 0
      server/app/Http/Controllers/Admin/User/Cash/OutController.php
  9. 26 0
      server/app/Http/Controllers/Admin/User/InfoController.php
  10. 7 7
      server/app/Http/Controllers/Api/V1/AuthController.php
  11. 84 20
      server/app/Http/Controllers/Api/V1/DreamController.php
  12. 1 1
      server/app/Http/Controllers/Api/V1/HomeController.php
  13. 11 7
      server/app/Http/Controllers/Api/V1/IndexController.php
  14. 24 5
      server/app/Http/Controllers/Api/V1/InteractionController.php
  15. 280 35
      server/app/Http/Controllers/Api/V1/MyController.php
  16. 1497 0
      server/app/Http/Controllers/Api/V1/MyController.php___jb_tmp___
  17. 5 0
      server/app/Models/DreamInfoModel.php
  18. 5 0
      server/app/Models/SupportDreamModel.php
  19. 10 0
      server/app/Models/SystemInfoModel.php
  20. 1 1
      server/app/Models/UserCareDream.php
  21. 3 1
      server/app/Models/UserCashOut.php
  22. 3 3
      server/app/Repositories/User/Cash/Criteria/MultiWhere.php
  23. 80 0
      server/app/Widget/Tools/VideoUpload.php
  24. 31 0
      server/database/migrations/2017_10_30_110624_add_delete_at_user_cash_out_table.php
  25. 32 0
      server/database/migrations/2017_10_30_144104_add_number_to__user_cash_out_table.php
  26. 33 0
      server/database/migrations/2017_10_30_152951_add_type_id_to_system_info_table.php
  27. 34 0
      server/database/migrations/2017_10_30_165649_add_is_reply_to_system_info_table.php
  28. 34 0
      server/database/migrations/2017_10_30_172609_add_is_end_to_system_info_table.php
  29. 32 0
      server/database/migrations/2017_10_31_100205_add_is_ok_to_dream_info_table.php
  30. 33 0
      server/database/migrations/2017_11_01_101227_add_imagevideo_to_system_info_table.php
  31. 2 0
      server/resources/views/admin/account_log/index.blade.php
  32. 70 0
      server/resources/views/admin/comment/edit.blade.php
  33. 25 10
      server/resources/views/admin/dream/info/edit.blade.php
  34. 18 2
      server/resources/views/admin/dream/info/index.blade.php
  35. 16 3
      server/resources/views/admin/dream/interaction/view.blade.php
  36. 61 0
      server/resources/views/admin/dream/support_dream/index.blade.php
  37. 92 0
      server/resources/views/admin/interaction/info/check.blade.php
  38. 138 0
      server/resources/views/admin/interaction/info/edit.blade.php
  39. 126 0
      server/resources/views/admin/interaction/info/index.blade.php
  40. 20 0
      server/resources/views/admin/interaction/info/show_code.blade.php
  41. 118 0
      server/resources/views/admin/interaction/info/view.blade.php
  42. 1 11
      server/resources/views/admin/system/info/edit.blade.php
  43. 3 0
      server/resources/views/admin/system/info/index.blade.php
  44. 11 33
      server/resources/views/admin/user/cash/out/edit.blade.php
  45. 12 9
      server/resources/views/admin/user/cash/out/index.blade.php
  46. 1 0
      server/resources/views/admin/user/info/index.blade.php
  47. 10 6
      server/routes/api.php

+ 97 - 32
server/app/Console/Commands/DreamDJS.php

xqd xqd
@@ -5,9 +5,11 @@ namespace App\Console\Commands;
 use App\Models\DreamInfoModel;
 use App\Models\SupportDreamModel;
 use App\Models\SystemInfoModel;
+use App\Models\UserCareDream;
 use Illuminate\Console\Command;
 use Illuminate\Support\Facades\Auth;
 use App\Helper\JpushHelper;
+use Illuminate\Support\Facades\Log;
 
 class DreamDJS extends Command
 {
@@ -44,42 +46,105 @@ class DreamDJS extends Command
     public function handle()
     {
         //执行逻辑
-        $user = Auth::guard('api')->user();
-        $dream = $user->UserCareDream;
-        foreach ($dream as $item) {
-            if (date('Y-m-d',$item->end_time) == date('Y-m-d',time()+1*24*3600)) {
-                $message = $item->name.'过1天就要结束啦!';
-                $this->jPush($message,'',$user->id);
-            }
-            if ( date('Y-m-d',time()+7*24*3600)== date('Y-m-d',$item->end_time)) {
-                $message = $item->name.'过1周就要结束啦!';
-                $this->jPush($message,'',$user->id);
+        Log::info('------------通知消息begin-----------');
+
+        $end_dream_info = DreamInfoModel::with('user')->where('end_time','<',date('Y-m-d H:i:s'))->get();
+        if (count($end_dream_info)>0) {
+            foreach ($end_dream_info as $item){
+//                (1)给梦想者发消息
+                $dream_user = $item->user;
+                if (!empty($dream_user)) {
+                    $message = "你的梦想《".$item->name."》已结束,点击了解接下来的步骤";
+                    $arr = [
+                        'user_id'=>0,
+                        'message'=>$message,
+                        'to_user_id'=>$item->user_id,
+                        'dream_id'=>$item->id,
+                        'is_end'=>1,
+                        'type_id'=>1,
+                        'attr_id'=>6,
+                    ];
+                    SystemInfoModel::firstOrCreate($arr);
+    //             (2)   给支持者发送消息
+                    $support_dream = SupportDreamModel::where('dream_id',$item->id)->get();
+                    $top = [] ;
+                    foreach ($support_dream as $item2) {
+                        if (!array_key_exists($item2->user_id,$top)) {
+                            $top[$item2->user_id] = $item2->score;
+                        }else{
+                            $top[$item2->user_id] += $item2->score;
+                        }
+                    }
+                    arsort($top);
+                    $new_arr = array_values($top);
+                    if (!empty($top)) {
+                        foreach ($top as $k => $v) {
+                            $key = array_search($v,$new_arr);  //排名
+                            $message = $item->name."已经结束啦!谢谢你的支持,你可是他的第".($key+1)."支持者哦!";
+                            if (empty($key)) { //最大支持者
+                                $message = "恭喜你成为《".$item->name."》的《梦主》! ";
+                                $info =  $dream_user->nickname."会以你提供的微信/电话联系你约好时间地点亲自感谢你给予的支持和鼓励。如果你不希望见面或不想要梦想者拥有你的联系方式,请按《不需要见面》的按钮或联系客服。";
+                                $arr2 = [
+                                    'user_id'=>$item->user_id,
+                                    'info'=>$info,
+                                    'message'=>$message,
+                                    'to_user_id'=>$k,
+                                    'dream_id'=>$item->id,
+                                    'is_end'=>1,
+                                    'is_url'=>1,
+                                    'type_id'=>2,
+                                    'is_max'=>1,
+                                ];
+                            }else{
+                                $arr2 = [
+                                    'user_id'=>0,
+                                    'message'=>$message,
+                                    'to_user_id'=>$k,
+                                    'dream_id'=>$item->id,
+                                    'is_end'=>1,
+                                    'is_url'=>1,
+                                    'type_id'=>2,
+                                ];
+                            }
+                            SystemInfoModel::firstOrCreate($arr2);
+                        }
+                    }
+                }
+
             }
-            if ( $item->end_time < date('Y-n-d H:i:s')) {
-                $support_dream = SupportDreamModel::where('dream_id',$item->id)->get();
-                $top = [] ;
-                foreach ($support_dream as $item2) {
-                    if (!array_key_exists($item2->user_id,$top)) {
-                        $top[$item2->user_id] = $item2->score;
-                    }else{
-                        $top[$item2->user_id] += $item2->score;
+
+        }
+
+//            2   我关注的梦想倒计时 通知消息
+        $dreams =DreamInfoModel::with('user')->where('end_time','>',date('Y-m-d H:i:s'))->get();
+        if (count($dreams) > 0) {
+            foreach ($dreams as $item) {
+                if (date('Y-m-d',strtotime($item->end_time)) == date('Y-m-d',time()+1*24*3600)) {
+                    $message = $item->name.'过1天就要结束啦!';
+                }elseif(date('Y-m-d H:i',strtotime($item->end_time)) == date('Y-m-d H:i',time()+3600)){
+                    $message = $item->name.'过1小时就要结束啦!';
+                }else{
+                    $message = '';
+                }
+                if (!empty($message)) {
+                    $user_ids = UserCareDream::where('dream_id',$item->id)->select('id','user_id')->get()->toArray();
+                    $arr_ids = array_column($user_ids,'user_id');
+                    if (!empty($arr_ids)) {
+                        foreach ($arr_ids as $u_id) {
+                            $arr3 = [
+                                'user_id'=>0,
+                                'message'=>$message,
+                                'to_user_id'=>$u_id,
+                                'dream_id'=>$item->id,
+                                'is_url'=>1,
+                                'type_id'=>2,
+                                'attr_id'=>8,
+                            ];
+                            SystemInfoModel::firstOrCreate($arr3);
+                        }
                     }
                 }
-                arsort($top);
-                $new_arr = array_values($top);
-                $key = array_search($top[$user->id],$new_arr);
-                $message = $item->name."已经结束啦!谢谢你的支持,你可是他的第".($key+1)."支持者哦!";
-                $this->jPush($message,'',$user->id);
             }
-           if( isset($message)){
-               $arr = [
-                    'user_id'=>0,
-                    'message'=>$message,
-                    'to_user_id'=>$user->id,
-                    'dream_id'=>$item->id,
-            ];
-               SystemInfoModel::create($arr);
-           }
         }
     }
 }

+ 44 - 0
server/app/Console/Commands/refurbish.php

xqd
@@ -0,0 +1,44 @@
+<?php
+
+namespace App\Console\Commands;
+
+use Illuminate\Console\Command;
+use Illuminate\Support\Facades\Log;
+
+class refurbish extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+//    自动加载页面数据
+    protected $signature = 'refurbish';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = '自动刷新';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        Log::info('i miss you ');
+    }
+}

+ 3 - 0
server/app/Console/Kernel.php

xqd xqd
@@ -14,6 +14,7 @@ class Kernel extends ConsoleKernel
      */
     protected $commands = [
         \App\Console\Commands\DreamDJS::class,
+        \App\Console\Commands\refurbish::class,
     ];
 
     /**
@@ -28,6 +29,8 @@ class Kernel extends ConsoleKernel
         //          ->hourly();
         $schedule->command('DreamDJS')
             ->everyMinute();
+        $schedule->command('refurbish')
+            ->everyMinute();
     }
 
     /**

+ 23 - 0
server/app/Http/Controllers/Admin/Comment/InfoController.php

xqd
@@ -0,0 +1,23 @@
+<?php
+namespace App\Http\Controllers\Admin\Comment;
+use App\Http\Controllers\Admin\Controller;
+use App\Models\CommentInfoModel;
+use Illuminate\Http\Request;
+
+class InfoController extends Controller
+{
+
+    /**
+     * 删除
+     */
+    public function destroy(Request $reqeust)
+    {
+
+        $ok = CommentInfoModel::destroy($reqeust->get('id'));
+        if ($ok) {
+            return $this->showMessage('操作成功');
+        } else {
+            return $this->showWarning("操作失败");
+        }
+    }
+}

+ 32 - 2
server/app/Http/Controllers/Admin/Dream/InfoController.php

xqd xqd xqd xqd
@@ -12,6 +12,7 @@ use App\Models\BaseAttachmentModel;
 use App\Models\BaseSettingsModel;
 use App\Models\DreamImages;
 use App\Models\DreamInfoModel;
+use App\Models\SupportDreamModel;
 use App\Models\SystemInfoModel;
 use App\Models\UserCareDream;
 use Illuminate\Http\Request;
@@ -38,8 +39,9 @@ class InfoController extends Controller
         }else{
             $query = $query->pushCriteria(new OrderBy('id','desc'));
         }
-        $list = $query->paginate();
-        return view('admin.dream.info.index',compact('list'));
+        $list = $query->with(['meet'])->paginate();
+        $ab_value = BaseSettingsModel::where('category','paihang')->first();
+        return view('admin.dream.info.index',compact('list','ab_value'));
     }
 
 
@@ -139,9 +141,22 @@ class InfoController extends Controller
      */
     private function _updateSave() {
         $data = (array) request('data');
+        if ($data['status']==2) { //审核不过
+            $info = [
+                'user_id' => $data['user_id'],
+                'message' => ' 你的梦想被暂停,客服会在短时间内联络你',
+                'type_id' => 1,
+                'attr_id' => 5,
+            ];
+            SystemInfoModel::create($info);
+        }
         if (array_key_exists('sign',$data)) {
             $data['sign'] = join(',',$data['sign']);
         }
+        if (!array_key_exists('status',$data)) {
+            $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表');
+            return $this->showWarning('请选择梦想状态',$url);
+        }
 //        后台修改排行参数时,梦想分数也改变
         $dream_id = request('id');
         $data2 = UserCareDream::where('dream_id',$dream_id)->get();
@@ -260,4 +275,19 @@ class InfoController extends Controller
         $code = $request->code;
         return view('admin.dream.info.show_code',compact('code'));
     }
+
+//    查看支持记录
+
+    public function supportInfo(Request $request)
+    {
+        $dream_id = $request->input('dream_id');
+        $request = $request->all();
+        if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
+            $query = SupportDreamModel::orderBy($request['sort_field'],$request['sort_field_by']);
+        }else{
+            $query = SupportDreamModel::orderBy('id','desc');
+        }
+        $list = $query->with('user')->where('dream_id',$dream_id)->paginate();
+        return view('admin.dream.support_dream.index',compact('list'));
+    }
 }

+ 180 - 1
server/app/Http/Controllers/Admin/Interaction/InfoController.php

xqd xqd xqd
@@ -2,8 +2,12 @@
 
 namespace App\Http\Controllers\Admin\Interaction;
 
+use App\Models\BaseAttachmentModel;
 use App\Models\CommentInfoModel;
 use App\Models\DreamInfoModel;
+use App\Models\InteractionInfo;
+use App\Models\UserInfoModel;
+use App\Widget\Tools\VideoUpload;
 use Illuminate\Http\Request;
 use App\Http\Controllers\Admin\Controller;
 
@@ -11,13 +15,14 @@ class InfoController extends Controller
 {
     public function view(Request $request)
     {
+        $dream_id = $request->id;
         $dream = DreamInfoModel::where('id',$request->id)->with('interactions')->first();
         $list = $dream->interactions;
         foreach ($list as $item){
             $comments = CommentInfoModel::where('interaction_id',$item->id)->orderBy('created_at')->get();
             $item->comms =  $comments;
         }
-        return view('admin.dream.interaction.view',compact('list'));
+        return view('admin.dream.interaction.view',compact('list','dream_id'));
     }
 
     public function update(Request $request,$id)
@@ -32,4 +37,178 @@ class InfoController extends Controller
             return $this->showWarning('操作失败',$url);
         }
     }
+
+//    新增动态
+    public function create(Request $reqeust)
+    {
+        if($reqeust->method() == 'POST') {
+            return $this->_createSave();
+        }
+        $dream_id = $reqeust->dream_id;
+        return view('admin.interaction.info.edit',compact('dream_id'));
+    }
+
+    /**
+     * 保存修改
+     */
+    private function _createSave(){
+
+        $data = (array) request('data');
+        $pics = (array) request('pic');
+        if($pics){
+            foreach ($pics['url'] as $key => $pic) {
+                $data['pic'.($key+1)] = getenv('APP_URL').$pic;
+            }
+        }
+
+        if (request("file")) {
+            $file = request("file");
+            $fileSize = $file->getSize();
+            $size =  200 * 1024 * 1024;
+            if ($fileSize > $size) {
+                return back()->with('error','请上传小于200MB的文件!');
+            }
+            $mimeType = [
+                'video/mp4',
+            ];
+            $fileMimeType = $file->getMimeType();
+            if (!empty($mimeType) && !in_array($fileMimeType, $mimeType)) {
+                return back()->with('error','File type allow MP4!');
+            }
+            if (!$file = VideoUpload::mvFile('file')) return back()->with('error','上传失败');
+            $data["video"] = $file;
+        }
+        $id = InteractionInfo::create($data);
+        if($id) {
+            $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表');
+            $this->showMessage('添加成功',$url);
+        }else{
+            $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表');
+            return $this->showWarning('添加失败',$url);
+        }
+    }
+
+//    修改动态
+    public function updateInteraction(Request $reqeust) {
+        if($reqeust->method() == 'POST') {
+            return $this->_updateSave();
+        }
+        $data = InteractionInfo::find($reqeust->get('id'));
+        $arr = [];
+        for ($i = 1; $i <=9; $i++) {
+            if (!empty($data['pic'.($i)])) {
+                $arr[] = $data['pic'.($i)];
+            }
+        }
+        $data->imgs = $arr;
+        return view('admin.interaction.info.edit',compact('data'));
+    }
+
+    /**
+     * 保存修改
+     */
+    private function _updateSave() {
+        $data = (array) request('data');
+        $interaction_id = request('id');
+        $interaction = InteractionInfo::find($interaction_id)->toArray();
+        $old_pics = [];
+        for ($i = 1; $i <=9; $i++) {
+            if (!empty($interaction['pic'.($i)])) {
+                $old_pics[] = $interaction['pic'.($i)];
+            }
+        }
+        $new_pics = (array) request('pic');
+        $a = array_diff($new_pics['url'],$old_pics);
+        $b = array_diff($old_pics,$new_pics['url']);
+        if (!empty($a) || !empty($b)) {       //有图片变化执行
+            //        删除以前图片 重新插入
+            if (!empty($b)) {
+                foreach ($b as $old_pic){
+                    $key = array_search($old_pic,$interaction);
+                    $interaction[$key] = '';
+                    if (is_file('.'.str_replace(getenv('APP_URL'),'',$old_pic))) {
+                        unlink('.'.str_replace(getenv('APP_URL'),'',$old_pic));
+                    }
+                    BaseAttachmentModel::where('url',$old_pic)->delete();
+                    InteractionInfo::find(request('id'))->update($interaction);
+                }
+            }
+
+            $a = array_values($a);
+            for ($i = 1; $i <=9; $i++) {
+                if (empty($interaction['pic'.($i)])) {
+                    $c = -1;
+                    $c++;
+                    $interaction['pic'.($i)] = getenv('APP_URL').$a[$c];
+                }
+            }
+
+        }
+        $ok = InteractionInfo::find(request('id'))->update($interaction);
+        if($ok) {
+            $url[] = array('url'=>U( 'Interaction/Info/index'),'title'=>'返回列表');
+            return $this->showMessage('操作成功',urldecode(request('_referer')));
+        }else{
+            $url[] = array('url'=>U( 'Interaction/Info/index'),'title'=>'返回列表');
+            return $this->showWarning('操作失败',$url);
+        }
+    }
+
+    /**
+     * 删除
+     */
+    public function destroy(Request $reqeust)
+    {
+
+        $ok = InteractionInfo::destroy($reqeust->get('id'));
+        if ($ok) {
+            return $this->showMessage('操作成功');
+        } else {
+            return $this->showWarning("操作失败");
+        }
+    }
+
+    public function comment(Request $request)
+    {
+        $interaction_id = $request->input('id');
+        $comment_id = $request->input('comment_id');
+        if ($request->isMethod('POST')) {
+            $comment = $request->input('comment');
+            $interaction = InteractionInfo::find($interaction_id);
+            $user_id = empty($interaction->dream) ? 0 : $interaction->dream->user_id;
+            $user = UserInfoModel::find($user_id);
+            if(!empty($comment_id)){   //回复
+                $comment_info = CommentInfoModel::find($comment_id);
+                $interaction = InteractionInfo::find($comment_info->interaction_id);
+                $user_id = empty($interaction->dream) ? 0 : $interaction->dream->user_id;
+                $user = UserInfoModel::find($user_id);
+                $arr = [
+                    'interaction_id'=>$comment_info->interaction_id,
+                    'user_id'=>$comment_info->user_id,
+                    'user_avatar'=>$comment_info->user_avatar,
+                    'user_nickname'=>$comment_info->user_nickname,
+                    'to_user_id'=>$user_id,
+                    'content'=>$comment,
+                    'to_user_avatar'=>empty($user) ? '' : $user->avatar ,
+                    'to_user_nickname'=>empty($user) ? '' : $user->nickname ,
+                ];
+                $ok = CommentInfoModel::create($arr);
+            }else{
+                $arr = [
+                    'interaction_id'=>$interaction_id,
+                    'user_id'=>$user_id,
+                    'content'=>$comment,
+                    'user_avatar'=>empty($user) ? '' : $user->avatar ,
+                    'user_nickname'=>empty($user) ? '' : $user->nickname ,
+                ];
+                $ok = CommentInfoModel::create($arr);
+            }
+            if ($ok) {
+                return $this->showMessage('操作成功');
+            } else {
+                return $this->showWarning("操作失败");
+            }
+        }
+     return view('admin.comment.edit',compact('interaction_id'));
+    }
 }

+ 18 - 3
server/app/Http/Controllers/Admin/System/InfoController.php

xqd xqd
@@ -28,11 +28,13 @@ class InfoController extends Controller
         $query = $this->repository->pushCriteria(new MultiWhere($search));
         $request = $reqeust->all();
         if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
-        $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by']));
+            $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by']));
+        }else{
+            $query = $query->pushCriteria(new OrderBy('id','desc'));
         }
         $list = $query->paginate();
         foreach ($list as $item) {
-            $user = UserInfoModel::find($item->user_id);
+            $user = UserInfoModel::find($item->to_user_id);
             $item->nickname = empty($user) ? '' : $user->nickname;
         }
         return view('admin.system.info.index',compact('list'));
@@ -67,8 +69,21 @@ class InfoController extends Controller
      * 保存修改
      */
     private function _createSave(){
+//        给所有用户发送系统消息
         $data = (array) request('data');
-        $id = $this->repository->create($data);
+        $user_ids = UserInfoModel::select('id')->where('status',1)->get()->toArray();
+        $arr_ids = array_column($user_ids,'id');
+        $arr = [];
+        if (!empty($arr_ids)) {
+            foreach ($arr_ids as $user_id) {
+                $arr[] = [
+                    'to_user_id'=>$user_id,
+                    'message'=>$data['message'],
+                    'created_at'=>date('Y-m-d H:i:s'),
+                ];
+            }
+        }
+        $id = SystemInfoModel::insert($arr);
         if($id) {
             $url[] = array('url'=>U( 'System/Info/index'),'title'=>'返回列表');
             $url[] = array('url'=>U( 'System/Info/create'),'title'=>'继续添加');

+ 14 - 0
server/app/Http/Controllers/Admin/User/Cash/OutController.php

xqd xqd
@@ -8,6 +8,7 @@
  */
 namespace App\Http\Controllers\Admin\User\Cash;
 use App\Http\Controllers\Admin\Controller;
+use App\Models\SystemInfoModel;
 use Illuminate\Http\Request;
 use App\Repositories\Base\Criteria\OrderBy;
 use App\Repositories\User\Cash\Criteria\MultiWhere;
@@ -92,6 +93,19 @@ class OutController extends Controller
      */
     private function _updateSave() {
         $data = (array) request('data');
+        if ($data['status'] == 3|| $data['status'] == 2) { //审核不过已打款发送梦想消息
+            if ($data['status'] == 3) {
+                $message = '你的提现被拒绝了。客服会在短时间内联系你。';
+            }else{
+                $message = '你提现的¥'.$data['cash'].'已经到账啦,去实现梦想吧!喵~';
+            }
+            $arr = [
+                'type_id'=>2,
+                'to_user_id'=>$data['user_id'],
+                'message'=>$message,
+            ];
+            SystemInfoModel::create($arr);
+        }
         $ok = $this->repository->update(request('id'),$data);
         if($ok) {
             $url[] = array('url'=>U( 'User/Cash/Out/index'),'title'=>'返回列表');

+ 26 - 0
server/app/Http/Controllers/Admin/User/InfoController.php

xqd xqd
@@ -9,7 +9,15 @@
 namespace App\Http\Controllers\Admin\User;
 use App\Http\Controllers\Admin\Controller;
 use App\Models\BaseAttachmentModel;
+use App\Models\MeetInfoModel;
+use App\Models\SearchInfoModel;
+use App\Models\Suggest;
 use App\Models\SupportDreamModel;
+use App\Models\SystemInfoModel;
+use App\Models\UserBanksModel;
+use App\Models\UserCareDream;
+use App\Models\UserCashOut;
+use App\Models\UserInfoModel;
 use Illuminate\Http\Request;
 use App\Repositories\Base\Criteria\OrderBy;
 use App\Repositories\User\Criteria\MultiWhere;
@@ -189,8 +197,26 @@ class InfoController extends Controller
      * 删除
      */
     public function destroy(Request $reqeust) {
+        $user_id = $reqeust->get('id');
+//        关联模型删除
+        $user = UserInfoModel::find($user_id);
+        $allImgs = $user->allImgs();
+        if(count($allImgs) > 0) $allImgs->delete();
+        $allInteraction = $user->allInteraction();
+        if(count($allInteraction) > 0) $allInteraction->delete();
+        $dreams = $user->dreams();
+        if(count($dreams) > 0) $dreams->delete();
         $bool = $this->repository->destroy($reqeust->get('id'));
         if($bool) {
+//            删除用户后跟用户相关的数据全部删除
+            UserCashOut::where('user_id',$user_id)->delete();
+            UserCareDream::where('user_id',$user_id)->delete();
+            UserBanksModel::where('user_id',$user_id)->delete();
+            SystemInfoModel::where('user_id',$user_id)->delete();
+            SupportDreamModel::where('user_id',$user_id)->delete();
+            Suggest::where('user_id',$user_id)->delete();
+            SearchInfoModel::where('user_id',$user_id)->delete();
+            MeetInfoModel::where('user_id',$user_id)->delete();
             return  $this->showMessage('操作成功');
         }else{
             return  $this->showWarning("操作失败");

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

xqd
@@ -300,19 +300,19 @@ class AuthController extends Controller
         Cache::store('file')->put($key, $verify_code, $this->expireTime);
         $msg = '【喵喵】您的验证码是:(' . $verify_code.')。5分钟内有效请及时验证';
 
-         $result = $this->sendSms($msg, $phone);
+        if(env("APP_DEBUG")){
+            return $this->api(['verify_code' => $verify_code]);
+        }else{
+            $result = $this->sendSms($msg, $phone);
+        }
+//         $result = $this->sendSms($msg, $phone);
         /*if (!$result)
              $this->logger->Error("Send sms failed.");*/
         if ($result!='success') {
             \Log::error("Send sms failed.");
         }
 
-        if(env("APP_DEBUG")){
-            return $this->error(1);
-        }else{
-            //product
-            return $this->api(['verify_code' => $verify_code]);
-        }
+
 //        return $this->api(['verify_code' => $verify_code]);
     }
 

+ 84 - 20
server/app/Http/Controllers/Api/V1/DreamController.php

xqd xqd xqd xqd xqd xqd xqd xqd
@@ -51,6 +51,7 @@ class DreamController extends Controller
                 "video": null,
                 "score": 100079365,
                 "sign": "",
+                "signs": [],          梦想标签
                 "created_at": "2017-06-25 11:47:45",
                 "updated_at": "2017-06-25 15:10:50",
                 "is_collection" : 1                         1已收藏  0未收藏
@@ -221,9 +222,11 @@ class DreamController extends Controller
         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 (!empty($user)) {
+                $user->score = $score;
+                $topuser[] = $user;
+                if(count($top3user) <= 2) $top3user[] = $user ;
+            }
         }
         if ($type == 'paihang') return $this->api($topuser);
         $interactions = InteractionInfo::where('dream_id',$id)->with(['comments' => function ($query) {
@@ -254,6 +257,7 @@ class DreamController extends Controller
         if ($number <= 1) $number = 1;
         $dream = DreamInfoModel::with(['imgs','user'])->find($id);
         if (empty($dream)) return $this->error(ErrorCode::DREAM_NOT_EXIST);
+        $dream->signs = explode(',',$dream->sign);
         $dream->user_coin = $user->coin;
         $dream->topuser = $topuser;
         $dream->top3user = $top3user;
@@ -410,12 +414,35 @@ class DreamController extends Controller
         if ($user->coin < $coin) {
             return $this->error(ErrorCode::COIN_NOT_ENOUGH);
         }else{
+//支持成功之前
+            $support_dream = SupportDreamModel::where('dream_id',$dream_id)->get();
+            $top = [] ;
+            foreach ($support_dream as $item) {
+                if (!array_key_exists($item->user_id,$top)) {
+                    $top[$item->user_id] = $item->score;
+                }else{
+                    $top[$item->user_id] += $item->score;
+                }
+            }
+            arsort($top);
+            $new_arr = array_values($top);
+            if (!empty($new_arr)) {
+                $old_top_user_id = array_search($new_arr[0],$top);
+            }else{
+                $old_top_user_id = 0;
+            }
+
+
 
             $user->coin  -= $coin;
             $user->save();
             $dream->get_coin += $coin;
             $dream->mark += $coin*$number;
             $dream->save();
+//            在支持梦想时 如果梦主排名配取代时发送系统消息
+            $this->systemInfo($dream->id,$user->id,$old_top_user_id);
+
+
             //            梦想实现创建二维码
             if ($dream->coin >= $dream->get_coin && empty($dream->code)) {
                 //        生成二维码
@@ -460,10 +487,14 @@ class DreamController extends Controller
                 'op' =>  AccountLog::OP_SUPPORT,
             ];
             AccountLog::create($data);
-            $message = UserInfoModel::find($user->id)->nickname.'为你的梦想捐赠'.$coin.'梦想币';
+            $message = UserInfoModel::find($user->id)->nickname.'为你的梦想支持了'.$coin.'梦想币';
             $info = [
-                'user_id' => $user_id,
+                'to_user_id' => $user_id,
+                'user_id'=>$user->id,
                 'message' => $message,
+                'is_reply' => 1,
+                'type_id' => 1,
+                'attr_id' => 1,
             ];
             SystemInfoModel::create($info);
 
@@ -495,6 +526,40 @@ class DreamController extends Controller
         }
     }
 
+    public function systemInfo($dream_id,$user_id,$old_top_user_id)
+    {
+        $user  = UserInfoModel::find($user_id);
+        $dream  = UserInfoModel::find($dream_id);
+        $support_dream = SupportDreamModel::where('dream_id',$dream_id)->get();
+        $top = [] ;
+        foreach ($support_dream as $item) {
+            if (!array_key_exists($item->user_id,$top)) {
+                $top[$item->user_id] = $item->score;
+            }else{
+                $top[$item->user_id] += $item->score;
+            }
+        }
+        arsort($top);
+        $new_arr = array_values($top);
+        if (!empty($new_arr)) {
+            $top_user_id = array_search($new_arr[0],$top);
+        }else{
+            $top_user_id = $old_top_user_id;
+        }
+        if ($top_user_id != $old_top_user_id) {   //新的最大支持者不是以前的最大支持者时
+            $arr = [
+                'user_id'=>0,
+                'message'=>"你已不是《$dream->name》的《梦主》啦!".$user->nickname."以$new_arr[0]分刚取代你的位置",
+                'to_user_id'=>$old_top_user_id,
+                'dream_id'=>$dream_id,
+                'is_url'=>1,
+                'type_id'=>2,
+                'attr_id'=>10,
+            ];
+            SystemInfoModel::create($arr);
+        }
+    }
+
 //    收藏关注梦想
     /**
      * @api {get} /api/dream/collection 收藏梦想
@@ -556,6 +621,20 @@ class DreamController extends Controller
             if (empty($user_care_dream)) {
                 UserCareDream::create($data);
             }
+            //                关注成功发送私信
+            $message = BaseSettingsModel::where('category','message')->first();
+            $message = empty($message) ? $user->nickname.'收藏了你的梦想' : $message->value;
+            $info2 = [
+                'to_user_id' => $dream->user_id,
+                'message' => $message,
+                'user_id' => $user->id,
+                'is_reply' => 1,
+                'type_id' => 1,
+                'attr_id' => 2,
+            ];
+            SystemInfoModel::create($info2);
+            //            长连接
+            $this->jPush($message,'',$dream->user_id);
         }else{
             UserCareDream::where('user_id',$user->id)->
             where('dream_id',$request->id)->delete();
@@ -571,21 +650,6 @@ class DreamController extends Controller
 
         if (empty($user_care_user)) {
             UserCareUser::create($array);
-//                关注成功发送私信
-            $message = BaseSettingsModel::where('category','message')->first();
-            $message = empty($message) ? $user->nickname.'收藏了你的梦想' : $message->value;
-            /*$info2 = [
-                'user_id'=>$request->id,
-                'to_user_id' => $dream->user_id,
-                'message' =>$message
-            ];*/
-            $info2 = [
-                'user_id' => $dream->user_id,
-                'message' => $message,
-            ];
-            SystemInfoModel::create($info2);
-            //            长连接
-            $this->jPush($message,'',$dream->user_id);
         }
 
         return $this->api($is_collection);

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

xqd
@@ -239,7 +239,7 @@ class HomeController extends Controller
             'dream_id'=>$dream_id,
             'dream_user_id'=>$dream_user_id,
         ];
-        MeetInfoModel::create($data);
+        MeetInfoModel::firstOrCreate($data);
         return $this->api('');
     }
 }

+ 11 - 7
server/app/Http/Controllers/Api/V1/IndexController.php

xqd xqd xqd xqd
@@ -6,6 +6,8 @@ use App\Models\BaseSettingsModel;
 use App\Models\CommentInfoModel;
 use App\Models\DreamInfoModel;
 use App\Models\SearchInfoModel;
+use App\Models\SupportDreamModel;
+use App\Models\SystemInfoModel;
 use App\Models\UserCareDream;
 use App\Models\UserCareUser;
 use App\Models\UserInfoModel;
@@ -67,6 +69,7 @@ class IndexController extends Controller
      *               "video": "url",
      *               "score": 100079365,
      *               "sign": "梦想达人",
+     *               "signs": "[]",  //梦想标签
      *               "code": "",
      *               "parameter": 100,
      *               "created_at": "2017-06-25 12:45:22",
@@ -126,18 +129,20 @@ class IndexController extends Controller
             $banners = $this->getBanner();
             $dreams = DreamInfoModel::where('end_time','>',date('Y-m-d H:i:s'))->orderBy('score','desc')->with('user')->whereNotIn('id', $id_arr1)->limit(100)->paginate(20);
             $this->dreams($dreams);
-            return $this->api(compact('banners','users','dreams'));
         } elseif ($type == 'news') {
             $banners = $this->getBanner();
             $dreams = DreamInfoModel::where('end_time','>',date('Y-m-d H:i:s'))->orderBy('score','desc')->orderBy('created_at','desc')->with('user')->whereNotIn('id', $id_arr2)->limit(500)->paginate(20);
             $this->dreams($dreams);
-            return $this->api(compact('banners','users','dreams'));
         } else{
             $banners = $this->getBanner();
             $dreams = DreamInfoModel::where('end_time','>',date('Y-m-d H:i:s'))->orderBy('score','desc')->with('user')->limit(15)->paginate(15);
             $this->dreams($dreams);
-            return $this->api(compact('banners','users','dreams'));
         }
+        foreach ($dreams as $dream) {
+            $dream->signs = explode(',',$dream->sign);
+        }
+        return $this->api(compact('banners','users','dreams'));
+
     }
 
     /**
@@ -182,12 +187,11 @@ class IndexController extends Controller
         $keyword ='%'.$request->keyword.'%';
         $user_infos = UserInfoModel::where('nickname','like',$keyword)->get();
         $dream_infos =  DreamInfoModel::where(function ($query) use($keyword) {
-            $query->where('name','like',$keyword)
-                ->where('end_time','>=',time());
+//          ->where('end_time','>=',time())
+            $query->where('name','like',$keyword);
         })
         ->orWhere(function ($query) use($keyword){
-            $query->where('sign','like',$keyword)
-                ->where('end_time','>=',time());
+            $query->where('sign','like',$keyword);
         })->with(['user','img'])->get();
         $this->dreams($dream_infos);
         $signs  = BaseSettingsModel::where('category','sign')->where('value','like',$keyword)->get();

+ 24 - 5
server/app/Http/Controllers/Api/V1/InteractionController.php

xqd xqd xqd
@@ -113,6 +113,7 @@ class InteractionController extends Controller
      * @apiPermission Passport
      * @apiVersion 0.1.0
      * @apiParam {int} id                   动态ID不存在
+     * @apiParam {int} u_id                   @用户id
      * @apiParam {int} to_user_id                   发布动态的梦想者id
      * @apiParam {int}   [comment_user_id]          //已经评论者id
      * @apiParam {string} content           内容不能为空
@@ -158,20 +159,25 @@ class InteractionController extends Controller
         $is_read = 1;
         $data = compact('user_id','user_avatar','user_nickname','interaction_id','content','is_read');*/
 
-//        $data['to_user_id'] = InteractionInfo::find($request->id)->dream->user_id;
+        $dream_id = InteractionInfo::find($request->id)->dream_id;
 //        $data['to_user_avatar'] = InteractionInfo::find($request->id)->dream->user_avatar;
 //        $data['to_user_nickname'] = InteractionInfo::find($request->id)->dream->user_nickname;
-        if (!empty($request->input('to_user_id'))) {
-            $to_user = UserInfoModel::find($request->input('to_user_id'));
+        if (!empty($request->input('comment_user_id'))) {
+            $to_user = UserInfoModel::find($request->input('comment_user_id'));
             if (!empty($to_user)){
                 $data['to_user_id'] = $request->input('to_user_id');
                 $data['to_user_avatar'] = $to_user->avatar;
                 $data['to_user_nickname'] = $to_user->nickname;
 //点击去看看
-                $message = $user->nickname.'在你的互动上留言啦!';
+                $message = $user->nickname.'在你的互动上留言啦!点击去看看';
                 $info = [
-                    'user_id' => $data['to_user_id'],
+                    'to_user_id' => $data['to_user_id'],
                     'message' => $message,
+                    'is_url' => 1,
+                    'type_id' => 1,
+                    'attr_id' => 3,
+                    'dream_id' => $dream_id,
+                    'interaction_id' => $request->input('id'),
                 ];
                 SystemInfoModel::create($info);
 
@@ -179,6 +185,19 @@ class InteractionController extends Controller
                 $this->jPush($message,'',$data['to_user_id']);
             }
         }
+        if (!empty($request->input('u_id'))) {
+            $message = $user->nickname.'提起了你哦~点击看看!';
+            $info = [
+                'to_user_id' => $request->input('u_id'),
+                'message' => $message,
+                'is_url' => 1,
+                'type_id' => 1,
+                'attr_id' => 8,
+                'dream_id' => $dream_id,
+                'interaction_id' => $request->input('id'),
+            ];
+            SystemInfoModel::create($info);
+        }
 
         $data['user_id'] = $user->id;
         $data['user_avatar'] =$user->avatar;

+ 280 - 35
server/app/Http/Controllers/Api/V1/MyController.php

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -10,6 +10,7 @@ use App\Models\DreamInfoModel;
 use App\Models\InteractionInfo;
 use App\Models\SearchInfoModel;
 use App\Models\Suggest;
+use App\Models\SupportDreamModel;
 use App\Models\SystemInfoModel;
 use App\Models\UserBank;
 use App\Models\UserCareDream;
@@ -19,6 +20,7 @@ use App\Models\UserInfoModel;
 use Illuminate\Http\Request;
 use App\Services\Base\ErrorCode;
 use App\Helper\JpushHelper;
+use Illuminate\Support\Facades\Log;
 
 class MyController extends Controller
 {
@@ -233,8 +235,8 @@ class MyController extends Controller
     }
 
     /**
-     * @api {get} /api/my/reply 回复我的
-     * @apiDescription 回复我的
+     * @api {get} /api/my/dream_info 梦想消息
+     * @apiDescription 梦想消息
      * @apiGroup My
      * @apiPermission Passport
      * @apiVersion 0.1.0
@@ -252,22 +254,58 @@ class MyController extends Controller
      * @apiErrorExample {json} Error-Response:
      * HTTP/1.1 400 Bad Request
      */
-    public function reply()
+    public function dreamInfo()
     {
+//        梦想消息分为 1支持 2收藏 3互动 4提现 5梦想暂停 6结束
         $user = $this->getUser();
-//        $user = UserInfoModel::find(4);
-        $data = CommentInfoModel::where('to_user_id',$user->id)->orderBy('id','desc')->get(); //user_id
-        foreach ($data as $item){   //访问接口  标记已读
-            $item->update(['is_read'=>0]);
-            $info = InteractionInfo::find($item->interaction_id);
-            $dream_id =empty($info) ? 0 : $info->dream_id;
-            $item->dreamid = $dream_id;
+        $data1  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->where('attr_id',1)->orderBy('id','desc')->get()->toArray();
+        $new_data1 = [] ;
+        if (count($data1) > 0) {
+            if (count($data1) >= 5) {
+                $data1[0]['message'] = "已经有".count($data1)."个人支持了你的梦想!";
+                $new_data1[] = $data1[0];
+            }else{
+                $new_data1 = $data1;
+            }
+        }
+        $data2  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->where('attr_id',2)->orderBy('id','desc')->get()->toArray();
+        $new_data2 = [] ;
+        if (count($data2) > 0) {
+            if (count($data2) >= 5) {
+                $data2[0]['message'] = "已经有".count($data2)."个人收藏了你的梦想!";
+                $new_data2[] = $data2[0];
+            }else{
+                $new_data2 = $data2;
+            }
         }
+        $data3  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->where('attr_id',3)->orderBy('id','desc')->get()->toArray();
+        $new_data3 = [] ;
+        if (count($data3) > 0) {
+            if (count($data3) >= 5) {
+                $data3[0]['message'] = "你的互动已经有".count($data3)."个留言啦!快点击看看!";
+                $new_data3[] = $data3[0];
+            }else{
+                $new_data3 = $data3;
+            }
+        }
+        $data456  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)
+            ->where(function ($query) {
+                $query->where('attr_id',4)->orWhere('attr_id',5)->orWhere('attr_id',6);
+            })->orderBy('id','desc')->get()->toArray();
+
+        $data = array_merge($new_data1,$new_data2,$new_data3,$data456);
+        SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->update(['is_read' => 1]);
         return $this->api($data);
+//        foreach ($data as $item){   //访问接口  标记已读
+//            $item->update(['is_read'=>0]);
+//            $info = InteractionInfo::find($item->interaction_id);
+//            $dream_id =empty($info) ? 0 : $info->dream_id;
+//            $item->dreamid = $dream_id;
+//        }
     }
     /**
-     * @api {get} /api/my/letter 私信
-     * @apiDescription 私信
+     * @api {get} /api/my/sup_info 支持消息
+     * @apiDescription 支持消息
      * @apiGroup My
      * @apiPermission Passport
      * @apiVersion 0.1.0
@@ -285,18 +323,48 @@ class MyController extends Controller
      * @apiErrorExample {json} Error-Response:
      * HTTP/1.1 400 Bad Request
      */
-    public function letter()
+    public function supInfo()
     {
+//        支持消息有 7私信 8@ 9梦想倒计时 10排名 梦想结束
         $user = $this->getUser();
-        $data  =  SystemInfoModel::with('touser')->where('user_id',$user->id)->whereNotNull('to_user_id')->orderBy('id','desc')->get();
-        foreach ($data as $item){   //访问接口  标记已读
-            $item->update(['is_read'=>1]);
+        $data8  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',2)->where('attr_id',8)->orderBy('id','desc')->get()->toArray();
+//        计算interaction_id出现的次数
+//        dd(array_column($data8,"interaction_id"));
+        $count = array_count_values(array_filter(array_column($data8,"interaction_id")));
+        $new_data8 = [] ;
+        if (!empty($count)) {
+            foreach ($count as $interaction_id => $value) {
+                    $interaction = InteractionInfo::find($interaction_id);
+                    $dream_id = empty($interaction) ? '0':$interaction->dream_id;
+                if ($value>=5) {
+                    $message =empty($interaction) ? '': $interaction->title."互动上已经提起了你".($value)."次!你还不去瞧一瞧?你也太大牌啦!";
+                }else{
+                    $message =empty($interaction) ? '': $interaction->title."提起了你哦~点击看看!";
+                }
+                if (!empty($message)) {
+                    $new_data8[] = [
+                        'dream_id'=>$dream_id,
+                        'interaction_id'=>$interaction_id,
+                        'message'=>$message,
+                        "attr_id" => 8,
+                        "is_reply" => 0,
+                        "is_max" => 0,
+                        "is_ok" => 0,
+                        "is_end" => 0,
+                        "is_url" => 0,
+                        "type_id" => 2,
+                    ];
+                }
+            }
         }
+        $data9  =  SystemInfoModel::with('user')->where('to_user_id',$user->id)->where('type_id',2)->where('attr_id','!=',8)->orderBy('id','desc')->get()->toArray();
+        $data = array_merge($new_data8,$data9);
+        SystemInfoModel::where('to_user_id',$user->id)->where('type_id',2)->update(['is_read' => 1]);
         return $this->api($data);
     }
     /**
-     * @api {get} /api/my/system_info 系统消息
-     * @apiDescription 系统消息
+     * @api {get} /api/my/system_info 通知消息
+     * @apiDescription 通知消息
      * @apiGroup My
      * @apiPermission Passport
      * @apiVersion 0.1.0
@@ -317,10 +385,8 @@ class MyController extends Controller
     public function systemInfo()
     {
         $user = $this->getUser();
-        $data =  SystemInfoModel::where('user_id',$user->id)->whereNull('to_user_id')->orderBy('id','desc')->get();
-        foreach ($data as $item){   //访问接口  标记已读
-            $item->update(['is_read'=>1]);
-        }
+        $data  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',0)->orderBy('id','desc')->get()->toArray();
+        SystemInfoModel::where('to_user_id',$user->id)->where('type_id',0)->update(['is_read' => 1]);
         return $this->api($data);
     }
 
@@ -337,17 +403,14 @@ class MyController extends Controller
      *  "status_code": 0,
      *  "message": "",
      *  "data": {
-     *      "systemInfo": {
+     *      "dream_info": {
      *          "number": 3,
-     *          "is_read": 3
      *      },
-     *      "letter": {
+     *      "sup_info": {
      *          "number": 0,
-     *          "is_read": 0
      *      },
-     *      "reply": {
+     *      "system_info": {
      *          "number": 3,
-     *          "is_read": 3
      *      }
      *  }
      *}
@@ -357,7 +420,7 @@ class MyController extends Controller
     public function info()
     {
         $user = $this->getUser();
-        $systemInfo1 =  SystemInfoModel::where('user_id',$user->id)->whereNull('to_user_id')->orderBy('id','desc')->get();
+     /*   $systemInfo1 =  SystemInfoModel::where('user_id',$user->id)->whereNull('to_user_id')->orderBy('id','desc')->get();
         $systemInfo2 =  SystemInfoModel::where('user_id',$user->id)->where('is_read','0')
             ->whereNull('to_user_id')->orderBy('id','desc')->get();
         $letter1 =  SystemInfoModel::where('user_id',$user->id)->whereNotNull('to_user_id')->orderBy('id','desc')->get();
@@ -371,7 +434,15 @@ class MyController extends Controller
         $arr['letter']['number'] = count($letter1) ;
         $arr['letter']['is_read'] = count($letter2) ;
         $arr['reply']['number'] = count($comments1) ;
-        $arr['reply']['is_read'] = count($comments2) ;
+        $arr['reply']['is_read'] = count($comments2) ;*/
+//        梦想消息 支持消息 通知消息
+        $user_id = $user->id;
+        $dream_info = SystemInfoModel::where('to_user_id',$user_id)->where('type_id',1)->where('is_read',0)->orderBy('id','desc')->get();
+        $sup_info = SystemInfoModel::where('to_user_id',$user_id)->where('type_id',2)->where('is_read',0)->orderBy('id','desc')->get();
+        $system_info = SystemInfoModel::where('to_user_id',$user_id)->where('type_id',0)->where('is_read',0)->orderBy('id','desc')->get();
+        $arr['dream_info']['number'] = count($dream_info) ;
+        $arr['sup_info']['number'] = count($sup_info) ;
+        $arr['system_info']['number'] = count($system_info) ;
         return $this->api($arr);
     }
 
@@ -512,6 +583,8 @@ class MyController extends Controller
         $info = [
             'user_id' => $user->id,
             'message' => $message,
+            'attr_id' => 4,
+            'type_id' => 1,
         ];
         SystemInfoModel::create($info);
 
@@ -1154,6 +1227,8 @@ class MyController extends Controller
      * @apiDescription 发送私信
      * @apiGroup My
      *    @apiParam {string} content         私信内容
+     *    @apiParam {array} [image]         图片
+     *    @apiParam {string} [video]         视频
      *    @apiParam {int} to_user_id         私信对象
      * @apiPermission Passport
      * @apiVersion 0.1.0
@@ -1188,16 +1263,29 @@ class MyController extends Controller
         if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
         $user = $this->getUser();
         $user_id = $user->id;
-        $message = $request->input('content');
+        $info = $request->input('content');
+        $video = $request->input('video');
+        $img = $request->input('image');
+        if (is_array($img)&&!empty($img)) {
+            $image = $img[0];
+        }else{
+            $image = '';
+        }
         $to_user_id = $request->input('to_user_id');
 //        链接到最近的一个梦想
         $dream = DreamInfoModel::where('user_id',$user_id)->orderBy('id','desc')->first();
         $dream_id = empty($dream) ? 0 : $dream->id;
         $arr = [
-            'user_id'=>$to_user_id,
-            'message'=>$message,
-            'to_user_id'=>$user_id,
+            'user_id'=>$user_id,
+            'info'=>$info,
+            'message'=>$user->nickname.'给你发了个私信哦~点击看看!',
+            'to_user_id'=>$to_user_id,
             'dream_id'=>$dream_id,
+            'video'=>$video,
+            'image'=>$image,
+            'type_id'=>2,
+            'is_url'=>1,
+            'attr_id'=>7,
         ];
 
         $ok =SystemInfoModel::create($arr);
@@ -1207,7 +1295,8 @@ class MyController extends Controller
         }else{
             return $this->error(ErrorCode::OPERATION_FAILED);
         }
-    }  /**
+    }
+    /**
      * @api {get} /api/my/letter/show 查看私信
      * @apiDescription 查看私信
      * @apiGroup My
@@ -1249,4 +1338,160 @@ class MyController extends Controller
       return $this->api($data);
     }
 
+//    梦想结束时梦想者是否同意见面
+    /**
+     * @api {get} /api/my/sure_meet 梦想者是否同意见面
+     * @apiDescription 梦想结束时梦想者是否同意见面
+     * @apiGroup My
+     *    @apiParam {int} dream_id         梦想id
+     *    @apiParam {int} value         0取消1确定
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": 0  
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function isOk(Request $request)
+    {
+        $validator = \Validator::make($request->all(),
+            [
+                'value'  => 'required',
+                'dream_id'  => 'required',
+            ],
+            [
+                'value.required'  => '参数错误',
+                'dream_id.required'  => '梦想不存在',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $dream_id = $request->input('dream_id');
+        $value = $request->input('value');
+        $dream = DreamInfoModel::find($dream_id);
+        if (empty($dream)) return $this->error(ErrorCode::DREAM_NOT_EXIST);
+        $support_dream = SupportDreamModel::where('dream_id',$dream_id)->get();
+        $top = [] ;
+        foreach ($support_dream as $item) {
+            if (!array_key_exists($item->user_id,$top)) {
+                $top[$item->user_id] = $item->score;
+            }else{
+                $top[$item->user_id] += $item->score;
+            }
+        }
+        arsort($top);
+        $new_arr = array_values($top);
+        if (!empty($top)) {
+            $top_user = array_search($new_arr[0],$top);
+        }else{
+            $top_user = 0;
+        }
+        if ($value==1) {
+//            同意见面
+            $dream->is_ok = 1;
+            $dream->save();
+            $message = "你支持的梦想者已经同意见面啦";
+        }else{
+            $message = "你支持的梦想者拒绝了本次见面,你支持的梦想资金将会退还给您";
+//            退款逻辑
+        }
+        Log::info('is_max:'.$top_user);
+        if (!empty($top_user)) {
+//                给最大支持者发送消息
+            $arr = [
+                'user_id'=>0,
+                'message'=>$message,
+                'to_user_id'=>$top_user,
+                'dream_id'=>$dream_id,
+                'is_end'=>1,
+                'type_id'=>1,
+                'is_max'=>1,
+
+            ];
+            SystemInfoModel::firstOrCreate($arr);
+        }
+
+        return $this->api($top_user);
+    }
+
+    //    梦想结束时梦主是否同意见面
+    /**
+     * @api {get} /api/my/sure_meet2 梦主是否同意见面
+     * @apiDescription 梦想结束时梦主是否同意见面
+     * @apiGroup My
+     *    @apiParam {int} to_user_id         梦想者id(数据中的user_id)
+     *    @apiParam {int} value         0取消1确定
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+
+    public function isOk2(Request $request)
+    {
+        $user = $this->getUser();
+        $validator = \Validator::make($request->all(),
+            [
+                'value'  => 'required',
+                'to_user_id'  => 'required',
+            ],
+            [
+                'value.required'  => '参数错误',
+                'to_user_id.required'  => '梦想者不存在',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $value = $request->input('value');
+        $to_user_id = $request->input('to_user_id');
+        $to_user_info = UserInfoModel::find($to_user_id);
+        if ($value==1) {
+            $message = '您的梦主同意见面了,赶快准备一下吧';
+//            同意见面会收到一条提示信息
+            if (!empty($to_user_info)) {
+                $arr = [
+                    'user_id'=>0,
+                    'message'=>$to_user_info->nickname.'会第一时间联系你!见面时需要你扫一扫他提供的二维码哦',
+                    'to_user_id'=>$user->id,
+                    'is_end'=>1,
+                    'type_id'=>1,
+                ];
+                SystemInfoModel::firstOrCreate($arr);
+            }
+
+        }else{
+            $message = '您的梦主拒绝了你们的见面,喵~';
+        }
+        $arr = [
+            'user_id'=>0,
+            'message'=>$message,
+            'to_user_id'=>$to_user_id,
+            'is_end'=>1,
+            'type_id'=>1,
+        ];
+        SystemInfoModel::firstOrCreate($arr);
+    }
+
 }

+ 1497 - 0
server/app/Http/Controllers/Api/V1/MyController.php___jb_tmp___

xqd
@@ -0,0 +1,1497 @@
+<?php
+
+namespace App\Http\Controllers\Api\V1;
+
+use App\Models\AccountLog;
+use App\Models\BaseDictionaryOptionModel;
+use App\Models\BaseSettingsModel;
+use App\Models\CommentInfoModel;
+use App\Models\DreamInfoModel;
+use App\Models\InteractionInfo;
+use App\Models\SearchInfoModel;
+use App\Models\Suggest;
+use App\Models\SupportDreamModel;
+use App\Models\SystemInfoModel;
+use App\Models\UserBank;
+use App\Models\UserCareDream;
+use App\Models\UserCareUser;
+use App\Models\UserCashOut;
+use App\Models\UserInfoModel;
+use Illuminate\Http\Request;
+use App\Services\Base\ErrorCode;
+use App\Helper\JpushHelper;
+use Illuminate\Support\Facades\Log;
+
+class MyController extends Controller
+{
+    use JpushHelper;
+    /**
+     * @api {get} /api/my/show 个人首页
+     * @apiDescription 个人首页
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 O*  "status": true,
+    {
+        "status": true,
+        "status_code": 0,
+        "message": "",
+        "data": {
+            "id": 1,
+            "phone": "13880642880",
+            "nickname": "name1",
+            "avatar": "/upload/user/20170629/e77068cc14c82086fb6b16e5bb7c3dd1.jpg",
+            "birthday": "2000-06-21",
+            "sign": 0,
+            "money": 0,
+            "coin": 308,
+            "sex": 1,
+            "signture": "我的个性签名1",
+            "height": 170,
+            "work": "网红",
+            "emotion": 1,
+            "address": "",
+            "city": "上海",
+            "detail_address": "",
+            "status": 1,
+            "wechat": "",
+            "weibo": "",
+            "remember_token": "",
+            "created_at": "2017-06-25 10:27:08",
+            "updated_at": "2017-08-19 13:24:29",
+            "deleted_at": null,
+            "care_number": 0,   关注
+            "fans_number": 0,   粉丝
+            "dreams_number": 9,  梦想
+            "collection_number": 0,  收藏
+            "interaction_number": 0, 发帖
+            "huitie": 1,    回复
+        }
+    }
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     *{
+     *      "status": true,
+     *      "status_code": 0,
+     *      "message": "",
+     *      "data": {
+     *          "user": null
+     *      }
+     *}
+     */
+    public function show()
+    {
+        $user = $this->getUser();
+        /*
+         * 我的关注人数,我的粉丝,收藏
+         * 点赞?徽章?
+         * */
+        $care_num = $user->UserCareUser;
+        $user->care_number = count($care_num);
+        $fens = UserCareUser::where('other_user_id',$user->id)->get();
+        $user->fans_number = count($fens);
+        $dreams = $user->dreams;
+        $user->dreams_number = count($dreams);
+        $collection = $user->collection;
+        $user->collection_number = count($collection);
+        $interaction_infos = $user->allInteraction;
+        $user->interaction_number = count($interaction_infos);
+        $huitie = CommentInfoModel::where('user_id',$user->id)->orWhere('to_user_id',$user->id)->get()->groupBy('interaction_id');
+        $user->huitie = count($huitie);
+        return $this->api($user);
+    }
+
+
+    /**
+     * @api {get} /api/my/edit 修改个人信息
+     * @apiDescription 修改个人信息
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *   "status_code": 0,
+     *   "message": "",
+        "data": {
+            "emotion": [
+                {
+                    "value": "1",
+                    "name": "未婚"
+                },
+                {
+                    "value": "2",
+                    "name": "已婚"
+                },
+                {
+                    "value": "3",
+                    "name": "离异"
+                }
+            ],
+            "sex": [
+                {
+                    "value": "0",
+                    "name": "男"
+                },
+                {
+                    "value": "1",
+                    "name": "女"
+                }
+            ]
+        }
+     * }
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     * {
+     *   "status": false,
+     *   "status_code": 1500,
+     *   "message": "会员不存在",
+     *   "data": null
+     *  }
+     */
+    public function  edit()
+    {
+        $sex = BaseDictionaryOptionModel::where('dictionary_table_code','user_info')->
+             where('dictionary_code','sex')->get();
+        $emotion = BaseDictionaryOptionModel::where('dictionary_table_code','user_info')->
+             where('dictionary_code','emotion')->get();
+
+        return $this->api(compact('emotion','sex'));
+
+    }
+
+    /**
+     * @api {post} /api/my/update 保存个人信息
+     * @apiDescription   保存个人信息
+     *      @apiParam {string} pic   头像
+     *      @apiParam {int} sex   性别
+     *      @apiParam {string} signture   个性签名
+     *      @apiParam {int} emotion   情感状态
+     *      @apiParam {string} work   职业
+     *      @apiParam {int} height   身高
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *    "status": true,
+     *    "status_code": 0,
+     *   "message": "",
+     *   "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     *{
+     *   "status": false,
+     *   "status_code": 600,
+     *   "message": "保存用户数据失败",
+     *   "data": null
+     * }
+     */
+    public function update(Request $request)
+    {
+        $user = $this->getUser();
+        $data = $request->except('_token');
+        $ok =  $user->update($data);
+        if ($ok == true) {
+            return $this->api('');
+        }else{
+            return $this->error(ErrorCode::SAVE_USER_FAILED);
+        }
+    }
+
+    /**
+     * @api {post} /api/my/recharge 充值
+     * @apiDescription 充值
+     * @apiGroup My
+     *    @apiParam {int} coin       充值金额
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function recharge(Request $request)
+    {
+        $validator = \Validator::make($request->all(),
+            [
+                'coin'  => 'required|integer',
+            ],
+            [
+                'coin.required'  => '请填写金额',
+                'coin.integer'  => '请输入整数',
+
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+
+        $user = $this->getUser();
+        $user->coin += $request->coin;
+        $user->save();
+        return $this->api('');
+    }
+
+    /**
+     * @api {get} /api/my/dream_info 梦想消息
+     * @apiDescription 梦想消息
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": [
+     *      {
+     *         ....
+     *      }
+     *   ]
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function dreamInfo()
+    {
+//        梦想消息分为 1支持 2收藏 3互动 4提现 5梦想暂停 6结束
+        $user = $this->getUser();
+        $data1  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->where('attr_id',1)->orderBy('id','desc')->get()->toArray();
+        $new_data1 = [] ;
+        if (count($data1) > 0) {
+            if (count($data1) >= 5) {
+                $data1[0]['message'] = "已经有".count($data1)."个人支持了你的梦想!";
+                $new_data1[] = $data1[0];
+            }else{
+                $new_data1 = $data1;
+            }
+        }
+        $data2  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->where('attr_id',2)->orderBy('id','desc')->get()->toArray();
+        $new_data2 = [] ;
+        if (count($data2) > 0) {
+            if (count($data2) >= 5) {
+                $data2[0]['message'] = "已经有".count($data2)."个人收藏了你的梦想!";
+                $new_data2[] = $data2[0];
+            }else{
+                $new_data2 = $data2;
+            }
+        }
+        $data3  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->where('attr_id',3)->orderBy('id','desc')->get()->toArray();
+        $new_data3 = [] ;
+        if (count($data3) > 0) {
+            if (count($data3) >= 5) {
+                $data3[0]['message'] = "你的互动已经有".count($data3)."个留言啦!快点击看看!";
+                $new_data3[] = $data3[0];
+            }else{
+                $new_data3 = $data3;
+            }
+        }
+        $data456  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)
+            ->where(function ($query) {
+                $query->where('attr_id',4)->orWhere('attr_id',5)->orWhere('attr_id',6);
+            })->orderBy('id','desc')->get()->toArray();
+
+        $data = array_merge($new_data1,$new_data2,$new_data3,$data456);
+        SystemInfoModel::where('to_user_id',$user->id)->where('type_id',1)->update(['is_read' => 1]);
+        return $this->api($data);
+//        foreach ($data as $item){   //访问接口  标记已读
+//            $item->update(['is_read'=>0]);
+//            $info = InteractionInfo::find($item->interaction_id);
+//            $dream_id =empty($info) ? 0 : $info->dream_id;
+//            $item->dreamid = $dream_id;
+//        }
+    }
+    /**
+     * @api {get} /api/my/sup_info 支持消息
+     * @apiDescription 支持消息
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": [
+     *      {
+     *         ....
+     *      }
+     *   ]
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function supInfo()
+    {
+//        支持消息有 7私信 8@ 9梦想倒计时 10排名 梦想结束
+        $user = $this->getUser();
+        $data8  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',2)->where('attr_id',8)->orderBy('id','desc')->get()->toArray();
+//        计算interaction_id出现的次数
+//        dd(array_column($data8,"interaction_id"));
+        $count = array_count_values(array_filter(array_column($data8,"interaction_id")));
+        $new_data8 = [] ;
+        if (!empty($count)) {
+            foreach ($count as $interaction_id => $value) {
+                    $interaction = InteractionInfo::find($interaction_id);
+                    $dream_id = empty($interaction) ? '0':$interaction->dream_id;
+                if ($value>=5) {
+                    $message =empty($interaction) ? '': $interaction->title."互动上已经提起了你".($value)."次!你还不去瞧一瞧?你也太大牌啦!";
+                }else{
+                    $message =empty($interaction) ? '': $interaction->title."提起了你哦~点击看看!";
+                }
+                if (!empty($message)) {
+                    $new_data8[] = [
+                        'dream_id'=>$dream_id,
+                        'interaction_id'=>$interaction_id,
+                        'message'=>$message,
+                        "attr_id" => 8,
+                        "is_reply" => 0,
+                        "is_max" => 0,
+                        "is_ok" => 0,
+                        "is_end" => 0,
+                        "is_url" => 0,
+                        "type_id" => 2,
+                    ];
+                }
+            }
+        }
+        $data9  =  SystemInfoModel::with('user')->where('to_user_id',$user->id)->where('type_id',2)->where('attr_id','!=',8)->orderBy('id','desc')->get()->toArray();
+        $data = array_merge($new_data8,$data9);
+        SystemInfoModel::where('to_user_id',$user->id)->where('type_id',2)->update(['is_read' => 1]);
+        return $this->api($data);
+    }
+    /**
+     * @api {get} /api/my/system_info 通知消息
+     * @apiDescription 通知消息
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": [
+     *      {
+     *         ....
+     *      }
+     *   ]
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function systemInfo()
+    {
+        $user = $this->getUser();
+        $data  =  SystemInfoModel::where('to_user_id',$user->id)->where('type_id',0)->orderBy('id','desc')->get()->toArray();
+        SystemInfoModel::where('to_user_id',$user->id)->where('type_id',0)->update(['is_read' => 1]);
+        return $this->api($data);
+    }
+
+    /**
+     * @api {get} /api/my/info 消息中心
+     * @apiDescription 消息中心
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": {
+     *      "dream_info": {
+     *          "number": 3,
+     *      },
+     *      "sup_info": {
+     *          "number": 0,
+     *      },
+     *      "system_info": {
+     *          "number": 3,
+     *      }
+     *  }
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function info()
+    {
+        $user = $this->getUser();
+     /*   $systemInfo1 =  SystemInfoModel::where('user_id',$user->id)->whereNull('to_user_id')->orderBy('id','desc')->get();
+        $systemInfo2 =  SystemInfoModel::where('user_id',$user->id)->where('is_read','0')
+            ->whereNull('to_user_id')->orderBy('id','desc')->get();
+        $letter1 =  SystemInfoModel::where('user_id',$user->id)->whereNotNull('to_user_id')->orderBy('id','desc')->get();
+        $letter2 =  SystemInfoModel::where('user_id',$user->id)->where('is_read','0')
+            ->whereNotNull('to_user_id')->orderBy('id','desc')->get();
+        $comments1 = CommentInfoModel::where('to_user_id',$user->id)->orderBy('id','desc')->get();
+        $comments2 = CommentInfoModel::where('to_user_id',$user->id)->where('is_read','1')->orderBy('id','desc')->get();
+        $arr = [];
+        $arr['systemInfo']['number'] = count($systemInfo1) ;
+        $arr['systemInfo']['is_read'] = count($systemInfo2) ;
+        $arr['letter']['number'] = count($letter1) ;
+        $arr['letter']['is_read'] = count($letter2) ;
+        $arr['reply']['number'] = count($comments1) ;
+        $arr['reply']['is_read'] = count($comments2) ;*/
+//        梦想消息 支持消息 通知消息
+        $user_id = $user->id;
+        $dream_info = SystemInfoModel::where('to_user_id',$user_id)->where('type_id',1)->where('is_read',0)->orderBy('id','desc')->get();
+        $sup_info = SystemInfoModel::where('to_user_id',$user_id)->where('type_id',2)->where('is_read',0)->orderBy('id','desc')->get();
+        $system_info = SystemInfoModel::where('to_user_id',$user_id)->where('type_id',0)->where('is_read',0)->orderBy('id','desc')->get();
+        $arr['dream_info']['number'] = count($dream_info) ;
+        $arr['sup_info']['number'] = count($sup_info) ;
+        $arr['system_info']['number'] = count($system_info) ;
+        return $this->api($arr);
+    }
+
+    /**
+     * @api {get} /api/my/read 设为已读
+     * @apiDescription 设为已读
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     * {
+     *   "status": false,
+     *  "status_code": 700,
+     *   "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function read()
+    {
+        $user = $this->getUser();
+        $id = $user->id;
+        $system_infos = SystemInfoModel::where(function ($query) use($id){
+            $query->where('user_id',$id)->where('is_read','0');
+        })->orWhere(function ($query) use($id){
+            $query->where('to_user_id',$id)->where('is_read','0');
+        })->orderBy('id','desc')->get();
+        $comments = CommentInfoModel::where('user_id',$user->id)->where('is_read','0')->orderBy('id','desc')->get();
+        foreach ($system_infos as $system_info){
+            $system_info->update(['is_read'=>1]);
+        }
+        foreach ($comments as $comment){
+            $comment->update(['is_read'=>1]);
+        }
+        if (count($system_infos) > 0 || count($comments) > 0) {
+            return $this->api('');
+        }else{
+            return $this->error(ErrorCode::OPERATION_FAILED);
+        }
+    }
+
+
+
+    /**
+     * @api {get} /api/my/pay/article 支付说明
+     * @apiDescription 支付说明
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *"data": {
+     *   "key": "23453423453",  标题
+     *   "value": "<p><span style=\"color: rgb(255, 0, 0);\">42352345234534是大法官地方<
+     * img src=\"/ueditor/php/upload/image/20170815/1502779635.jpg\" title=\"1502779635.jpg\" alt=\"a1.jpg\"/>234534</span><
+     * br/></p>",    内容
+     *}
+     *  ]
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function payArticle()
+    {
+        $data = BaseSettingsModel::where('category','pay_article')->first();
+        return $this->api($data);
+    }
+
+
+    /**
+     * @api {post} /api/my/cash 提现
+     * @apiDescription 提现
+     * @apiGroup My
+     *    @apiParam {int} data[bank_id]       银行卡号id
+     *    @apiParam {int} data[cash]       提现金额
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *   "status": false,
+     *  "status_code": 1413,
+     *  "message": "系统审核中",
+     *  "data": null
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function cash(Request $request)
+    {
+        $data = $request->data;
+        $user = $this->getUser();
+        $validator = \Validator::make($request->all(),
+            [
+                'data.bank_id'  => 'required|integer',
+                'data.cash'  => 'required',
+            ],
+            [
+                'data.bank_id.required'  => '请选择提现账号',
+                'data.bank_id.integer'  => '提现账号不存在',
+                'data.cash.required'  => '请输入金额',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+//        $info = [] ;
+//        $info['from_type'] = '余额';
+//        $info['from_id'] = $user->id;
+//        $info['from_name'] = $user->name;
+//        $info['op'] = '提现';
+//        $info['from_amount'] = $data['coin'];
+//        $info['to_type'] = '现金';
+//        $info['to_id'] = $user->id;
+//        $info['to_name'] = $data['account']; //账号
+//        $info['note'] = $data['type'].$data['name'];
+//        $ok = AccountLog::create($info);
+        $data['user_id'] = $user->id;
+        $data['status'] = 1;
+        $ok = UserCashOut::create($data);
+
+        $message = '你提现的¥'.$data["cash"].'已经到账啦,去实现梦想吧!喵~ ';
+        $info = [
+            'user_id' => $user->id,
+            'message' => $message,
+            'attr_id' => 4,
+            'type_id' => 1,
+        ];
+        SystemInfoModel::create($info);
+
+//            长连接
+        $this->jPush($message,'',$user->id);
+
+        if ($ok) {
+            return $this->api(ErrorCode::verify);
+        }else{
+            return $this->error(ErrorCode::OPERATION_FAILED);
+        }
+    }
+
+//    联系客服
+
+    /**
+     * @api {post} /api/my/suggest 联系客服
+     * @apiDescription 联系客服
+     * @apiGroup My
+     *    @apiParam {string} data[content]       内容
+     *    @apiParam {string} data[email]       邮箱
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function suggest(Request $request)
+    {
+        $data = $request->data;
+        $user = $this->getUser();
+        $validator = \Validator::make($request->all(),
+            [
+                'data.content'  => 'required',
+                'data.email'  => 'required|email',
+            ],
+            [
+                'data.content.required'  => '请输入你遇到的问题',
+                'data.email.required'  => '请输入正确的邮箱地址',
+                'data.email.email'  => '请输入正确的邮箱地址',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $data['user_id'] = $user->id;
+        $ok =Suggest::create($data);
+        if ($ok) {
+            return $this->api('');
+        }else{
+            return $this->error(ErrorCode::OPERATION_FAILED);
+        }
+    }
+
+//    回复我的
+//    public function replyMy()
+//    {
+//
+//        $user = $this->getUser();
+////        梦想
+//        $dreams = $user->UserDream;
+//
+//        $data = $user->allInteraction;
+//        foreach ($data as $item) {
+//            $item->get_money = $item->dream->get_money;
+//            $item->money = $item->dream->money;
+//        }
+//        dd($data) ;
+//        if (count($dreams) == 0)
+//            return $this->error(ErrorCode::DREAM_NOT_EXIST);
+//        $comments_infos = [];
+//        foreach ($dreams as $dream){
+//            $comments_info = $dream->DreamInfo;
+//            if (count($comments_info) > 0) {
+//                foreach ($comments_info as $k => $value) {
+//                    $value->dream_name = $dream->dream;
+//                    $value->dream_about = $dream->about;
+//                    $value->dream_pic = count($dream->dreamImgsFirst) > 0 ? $dream->dreamImgsFirst->pic : '';
+//                    $value->progress = $dream->money == 0 ? 0 :  floor($dream->get_money/$dream->money);
+//                    $value->reviewer = $value->CommentUser->nickname;
+//                    $value->reviewer_pic = $value->CommentUser->pic;
+//                }
+//                $comments_infos[] = $comments_info;
+//            }
+//        }
+//
+//        return $this->api(compact('comments_infos'));
+//    }
+
+    /**
+     * @api {get} /api/my/dream 我的梦想
+     * @apiDescription 我的梦想
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+    {
+        "status": true,
+        "status_code": 0,
+        "message": "",
+        "data": {
+            "current_page": 1,
+            "data": [
+                {
+                    "id": 32,
+                    "user_id": 1,
+                    "name": "name",
+                    "about": "13880642880",
+                    "coin": 100,
+                    "end_time": "0000-00-00 00:00:00",
+                    "get_coin": 2017,
+                    "mark": 100,
+                    "status": 127,
+                    "video": "0",
+                    "score": 0,
+                    "sign": "158730",
+                    "code": "http://www.miao.com/qrcodes/WECHATPAY_201708191324294255.png",
+                    "parameter": 0,
+                    "created_at": "2017-08-19 05:22:12",
+                    "updated_at": "2017-08-19 05:24:30",
+                    "img": {
+                        "title": "",
+                        "pic": "http://q8.9026.com/upload/dream/20170629/79c11614cc8a9d37f747e3974d055331.jpg"
+                    }
+                },
+            ],
+            "from": 1,
+            "last_page": 4,
+            "next_page_url": "http://www.miao.com/api/my/dream?page=2",
+            "path": "http://www.miao.com/api/my/dream",
+            "per_page": 10,
+            "prev_page_url": null,
+            "to": 10,
+            "total": 36
+        }
+    }
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function dream()
+    {
+        $user = $this->getUser();
+        $dreams = DreamInfoModel::where('user_id',$user->id)->orderBy('created_at','desc')->with('img')->paginate();
+        return $this->api($dreams);
+    }
+
+    /**
+     * @api {get} /api/my/collection 我的收藏
+     * @apiDescription 我的收藏
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiParam {string}  [keyword]   关键字可选
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *   "status": true,
+     *   "status_code": 0,
+     *   "message": "",
+     *   "data": {
+     *       "data": [
+     *           {                                   梦想详情
+     *               "id": 12,
+     *               "user_id": 2,
+     *              "name": "用户2梦想标题166",
+     *               "about": "用户2梦想介绍666",
+     *               "coin": 2500,
+     *               "time": 21,
+     *               "get_coin": 0,
+     *               "status": 0,
+     *               "video": null,
+     *               "sign": "",
+     *           },
+     *           "img": {
+     *               "title": "",
+     *               "pic": "https://f12f.jpg"      梦想封面图片
+     *            }
+     *       ],
+     *       "users": {
+     *           "2": "https://xxx.jpeg"           ID号和头像
+     *       }
+     *   }
+     *}
+     *          keyword存在
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *   "message": "",
+     *  "data": [
+     *      {
+     *          "id": 2,
+     *          "user_id": 1,
+     *          "dream_id": 12,
+     *          "dream_user_id": 2,
+     *          "interaction_number": 0,
+     *          "created_at": "2017-06-25 13:11:45",
+     *          "updated_at": "2017-06-25 13:11:45",
+     *          "dreams": [                                      梦想
+     *              {
+     *                  "id": 12,
+     *                  "user_id": 2,
+     *                  "name": "用户2梦想标题166",
+     *                  "about": "用户2梦想介绍666",
+     *                  "coin": 2500,
+     *                  "end_time": 72000,
+     *                  "get_coin": 792,
+     *                  "mark": 5484,
+     *                  "status": 0,
+     *                  "video": "e",
+     *                  "score": 158730,
+     *                 "sign": "梦想达人",
+     *                  "created_at": "2017-06-25 13:10:56",
+     *                  "updated_at": "2017-06-28 16:53:39"
+     *                  "img": {                                图片
+     *                      "title": "",
+     *                      "pic": "https://timgsa.baidu.com/timg9&di2f.jpg"
+     *                  },
+     *                  "user": {
+     *
+     *                  }
+     *              }
+     *          ]
+     *      }
+     *  ]
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function collection(Request $request)
+    {
+        $user = $this->getUser();
+        if ($request->keyword) {
+            $keyword ='%'.$request->keyword.'%';
+            $data = UserCareDream::where('user_id',$user->id)->
+            whereHas('dreams',function ($query) use($keyword){
+                $query->where('end_time','>=',time())->where('name','like',$keyword);
+            })->with('dreams')->get();
+            foreach ($data as $item) {
+                foreach ($item->dreams as $dream) {
+                    $dream->img;
+                }
+            }
+            $this->insertSearchTable($user->id,$request->keyword);
+            return $this->api($data);
+        }else{
+            $dreams = $user->collection;
+//            $users = [];
+            foreach ($dreams as $item) {
+              /*  if ($item->pivot->interaction_number > 0) {
+                    $user_info = UserInfoModel::find($item->pivot->dream_user_id);
+                    $avatar = $user_info ?  $user_info->avatar : '';
+                    if (!array_key_exists($item->pivot->dream_user_id,$users)) {
+                        $users[$item->pivot->dream_user_id] = $avatar;
+                    }
+                }*/
+                $item->img;
+                $item->user;
+            }
+            return $this->api(compact('dreams'));
+        }
+    }
+
+    /**
+     * @api {get} /api/my/miao 关于喵喵
+     * @apiDescription 关于喵喵
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *   "status": true,
+     *   "status_code": 0,
+     *   "message": "",
+     *   "data": {
+     *       "key": "2511789",                    电话
+     *       "value": "关于喵喵介绍"              关于喵喵
+     *   }
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function aboutMiao()
+    {
+        $data = BaseSettingsModel::where('category','miaomiao')->select('key','value')->first();
+        return $this->api($data);
+    }
+
+
+    /**
+     * @api {get} /api/my/care 我关注的用户
+     * @apiDescription 我关注的用户
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *   "status": true,
+     *   "status_code": 0,
+     *  "message": "",
+     *   "data":[] or
+     *   "data": [
+     *      {
+     *           "id": 2,
+     *           "phone": "13880642881",
+     *          "nickname": "name2",
+     *          "avatar": "http://www.miao.com/upload/user/20170630/08e235d7211944e9b6482965b4d7c42e.jpg",
+     *          "birthday": "2000-06-21",
+     *          "sign": 0,
+     *          "money": 0,
+     *          "coin": 800,
+     *          "sex": 1,
+     *          "signture": "我的个性签名2",
+     *          "height": 200,
+     *          "work": "兼职",
+     *          "emotion": 2,
+     *          "address": "370105",
+     *          "city": "成都",
+     *          "detail_address": "",
+     *          "status": 1,
+     *          "wechat": "",
+     *          "weibo": "",
+     *          "remember_token": "",
+     *          "created_at": "2017-06-25 10:42:06",
+     *          "updated_at": "2017-06-30 09:15:04",
+     *          "deleted_at": null,
+     *      }
+     *  ]
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function care()
+    {
+        $user = $this->getUser();
+        $users =$user->UserCareUser;
+        return $this->api($users);
+
+    }
+    /**
+     * @api {get} /api/my/careme 关注我的用户
+     * @apiDescription 关注我的用户
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *   "status": true,
+     *   "status_code": 0,
+     *  "message": "",
+     *   "data":[] or
+     *   "data": [
+     *      {
+     *           "id": 2,
+     *           "phone": "13880642881",
+     *          "nickname": "name2",
+     *          "avatar": "http://www.miao.com/upload/user/20170630/08e235d7211944e9b6482965b4d7c42e.jpg",
+     *          "birthday": "2000-06-21",
+     *          "sign": 0,
+     *          "money": 0,
+     *          "coin": 800,
+     *          "sex": 1,
+     *          "signture": "我的个性签名2",
+     *          "height": 200,
+     *          "work": "兼职",
+     *          "emotion": 2,
+     *          "address": "370105",
+     *          "city": "成都",
+     *          "detail_address": "",
+     *          "status": 1,
+     *          "wechat": "",
+     *          "weibo": "",
+     *          "remember_token": "",
+     *          "created_at": "2017-06-25 10:42:06",
+     *          "updated_at": "2017-06-30 09:15:04",
+     *          "deleted_at": null,
+     *      }
+     *  ]
+     *}
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function careMe()
+    {
+        $user = $this->getUser();
+        $users =$user->UserCareMe;
+        return $this->api($users);
+
+    }
+
+    public function insertSearchTable($id,$keyword)
+    {
+        $info = SearchInfoModel::where('user_id',$id)->
+        where('search',trim($keyword))->first();
+        if (count($info) == 0) {
+            SearchInfoModel::create(['user_id'=>$id,'search'=>trim($keyword),'times'=>1]);
+        }else{
+            $info->times += 1;
+            $info->save();
+        }
+
+    }
+
+
+    //我的银行账户
+
+
+    /**
+     * @api {get} /api/my/bank/list 我的银行账户
+     * @apiDescription 我的银行账户
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *   "status": true,
+     *   "status_code": 0,
+     *  "message": "",
+     *   "data":[] or
+     *  "data": [
+     *   {
+     *       "id": 1,
+     *      "user_id": 1,
+     *      "bank_name": "1",
+     *      "bank_number": "1",    /账号
+     *      "bank_phone": "1",
+     *      "bank_user": ""        用户名/
+     *       "type": 微信,            微信(支付宝)二维码
+     *       "url": wwww.ddf,             二维码地址
+     *       "is_img": 1,
+     *   }
+     *]
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function bankList()
+    {
+        $user = $this->getUser();
+        $data =  UserBank::where('user_id',$user->id)->orderBy('id','desc')->get();
+        return $this->api($data);
+    }
+
+    /**
+     * @api {get} /api/my/bank/account 账户余额
+     * @apiDescription 账户余额
+     * @apiGroup My
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *   "status": true,
+     *   "status_code": 0,
+     *  "message": "",
+     *   "data":[] or
+     *  "data": {
+     *      "coin": 508,  余额
+     *  }
+     *]
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     */
+    public function account()
+    {
+        $user = $this->getUser();
+        return $this->api($user);
+    }
+
+   // 添加银行卡
+
+    /**
+     * @api {post} /api/my/bank/create 添加银行卡
+     * @apiDescription 添加银行卡
+     * @apiGroup My
+     *    @apiParam {string} data[bank_name]         银行名称
+     *    @apiParam {string} data[bank_number]       银行卡号
+     *    @apiParam {int} data[bank_phone]           银行卡绑定手机号
+     *    @apiParam {string} data[bank_user]         银行卡用户姓名
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function bankCreate(Request $request)
+    {
+        $data = $request->data;
+        $user = $this->getUser();
+        $validator = \Validator::make($request->all(),
+            [
+                'data.bank_name'  => 'required',
+                'data.bank_number'  => 'required',
+                'data.bank_phone'  => 'required',
+                'data.bank_user'  => 'required',
+            ],
+            [
+                'data.bank_name.required'  => '请选择账号类型',
+                'data.bank_number.required'  => '请输入账号',
+                'data.bank_phone.required'  => '请输入账号绑定手机号码',
+                'data.bank_user.required'  => '请输入账号绑定用户姓名',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $data['user_id'] = $user->id;
+        $ok =UserBank::create($data);
+        if ($ok) {
+            return $this->api('');
+        }else{
+            return $this->error(ErrorCode::OPERATION_FAILED);
+        }
+    } /**
+     * @api {post} /api/my/bank/qrcode 添加二维码
+     * @apiDescription 添加二维码
+     * @apiGroup My
+     *    @apiParam {string} data[type]         类型
+     *    @apiParam {string} data[qrcode]       二维码图片
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function bankImgCreate(Request $request)
+    {
+        $data = $request->data;
+        $user = $this->getUser();
+        $validator = \Validator::make($request->all(),
+            [
+                'data.type'  => 'required',
+                'data.qrcode'  => 'required',
+            ],
+            [
+                'data.type.required'  => '请选择账号类型',
+                'data.qrcode.required'  => '请上传二维码图片',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $data['user_id'] = $user->id;
+       /* $data['bank_user'] = '';
+        $data['bank_phone'] = '';
+        $data['bank_number'] = '';
+        $data['bank_name'] = '';*/
+        $info = UserBank::whereNotNull('qrcode')->where('user_id',$user->id)
+            ->where('type',$data['type'])->first();  //定义为二维码
+        if (empty($info)) {
+            $ok =UserBank::create($data);
+        }else{
+            $ok = $info->update($data);
+        }
+        if ($ok) {
+            return $this->api('');
+        }else{
+            return $this->error(ErrorCode::OPERATION_FAILED);
+        }
+    }
+
+    /**
+     * @api {get} /api/my/bank/delete 删除银行卡
+     * @apiDescription 删除银行卡
+     * @apiGroup My
+     *    @apiParam {int} id         银行卡id
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function bankDelete(Request $request)
+    {
+        $id = $request->id;
+        $validator = \Validator::make($request->all(),
+            [
+                'id'  => 'required',
+            ],
+            [
+                'id.required'  => '银行账号不存在',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $ok =UserBank::destroy($id);
+        if ($ok) {
+            return $this->api('');
+        }else{
+            return $this->error(ErrorCode::OPERATION_FAILED);
+        }
+    }
+//    发私信
+    /**
+     * @api {post} /api/my/letter/store 发送私信
+     * @apiDescription 发送私信
+     * @apiGroup My
+     *    @apiParam {string} content         私信内容
+     *    @apiParam {array} [image]         图片
+     *    @apiParam {string} [video]         视频
+     *    @apiParam {int} to_user_id         私信对象
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function letterStore(Request $request)
+    {
+        $validator = \Validator::make($request->all(),
+            [
+                'content'  => 'required',
+                'to_user_id'  => 'required',
+            ],
+            [
+                'content.required'  => '私信内容不存在',
+                'to_user_id.required'  => '私信对象不存在',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $user = $this->getUser();
+        $user_id = $user->id;
+        $info = $request->input('content');
+        $video = $request->input('video');
+        $img = $request->input('image');
+        if (is_array($img)&&!empty($img)) {
+            $image = $img[0];
+        }else{
+            $image = '';
+        }
+        $to_user_id = $request->input('to_user_id');
+//        链接到最近的一个梦想
+        $dream = DreamInfoModel::where('user_id',$user_id)->orderBy('id','desc')->first();
+        $dream_id = empty($dream) ? 0 : $dream->id;
+        $arr = [
+            'user_id'=>$user_id,
+            'info'=>$info,
+            'message'=>$user->nickname.'给你发了个私信哦~点击看看!',
+            'to_user_id'=>$to_user_id,
+            'dream_id'=>$dream_id,
+            'video'=>$video,
+            'image'=>$image,
+            'type_id'=>2,
+            'is_url'=>1,
+            'attr_id'=>7,
+        ];
+
+        $ok =SystemInfoModel::create($arr);
+        if ($ok) {
+            $this->jPush($user->nickname.'给你发了个私信哦~点击看看!','',$to_user_id);
+            return $this->api('');
+        }else{
+            return $this->error(ErrorCode::OPERATION_FAILED);
+        }
+    }
+    /**
+     * @api {get} /api/my/letter/show 查看私信
+     * @apiDescription 查看私信
+     * @apiGroup My
+     *    @apiParam {int} id         私信主键id
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function letterShow(Request $request)
+    {
+        $validator = \Validator::make($request->all(),
+            [
+                'id'  => 'required',
+            ],
+            [
+                'id.required'  => '私信id不存在',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $user = $this->getUser();
+        $user_id = $user->id;
+        $id = $request->input('id');
+
+        $data = SystemInfoModel::find($id);
+      return $this->api($data);
+    }
+
+//    梦想结束时梦想者是否同意见面
+    /**
+     * @api {get} /api/my/sure_meet 梦想者是否同意见面
+     * @apiDescription 梦想结束时梦想者是否同意见面
+     * @apiGroup My
+     *    @apiParam {int} dream_id         梦想id
+     *    @apiParam {int} value         0取消1确定
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": 0  0表示并没有人支持你
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+    public function isOk(Request $request)
+    {
+        $validator = \Validator::make($request->all(),
+            [
+                'value'  => 'required',
+                'dream_id'  => 'required',
+            ],
+            [
+                'value.required'  => '参数错误',
+                'dream_id.required'  => '梦想不存在',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $dream_id = $request->input('dream_id');
+        $value = $request->input('value');
+        $dream = DreamInfoModel::find($dream_id);
+        if (empty($dream)) return $this->error(ErrorCode::DREAM_NOT_EXIST);
+        $support_dream = SupportDreamModel::where('dream_id',$dream_id)->get();
+        $top = [] ;
+        foreach ($support_dream as $item) {
+            if (!array_key_exists($item->user_id,$top)) {
+                $top[$item->user_id] = $item->score;
+            }else{
+                $top[$item->user_id] += $item->score;
+            }
+        }
+        arsort($top);
+        $new_arr = array_values($top);
+        if (!empty($top)) {
+            $top_user = array_search($new_arr[0],$top);
+        }else{
+            $top_user = 0;
+        }
+        if ($value==1) {
+//            同意见面
+            $dream->is_ok = 1;
+            $dream->save();
+            $message = "你支持的梦想者已经同意见面啦";
+        }else{
+            $message = "你支持的梦想者拒绝了本次见面,你支持的梦想资金将会退还给您";
+//            退款逻辑
+        }
+        Log::info('is_max:'.$top_user);
+        if (!empty($top_user)) {
+//                给最大支持者发送消息
+            $arr = [
+                'user_id'=>0,
+                'message'=>$message,
+                'to_user_id'=>$top_user,
+                'dream_id'=>$dream_id,
+                'is_end'=>1,
+                'type_id'=>1,
+                'is_max'=>1,
+
+            ];
+            SystemInfoModel::firstOrCreate($arr);
+        }
+
+        return $this->api($top_user);
+    }
+
+    //    梦想结束时梦主是否同意见面
+    /**
+     * @api {get} /api/my/sure_meet2 梦主是否同意见面
+     * @apiDescription 梦想结束时梦主是否同意见面
+     * @apiGroup My
+     *    @apiParam {int} to_user_id         梦想者id(数据中的user_id)
+     *    @apiParam {int} value         0取消1确定
+     * @apiPermission Passport
+     * @apiVersion 0.1.0
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK
+     *{
+     *  "status": true,
+     *  "status_code": 0,
+     *  "message": "",
+     *  "data": ""
+     *}
+     * @apiErrorExample {json} Error-Response:
+     *{
+     *  "status": false,
+     *  "status_code": 700,
+     *  "message": "操作失败",
+     *  "data": null
+     *}
+     */
+
+    public function isOk2(Request $request)
+    {
+        $user = $this->getUser();
+        $validator = \Validator::make($request->all(),
+            [
+                'value'  => 'required',
+                'to_user_id'  => 'required',
+            ],
+            [
+                'value.required'  => '参数错误',
+                'to_user_id.required'  => '梦想者不存在',
+            ]
+        );
+        if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
+        $value = $request->input('value');
+        $to_user_id = $request->input('to_user_id');
+        $to_user_info = UserInfoModel::find($to_user_id);
+        if ($value==1) {
+            $message = '您的梦主同意见面了,赶快准备一下吧';
+//            同意见面会收到一条提示信息
+            if (!empty($to_user_info)) {
+                $arr = [
+                    'user_id'=>0,
+                    'message'=>$to_user_info->nickname.'会第一时间联系你!见面时需要你扫一扫他提供的二维码哦',
+                    'to_user_id'=>$user->id,
+                    'is_end'=>1,
+                    'type_id'=>1,
+                ];
+                SystemInfoModel::firstOrCreate($arr);
+            }
+
+        }else{
+            $message = '您的梦主拒绝了你们的见面,喵~';
+        }
+        $arr = [
+            'user_id'=>0,
+            'message'=>$message,
+            'to_user_id'=>$to_user_id,
+            'is_end'=>1,
+            'type_id'=>1,
+        ];
+        SystemInfoModel::firstOrCreate($arr);
+    }
+
+}

+ 5 - 0
server/app/Models/DreamInfoModel.php

xqd
@@ -76,4 +76,9 @@ class DreamInfoModel extends BaseModel
         return $this->hasManyThrough('App\Models\CommentInfoModel', 'App\Models\InteractionInfo','dream_id','interaction_id');
     }
 
+    public function meet()
+    {
+        return $this->hasOne('App\Models\MeetInfoModel','dream_id');
+    }
+
 }

+ 5 - 0
server/app/Models/SupportDreamModel.php

xqd
@@ -14,4 +14,9 @@ class SupportDreamModel extends Model
         'coin',
         'score',
     ];
+
+    public function user()
+    {
+        return $this->belongsTo('App\Models\UserInfoModel');
+    }
 }

+ 10 - 0
server/app/Models/SystemInfoModel.php

xqd
@@ -37,6 +37,16 @@ class SystemInfoModel extends BaseModel
                            'is_read',
                            'interaction_id',
                            'dream_id',
+                           'type_id',
+                           'is_url',
+                           'info',
+                           'is_reply',
+                           'is_max',
+                           'is_end',
+                           'is_ok',
+                           'attr_id',
+                           'image',
+                           'video',
                           ];
 
     public function user()

+ 1 - 1
server/app/Models/UserCareDream.php

xqd
@@ -15,6 +15,6 @@ class UserCareDream extends Model
 
     public function dreams()
     {
-        return $this->hasMany('App\Models\DreamInfoModel','id','dream_id');
+        return $this->hasOne('App\Models\DreamInfoModel','id','dream_id');
     }
 }

+ 3 - 1
server/app/Models/UserCashOut.php

xqd
@@ -9,7 +9,9 @@ class UserCashOut extends Model
 {
     use SoftDeletes;
     public $table = 'user_cash_out';
-
+//    protected $fillable = [
+//        'user_id','bank_id','status','created_at','updated_at','cash','comments'
+//    ];
     protected $guarded = [];
 
     /**

+ 3 - 3
server/app/Repositories/User/Cash/Criteria/MultiWhere.php

xqd
@@ -38,10 +38,10 @@ class MultiWhere extends Criteria {
           if(isset($this->search['keyword']) && $this->search['keyword']) {
               $keyword = '%'.$this->search['keyword'].'%';
                 $model = $model->whereHas('user', function ($query) use ($keyword) {
-                    $query->where('nickname','like','$keyword');
+                    $query->where('nickname','like',$keyword);
                 })->orWhereHas('bank', function ($query) use ($keyword) {
-                    $query->where('bank_name','like','$keyword')->
-                    orWhere('bank_number','like','$keyword');
+                    $query->where('bank_name','like',$keyword)->
+                    orWhere('bank_number','like',$keyword);
                 });
           }
 //          dump($keyword);

+ 80 - 0
server/app/Widget/Tools/VideoUpload.php

xqd
@@ -0,0 +1,80 @@
+<?php
+
+namespace App\Widget\Tools;
+
+use Illuminate\Support\Facades\Request;
+use Intervention\Image\Facades\Image;
+//use FFMpeg;
+/**
+ * Created by PhpStorm.
+ * User: steven
+ * Date: 16/9/12
+ * Time: 下午8:06
+ */
+class VideoUpload
+{
+
+    protected static function mkFolder($path)
+    {
+
+        if (!is_readable($path)) {
+
+            mkdir($path, 0700, true);
+
+        }
+
+    }
+
+
+    /*
+     * 文件存储工具
+     *
+     */
+
+    public static function mvFile($fileName, $sizex = 150, $sizey = 200,$isImage = false, $dir = 'order')//200 270
+    {
+
+        if (!Request::hasFile($fileName)) return false;
+
+        $file = Request::file($fileName);
+
+        VideoUpload::mkFolder(public_path('upload/'));
+
+        if(Request::get('article_id'))$dir=Request::get('article_id');
+        $filePath = public_path('upload/'.$dir.'/');
+        VideoUpload::mkFolder($filePath);
+
+        $fileName = time() . '.' . $file->getClientOriginalExtension();
+
+//        $fileName = $clientName . '.' . $file->getClientOriginalExtension();
+
+        \Log::info($filePath. $fileName);
+        if($isImage){
+            if (!Image::make($file)->resize($sizex, $sizey)->save($filePath. $fileName)) return false;
+
+        }else{
+            $file->move($filePath, $fileName);
+
+         /*   //正常缩略图
+            $ffmpeg = FFMpeg\FFMpeg::create(array(
+                'ffmpeg.binaries'  => '/usr/bin/ffmpeg',
+                'ffprobe.binaries' => '/usr/bin/ffprobe'
+            ));
+            $video = $ffmpeg->open($filePath. $fileName);
+            $vpath = $filePath;
+            if (!file_exists($vpath)) {
+                if (!@mkdir($vpath, 0755, true)) {
+                    return ErrorCode::ATTACHMENT_MKDIR_FAILED;
+                }
+            }
+            $pic = $vpath. $fileName.'.jpg';
+            \Log::info($pic);
+            $video
+                ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(1))
+                ->save( $pic );*/
+        }
+
+        return '/upload/' .$dir.'/'. $fileName;
+    }
+
+}

+ 31 - 0
server/database/migrations/2017_10_30_110624_add_delete_at_user_cash_out_table.php

xqd
@@ -0,0 +1,31 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddDeleteAtUserCashOutTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('user_cash_out', function (Blueprint $table) {
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('user_cash_out', function (Blueprint $table) {
+        });
+    }
+}

+ 32 - 0
server/database/migrations/2017_10_30_144104_add_number_to__user_cash_out_table.php

xqd
@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddNumberToUserCashOutTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('user_cash_out', function (Blueprint $table) {
+            $table->integer('number')->comment('交易号')->nullable()->after('id');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('user_cash_out', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 33 - 0
server/database/migrations/2017_10_30_152951_add_type_id_to_system_info_table.php

xqd
@@ -0,0 +1,33 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddTypeIdToSystemInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            $table->smallInteger('type_id')->default(0)->comment('0通知消息1梦想消息2支持消息')->after('dream_id');
+            $table->smallInteger('is_url')->default(0)->comment('0点击消息不跳转1跳转')->after('dream_id');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 34 - 0
server/database/migrations/2017_10_30_165649_add_is_reply_to_system_info_table.php

xqd
@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddIsReplyToSystemInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            $table->smallInteger('is_reply')->default(0)->comment('0不可回复1可回复')->after('dream_id');
+            $table->smallInteger('attr_id')->default(0)->comment('1支持2收藏3互动4提现5梦想暂停6结束7私信8@9倒计时10排名取代')->after('dream_id');
+            $table->text('info')->nullable()->comment('私信内容')->after('dream_id');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 34 - 0
server/database/migrations/2017_10_30_172609_add_is_end_to_system_info_table.php

xqd
@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddIsEndToSystemInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            $table->smallInteger('is_end')->default(0)->comment('1梦想结束消息')->after('dream_id');
+            $table->smallInteger('is_ok')->default(0)->comment('1支持者点击OK')->after('dream_id');
+            $table->smallInteger('is_max')->default(0)->comment('1最大支持者')->after('dream_id');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 32 - 0
server/database/migrations/2017_10_31_100205_add_is_ok_to_dream_info_table.php

xqd
@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddIsOkToDreamInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('dream_info', function (Blueprint $table) {
+            $table->smallInteger('is_ok')->comment('1同意见面0拒绝')->nullable()->after('parameter');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('dream_info', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 33 - 0
server/database/migrations/2017_11_01_101227_add_imagevideo_to_system_info_table.php

xqd
@@ -0,0 +1,33 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddImagevideoToSystemInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            $table->string('image')->nullable()->after('message');
+            $table->string('video')->nullable()->after('message');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('system_info', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 2 - 0
server/resources/views/admin/account_log/index.blade.php

xqd xqd
@@ -18,6 +18,7 @@
     						<tr>
 								
             <th  data-sort="to_type"> 充值类型 </th>
+            <th  data-sort="note"> 交易号 </th>
             <th  data-sort="to_amount"> 充值金额 </th>
             <th  data-sort="created_at"> 充值时间 </th>
         						{{--<th width="22%">相关操作</th>--}}
@@ -28,6 +29,7 @@
 							@foreach($list as $key => $item)
 								<tr>
 									<td>{{ $item->to_type }}</td>
+									<td>{{ $item->note }}</td>
 									<td>{{ $item->to_amount }}</td>
 									<td>{{ $item->created_at }}</td>
 									{{--<td>

+ 70 - 0
server/resources/views/admin/comment/edit.blade.php

xqd
@@ -0,0 +1,70 @@
+@extends('admin.layout')
+
+@section('content')
+
+<?php
+    if(!isset($data)) $data = array();
+    if(!$data && session("data")){
+        $data = session("data");
+    }
+    if(!$data && session('_old_input')){
+        $data = session("_old_input");
+    }
+?>
+<div class="wrapper wrapper-content animated fadeInRight">
+	<div class="row">
+		<div class="col-sm-12">
+			<div class="ibox float-e-margins">
+				<div class="ibox-title">
+					<h5>评论动态</h5>
+					<div class="ibox-tools">
+						<a class="collapse-link"> <i class="fa fa-chevron-up"></i>
+						</a>
+					</div>
+				</div>
+				<div class="ibox-content">
+                    <div class="row">
+                        <div class="col-sm-3 pull-right">
+                            <a href="{{ U('Dream/Info/index')}}" class="btn btn-sm btn-primary pull-right">返回列表</a>
+                        </div>
+                    </div>
+
+		            <div class="row">
+                        <div class="col-lg-10">
+                            <form name="form_product" id="form-validation" action="" class="form-horizontal form-validation" accept-charset="UTF-8" method="post">
+
+                                    
+
+                <div class="form-group">
+                                    
+                 <label class="control-label col-sm-3">评论内容</label>
+                                    
+                   <div class="col-sm-9">
+                     <input id="" name="comment" class="form-control"  required="" aria-required="true"  placeholder="">
+                    </div>
+                                
+                </div>    
+
+                                <div class="form-group">
+                                    <label class="control-label col-sm-3">&nbsp;</label>
+                                    <div class="col-sm-9">
+                                        <input type="hidden" name="_referer" value="<?php echo urlencode(request()->server('HTTP_REFERER'));?>"/>
+                                        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"/>
+                                        <input type="submit" class="btn btn-success" style="margin-right:20px;">
+                                        <input type="hidden" name="interaction_id" value="{{$interaction_id}}">
+                                        <input type="reset" class="btn btn-default" >
+                                    </div>
+                                </div>
+        
+                            </form>
+                        </div>
+                        <!-- /.col-lg-10 -->
+                    </div>
+                    <!-- /.row -->
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+@endsection

+ 25 - 10
server/resources/views/admin/dream/info/edit.blade.php

xqd xqd
@@ -33,7 +33,7 @@
 
 		            <div class="row">
                         <div class="col-lg-10">
-                            <form name="form_product" id="form-validation" action="" class="form-horizontal form-validation" accept-charset="UTF-8" method="post">
+                            <form name="form_product" id="form-validation" action="" class="form-horizontal form-validation" enctype="multipart/form-data" accept-charset="UTF-8" method="post">
 
                                     
                 <div class="form-group">
@@ -123,15 +123,30 @@
                     </div>
 
                 </div>
-                <div class="form-group">
-                                    
-                 <label class="control-label col-sm-3">梦想视频地址</label>
-                                    
-                   <div class="col-sm-9">
-                     <input id="data_video" name="data[video]" class="form-control" value="{{ $data['video'] or ''}}" aria-required="true"  placeholder="">
-                    </div>
-                                
-                </div>    
+                <div  id="is_video" style="display: none">
+                                    <div class="form-group">
+                                        <label class="control-label col-sm-3" >视频(mp4格式,200MB内)</label>
+                                        <input type="file" name="file" >
+                                    </div>
+                                    <div class="form-group" @if(is_numeric($data))
+                                    style="display: none"
+                                            @endif>
+                                        <label class="control-label col-sm-3" >&nbsp;</label>
+                                        <div class="col-sm-9" style="width: 50%;height: 50%">
+                                            <video style="width: 300px" src="{{ $data['video'] or ''}}" controls >
+                                            </video>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <label class="control-label col-sm-3">视频封面图</label>
+                                        <div class="col-sm-9">
+                                            {!! widget('Tools.ImgUpload')->single2('/upload/article/poster',"poster","poster",isset($data['poster']) && $data['is_video'] == 1 ? $data['poster']:'')!!}
+                                            @if(isset($data['poster']))
+                                                <input id="" name="data[poster]" class="form-control" value="{{ $data['poster'] or ''}}" required="" aria-required="true"  placeholder="">
+                                            @endif
+                                        </div>
+                                    </div>
+                        </div>
                 <div class="form-group">
                                     
                  <label class="control-label col-sm-3">排行参数</label>

+ 18 - 2
server/resources/views/admin/dream/info/index.blade.php

xqd xqd xqd xqd
@@ -36,7 +36,7 @@
 						<thead>
     						<tr>
 								
-            <th class="sorting" data-sort="id"> id </th>
+            <th class="sorting" data-sort="id"> id</th>
             <th class="sorting" data-sort="user_id"> 用户ID </th>
             <th class="sorting" data-sort="name"> 梦想名称 </th>
             <th class="sorting" data-sort="coin"> 所需梦想币 </th>
@@ -45,6 +45,8 @@
 			<th class="sorting" data-sort="sign"> 梦想标签 </th>
 			<th class="sorting" data-sort="parameter"> 排行参数 </th>
 			<th class="sorting" data-sort="code"> 二维码 </th>
+			<th class="sorting" data-sort="code"> 扫描时间 </th>
+			<th class="sorting" data-sort="is_ok"> 结束信息 </th>
 			<th class="sorting" data-sort="status"> 梦想状态 </th>
 			<th class="sorting" data-sort="created_at"> 梦想发布时间 </th>
 			<th class="sorting" data-sort="end_time"> 梦想结束时间 </th>
@@ -62,10 +64,23 @@
             <td>{{ $item->get_coin }}</td>
 			<td>{{ $item->mark }}</td>
 			<td>{{ $item->sign }}</td>
-			<td>{{ $item->parameter }}</td>
+			<td>
+				@if(!empty($ab_value))
+					A:{{ $ab_value->key }} <br>
+					B:{{ $ab_value->value }}<br>
+				@endif
+				C:{{ $item->parameter }}
+			</td>
 			<td>
 				<a onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('/Dream/Info/show_code',['code'=> $item->code])}}'});"  class="btn btn-primary ">查看</a>
 			</td>
+			<td>{{ empty($item->meet) ? '' : $item->meet->created_at  }}</td>
+			<td>
+				@if($item->is_ok == 1)同意
+					@elseif($item->is_ok ===0)拒绝
+				@else
+				@endif
+			</td>
 			<td>{{ dict()->get('dream_info','status',$item->status) }}</td>
 			<td>{{$item->created_at }}</td>
 			<td>{{$item->end_time}}</td>
@@ -94,6 +109,7 @@
 										<button onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('Dream/Info/view',['id'=>$item->id])}}'});"  class="btn btn-primary ">查看更多</button>
 									@endif
 									<a href = "{{ U('Interaction/Info/view',['id'=>$item->id])}} " class="btn btn-primary ">查看动态</a>
+									<a href = "{{ U('Dream/Info/supportInfo',['dream_id'=>$item->id])}} " class="btn btn-success ">支持记录</a>
 								</td>
 							</tr>
 							@endforeach

+ 16 - 3
server/resources/views/admin/dream/interaction/view.blade.php

xqd xqd
@@ -25,12 +25,24 @@
 				<div class="ibox-content">
 		            <div class="row">
                         <div class="row">
-                            <div class="col-sm-3 pull-right">
+                            <div class="col-sm-9 ">
+                                <a href="{{ U('Interaction/Info/create',['dream_id'=>$dream_id])}}" class="btn btn-sm btn-success pull-right">添加动态</a>
+                            </div>
+                            <div class="col-sm-2">
                                 <a href="{{ U('Dream/Info/index')}}" class="btn btn-sm btn-primary pull-right">返回列表</a>
                             </div>
                         </div>
                         @foreach($list as $item)
-                            <input  class="form-control" value="{{ $item ->title}}" disabled required="" aria-required="true"  placeholder="">
+                            <div class="row">
+                                <div class="col-sm-10 ">
+                                    <input  class="form-control" style="text-align: right" value="{{ $item ->title}}" disabled required="" aria-required="true"  placeholder="">
+                                </div>
+                                <div class="col-sm-2 ">
+                                    <a  href="{{ U('Interaction/Info/updateInteraction',['id'=>$item->id])}}" class="btn btn-sm btn-success ">修改</a>
+                                    <a  href="{{ U('Interaction/Info/comment',['id'=>$item->id])}}" class="btn btn-sm btn-info  ">评论</a>
+                                    <a class="btn btn-sm btn-default pull-right" href="{{ U('Interaction/Info/destroy',['id'=>$item->id])}}" onclick="return confirm('你确定执行删除操作?');">删除</a>
+                                </div>
+                            </div>
                             <div class="col-lg-10">
                                 @foreach($item->comms as $comm)
                                     <form name="form_product"  action="{{url('/admin/Interaction/Info/update',['id' => $comm->id])}}" class="form-horizontal form-validation" accept-charset="UTF-8" method="post">
@@ -46,7 +58,8 @@
                                                 <input type="hidden" name="_referer" value="<?php echo urlencode(request()->server('HTTP_REFERER'));?>"/>
                                                 <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"/>
                                                 <input type="submit" class="btn btn-success" style="margin-right:20px;">
-                                                <input type="reset" class="btn btn-default" >
+                                                <a class="btn btn-info" href="{{ U('Interaction/Info/comment',['comment_id'=>$comm->id])}}" >回复</a>
+                                                <a class="btn btn-default" href="{{ U('Comment/Info/destroy',['id'=>$comm->id])}}" onclick="return confirm('你确定执行删除操作?');">删除</a>
                                             </div>
                                         </div>
                                     </form>

+ 61 - 0
server/resources/views/admin/dream/support_dream/index.blade.php

xqd
@@ -0,0 +1,61 @@
+@extends('admin.layout') 
+
+@section('content')
+<div class="wrapper wrapper-content animated fadeInRight">
+	<div class="row">
+		<div class="col-sm-12">
+			<div class="ibox float-e-margins">
+				<div class="ibox-title">
+					<h5>支持记录</h5>
+					<div class="ibox-tools">
+						<a class="collapse-link"> <i class="fa fa-chevron-up"></i>
+						</a>
+					</div>
+				</div>
+				<div class="ibox-content">
+					<div class="row">
+							<div class="col-sm-3 pull-right">
+								<a href="{{ U('Dream/Info/index')}}" class="btn btn-sm btn-primary pull-right">返回列表</a>
+							</div>
+					</div>
+					<table class="table table-striped table-bordered table-hover dataTables-example dataTable">
+						<thead>
+    						<tr>
+								
+            <th class="sorting" data-sort="user_id"> 支持者 </th>
+            <th class="sorting" data-sort="coin"> 梦想币 </th>
+            <th class="sorting" data-sort="score"> 获得的梦想分 </th>
+			<th class="sorting" data-sort="created_at"> 支持时间 </th>
+        					</tr>
+						</thead>
+						<tbody>
+						@if(isset($list))
+							@foreach($list as $key => $item)							<tr>
+								
+            <td>{{ empty($item->user) ? '' : $item->user->nickname }}</td>
+            <td>{{ $item->coin }}</td>
+            <td>{{ $item->score }}</td>
+			<td>{{$item->created_at }}</td>
+							</tr>
+							@endforeach
+							@endif
+
+						</tbody>
+					</table>
+					<div class="row">
+						<div class="col-sm-6">
+							<div class="dataTables_info" id="DataTables_Table_0_info"
+								role="alert" aria-live="polite" aria-relevant="all">每页{{ $list->count() }}条,共{{ $list->lastPage() }}页,总{{ $list->total() }}条。</div>
+						</div>
+						<div class="col-sm-6">
+						<div class="dataTables_paginate paging_simple_numbers" id="DataTables_Table_0_paginate">
+						{!! $list->setPath('')->appends(Request::all())->render() !!}
+						</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+@endsection

+ 92 - 0
server/resources/views/admin/interaction/info/check.blade.php

xqd
@@ -0,0 +1,92 @@
+@extends('admin.layout')
+
+@section('content')
+	<div class="wrapper wrapper-content animated fadeInRight">
+		<div class="row">
+			<div class="col-sm-12">
+				<div class="ibox float-e-margins">
+					<div class="ibox-title">
+						<h5>梦想列表</h5>
+						<div class="ibox-tools">
+							<a class="collapse-link"> <i class="fa fa-chevron-up"></i>
+							</a>
+						</div>
+					</div>
+					<div class="ibox-content">
+						<div class="row">
+							<form method="GET" action="" accept-charset="UTF-8">
+
+								<div class="col-sm-4">
+									<div class="input-group">
+										<input type="text" value="{{Request::get('keyword')}}"	placeholder="请输入关键词" name="keyword"class="input-sm form-control">
+								<span class="input-group-btn">
+									<button type="submit" class="btn btn-sm btn-primary">搜索</button>
+								</span>
+									</div>
+								</div>
+							</form>
+							@if(role('Dream/Info/create'))
+								<div class="col-sm-3 pull-right">
+									<a href="{{ U('Dream/Info/create')}}" class="btn btn-sm btn-primary pull-right">添加</a>
+								</div>
+							@endif
+						</div>
+
+						<table class="table table-striped table-bordered table-hover dataTables-example dataTable dataCheckTable">
+							<thead>
+							<tr>
+								<th><input class="btSelectAll" name="btSelectAll" type="checkbox"></th>
+								
+            <th class="sorting" data-sort="id"> id </th>
+            <th class="sorting" data-sort="user_id"> 用户ID </th>
+            <th class="sorting" data-sort="name"> 梦想名称 </th>
+            <th class="sorting" data-sort="coin"> 所需梦想币 </th>
+            <th class="sorting" data-sort="time"> 梦想倒计时 </th>
+            <th class="sorting" data-sort="get_coin"> 获得梦想币 </th>
+            <th class="sorting" data-sort="mark"> 梦想分 </th>
+								<th width="22%">相关操作</th>
+							</tr>
+							</thead>
+							<tbody>
+							@if(isset($list))
+								@foreach($list as $key => $item)
+									<tr>
+									<td><input data-json='{!! json_encode($item) !!}'  name="btSelectItem" class="data_key" type="checkbox" value="{{ $item->id or 0 }}" /></td>
+									
+            <td>{{ $item->id }}</td>
+            <td>{{ $item->user_id }}</td>
+            <td>{{ $item->name }}</td>
+            <td>{{ $item->coin }}</td>
+            <td>{{ $item->time }}</td>
+            <td>{{ $item->get_coin }}</td>
+            <td>{{ $item->mark }}</td>
+									<td>
+										@if(role('Dream/Info/view'))
+											<button onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('Dream/Info/view',['id'=>$item->id])}}'});"  class="btn btn-primary ">查看</button>
+										@endif
+									</td>
+								</tr>
+								@endforeach
+							@endif
+
+							</tbody>
+						</table>
+						<div class="row">
+							<div class="col-sm-6">
+								<div class="dataTables_info" id="DataTables_Table_0_info"
+									 role="alert" aria-live="polite" aria-relevant="all">每页{{ $list->count() }}条,共{{ $list->lastPage() }}页,总{{ $list->total() }}条。</div>
+							</div>
+							<div class="col-sm-6">
+								<div class="dataTables_paginate paging_simple_numbers" id="DataTables_Table_0_paginate">
+									{!! $list->setPath('')->appends(Request::all())->render() !!}
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	@include('admin.tools.check_script');
+
+@endsection

+ 138 - 0
server/resources/views/admin/interaction/info/edit.blade.php

xqd
@@ -0,0 +1,138 @@
+@extends('admin.layout')
+
+@section('content')
+
+<?php
+    if(!isset($data)) $data = array();
+    if(!$data && session("data")){
+        $data = session("data");
+    }
+    if(!$data && session('_old_input')){
+        $data = session("_old_input");
+    }
+?>
+<div class="wrapper wrapper-content animated fadeInRight">
+	<div class="row">
+		<div class="col-sm-12">
+			<div class="ibox float-e-margins">
+				<div class="ibox-title">
+					<h5>动态编辑</h5>
+					<div class="ibox-tools">
+						<a class="collapse-link"> <i class="fa fa-chevron-up"></i>
+						</a>
+					</div>
+				</div>
+				<div class="ibox-content">
+                    @if(role('Dream/Info/index'))
+				    <div class="row">
+    					<div class="col-sm-3 pull-right">
+                            <a href="{{ U('Dream/Info/index')}}" class="btn btn-sm btn-primary pull-right">返回列表</a>
+    					</div>
+					</div>
+                    @endif
+
+		            <div class="row">
+                        <div class="col-lg-10">
+                            <form name="form_product" id="form-validation" action="" class="form-horizontal form-validation" accept-charset="UTF-8" enctype="multipart/form-data" method="post">
+
+                <div class="form-group">
+                                    
+                 <label class="control-label col-sm-3">互动标题</label>
+                                    
+                   <div class="col-sm-9">
+                     <input id="data_title" name="data[title]" class="form-control" value="{{ $data['title'] or ''}}" required="" aria-required="true"  placeholder="">
+                    </div>
+                                
+                </div>
+                                <div class="form-group">
+
+                                    <label class="control-label col-sm-3">是否视频</label>
+
+                                    <div class="col-sm-9">
+                                        @foreach(dict()->get('global','bool') as $key => $val)
+                                            <input type="radio" class="is_video" value="{{$key}}" name="data[is_video]" {{ !empty($data) && $data['is_video'] == $key ? 'checked' : '' }}>{{$val}}
+                                        @endforeach
+                                    </div>
+                                </div>
+                                <div  id="is_video" style="display: none">
+                                    <div class="form-group">
+                                        <label class="control-label col-sm-3" >视频(mp4格式,200MB内)</label>
+                                        <input type="file" name="file" >
+                                    </div>
+                                    <div class="form-group" @if(empty($data))
+                                    style="display: none"
+                                            @endif>
+                                        <label class="control-label col-sm-3" >&nbsp;</label>
+                                        <div class="col-sm-9" style="width: 50%;height: 50%">
+                                            <video style="width: 300px" src="{{ $data['video'] or ''}}" poster="{{ $data['poster'] or ''}}" controls >
+                                            </video>
+                                        </div>
+                                    </div>
+                                   {{-- <div class="form-group">
+                                        <label class="control-label col-sm-3">视频封面图</label>
+                                        <div class="col-sm-9">
+                                            {!! widget('Tools.ImgUpload')->single2('/upload/article/poster',"poster","poster",isset($data['poster']) && $data['is_video'] == 1 ? $data['poster']:'')!!}
+                                            @if(isset($data['poster']))
+                                                <input id="" name="data[poster]" class="form-control" value="{{ $data['poster'] or ''}}" required="" aria-required="true"  placeholder="">
+                                            @endif
+                                        </div>
+                                    </div>--}}
+                                </div>
+                                <div id="data_media">
+                                    <div class="form-group">
+
+                                        <label class="control-label col-sm-3">互动图片</label>
+
+                                        <div class="col-sm-9">
+                                            {!!  widget('Tools.ImgUpload')->multi2('/upload/interaction','pic',"pic", isset($data->imgs) ? $data->imgs : "") !!}
+                                        </div>
+
+                                    </div>
+                                </div>
+
+                                <div class="form-group">
+                                    <label class="control-label col-sm-3">&nbsp;</label>
+                                    <div class="col-sm-9">
+                                        <input type="hidden" name="_referer" value="<?php echo urlencode(request()->server('HTTP_REFERER'));?>"/>
+                                        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"/>
+                                        <input type="hidden" name="data[dream_id]" value="@if(isset($dream_id)) {{$dream_id or ''}} @elseif(isset($data['dream_id']))) {{ $data['video'] or ''}} @endif">
+                                        <input type="submit" class="btn btn-success" style="margin-right:20px;">
+                                        <input type="reset" class="btn btn-default" >
+                                    </div>
+                                </div>
+        
+                            </form>
+                        </div>
+                        <!-- /.col-lg-10 -->
+                    </div>
+                    <!-- /.row -->
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+@endsection
+@section('footer')
+    <script>
+        if ($('input:radio[name="data[type_id]"]:checked').val() == 1) {
+            $('#is_video').show();
+            $('#data_media').hide();
+        }else{
+            $('#data_media').show();
+            $('#is_video').hide();
+        }
+        $(function () {
+            $('.is_video').change(function () {
+                if ($(this).val() == 1) {
+                    $('#is_video').show();
+                    $('#data_media').hide();
+                }else{
+                    $('#data_media').show();
+                    $('#is_video').hide();
+                }
+            });
+        });
+
+    </script>
+@endsection

+ 126 - 0
server/resources/views/admin/interaction/info/index.blade.php

xqd
@@ -0,0 +1,126 @@
+@extends('admin.layout') 
+
+@section('content')
+<div class="wrapper wrapper-content animated fadeInRight">
+	<div class="row">
+		<div class="col-sm-12">
+			<div class="ibox float-e-margins">
+				<div class="ibox-title">
+					<h5>梦想列表</h5>
+					<div class="ibox-tools">
+						<a class="collapse-link"> <i class="fa fa-chevron-up"></i>
+						</a>
+					</div>
+				</div>
+				<div class="ibox-content">
+				    <div class="row">
+				        <form method="GET" action="" accept-charset="UTF-8">
+
+				        <div class="col-sm-4">
+				            <div class="input-group">
+								<input type="text" value="{{Request::get('keyword')}}"	placeholder="id/用户id/梦想名称" name="keyword"class="input-sm form-control">
+								<span class="input-group-btn">
+									<button type="submit" class="btn btn-sm btn-primary">搜索</button>
+								</span>
+    						</div>
+				        </div>
+				        </form>
+						@if(role('Dream/Info/create'))
+    					<div class="col-sm-3 pull-right">
+    					   <a href="{{ U('Dream/Info/create')}}" class="btn btn-sm btn-primary pull-right">添加</a>
+    					</div>
+						@endif
+					</div>
+					
+					<table class="table table-striped table-bordered table-hover dataTables-example dataTable">
+						<thead>
+    						<tr>
+								
+            <th class="sorting" data-sort="id"> id </th>
+            <th class="sorting" data-sort="user_id"> 用户ID </th>
+            <th class="sorting" data-sort="name"> 梦想名称 </th>
+            <th class="sorting" data-sort="coin"> 所需梦想币 </th>
+            <th class="sorting" data-sort="get_coin"> 获得梦想币 </th>
+			<th class="sorting" data-sort="mark"> 梦想分 </th>
+			<th class="sorting" data-sort="sign"> 梦想标签 </th>
+			<th class="sorting" data-sort="parameter"> 排行参数 </th>
+			<th class="sorting" data-sort="code"> 二维码 </th>
+			<th class="sorting" data-sort="status"> 梦想状态 </th>
+			<th class="sorting" data-sort="created_at"> 梦想发布时间 </th>
+			<th class="sorting" data-sort="end_time"> 梦想结束时间 </th>
+								<th width="22%">相关操作</th>
+        					</tr>
+						</thead>
+						<tbody>
+						@if(isset($list))
+							@foreach($list as $key => $item)							<tr>
+								
+            <td>{{ $item->id }}</td>
+            <td>{{ $item->user_id }}</td>
+            <td>{{ $item->name }}</td>
+            <td>{{ $item->coin }}</td>
+            <td>{{ $item->get_coin }}</td>
+			<td>{{ $item->mark }}</td>
+			<td>{{ $item->sign }}</td>
+			<td>
+				@if(!empty($ab_value))
+					A:{{ $ab_value->key }} <br>
+					B:{{ $ab_value->value }}<br>
+				@endif
+				C:{{ $item->parameter }}
+			</td>
+			<td>
+				<a onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('/Dream/Info/show_code',['code'=> $item->code])}}'});"  class="btn btn-primary ">查看</a>
+			</td>
+			<td>{{ dict()->get('dream_info','status',$item->status) }}</td>
+			<td>{{$item->created_at }}</td>
+			<td>{{$item->end_time}}</td>
+								<td>
+									<div class="btn-group">
+										<button data-toggle="dropdown"
+											class="btn btn-warning btn-sm dropdown-toggle"
+											aria-expanded="false">
+											操作 <span class="caret"></span>
+										</button>
+										<ul class="dropdown-menu">
+
+
+											@if(role('Dream/Info/update'))
+											<li><a href="{{ U('Dream/Info/update',['id'=>$item->id])}}" class="font-bold">修改</a></li>
+											@endif
+
+											@if(role('Dream/Info/destroy'))
+											<li class="divider"></li>
+											<li><a href="{{ U('Dream/Info/destroy',['id'=>$item->id])}}" onclick="return confirm('你确定执行删除操作?');">删除</a></li>
+											@endif
+
+										</ul>
+									</div>
+								@if(role('Dream/Info/view'))
+										<button onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('Dream/Info/view',['id'=>$item->id])}}'});"  class="btn btn-primary ">查看更多</button>
+									@endif
+									<a href = "{{ U('Interaction/Info/view',['id'=>$item->id])}} " class="btn btn-primary ">查看动态</a>
+								</td>
+							</tr>
+							@endforeach
+							@endif
+
+						</tbody>
+					</table>
+					<div class="row">
+						<div class="col-sm-6">
+							<div class="dataTables_info" id="DataTables_Table_0_info"
+								role="alert" aria-live="polite" aria-relevant="all">每页{{ $list->count() }}条,共{{ $list->lastPage() }}页,总{{ $list->total() }}条。</div>
+						</div>
+						<div class="col-sm-6">
+						<div class="dataTables_paginate paging_simple_numbers" id="DataTables_Table_0_paginate">
+						{!! $list->setPath('')->appends(Request::all())->render() !!}
+						</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+@endsection

+ 20 - 0
server/resources/views/admin/interaction/info/show_code.blade.php

xqd
@@ -0,0 +1,20 @@
+@extends('admin.layout')
+
+@section('content')
+<div class="row">
+    <div class="ibox-content">
+        <div class="list-group">
+                                 
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">二维码</h3>
+                                                   
+                   <p class="list-group-item-text">
+                       <img src="{{$code}}" alt="">
+                   </p>
+                                                 
+               </div>                     
+        </div>
+    </div>
+</div>
+@endsection

+ 118 - 0
server/resources/views/admin/interaction/info/view.blade.php

xqd
@@ -0,0 +1,118 @@
+@extends('admin.layout')
+
+@section('content')
+<div class="row">
+    <div class="ibox-content">
+        <div class="list-group">
+                                 
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">id</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['id'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">用户ID</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['user_id'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想名称</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['name'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想介绍</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['about'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">所需梦想币</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['coin'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想倒计时</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['time'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">获得梦想币</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['get_coin'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想分</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['mark'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想状态</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['status'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想视频地址</h3>
+                                                   
+                   <p class="list-group-item-text">
+                       <video src="{{ $data['video'] or ''}}" controls="controls"></video>
+                   </p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想排行分数</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['score'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading">梦想标签</h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['sign'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading"></h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['created_at'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading"></h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['updated_at'] or ''}}</p>
+                                                 
+               </div>                     
+               <div class="list-group-item">
+                                                  
+                   <h3 class="list-group-item-heading"></h3>
+                                                   
+                   <p class="list-group-item-text"> {{ $data['deleted_at'] or ''}}</p>
+                                                 
+               </div>
+        </div>
+    </div>
+</div>
+@endsection

+ 1 - 11
server/resources/views/admin/system/info/edit.blade.php

xqd xqd
@@ -36,15 +36,6 @@
                             <form name="form_product" id="form-validation" action="" class="form-horizontal form-validation" accept-charset="UTF-8" method="post">
 
                                     
-                <div class="form-group">
-                                    
-                 <label class="control-label col-sm-3">当前用户ID</label>
-                                    
-                   <div class="col-sm-9">
-                     <input id="data_user_id" name="data[user_id]" class="form-control" value="{{ $data['user_id'] or ''}}" required="" aria-required="true"  placeholder=""> 
-                    </div>
-                                
-                </div>    
                 <div class="form-group">
                                     
                  <label class="control-label col-sm-3">系统消息</label>
@@ -63,11 +54,10 @@
                                     <div class="col-sm-9">
                                         <input type="hidden" name="_referer" value="<?php echo urlencode(request()->server('HTTP_REFERER'));?>"/>
                                         <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"/>
-                                        <input type="submit" class="btn btn-success" style="margin-right:20px;">
+                                        <input type="submit" value="确认发送" class="btn btn-success" style="margin-right:20px;">
                                         <input type="reset" class="btn btn-default" >
                                     </div>
                                 </div>
-        
                             </form>
                         </div>
                         <!-- /.col-lg-10 -->

+ 3 - 0
server/resources/views/admin/system/info/index.blade.php

xqd
@@ -25,6 +25,9 @@
     						</div>
 				        </div>
 				        </form>
+						<div class="col-sm-3 pull-right">
+							<a href="{{ U('System/Info/create')}}" class="btn btn-sm btn-primary pull-right">发送系统消息</a>
+						</div>
 					</div>
 					
 					<table class="table table-striped table-bordered table-hover dataTables-example dataTable">

+ 11 - 33
server/resources/views/admin/user/cash/out/edit.blade.php

xqd xqd
@@ -35,49 +35,25 @@
                         <div class="col-lg-10">
                             <form name="form_product" id="form-validation" action="" class="form-horizontal form-validation" accept-charset="UTF-8" method="post">
 
-                                    
-                <div class="form-group">
-                                    
-                 <label class="control-label col-sm-3">提现用户id</label>
-                                    
-                   <div class="col-sm-9">
-                     <input id="data_user_id" name="data[user_id]" class="form-control" value="{{ $data['user_id'] or ''}}" required="" aria-required="true"  placeholder=""> 
-                    </div>
-                                
-                </div>    
-                <div class="form-group">
-                                    
-                 <label class="control-label col-sm-3">绑定的提现方式id</label>
-                                    
-                   <div class="col-sm-9">
-                     <input id="data_bank_id" name="data[bank_id]" class="form-control" value="{{ $data['bank_id'] or ''}}" required="" aria-required="true"  placeholder=""> 
-                    </div>
-                                
-                </div>    
-                <div class="form-group">
-                                    
-                 <label class="control-label col-sm-3">提现状态: 0, 申请提现; 1,审核通过; 2,已打款; 3,审核未通过</label>
-                                    
-                   <div class="col-sm-9">
-                     <input id="data_status" name="data[status]" class="form-control" value="{{ $data['status'] or ''}}" required="" aria-required="true"  placeholder=""> 
-                    </div>
-                                
-                </div>    
                 <div class="form-group">
                                     
-                 <label class="control-label col-sm-3">提现金额</label>
+                 <label class="control-label col-sm-3">提现状态</label>
                                     
                    <div class="col-sm-9">
-                     <input id="data_cash" name="data[cash]" class="form-control" value="{{ $data['cash'] or ''}}" required="" aria-required="true"  placeholder=""> 
+                       <select name="data[status]" id="" class="form-control">
+                           @foreach( dict()->get('global','cash_out') as $key =>$val)
+                               <option value="{{$key}}" {{isset($data['status']) && $data['status']==$key?'selected':''}}>{{$val}}</option>
+                           @endforeach
+                       </select>
                     </div>
                                 
-                </div>    
+                </div>
                 <div class="form-group">
                                     
-                 <label class="control-label col-sm-3">审核未通过原因, 备注</label>
+                 <label class="control-label col-sm-3">备注</label>
                                     
                    <div class="col-sm-9">
-                     <textarea name="data[comments]" id="editorcomments" required="" aria-required="true" class="form-control" rows="10">{{ $data['comments'] or ''}}</textarea>
+                     <textarea name="data[comments]" id="editorcomments" class="form-control" rows="10">{{ $data['comments'] or ''}}</textarea>
                                        
                      {!! editor('editorcomments', ['position' => 'ali', 'folder' => 'upload/common'], ['themeType' => 'simple', 'height' => '300px']) !!}
                                             
@@ -91,6 +67,8 @@
                                         <input type="hidden" name="_referer" value="<?php echo urlencode(request()->server('HTTP_REFERER'));?>"/>
                                         <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"/>
                                         <input type="submit" class="btn btn-success" style="margin-right:20px;">
+                                        <input type="hidden" name="data[user_id]" value="{{$data['user_id'] or ''}}">
+                                        <input type="hidden" name="data[cash]" value="{{$data['cash'] or ''}}">
                                         <input type="reset" class="btn btn-default" >
                                     </div>
                                 </div>

+ 12 - 9
server/resources/views/admin/user/cash/out/index.blade.php

xqd xqd xqd xqd
@@ -18,18 +18,18 @@
 
 				        <div class="col-sm-4">
 				            <div class="input-group">
-								<input type="text" value="{{Request::get('keyword')}}"	placeholder="请输入关键词" name="keyword"class="input-sm form-control"> 
+								<input type="text" value="{{Request::get('keyword')}}"	placeholder="提现用户名/银行名/银行卡号" name="keyword"class="input-sm form-control">
 								<span class="input-group-btn">
 									<button type="submit" class="btn btn-sm btn-primary">搜索</button>
 								</span>
     						</div>
 				        </div>
 				        </form>
-						@if(role('User/Cash/Out/create'))
+					{{--	@if(role('User/Cash/Out/create'))
     					<div class="col-sm-3 pull-right">
     					   <a href="{{ U('User/Cash/Out/create')}}" class="btn btn-sm btn-primary pull-right">添加</a>
     					</div>
-						@endif
+						@endif--}}
 					</div>
 					
 					<table class="table table-striped table-bordered table-hover dataTables-example dataTable">
@@ -37,9 +37,12 @@
     						<tr>
 								
             <th class="sorting" data-sort="id"> id </th>
+            <th class="sorting" data-sort="number"> 交易号 </th>
             <th class="sorting" data-sort="user_id"> 提现用户 </th>
-            <th class="sorting" data-sort="bank_id"> 提现账号 </th>
-            <th class="sorting" data-sort="bank_id"> 账号姓名 </th>
+            <th class="sorting" data-sort="bank_id"> 提现银行 </th>
+            <th class="sorting" data-sort="bank_id"> 卡号 </th>
+            <th class="sorting" data-sort="bank_id"> 银行卡手机号 </th>
+            <th class="sorting" data-sort="bank_id"> 银行卡姓名 </th>
             <th class="sorting" data-sort="status"> 提现状态</th>
             <th class="sorting" data-sort="cash"> 提现金额 </th>
             <th class="sorting" data-sort="created_at"> 提现时间 </th>
@@ -51,9 +54,12 @@
 							@foreach($list as $key => $item)							<tr>
 
 			<td>{{ $item->id }}</td>
+			<td>{{ $item->number }}</td>
 			<td>{{ !empty($item->user) ? $item->user->nickname : '' }}</td>
-			<td>{{ !empty($item->bank) ? $item->bank->bank_number : '' }}</td>
 			<td>{{ !empty($item->bank) ? $item->bank->bank_name : '' }}</td>
+			<td>{{ !empty($item->bank) ? $item->bank->bank_number : '' }}</td>
+			<td>{{ !empty($item->bank) ? $item->bank->bank_phone : '' }}</td>
+			<td>{{ !empty($item->bank) ? $item->bank->bank_user : '' }}</td>
             <td>{{  dict()->get('global','cash_out',$item->status) }}</td>
             <td>{{ $item->cash }}</td>
             <td>{{ $item->created_at }}</td>
@@ -78,9 +84,6 @@
 
 										</ul>
 									</div>
-								@if(role('User/Cash/Out/view'))
-										<button onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('User/Cash/Out/view',['id'=>$item->id])}}'});"  class="btn btn-primary ">查看</button>
-									@endif
 								</td>
 							</tr>
 							@endforeach

+ 1 - 0
server/resources/views/admin/user/info/index.blade.php

xqd
@@ -110,6 +110,7 @@
 										<button onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('User/Info/view',['id'=>$item->id])}}'});"  class="btn btn-primary ">查看</button>
 									@endif
 									<button onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('Account_logs/Info/index',['id'=>$item->id])}}'});"  class="btn btn-primary ">充值记录</button>
+									{{--<button onclick="layer.open({type: 2,area: ['80%', '90%'],content: '{{ U('Account_logs/Info/index',['id'=>$item->id])}}'});"  class="btn btn-success ">提现记录</button>--}}
 								</td>
 							</tr>
 							@endforeach

+ 10 - 6
server/routes/api.php

xqd
@@ -138,13 +138,17 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\V1'], function ($a
         'as' => 'my.system_info',
         'uses' => 'MyController@systemInfo',
     ]);
-    $api->get('my/reply', [
-        'as' => 'my.reply',
-        'uses' => 'MyController@reply',
+    $api->get('my/dream_info', [
+        'as' => 'my.dream_info',
+        'uses' => 'MyController@dreamInfo',
     ]);
-    $api->get('my/letter', [
-        'as' => 'my.letter',
-        'uses' => 'MyController@letter',
+    $api->get('my/sure_meet', [
+        'as' => 'my.sure_meet',
+        'uses' => 'MyController@isOk',
+    ]);
+    $api->get('my/sup_info', [
+        'as' => 'my.sup_info',
+        'uses' => 'MyController@supInfo',
     ]);
     $api->get('my/dream', [
         'as' => 'my.dream',