18552018291 6 роки тому
коміт
489a02ce5c
100 змінених файлів з 9208 додано та 0 видалено
  1. 16 0
      .editorconfig
  2. 39 0
      .env.example
  3. 5 0
      .gitattributes
  4. 13 0
      .gitignore
  5. 141 0
      app/Admin/Controllers/AppIndexPicController.php
  6. 160 0
      app/Admin/Controllers/BusController.php
  7. 233 0
      app/Admin/Controllers/BusinessController.php
  8. 96 0
      app/Admin/Controllers/ExampleController.php
  9. 39 0
      app/Admin/Controllers/HomeController.php
  10. 161 0
      app/Admin/Controllers/HotSpotController.php
  11. 149 0
      app/Admin/Controllers/ProblemController.php
  12. 155 0
      app/Admin/Controllers/RestRoomController.php
  13. 233 0
      app/Admin/Controllers/RestaurantController.php
  14. 162 0
      app/Admin/Controllers/ServiceTimeController.php
  15. 153 0
      app/Admin/Controllers/ShowTimeController.php
  16. 21 0
      app/Admin/bootstrap.php
  17. 23 0
      app/Admin/routes.php
  18. 42 0
      app/Console/Kernel.php
  19. 51 0
      app/Exceptions/Handler.php
  20. 32 0
      app/Http/Controllers/Auth/ForgotPasswordController.php
  21. 39 0
      app/Http/Controllers/Auth/LoginController.php
  22. 72 0
      app/Http/Controllers/Auth/RegisterController.php
  23. 39 0
      app/Http/Controllers/Auth/ResetPasswordController.php
  24. 13 0
      app/Http/Controllers/Controller.php
  25. 63 0
      app/Http/Kernel.php
  26. 17 0
      app/Http/Middleware/CheckForMaintenanceMode.php
  27. 17 0
      app/Http/Middleware/EncryptCookies.php
  28. 26 0
      app/Http/Middleware/RedirectIfAuthenticated.php
  29. 18 0
      app/Http/Middleware/TrimStrings.php
  30. 23 0
      app/Http/Middleware/TrustProxies.php
  31. 17 0
      app/Http/Middleware/VerifyCsrfToken.php
  32. 28 0
      app/Providers/AppServiceProvider.php
  33. 30 0
      app/Providers/AuthServiceProvider.php
  34. 21 0
      app/Providers/BroadcastServiceProvider.php
  35. 32 0
      app/Providers/EventServiceProvider.php
  36. 73 0
      app/Providers/RouteServiceProvider.php
  37. 29 0
      app/User.php
  38. 10 0
      app/app_index.php
  39. 10 0
      app/app_index_pic.php
  40. 24 0
      app/bus.php
  41. 52 0
      app/business.php
  42. 10 0
      app/code.php
  43. 27 0
      app/hot_spot.php
  44. 10 0
      app/problem.php
  45. 24 0
      app/rest_room.php
  46. 46 0
      app/restaurant.php
  47. 10 0
      app/service_time.php
  48. 10 0
      app/show_time.php
  49. 53 0
      artisan
  50. 55 0
      bootstrap/app.php
  51. 2 0
      bootstrap/cache/.gitignore
  52. 60 0
      composer.json
  53. 4124 0
      composer.lock
  54. 161 0
      config/admin.php
  55. 214 0
      config/app.php
  56. 102 0
      config/auth.php
  57. 59 0
      config/broadcasting.php
  58. 94 0
      config/cache.php
  59. 120 0
      config/database.php
  60. 75 0
      config/filesystems.php
  61. 52 0
      config/hashing.php
  62. 81 0
      config/logging.php
  63. 123 0
      config/mail.php
  64. 86 0
      config/queue.php
  65. 38 0
      config/services.php
  66. 197 0
      config/session.php
  67. 33 0
      config/view.php
  68. 1 0
      database/.gitignore
  69. 23 0
      database/factories/UserFactory.php
  70. 35 0
      database/migrations/2014_10_12_000000_create_users_table.php
  71. 32 0
      database/migrations/2014_10_12_100000_create_password_resets_table.php
  72. 113 0
      database/migrations/2016_01_04_173148_create_admin_tables.php
  73. 35 0
      database/migrations/2018_07_30_054146_create_app_index_pics_table.php
  74. 41 0
      database/migrations/2018_07_31_022952_create_service_times_table.php
  75. 38 0
      database/migrations/2018_07_31_032946_create_codes_table.php
  76. 40 0
      database/migrations/2018_07_31_060437_create_show_times_table.php
  77. 36 0
      database/migrations/2018_07_31_063125_create_problems_table.php
  78. 53 0
      database/migrations/2018_07_31_073223_create_businesses_table.php
  79. 45 0
      database/migrations/2018_08_01_010714_create_hot_spots_table.php
  80. 53 0
      database/migrations/2018_08_01_075546_create_restaurants_table.php
  81. 43 0
      database/migrations/2018_08_01_091757_create_rest_rooms_table.php
  82. 16 0
      database/seeds/CodeTableSeeder.php
  83. 16 0
      database/seeds/DatabaseSeeder.php
  84. 22 0
      package.json
  85. 33 0
      phpunit.xml
  86. 21 0
      public/.htaccess
  87. 6 0
      public/css/app.css
  88. 0 0
      public/favicon.ico
  89. 60 0
      public/index.php
  90. 1 0
      public/js/app.js
  91. 2 0
      public/robots.txt
  92. BIN
      public/uploads/files/007b69cd4aba74037dcf45db525c0d30.png
  93. BIN
      public/uploads/files/09ca80bbfb6622104919b98e42cfe81d.png
  94. BIN
      public/uploads/files/0dbd365273fa5e846fbc784da15d011e.png
  95. BIN
      public/uploads/files/1a12c8d7ef79587c900e2da75e26c9d5.png
  96. BIN
      public/uploads/files/1ddbb8f790124c002c90ebd710c67d04.png
  97. BIN
      public/uploads/files/2.png
  98. BIN
      public/uploads/files/208a3705fbf4bd05cfcb7140c6f76839.png
  99. BIN
      public/uploads/files/2b60f3ea598b1fddeacbd1473aba5787.png
  100. 0 0
      public/uploads/files/2e203e65e1b563cb063bcb75f1fd41f6.png

+ 16 - 0
.editorconfig

@@ -0,0 +1,16 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+trim_trailing_whitespace = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.yml]
+indent_style = space
+indent_size = 2

+ 39 - 0
.env.example

@@ -0,0 +1,39 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=homestead
+DB_USERNAME=homestead
+DB_PASSWORD=secret
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+QUEUE_DRIVER=sync
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_DRIVER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_APP_CLUSTER=mt1
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

+ 5 - 0
.gitattributes

@@ -0,0 +1,5 @@
+* text=auto
+*.css linguist-vendored
+*.scss linguist-vendored
+*.js linguist-vendored
+CHANGELOG.md export-ignore

+ 13 - 0
.gitignore

@@ -0,0 +1,13 @@
+/node_modules
+/public/hot
+/public/storage
+/storage/*.key
+/vendor
+/.idea
+/.vscode
+/.vagrant
+Homestead.json
+Homestead.yaml
+npm-debug.log
+yarn-error.log
+.env

+ 141 - 0
app/Admin/Controllers/AppIndexPicController.php

@@ -0,0 +1,141 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\App_index_pic;
+
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * app首页管理
+ * Class AppIndexPicController
+ * @package App\Admin\Controllers
+ */
+class AppIndexPicController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('APP首页管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('APP首页管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('APP首页管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(App_index_pic::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->column('pic', '显示的图片')->display(function ($pic){
+                return"<img style='heigh:100px;width:100px' src='/uploads/$pic' />";
+            });
+            $grid->column('pic_link_url', '跳转的地址')->editable();
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(App_index_pic::class, function (Form $form) {
+
+            $form->display('id', '序号');
+            $form->image('pic','显示的图片')->uniqueName();
+            $form->url('pic_link_url','跳转的页面');
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+        });
+    }
+
+}

+ 160 - 0
app/Admin/Controllers/BusController.php

@@ -0,0 +1,160 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\bus;
+
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * 公交管理
+ * Class BusController
+ * @package App\Admin\Controllers
+ */
+class BusController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('公交管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('公交管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('公交管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(bus::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->run_status('运行状态')->switch([
+                'on'  => ['value' => 1, 'text' => '运行', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '停运', 'color' => 'default'],
+            ]);;
+            $grid->column('number', '编号');
+            $grid->column('name', '名称');
+            $grid->column('name', '名称');
+            $grid->column('运行时间')->display(function () {
+                return $this->star_time . '-' . $this->end_time;
+            });;
+
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(bus::class, function (Form $form) {
+
+            $form->display('id', '序号');
+
+            $form->text('number','编号')->rules('required|max:10');
+            $form->text('name','名称')->rules('required|max:10');
+            $form->text('address','位置')->rules('required|max:30');
+            $form->timeRange('star_time', 'end_time', '选择运行时间');
+
+            $form->switch('run_status','加入热点')->states([
+                'on'  => ['value' => 1, 'text' => '运行', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '停运', 'color' => 'default'],
+            ])->default(1);
+
+            $form->multipleFile('pics','公交照片')->removable()->uniqueName();
+
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+
+
+        });
+    }
+}

+ 233 - 0
app/Admin/Controllers/BusinessController.php

@@ -0,0 +1,233 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\business;
+use App\code;
+
+use App\hot_spot;
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * 商铺管理
+ * Class BusinessController
+ * @package App\Admin\Controllers
+ */
+class BusinessController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('商家管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('商家管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('商家管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(business::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->business_status('营业状态')->switch([
+                'on'  => ['value' => 1, 'text' => '营业', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '休业', 'color' => 'default'],
+            ]);;
+            $grid->column('number', '编号');
+            $grid->column('name', '名称');
+            $grid->column('营业时间')->display(function () {
+                return $this->star_time . '-' . $this->end_time;
+            });;
+            $grid->food_type( '商家风格')->display(function ($value){
+                $name = code::whereIn('id',$value)->pluck('code_dsp_name_cn');
+                return $name;
+            })->label();
+            $grid->hot_status('加入热点')->switch([
+                'on'  => ['value' => 1, 'text' => '打开', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '关闭', 'color' => 'default'],
+            ]);
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(business::class, function (Form $form) {
+
+            $form->display('id', '序号');
+
+            $form->text('number','编号')->rules('required|max:10');
+            $form->text('name','名称')->rules('required|max:10');
+            $form->text('address','位置')->rules('required|max:30');
+            $form->text('poi_name','POI名称')->rules('required|max:20');
+            $form->image('poi_icon','POI图标')->uniqueName();
+            $form->url('poi_link_url','POI跳转链接');
+            $form->text('poi_x_coord','POI X坐标')->rules('required|max:20');
+            $form->text('poi_y_coord','POI Y坐标')->rules('required|max:20');
+            $form->timeRange('star_time', 'end_time', '选择营业时间');
+            $form->currency('price','人均价位')->symbol('¥')->rules('required|max:20');
+            $form->textarea('shop_intro','商家简介')->rules('required|max:120');
+            $form->textarea('shop_info','商家描述')->rules('required|max:120');
+
+            $form->checkbox('food_type','商家风格')->options(code::where('type_id',7)->pluck('code_dsp_name_cn','id'));
+            $form->checkbox('serve_facility','服务设施')->options(code::where('type_id',3)->pluck('code_dsp_name_cn','id'));
+            $form->switch('hot_status','加入热点')->states([
+                'on'  => ['value' => 1, 'text' => '加入', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '取消', 'color' => 'default'],
+            ])->default(2);
+
+            $form->switch('self_support','是否自营')->states([
+                'on'  => ['value' => 1, 'text' => '自营', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '他营', 'color' => 'default'],
+            ])->default(1);
+            $form->switch('business_status','营业状态')->states([
+                'on'  => ['value' => 1, 'text' => '营业', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '休业 ', 'color' => 'default'],
+            ])->default(1);
+
+            $form->multipleFile('pics','宣传照片')->removable()->uniqueName();
+
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+
+            //保存后回调
+            $form->saved(function (Form $form) {
+                $hot_status=$form->model()->hot_status;
+                if($hot_status==1){
+                    //创建-同时创建热点表
+                    //查询该数据是否存在
+                    $hot_spot=hot_spot::where('type','=',2)->where('link_id','=',$form->model()->id)->first();
+                    if(!$hot_spot){
+                        $hot_id=$this->hotSpotSave($form);
+                    }
+//                    else{
+//                        //删除-同时删除热点表
+//                        if ($_POST['_method']=='DELETE'){
+//                            $this->hotSpotDelete($form);
+//                        }
+//                    }
+                }elseif($hot_status==0){
+                    $this->hotSpotDelete($form);
+                }
+            });
+
+        });
+    }
+
+    public function hotSpotSave(Form $form){
+        $hotSpot=new hot_spot();
+        $hotSpot->open_status=1;
+        $hotSpot->number=$form->model()->number;
+        $hotSpot->name=$form->model()->name;
+        $hotSpot->address=$form->model()->address;
+        $hotSpot->hot_info=$form->model()->shop_intro;
+        $hotSpot->star_date=date('y-m-d');
+        $hotSpot->end_date=date('y-m-d');
+        $hotSpot->star_time=$form->model()->star_time;
+        $hotSpot->end_time=$form->model()->end_time;
+        $hotSpot->pics=$form->model()->pics;
+        $hotSpot->type=2;
+        $hotSpot->link_id=$form->model()->id;
+        $hotSpot->update_id=$form->model()->update_id;
+        $hotSpot->create_id=$form->model()->create_id;
+        $hotSpot->save();
+        return $hotSpot->id;
+    }
+
+
+    public function hotSpotDelete(Form $form){
+        $return=hot_spot::where('type','=',2)->where('link_id','=',$form->model()->id)->delete();
+        return $return;
+    }
+}

+ 96 - 0
app/Admin/Controllers/ExampleController.php

@@ -0,0 +1,96 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+class ExampleController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('header');
+            $content->description('description');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('header');
+            $content->description('description');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('header');
+            $content->description('description');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(YourModel::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+
+            $grid->created_at();
+            $grid->updated_at();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(YourModel::class, function (Form $form) {
+
+            $form->display('id', '序号');
+
+            $form->display('created_at', 'Created At');
+            $form->display('updated_at', 'Updated At');
+        });
+    }
+}

+ 39 - 0
app/Admin/Controllers/HomeController.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\Dashboard;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Column;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Layout\Row;
+
+class HomeController extends Controller
+{
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('Dashboard');
+            $content->description('Description...');
+
+            $content->row(Dashboard::title());
+
+            $content->row(function (Row $row) {
+
+                $row->column(4, function (Column $column) {
+                    $column->append(Dashboard::environment());
+                });
+
+                $row->column(4, function (Column $column) {
+                    $column->append(Dashboard::extensions());
+                });
+
+                $row->column(4, function (Column $column) {
+                    $column->append(Dashboard::dependencies());
+                });
+            });
+        });
+    }
+}

+ 161 - 0
app/Admin/Controllers/HotSpotController.php

@@ -0,0 +1,161 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\hot_spot;
+use App\code;
+
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * 热点管理
+ * Class HotSpotController
+ * @package App\Admin\Controllers
+ */
+class HotSpotController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('热点管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('热点管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('热点管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(hot_spot::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->open_status('开放状态')->switch([
+                'on'  => ['value' => 1, 'text' => '开放', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '未开放', 'color' => 'default'],
+            ]);
+            $grid->column('number', '编号');
+            $grid->column('name', '名称');
+            $grid->column('address', '位置');
+            $grid->column('type', '类别')->display(function ($value){
+                if($value==1){
+                    $name="<span class='label bg-yellow'>饭店自动</span>";
+                }elseif($value==2){
+                    $name="<span class='label bg-yellow'>商铺自动</span>";
+                }else{
+                    $name="<span class='label bg-yellow'>手动添加</span>";
+                }
+                return $name;
+            });
+            $grid->column('开放日期')->display(function () {
+                return $this->star_date . '-' . $this->end_date;
+            });
+            $grid->column('开放时间')->display(function () {
+                return $this->star_time . '-' . $this->end_time;
+            });
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(hot_spot::class, function (Form $form) {
+
+            $form->display('id', '序号');
+            $form->text('number','编号')->rules('required|max:10');
+            $form->text('name','名称')->rules('required|max:10');
+            $form->text('address','位置')->rules('required|max:30');
+            $form->dateRange('star_date', 'end_date', '选择日期范围');
+            $form->timeRange('star_time', 'end_time', '选择营业时间');
+            $form->textarea('hot_info','商家简介')->rules('required|max:120');
+            $form->switch('open_status','开放状态')->states([
+                'on'  => ['value' => 1, 'text' => '开放', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '未开放', 'color' => 'default'],
+            ])->default(1);
+            $form->multipleFile('pics','宣传照片')->removable();
+
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+        });
+    }
+}

+ 149 - 0
app/Admin/Controllers/ProblemController.php

@@ -0,0 +1,149 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\problem;
+use App\code;
+
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * 问题管理
+ * Class ProblemController
+ * @package App\Admin\Controllers
+ */
+class ProblemController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('问题管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('问题管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('问题管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(problem::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->column('type', '类别')->display(function ($value){
+                $name = code::where('id',$value)->pluck('code_dsp_name_cn')->first();
+                return $name;
+            });
+            $grid->column('problem', '问题')->limit(30);
+            $grid->column('answer', '回答')->limit(30);
+
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(problem::class, function (Form $form) {
+
+            $form->display('id', '序号');
+            $form->select('type','类别')->options(function (){
+                $name = code::where('type_id',15)->pluck('code_dsp_name_cn','id');
+                return $name;
+            });
+            $form->textarea('problem','问题');
+            $form->textarea('answer','回答');
+
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+        });
+    }
+}

+ 155 - 0
app/Admin/Controllers/RestRoomController.php

@@ -0,0 +1,155 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\rest_room;
+use App\code;
+
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+class RestRoomController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('厕所管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('厕所管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('厕所管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(rest_room::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->open_status('开放状态')->switch([
+                'on'  => ['value' => 1, 'text' => '开放', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '关闭', 'color' => 'default'],
+            ]);;
+            $grid->column('number', '编号');
+            $grid->column('name', '名称');
+            $grid->column('address', '位置');
+            $grid->serve_people_facility( '便民设施')->display(function ($value){
+                $name = code::whereIn('id',$value)->pluck('code_dsp_name_cn');
+                return $name;
+            })->label();
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(rest_room::class, function (Form $form) {
+
+            $form->display('id', '序号');
+            $form->text('number','编号')->rules('required|max:10');
+            $form->text('name','名称')->rules('required|max:10');
+            $form->text('address','位置')->rules('required|max:30');
+            $form->text('poi_name','POI名称')->rules('required|max:20');
+            $form->image('poi_icon','POI图标')->uniqueName();
+            $form->url('poi_link_url','POI跳转链接');
+            $form->text('poi_x_coord','POI X坐标')->rules('required|max:20');
+            $form->text('poi_y_coord','POI Y坐标')->rules('required|max:20');
+            $form->checkbox('serve_people_facility','便民设施')->options(code::where('type_id',6)->pluck('code_dsp_name_cn','id'));
+            $form->switch('open_status','开放状态')->states([
+                'on'  => ['value' => 1, 'text' => '开放', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '关闭', 'color' => 'default'],
+            ])->default(1);
+
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+        });
+    }
+}

+ 233 - 0
app/Admin/Controllers/RestaurantController.php

@@ -0,0 +1,233 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\restaurant;
+use App\code;
+
+use App\hot_spot;
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * 饭店管理
+ * Class RestaurantController
+ * @package App\Admin\Controllers
+ */
+class RestaurantController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('饭店管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('饭店管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('饭店管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(restaurant::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->business_status('营业状态')->switch([
+                'on'  => ['value' => 1, 'text' => '营业', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '休业', 'color' => 'default'],
+            ]);;
+            $grid->column('number', '编号');
+            $grid->column('name', '名称');
+            $grid->column('营业时间')->display(function () {
+                return $this->star_time . '-' . $this->end_time;
+            });;
+            $grid->food_type( '商家风格')->display(function ($value){
+                $name = code::whereIn('id',$value)->pluck('code_dsp_name_cn');
+                return $name;
+            })->label();
+            $grid->hot_status('加入热点')->switch([
+                'on'  => ['value' => 1, 'text' => '打开', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '关闭', 'color' => 'default'],
+            ]);
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(restaurant::class, function (Form $form) {
+
+            $form->display('id', '序号');
+
+            $form->text('number','编号')->rules('required|max:10');
+            $form->text('name','名称')->rules('required|max:10');
+            $form->text('address','位置')->rules('required|max:30');
+            $form->text('poi_name','POI名称')->rules('required|max:20');
+            $form->image('poi_icon','POI图标')->uniqueName();
+            $form->text('poi_link_url','POI跳转链接')->rules('required|max:20');
+            $form->text('poi_x_coord','POI X坐标')->rules('required|max:20');
+            $form->text('poi_y_coord','POI Y坐标')->rules('required|max:20');
+            $form->timeRange('star_time', 'end_time', '选择营业时间');
+            $form->currency('price','人均价位')->symbol('¥')->rules('required|max:20');
+            $form->textarea('shop_intro','商家简介')->rules('required|max:120');
+            $form->textarea('shop_info','商家描述')->rules('required|max:120');
+
+            $form->checkbox('food_type','餐饮风格')->options(code::where('type_id',2)->pluck('code_dsp_name_cn','id'));
+            $form->checkbox('serve_facility','服务设施')->options(code::where('type_id',3)->pluck('code_dsp_name_cn','id'));
+            $form->switch('hot_status','加入热点')->states([
+                'on'  => ['value' => 1, 'text' => '加入', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '取消', 'color' => 'default'],
+            ])->default(2);
+
+            $form->switch('self_support','是否自营')->states([
+                'on'  => ['value' => 1, 'text' => '自营', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '他营', 'color' => 'default'],
+            ])->default(1);
+            $form->switch('business_status','营业状态')->states([
+                'on'  => ['value' => 1, 'text' => '营业', 'color' => 'success'],
+                'off' => ['value' => 0, 'text' => '休业 ', 'color' => 'default'],
+            ])->default(1);
+
+            $form->multipleFile('pics','宣传照片')->removable()->uniqueName();
+
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+
+            //保存后回调
+            $form->saved(function (Form $form) {
+                $hot_status=$form->model()->hot_status;
+                if($hot_status==1){
+                    //创建-同时创建热点表
+                    //查询该数据是否存在
+                    $hot_spot=hot_spot::where('type','=',2)->where('link_id','=',$form->model()->id)->first();
+                    if(!$hot_spot){
+                        $hot_id=$this->hotSpotSave($form);
+                    }
+//                    else{
+//                        //删除-同时删除热点表
+//                        if ($_POST['_method']=='DELETE'){
+//                            $this->hotSpotDelete($form);
+//                        }
+//                    }
+                }elseif($hot_status==0){
+                    $this->hotSpotDelete($form);
+                }
+            });
+
+        });
+    }
+
+    public function hotSpotSave(Form $form){
+        $hotSpot=new hot_spot();
+        $hotSpot->open_status=1;
+        $hotSpot->number=$form->model()->number;
+        $hotSpot->name=$form->model()->name;
+        $hotSpot->address=$form->model()->address;
+        $hotSpot->hot_info=$form->model()->shop_intro;
+        $hotSpot->star_date=date('y-m-d');
+        $hotSpot->end_date=date('y-m-d');
+        $hotSpot->star_time=$form->model()->star_time;
+        $hotSpot->end_time=$form->model()->end_time;
+        $hotSpot->pics=$form->model()->pics;
+        $hotSpot->type=1;
+        $hotSpot->link_id=$form->model()->id;
+        $hotSpot->update_id=$form->model()->update_id;
+        $hotSpot->create_id=$form->model()->create_id;
+        $hotSpot->save();
+        return $hotSpot->id;
+    }
+
+
+    public function hotSpotDelete(Form $form){
+        $return=hot_spot::where('type','=',1)->where('link_id','=',$form->model()->id)->delete();
+        return $return;
+    }
+}

+ 162 - 0
app/Admin/Controllers/ServiceTimeController.php

@@ -0,0 +1,162 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\code;
+use App\service_time;
+
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * 运营时间管理
+ * Class ServiceTimeController
+ * @package App\Admin\Controllers
+ */
+class ServiceTimeController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('运营时间管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('运营时间管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('运营时间管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(service_time::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->column('number', '编号');
+            $grid->column('name', '名称');
+            $grid->column('type', '类别')->display(function ($value){
+                $name = code::where('id',$value)->pluck('code_dsp_name_cn')->first();
+                return $name;
+            });
+            $grid->column('priority', '优先级')->display(function ($value){
+                $name = code::where('id',$value)->pluck('code_dsp_name_cn')->first();
+                return $name;
+            });
+            $grid->column('star_date', '开始日期');
+            $grid->column('end_date', '结束日期');
+            $grid->column('star_time', '开始时间');
+            $grid->column('end_time', '结束时间');
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(service_time::class, function (Form $form) {
+
+            $form->display('id', '序号');
+
+            $form->text('number','编号')->rules('required|max:10');
+            $form->text('name','名称')->rules('required|max:10');
+            $form->select('type','类别')->options(function (){
+                $name = code::where('type_id',14)->pluck('code_dsp_name_cn','id');
+                return $name;
+            });
+            //优先级查询
+            $form->select('priority','优先级')->options(function (){
+                $name = code::where('type_id',13)->pluck('code_dsp_name_cn','id');
+                return $name;
+            });
+            $form->dateRange('star_date', 'end_date', '日期范围选择');
+            $form->timeRange('star_time', 'end_time', '时间范围选择');
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+        });
+    }
+}

+ 153 - 0
app/Admin/Controllers/ShowTimeController.php

@@ -0,0 +1,153 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\show_time;
+use App\code;
+
+use Encore\Admin\Auth\Database\Administrator;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\ModelForm;
+
+/**
+ * 演出时间管理
+ * Class ShowTimeController
+ * @package App\Admin\Controllers
+ */
+class ShowTimeController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * Index interface.
+     *
+     * @return Content
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('演出时间管理');
+            $content->description('列表');
+
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * Edit interface.
+     *
+     * @param $id
+     * @return Content
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+
+            $content->header('演出时间管理');
+            $content->description('编辑');
+
+            $content->body($this->form()->edit($id));
+        });
+    }
+
+    /**
+     * Create interface.
+     *
+     * @return Content
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+
+            $content->header('演出时间管理');
+            $content->description('新增');
+
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(show_time::class, function (Grid $grid) {
+
+            $grid->id('序号')->sortable();
+            $grid->column('number', '编号');
+            $grid->column('name', '名称');
+            $grid->column('type', '类别')->display(function ($value){
+                $name = code::where('id',$value)->pluck('code_dsp_name_cn')->first();
+                return $name;
+            });
+            $grid->column('star_date', '开始日期');
+            $grid->column('end_date', '结束日期');
+            $grid->column('star_time', '开始时间');
+            $grid->column('end_time', '结束时间');
+            $grid->column('create_id', '创建者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $grid->column('update_id', '更新者')->display(function ($value){
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });;
+            $grid->created_at('创建时间');
+            $grid->updated_at('修改时间');
+            $grid->disableExport();
+        });
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Admin::form(show_time::class, function (Form $form) {
+            $form->display('id', '序号');
+
+            $form->text('number','编号')->rules('required|max:10');
+            $form->text('name','名称')->rules('required|max:10');
+            $form->select('type','类别')->options(function (){
+                $name = code::where('type_id',12)->pluck('code_dsp_name_cn','id');
+                return $name;
+            });
+            $form->dateRange('star_date', 'end_date', '日期范围选择');
+            $form->timeRange('star_time', 'end_time', '时间范围选择');
+            $form->display('update_id', '更新者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+            $form->display('create_id', '创建者')->with(function ($value){
+                if($value){
+                }else{
+                    $value=Admin::user()->id;
+                }
+                $name = Administrator::where('id',$value)->pluck('name')->first();
+                return $name;
+            });
+
+            $form->hidden('create_id')->default(Admin::user()->id);
+            //保存前回调
+            $form->saving(function (Form $form) {
+                $form->update_id =Admin::user()->id;
+            });
+
+            $form->display('created_at', '创建时间');
+            $form->display('updated_at', '更新时间');
+        });
+    }
+}

+ 21 - 0
app/Admin/bootstrap.php

@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Laravel-admin - admin builder based on Laravel.
+ * @author z-song <https://github.com/z-song>
+ *
+ * Bootstraper for Admin.
+ *
+ * Here you can remove builtin form field:
+ * Encore\Admin\Form::forget(['map', 'editor']);
+ *
+ * Or extend custom form field:
+ * Encore\Admin\Form::extend('php', PHPEditor::class);
+ *
+ * Or require js and css assets:
+ * Admin::css('/packages/prettydocs/css/styles.css');
+ * Admin::js('/packages/prettydocs/js/main.js');
+ *
+ */
+
+Encore\Admin\Form::forget(['map', 'editor']);

+ 23 - 0
app/Admin/routes.php

@@ -0,0 +1,23 @@
+<?php
+
+use Illuminate\Routing\Router;
+
+Admin::registerAuthRoutes();
+
+Route::group([
+    'prefix'        => config('admin.route.prefix'),
+    'namespace'     => config('admin.route.namespace'),
+    'middleware'    => config('admin.route.middleware'),
+], function (Router $router) {
+
+    $router->get('/', 'HomeController@index');
+    $router->resource('AppIndexPic', AppIndexPicController::class);
+    $router->resource('ServiceTime', ServiceTimeController::class);
+    $router->resource('ShowTime', ShowTimeController::class);
+    $router->resource('Problem', ProblemController::class);
+    $router->resource('Business', BusinessController::class);
+    $router->resource('HotSpot', HotSpotController::class);
+    $router->resource('Restaurant', RestaurantController::class);
+    $router->resource('RestRoom', RestRoomController::class);
+    $router->resource('Bus', BusController::class);
+});

+ 42 - 0
app/Console/Kernel.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace App\Console;
+
+use Illuminate\Console\Scheduling\Schedule;
+use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
+
+class Kernel extends ConsoleKernel
+{
+    /**
+     * The Artisan commands provided by your application.
+     *
+     * @var array
+     */
+    protected $commands = [
+        //
+    ];
+
+    /**
+     * Define the application's command schedule.
+     *
+     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
+     * @return void
+     */
+    protected function schedule(Schedule $schedule)
+    {
+        // $schedule->command('inspire')
+        //          ->hourly();
+    }
+
+    /**
+     * Register the commands for the application.
+     *
+     * @return void
+     */
+    protected function commands()
+    {
+        $this->load(__DIR__.'/Commands');
+
+        require base_path('routes/console.php');
+    }
+}

+ 51 - 0
app/Exceptions/Handler.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace App\Exceptions;
+
+use Exception;
+use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
+
+class Handler extends ExceptionHandler
+{
+    /**
+     * A list of the exception types that are not reported.
+     *
+     * @var array
+     */
+    protected $dontReport = [
+        //
+    ];
+
+    /**
+     * A list of the inputs that are never flashed for validation exceptions.
+     *
+     * @var array
+     */
+    protected $dontFlash = [
+        'password',
+        'password_confirmation',
+    ];
+
+    /**
+     * Report or log an exception.
+     *
+     * @param  \Exception  $exception
+     * @return void
+     */
+    public function report(Exception $exception)
+    {
+        parent::report($exception);
+    }
+
+    /**
+     * Render an exception into an HTTP response.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Exception  $exception
+     * @return \Illuminate\Http\Response
+     */
+    public function render($request, Exception $exception)
+    {
+        return parent::render($request, $exception);
+    }
+}

+ 32 - 0
app/Http/Controllers/Auth/ForgotPasswordController.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
+
+class ForgotPasswordController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Password Reset Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password reset emails and
+    | includes a trait which assists in sending these notifications from
+    | your application to your users. Feel free to explore this trait.
+    |
+    */
+
+    use SendsPasswordResetEmails;
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest');
+    }
+}

+ 39 - 0
app/Http/Controllers/Auth/LoginController.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\AuthenticatesUsers;
+
+class LoginController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Login Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller handles authenticating users for the application and
+    | redirecting them to your home screen. The controller uses a trait
+    | to conveniently provide its functionality to your applications.
+    |
+    */
+
+    use AuthenticatesUsers;
+
+    /**
+     * Where to redirect users after login.
+     *
+     * @var string
+     */
+    protected $redirectTo = '/home';
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest')->except('logout');
+    }
+}

+ 72 - 0
app/Http/Controllers/Auth/RegisterController.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\User;
+use App\Http\Controllers\Controller;
+use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Validator;
+use Illuminate\Foundation\Auth\RegistersUsers;
+
+class RegisterController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Register Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller handles the registration of new users as well as their
+    | validation and creation. By default this controller uses a trait to
+    | provide this functionality without requiring any additional code.
+    |
+    */
+
+    use RegistersUsers;
+
+    /**
+     * Where to redirect users after registration.
+     *
+     * @var string
+     */
+    protected $redirectTo = '/home';
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest');
+    }
+
+    /**
+     * Get a validator for an incoming registration request.
+     *
+     * @param  array  $data
+     * @return \Illuminate\Contracts\Validation\Validator
+     */
+    protected function validator(array $data)
+    {
+        return Validator::make($data, [
+            'name' => 'required|string|max:255',
+            'email' => 'required|string|email|max:255|unique:users',
+            'password' => 'required|string|min:6|confirmed',
+        ]);
+    }
+
+    /**
+     * Create a new user instance after a valid registration.
+     *
+     * @param  array  $data
+     * @return \App\User
+     */
+    protected function create(array $data)
+    {
+        return User::create([
+            'name' => $data['name'],
+            'email' => $data['email'],
+            'password' => Hash::make($data['password']),
+        ]);
+    }
+}

+ 39 - 0
app/Http/Controllers/Auth/ResetPasswordController.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\ResetsPasswords;
+
+class ResetPasswordController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Password Reset Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password reset requests
+    | and uses a simple trait to include this behavior. You're free to
+    | explore this trait and override any methods you wish to tweak.
+    |
+    */
+
+    use ResetsPasswords;
+
+    /**
+     * Where to redirect users after resetting their password.
+     *
+     * @var string
+     */
+    protected $redirectTo = '/home';
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest');
+    }
+}

+ 13 - 0
app/Http/Controllers/Controller.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Foundation\Bus\DispatchesJobs;
+use Illuminate\Routing\Controller as BaseController;
+use Illuminate\Foundation\Validation\ValidatesRequests;
+use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
+
+class Controller extends BaseController
+{
+    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
+}

+ 63 - 0
app/Http/Kernel.php

@@ -0,0 +1,63 @@
+<?php
+
+namespace App\Http;
+
+use Illuminate\Foundation\Http\Kernel as HttpKernel;
+
+class Kernel extends HttpKernel
+{
+    /**
+     * The application's global HTTP middleware stack.
+     *
+     * These middleware are run during every request to your application.
+     *
+     * @var array
+     */
+    protected $middleware = [
+        \App\Http\Middleware\CheckForMaintenanceMode::class,
+        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
+        \App\Http\Middleware\TrimStrings::class,
+        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+        \App\Http\Middleware\TrustProxies::class,
+    ];
+
+    /**
+     * The application's route middleware groups.
+     *
+     * @var array
+     */
+    protected $middlewareGroups = [
+        'web' => [
+            \App\Http\Middleware\EncryptCookies::class,
+            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+            \Illuminate\Session\Middleware\StartSession::class,
+            // \Illuminate\Session\Middleware\AuthenticateSession::class,
+            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+            \App\Http\Middleware\VerifyCsrfToken::class,
+            \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        ],
+
+        'api' => [
+            'throttle:60,1',
+            'bindings',
+        ],
+    ];
+
+    /**
+     * The application's route middleware.
+     *
+     * These middleware may be assigned to groups or used individually.
+     *
+     * @var array
+     */
+    protected $routeMiddleware = [
+        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
+        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+        'can' => \Illuminate\Auth\Middleware\Authorize::class,
+        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
+        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+    ];
+}

+ 17 - 0
app/Http/Middleware/CheckForMaintenanceMode.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware;
+
+class CheckForMaintenanceMode extends Middleware
+{
+    /**
+     * The URIs that should be reachable while maintenance mode is enabled.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}

+ 17 - 0
app/Http/Middleware/EncryptCookies.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
+
+class EncryptCookies extends Middleware
+{
+    /**
+     * The names of the cookies that should not be encrypted.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}

+ 26 - 0
app/Http/Middleware/RedirectIfAuthenticated.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\Auth;
+
+class RedirectIfAuthenticated
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Closure  $next
+     * @param  string|null  $guard
+     * @return mixed
+     */
+    public function handle($request, Closure $next, $guard = null)
+    {
+        if (Auth::guard($guard)->check()) {
+            return redirect('/home');
+        }
+
+        return $next($request);
+    }
+}

+ 18 - 0
app/Http/Middleware/TrimStrings.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
+
+class TrimStrings extends Middleware
+{
+    /**
+     * The names of the attributes that should not be trimmed.
+     *
+     * @var array
+     */
+    protected $except = [
+        'password',
+        'password_confirmation',
+    ];
+}

+ 23 - 0
app/Http/Middleware/TrustProxies.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Http\Request;
+use Fideloper\Proxy\TrustProxies as Middleware;
+
+class TrustProxies extends Middleware
+{
+    /**
+     * The trusted proxies for this application.
+     *
+     * @var array
+     */
+    protected $proxies;
+
+    /**
+     * The headers that should be used to detect proxies.
+     *
+     * @var int
+     */
+    protected $headers = Request::HEADER_X_FORWARDED_ALL;
+}

+ 17 - 0
app/Http/Middleware/VerifyCsrfToken.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
+
+class VerifyCsrfToken extends Middleware
+{
+    /**
+     * The URIs that should be excluded from CSRF verification.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}

+ 28 - 0
app/Providers/AppServiceProvider.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Providers;
+
+use Illuminate\Support\ServiceProvider;
+
+class AppServiceProvider extends ServiceProvider
+{
+    /**
+     * Bootstrap any application services.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        //
+    }
+
+    /**
+     * Register any application services.
+     *
+     * @return void
+     */
+    public function register()
+    {
+        //
+    }
+}

+ 30 - 0
app/Providers/AuthServiceProvider.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Providers;
+
+use Illuminate\Support\Facades\Gate;
+use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
+
+class AuthServiceProvider extends ServiceProvider
+{
+    /**
+     * The policy mappings for the application.
+     *
+     * @var array
+     */
+    protected $policies = [
+        'App\Model' => 'App\Policies\ModelPolicy',
+    ];
+
+    /**
+     * Register any authentication / authorization services.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        $this->registerPolicies();
+
+        //
+    }
+}

+ 21 - 0
app/Providers/BroadcastServiceProvider.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace App\Providers;
+
+use Illuminate\Support\ServiceProvider;
+use Illuminate\Support\Facades\Broadcast;
+
+class BroadcastServiceProvider extends ServiceProvider
+{
+    /**
+     * Bootstrap any application services.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        Broadcast::routes();
+
+        require base_path('routes/channels.php');
+    }
+}

+ 32 - 0
app/Providers/EventServiceProvider.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Providers;
+
+use Illuminate\Support\Facades\Event;
+use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
+
+class EventServiceProvider extends ServiceProvider
+{
+    /**
+     * The event listener mappings for the application.
+     *
+     * @var array
+     */
+    protected $listen = [
+        'App\Events\Event' => [
+            'App\Listeners\EventListener',
+        ],
+    ];
+
+    /**
+     * Register any events for your application.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        parent::boot();
+
+        //
+    }
+}

+ 73 - 0
app/Providers/RouteServiceProvider.php

@@ -0,0 +1,73 @@
+<?php
+
+namespace App\Providers;
+
+use Illuminate\Support\Facades\Route;
+use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
+
+class RouteServiceProvider extends ServiceProvider
+{
+    /**
+     * This namespace is applied to your controller routes.
+     *
+     * In addition, it is set as the URL generator's root namespace.
+     *
+     * @var string
+     */
+    protected $namespace = 'App\Http\Controllers';
+
+    /**
+     * Define your route model bindings, pattern filters, etc.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        //
+
+        parent::boot();
+    }
+
+    /**
+     * Define the routes for the application.
+     *
+     * @return void
+     */
+    public function map()
+    {
+        $this->mapApiRoutes();
+
+        $this->mapWebRoutes();
+
+        //
+    }
+
+    /**
+     * Define the "web" routes for the application.
+     *
+     * These routes all receive session state, CSRF protection, etc.
+     *
+     * @return void
+     */
+    protected function mapWebRoutes()
+    {
+        Route::middleware('web')
+             ->namespace($this->namespace)
+             ->group(base_path('routes/web.php'));
+    }
+
+    /**
+     * Define the "api" routes for the application.
+     *
+     * These routes are typically stateless.
+     *
+     * @return void
+     */
+    protected function mapApiRoutes()
+    {
+        Route::prefix('api')
+             ->middleware('api')
+             ->namespace($this->namespace)
+             ->group(base_path('routes/api.php'));
+    }
+}

+ 29 - 0
app/User.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace App;
+
+use Illuminate\Notifications\Notifiable;
+use Illuminate\Foundation\Auth\User as Authenticatable;
+
+class User extends Authenticatable
+{
+    use Notifiable;
+
+    /**
+     * The attributes that are mass assignable.
+     *
+     * @var array
+     */
+    protected $fillable = [
+        'name', 'email', 'password',
+    ];
+
+    /**
+     * The attributes that should be hidden for arrays.
+     *
+     * @var array
+     */
+    protected $hidden = [
+        'password', 'remember_token',
+    ];
+}

+ 10 - 0
app/app_index.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class app_index extends Model
+{
+    //
+}

+ 10 - 0
app/app_index_pic.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class app_index_pic extends Model
+{
+    //
+}

+ 24 - 0
app/bus.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class bus extends Model
+{
+    //
+
+    //图片序列化
+    public function setPicsAttribute($pics)
+    {
+        if (is_array($pics)) {
+            $this->attributes['pics'] = json_encode($pics);
+        }
+    }
+    //图片序列化
+    public function getPicsAttribute($pics)
+    {
+        return json_decode($pics, true);
+    }
+
+}

+ 52 - 0
app/business.php

@@ -0,0 +1,52 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+    class business extends Model
+{
+    //
+    public function setPicsAttribute($pics)
+    {
+        if (is_array($pics)) {
+            $this->attributes['pics'] = json_encode($pics);
+        }
+    }
+
+    public function getPicsAttribute($pics)
+    {
+        return json_decode($pics, true);
+    }
+
+    public function setFoodTypeAttribute($foodType)
+    {
+        if (is_array($foodType)) {
+            $this->attributes['food_type'] = json_encode($foodType);
+        }
+    }
+
+    public function getFoodTypeAttribute($foodType)
+    {
+        return json_decode($foodType, true);
+    }
+
+    public function setServeFacilityAttribute($serveFacility)
+    {
+        if (is_array($serveFacility)) {
+            $this->attributes['serve_facility'] = json_encode($serveFacility);
+        }
+    }
+
+    public function getServeFacilityAttribute($serveFacility)
+    {
+        return json_decode($serveFacility, true);
+    }
+
+    //与热点管理表关联
+//    public function hotSpot()
+//    {
+//        return $this->hasOne(hot_spot::class);
+//    }
+
+}

+ 10 - 0
app/code.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class code extends Model
+{
+    //
+}

+ 27 - 0
app/hot_spot.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class hot_spot extends Model
+{
+    //图片序列化
+    public function setPicsAttribute($pics)
+    {
+        if (is_array($pics)) {
+            $this->attributes['pics'] = json_encode($pics);
+        }
+    }
+    //图片序列化
+    public function getPicsAttribute($pics)
+    {
+        return json_decode($pics, true);
+    }
+
+    //与商家管理表关联
+//    public function business()
+//    {
+//        return $this->hasOne(business::class);
+//    }
+}

+ 10 - 0
app/problem.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class problem extends Model
+{
+    //
+}

+ 24 - 0
app/rest_room.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class rest_room extends Model
+{
+    //
+
+    //便民设施序列化
+    public function setServePeopleFacilityAttribute($serve_people_facility)
+    {
+        if (is_array($serve_people_facility)) {
+            $this->attributes['serve_people_facility'] = json_encode($serve_people_facility);
+        }
+    }
+    //便民设施序列化
+    public function getServePeopleFacilityAttribute($serve_people_facility)
+    {
+        return json_decode($serve_people_facility, true);
+    }
+
+}

+ 46 - 0
app/restaurant.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class restaurant extends Model
+{
+    //
+
+    public function setPicsAttribute($pics)
+    {
+        if (is_array($pics)) {
+            $this->attributes['pics'] = json_encode($pics);
+        }
+    }
+
+    public function getPicsAttribute($pics)
+    {
+        return json_decode($pics, true);
+    }
+
+    public function setFoodTypeAttribute($foodType)
+    {
+        if (is_array($foodType)) {
+            $this->attributes['food_type'] = json_encode($foodType);
+        }
+    }
+
+    public function getFoodTypeAttribute($foodType)
+    {
+        return json_decode($foodType, true);
+    }
+
+    public function setServeFacilityAttribute($serveFacility)
+    {
+        if (is_array($serveFacility)) {
+            $this->attributes['serve_facility'] = json_encode($serveFacility);
+        }
+    }
+
+    public function getServeFacilityAttribute($serveFacility)
+    {
+        return json_decode($serveFacility, true);
+    }
+}

+ 10 - 0
app/service_time.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class service_time extends Model
+{
+    //
+}

+ 10 - 0
app/show_time.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class show_time extends Model
+{
+    //
+}

+ 53 - 0
artisan

@@ -0,0 +1,53 @@
+#!/usr/bin/env php
+<?php
+
+define('LARAVEL_START', microtime(true));
+
+/*
+|--------------------------------------------------------------------------
+| Register The Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader
+| for our application. We just need to utilize it! We'll require it
+| into the script here so that we do not have to worry about the
+| loading of any our classes "manually". Feels great to relax.
+|
+*/
+
+require __DIR__.'/vendor/autoload.php';
+
+$app = require_once __DIR__.'/bootstrap/app.php';
+
+/*
+|--------------------------------------------------------------------------
+| Run The Artisan Application
+|--------------------------------------------------------------------------
+|
+| When we run the console application, the current CLI command will be
+| executed in this console and the response sent back to a terminal
+| or another output device for the developers. Here goes nothing!
+|
+*/
+
+$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
+
+$status = $kernel->handle(
+    $input = new Symfony\Component\Console\Input\ArgvInput,
+    new Symfony\Component\Console\Output\ConsoleOutput
+);
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$kernel->terminate($input, $status);
+
+exit($status);

+ 55 - 0
bootstrap/app.php

@@ -0,0 +1,55 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Create The Application
+|--------------------------------------------------------------------------
+|
+| The first thing we will do is create a new Laravel application instance
+| which serves as the "glue" for all the components of Laravel, and is
+| the IoC container for the system binding all of the various parts.
+|
+*/
+
+$app = new Illuminate\Foundation\Application(
+    realpath(__DIR__.'/../')
+);
+
+/*
+|--------------------------------------------------------------------------
+| Bind Important Interfaces
+|--------------------------------------------------------------------------
+|
+| Next, we need to bind some important interfaces into the container so
+| we will be able to resolve them when needed. The kernels serve the
+| incoming requests to this application from both the web and CLI.
+|
+*/
+
+$app->singleton(
+    Illuminate\Contracts\Http\Kernel::class,
+    App\Http\Kernel::class
+);
+
+$app->singleton(
+    Illuminate\Contracts\Console\Kernel::class,
+    App\Console\Kernel::class
+);
+
+$app->singleton(
+    Illuminate\Contracts\Debug\ExceptionHandler::class,
+    App\Exceptions\Handler::class
+);
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;

+ 2 - 0
bootstrap/cache/.gitignore

@@ -0,0 +1,2 @@
+*
+!.gitignore

+ 60 - 0
composer.json

@@ -0,0 +1,60 @@
+{
+    "name": "laravel/laravel",
+    "description": "The Laravel Framework.",
+    "keywords": ["framework", "laravel"],
+    "license": "MIT",
+    "type": "project",
+    "require": {
+        "php": "^7.1.3",
+        "encore/laravel-admin": "1.5.*",
+        "fideloper/proxy": "^4.0",
+        "laravel/framework": "5.6.*",
+        "laravel/tinker": "^1.0"
+    },
+    "require-dev": {
+        "filp/whoops": "^2.0",
+        "fzaninotto/faker": "^1.4",
+        "mockery/mockery": "^1.0",
+        "nunomaduro/collision": "^2.0",
+        "phpunit/phpunit": "^7.0"
+    },
+    "autoload": {
+        "classmap": [
+            "database/seeds",
+            "database/factories"
+        ],
+        "psr-4": {
+            "App\\": "app/"
+        }
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "Tests\\": "tests/"
+        }
+    },
+    "extra": {
+        "laravel": {
+            "dont-discover": [
+            ]
+        }
+    },
+    "scripts": {
+        "post-root-package-install": [
+            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+        ],
+        "post-create-project-cmd": [
+            "@php artisan key:generate"
+        ],
+        "post-autoload-dump": [
+            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+            "@php artisan package:discover"
+        ]
+    },
+    "config": {
+        "preferred-install": "dist",
+        "sort-packages": true,
+        "optimize-autoloader": true
+    },
+    "minimum-stability": "dev",
+    "prefer-stable": true
+}

Різницю між файлами не показано, бо вона завелика
+ 4124 - 0
composer.lock


+ 161 - 0
config/admin.php

@@ -0,0 +1,161 @@
+<?php
+
+return [
+
+    /*
+     * Laravel-admin name.
+     */
+    'name' => 'Laravel-admin',
+
+    /*
+     * Logo in admin panel header.
+     */
+    'logo' => '<b>Laravel</b> admin',
+
+    /*
+     * Mini-logo in admin panel header.
+     */
+    'logo-mini' => '<b>La</b>',
+
+    /*
+     * Route configuration.
+     */
+    'route' => [
+
+        'prefix' => 'admin',
+
+        'namespace' => 'App\\Admin\\Controllers',
+
+        'middleware' => ['web', 'admin'],
+    ],
+
+    /*
+     * Laravel-admin install directory.
+     */
+    'directory' => app_path('Admin'),
+
+    /*
+     * Laravel-admin html title.
+     */
+    'title' => 'Admin',
+
+    /*
+     * Use `https`.
+     */
+    'secure' => false,
+
+    /*
+     * Laravel-admin auth setting.
+     */
+    'auth' => [
+        'guards' => [
+            'admin' => [
+                'driver'   => 'session',
+                'provider' => 'admin',
+            ],
+        ],
+
+        'providers' => [
+            'admin' => [
+                'driver' => 'eloquent',
+                'model'  => Encore\Admin\Auth\Database\Administrator::class,
+            ],
+        ],
+    ],
+
+    /*
+     * Laravel-admin upload setting.
+     */
+    'upload' => [
+
+        'disk' => 'admin',
+
+        'directory' => [
+            'image' => 'images',
+            'file'  => 'files',
+        ],
+    ],
+
+    /*
+     * Laravel-admin database setting.
+     */
+    'database' => [
+
+        // Database connection for following tables.
+        'connection' => '',
+
+        // User tables and model.
+        'users_table' => 'admin_users',
+        'users_model' => Encore\Admin\Auth\Database\Administrator::class,
+
+        // Role table and model.
+        'roles_table' => 'admin_roles',
+        'roles_model' => Encore\Admin\Auth\Database\Role::class,
+
+        // Permission table and model.
+        'permissions_table' => 'admin_permissions',
+        'permissions_model' => Encore\Admin\Auth\Database\Permission::class,
+
+        // Menu table and model.
+        'menu_table' => 'admin_menu',
+        'menu_model' => Encore\Admin\Auth\Database\Menu::class,
+
+        // Pivot table for table above.
+        'operation_log_table'    => 'admin_operation_log',
+        'user_permissions_table' => 'admin_user_permissions',
+        'role_users_table'       => 'admin_role_users',
+        'role_permissions_table' => 'admin_role_permissions',
+        'role_menu_table'        => 'admin_role_menu',
+    ],
+
+    /*
+     * By setting this option to open or close operation log in laravel-admin.
+     */
+    'operation_log' => [
+
+        'enable' => true,
+
+        /*
+         * Routes that will not log to database.
+         *
+         * All method to path like: admin/auth/logs
+         * or specific method to path like: get:admin/auth/logs
+         */
+        'except' => [
+            'admin/auth/logs*',
+        ],
+    ],
+
+    /*
+     * @see https://adminlte.io/docs/2.4/layout
+     */
+    'skin' => 'skin-blue-light',
+
+    /*
+    |---------------------------------------------------------|
+    |LAYOUT OPTIONS | fixed                                   |
+    |               | layout-boxed                            |
+    |               | layout-top-nav                          |
+    |               | sidebar-collapse                        |
+    |               | sidebar-mini                            |
+    |---------------------------------------------------------|
+     */
+    'layout' => ['sidebar-mini', 'sidebar-collapse'],
+
+    /*
+     * Background image in login page
+     */
+    'login_background_image' => '',
+
+    /*
+     * Version displayed in footer.
+     */
+    'version' => '1.5.x-dev',
+
+    /*
+     * Settings for extensions.
+     */
+    'extensions' => [
+
+    ],
+];

+ 214 - 0
config/app.php

@@ -0,0 +1,214 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Name
+    |--------------------------------------------------------------------------
+    |
+    | This value is the name of your application. This value is used when the
+    | framework needs to place the application's name in a notification or
+    | any other location as required by the application or its packages.
+    |
+    */
+
+    'name' => env('APP_NAME', 'Laravel'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Environment
+    |--------------------------------------------------------------------------
+    |
+    | This value determines the "environment" your application is currently
+    | running in. This may determine how you prefer to configure various
+    | services your application utilizes. Set this in your ".env" file.
+    |
+    */
+
+    'env' => env('APP_ENV', 'production'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Debug Mode
+    |--------------------------------------------------------------------------
+    |
+    | When your application is in debug mode, detailed error messages with
+    | stack traces will be shown on every error that occurs within your
+    | application. If disabled, a simple generic error page is shown.
+    |
+    */
+
+    'debug' => env('APP_DEBUG', false),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application URL
+    |--------------------------------------------------------------------------
+    |
+    | This URL is used by the console to properly generate URLs when using
+    | the Artisan command line tool. You should set this to the root of
+    | your application so that it is used when running Artisan tasks.
+    |
+    */
+
+    'url' => env('APP_URL', 'http://localhost'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Timezone
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the default timezone for your application, which
+    | will be used by the PHP date and date-time functions. We have gone
+    | ahead and set this to a sensible default for you out of the box.
+    |
+    */
+
+    'timezone' => 'UTC',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Locale Configuration
+    |--------------------------------------------------------------------------
+    |
+    | The application locale determines the default locale that will be used
+    | by the translation service provider. You are free to set this value
+    | to any of the locales which will be supported by the application.
+    |
+    */
+
+    'locale' => 'zh-CN',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Fallback Locale
+    |--------------------------------------------------------------------------
+    |
+    | The fallback locale determines the locale to use when the current one
+    | is not available. You may change the value to correspond to any of
+    | the language folders that are provided through your application.
+    |
+    */
+
+    'fallback_locale' => 'zh-CN',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Encryption Key
+    |--------------------------------------------------------------------------
+    |
+    | This key is used by the Illuminate encrypter service and should be set
+    | to a random, 32 character string, otherwise these encrypted strings
+    | will not be safe. Please do this before deploying an application!
+    |
+    */
+
+    'key' => env('APP_KEY'),
+
+    'cipher' => 'AES-256-CBC',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Autoloaded Service Providers
+    |--------------------------------------------------------------------------
+    |
+    | The service providers listed here will be automatically loaded on the
+    | request to your application. Feel free to add your own services to
+    | this array to grant expanded functionality to your applications.
+    |
+    */
+
+    'providers' => [
+
+        /*
+         * Laravel Framework Service Providers...
+         */
+        Illuminate\Auth\AuthServiceProvider::class,
+        Illuminate\Broadcasting\BroadcastServiceProvider::class,
+        Illuminate\Bus\BusServiceProvider::class,
+        Illuminate\Cache\CacheServiceProvider::class,
+        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
+        Illuminate\Cookie\CookieServiceProvider::class,
+        Illuminate\Database\DatabaseServiceProvider::class,
+        Illuminate\Encryption\EncryptionServiceProvider::class,
+        Illuminate\Filesystem\FilesystemServiceProvider::class,
+        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
+        Illuminate\Hashing\HashServiceProvider::class,
+        Illuminate\Mail\MailServiceProvider::class,
+        Illuminate\Notifications\NotificationServiceProvider::class,
+        Illuminate\Pagination\PaginationServiceProvider::class,
+        Illuminate\Pipeline\PipelineServiceProvider::class,
+        Illuminate\Queue\QueueServiceProvider::class,
+        Illuminate\Redis\RedisServiceProvider::class,
+        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
+        Illuminate\Session\SessionServiceProvider::class,
+        Illuminate\Translation\TranslationServiceProvider::class,
+        Illuminate\Validation\ValidationServiceProvider::class,
+        Illuminate\View\ViewServiceProvider::class,
+
+        /*
+         * Package Service Providers...
+         */
+
+        /*
+         * Application Service Providers...
+         */
+        App\Providers\AppServiceProvider::class,
+        App\Providers\AuthServiceProvider::class,
+        // App\Providers\BroadcastServiceProvider::class,
+        App\Providers\EventServiceProvider::class,
+        App\Providers\RouteServiceProvider::class,
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Class Aliases
+    |--------------------------------------------------------------------------
+    |
+    | This array of class aliases will be registered when this application
+    | is started. However, feel free to register as many as you wish as
+    | the aliases are "lazy" loaded so they don't hinder performance.
+    |
+    */
+
+    'aliases' => [
+
+        'App' => Illuminate\Support\Facades\App::class,
+        'Artisan' => Illuminate\Support\Facades\Artisan::class,
+        'Auth' => Illuminate\Support\Facades\Auth::class,
+        'Blade' => Illuminate\Support\Facades\Blade::class,
+        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
+        'Bus' => Illuminate\Support\Facades\Bus::class,
+        'Cache' => Illuminate\Support\Facades\Cache::class,
+        'Config' => Illuminate\Support\Facades\Config::class,
+        'Cookie' => Illuminate\Support\Facades\Cookie::class,
+        'Crypt' => Illuminate\Support\Facades\Crypt::class,
+        'DB' => Illuminate\Support\Facades\DB::class,
+        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
+        'Event' => Illuminate\Support\Facades\Event::class,
+        'File' => Illuminate\Support\Facades\File::class,
+        'Gate' => Illuminate\Support\Facades\Gate::class,
+        'Hash' => Illuminate\Support\Facades\Hash::class,
+        'Lang' => Illuminate\Support\Facades\Lang::class,
+        'Log' => Illuminate\Support\Facades\Log::class,
+        'Mail' => Illuminate\Support\Facades\Mail::class,
+        'Notification' => Illuminate\Support\Facades\Notification::class,
+        'Password' => Illuminate\Support\Facades\Password::class,
+        'Queue' => Illuminate\Support\Facades\Queue::class,
+        'Redirect' => Illuminate\Support\Facades\Redirect::class,
+        'Redis' => Illuminate\Support\Facades\Redis::class,
+        'Request' => Illuminate\Support\Facades\Request::class,
+        'Response' => Illuminate\Support\Facades\Response::class,
+        'Route' => Illuminate\Support\Facades\Route::class,
+        'Schema' => Illuminate\Support\Facades\Schema::class,
+        'Session' => Illuminate\Support\Facades\Session::class,
+        'Storage' => Illuminate\Support\Facades\Storage::class,
+        'URL' => Illuminate\Support\Facades\URL::class,
+        'Validator' => Illuminate\Support\Facades\Validator::class,
+        'View' => Illuminate\Support\Facades\View::class,
+
+    ],
+
+];

+ 102 - 0
config/auth.php

@@ -0,0 +1,102 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Authentication Defaults
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default authentication "guard" and password
+    | reset options for your application. You may change these defaults
+    | as required, but they're a perfect start for most applications.
+    |
+    */
+
+    'defaults' => [
+        'guard' => 'web',
+        'passwords' => 'users',
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Authentication Guards
+    |--------------------------------------------------------------------------
+    |
+    | Next, you may define every authentication guard for your application.
+    | Of course, a great default configuration has been defined for you
+    | here which uses session storage and the Eloquent user provider.
+    |
+    | All authentication drivers have a user provider. This defines how the
+    | users are actually retrieved out of your database or other storage
+    | mechanisms used by this application to persist your user's data.
+    |
+    | Supported: "session", "token"
+    |
+    */
+
+    'guards' => [
+        'web' => [
+            'driver' => 'session',
+            'provider' => 'users',
+        ],
+
+        'api' => [
+            'driver' => 'token',
+            'provider' => 'users',
+        ],
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | User Providers
+    |--------------------------------------------------------------------------
+    |
+    | All authentication drivers have a user provider. This defines how the
+    | users are actually retrieved out of your database or other storage
+    | mechanisms used by this application to persist your user's data.
+    |
+    | If you have multiple user tables or models you may configure multiple
+    | sources which represent each model / table. These sources may then
+    | be assigned to any extra authentication guards you have defined.
+    |
+    | Supported: "database", "eloquent"
+    |
+    */
+
+    'providers' => [
+        'users' => [
+            'driver' => 'eloquent',
+            'model' => App\User::class,
+        ],
+
+        // 'users' => [
+        //     'driver' => 'database',
+        //     'table' => 'users',
+        // ],
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Resetting Passwords
+    |--------------------------------------------------------------------------
+    |
+    | You may specify multiple password reset configurations if you have more
+    | than one user table or model in the application and you want to have
+    | separate password reset settings based on the specific user types.
+    |
+    | The expire time is the number of minutes that the reset token should be
+    | considered valid. This security feature keeps tokens short-lived so
+    | they have less time to be guessed. You may change this as needed.
+    |
+    */
+
+    'passwords' => [
+        'users' => [
+            'provider' => 'users',
+            'table' => 'password_resets',
+            'expire' => 60,
+        ],
+    ],
+
+];

+ 59 - 0
config/broadcasting.php

@@ -0,0 +1,59 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Broadcaster
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default broadcaster that will be used by the
+    | framework when an event needs to be broadcast. You may set this to
+    | any of the connections defined in the "connections" array below.
+    |
+    | Supported: "pusher", "redis", "log", "null"
+    |
+    */
+
+    'default' => env('BROADCAST_DRIVER', 'null'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Broadcast Connections
+    |--------------------------------------------------------------------------
+    |
+    | Here you may define all of the broadcast connections that will be used
+    | to broadcast events to other systems or over websockets. Samples of
+    | each available type of connection are provided inside this array.
+    |
+    */
+
+    'connections' => [
+
+        'pusher' => [
+            'driver' => 'pusher',
+            'key' => env('PUSHER_APP_KEY'),
+            'secret' => env('PUSHER_APP_SECRET'),
+            'app_id' => env('PUSHER_APP_ID'),
+            'options' => [
+                'cluster' => env('PUSHER_APP_CLUSTER'),
+                'encrypted' => true,
+            ],
+        ],
+
+        'redis' => [
+            'driver' => 'redis',
+            'connection' => 'default',
+        ],
+
+        'log' => [
+            'driver' => 'log',
+        ],
+
+        'null' => [
+            'driver' => 'null',
+        ],
+
+    ],
+
+];

+ 94 - 0
config/cache.php

@@ -0,0 +1,94 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Cache Store
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default cache connection that gets used while
+    | using this caching library. This connection is used when another is
+    | not explicitly specified when executing a given caching function.
+    |
+    | Supported: "apc", "array", "database", "file", "memcached", "redis"
+    |
+    */
+
+    'default' => env('CACHE_DRIVER', 'file'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Cache Stores
+    |--------------------------------------------------------------------------
+    |
+    | Here you may define all of the cache "stores" for your application as
+    | well as their drivers. You may even define multiple stores for the
+    | same cache driver to group types of items stored in your caches.
+    |
+    */
+
+    'stores' => [
+
+        'apc' => [
+            'driver' => 'apc',
+        ],
+
+        'array' => [
+            'driver' => 'array',
+        ],
+
+        'database' => [
+            'driver' => 'database',
+            'table' => 'cache',
+            'connection' => null,
+        ],
+
+        'file' => [
+            'driver' => 'file',
+            'path' => storage_path('framework/cache/data'),
+        ],
+
+        'memcached' => [
+            'driver' => 'memcached',
+            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
+            'sasl' => [
+                env('MEMCACHED_USERNAME'),
+                env('MEMCACHED_PASSWORD'),
+            ],
+            'options' => [
+                // Memcached::OPT_CONNECT_TIMEOUT  => 2000,
+            ],
+            'servers' => [
+                [
+                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+                    'port' => env('MEMCACHED_PORT', 11211),
+                    'weight' => 100,
+                ],
+            ],
+        ],
+
+        'redis' => [
+            'driver' => 'redis',
+            'connection' => 'default',
+        ],
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Cache Key Prefix
+    |--------------------------------------------------------------------------
+    |
+    | When utilizing a RAM based store such as APC or Memcached, there might
+    | be other applications utilizing the same cache. So, we'll specify a
+    | value to get prefixed to all our keys so we can avoid collisions.
+    |
+    */
+
+    'prefix' => env(
+        'CACHE_PREFIX',
+        str_slug(env('APP_NAME', 'laravel'), '_').'_cache'
+    ),
+
+];

+ 120 - 0
config/database.php

@@ -0,0 +1,120 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Database Connection Name
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify which of the database connections below you wish
+    | to use as your default connection for all database work. Of course
+    | you may use many connections at once using the Database library.
+    |
+    */
+
+    'default' => env('DB_CONNECTION', 'mysql'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Database Connections
+    |--------------------------------------------------------------------------
+    |
+    | Here are each of the database connections setup for your application.
+    | Of course, examples of configuring each database platform that is
+    | supported by Laravel is shown below to make development simple.
+    |
+    |
+    | All database work in Laravel is done through the PHP PDO facilities
+    | so make sure you have the driver for your particular database of
+    | choice installed on your machine before you begin development.
+    |
+    */
+
+    'connections' => [
+
+        'sqlite' => [
+            'driver' => 'sqlite',
+            'database' => env('DB_DATABASE', database_path('database.sqlite')),
+            'prefix' => '',
+        ],
+
+        'mysql' => [
+            'driver' => 'mysql',
+            'host' => env('DB_HOST', '127.0.0.1'),
+            'port' => env('DB_PORT', '3306'),
+            'database' => env('DB_DATABASE', 'forge'),
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            'unix_socket' => env('DB_SOCKET', ''),
+            'charset' => 'utf8mb4',
+            'collation' => 'utf8mb4_unicode_ci',
+            'prefix' => '',
+            'strict' => true,
+            'engine' => null,
+        ],
+
+        'pgsql' => [
+            'driver' => 'pgsql',
+            'host' => env('DB_HOST', '127.0.0.1'),
+            'port' => env('DB_PORT', '5432'),
+            'database' => env('DB_DATABASE', 'forge'),
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            'charset' => 'utf8',
+            'prefix' => '',
+            'schema' => 'public',
+            'sslmode' => 'prefer',
+        ],
+
+        'sqlsrv' => [
+            'driver' => 'sqlsrv',
+            'host' => env('DB_HOST', 'localhost'),
+            'port' => env('DB_PORT', '1433'),
+            'database' => env('DB_DATABASE', 'forge'),
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            'charset' => 'utf8',
+            'prefix' => '',
+        ],
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Migration Repository Table
+    |--------------------------------------------------------------------------
+    |
+    | This table keeps track of all the migrations that have already run for
+    | your application. Using this information, we can determine which of
+    | the migrations on disk haven't actually been run in the database.
+    |
+    */
+
+    'migrations' => 'migrations',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Redis Databases
+    |--------------------------------------------------------------------------
+    |
+    | Redis is an open source, fast, and advanced key-value store that also
+    | provides a richer set of commands than a typical key-value systems
+    | such as APC or Memcached. Laravel makes it easy to dig right in.
+    |
+    */
+
+    'redis' => [
+
+        'client' => 'predis',
+
+        'default' => [
+            'host' => env('REDIS_HOST', '127.0.0.1'),
+            'password' => env('REDIS_PASSWORD', null),
+            'port' => env('REDIS_PORT', 6379),
+            'database' => 0,
+        ],
+
+    ],
+
+];

+ 75 - 0
config/filesystems.php

@@ -0,0 +1,75 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Filesystem Disk
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the default filesystem disk that should be used
+    | by the framework. The "local" disk, as well as a variety of cloud
+    | based disks are available to your application. Just store away!
+    |
+    */
+
+    'default' => env('FILESYSTEM_DRIVER', 'local'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Cloud Filesystem Disk
+    |--------------------------------------------------------------------------
+    |
+    | Many applications store files both locally and in the cloud. For this
+    | reason, you may specify a default "cloud" driver here. This driver
+    | will be bound as the Cloud disk implementation in the container.
+    |
+    */
+
+    'cloud' => env('FILESYSTEM_CLOUD', 's3'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Filesystem Disks
+    |--------------------------------------------------------------------------
+    |
+    | Here you may configure as many filesystem "disks" as you wish, and you
+    | may even configure multiple disks of the same driver. Defaults have
+    | been setup for each driver as an example of the required options.
+    |
+    | Supported Drivers: "local", "ftp", "sftp", "s3", "rackspace"
+    |
+    */
+
+    'disks' => [
+
+        'local' => [
+            'driver' => 'local',
+            'root' => storage_path('app'),
+        ],
+
+        'public' => [
+            'driver' => 'local',
+            'root' => storage_path('app/public'),
+            'url' => env('APP_URL').'/storage',
+            'visibility' => 'public',
+        ],
+
+        's3' => [
+            'driver' => 's3',
+            'key' => env('AWS_ACCESS_KEY_ID'),
+            'secret' => env('AWS_SECRET_ACCESS_KEY'),
+            'region' => env('AWS_DEFAULT_REGION'),
+            'bucket' => env('AWS_BUCKET'),
+            'url' => env('AWS_URL'),
+        ],
+        'admin' => [
+            'driver' => 'local',
+            'root' => public_path('uploads'),
+            'visibility' => 'public',
+            'url' => env('APP_URL').'/uploads',
+        ],
+
+    ],
+
+];

+ 52 - 0
config/hashing.php

@@ -0,0 +1,52 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Hash Driver
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default hash driver that will be used to hash
+    | passwords for your application. By default, the bcrypt algorithm is
+    | used; however, you remain free to modify this option if you wish.
+    |
+    | Supported: "bcrypt", "argon"
+    |
+    */
+
+    'driver' => 'bcrypt',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Bcrypt Options
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the configuration options that should be used when
+    | passwords are hashed using the Bcrypt algorithm. This will allow you
+    | to control the amount of time it takes to hash the given password.
+    |
+    */
+
+    'bcrypt' => [
+        'rounds' => env('BCRYPT_ROUNDS', 10),
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Argon Options
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the configuration options that should be used when
+    | passwords are hashed using the Argon algorithm. These will allow you
+    | to control the amount of time it takes to hash the given password.
+    |
+    */
+
+    'argon' => [
+        'memory' => 1024,
+        'threads' => 2,
+        'time' => 2,
+    ],
+
+];

+ 81 - 0
config/logging.php

@@ -0,0 +1,81 @@
+<?php
+
+use Monolog\Handler\StreamHandler;
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Log Channel
+    |--------------------------------------------------------------------------
+    |
+    | This option defines the default log channel that gets used when writing
+    | messages to the logs. The name specified in this option should match
+    | one of the channels defined in the "channels" configuration array.
+    |
+    */
+
+    'default' => env('LOG_CHANNEL', 'stack'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Log Channels
+    |--------------------------------------------------------------------------
+    |
+    | Here you may configure the log channels for your application. Out of
+    | the box, Laravel uses the Monolog PHP logging library. This gives
+    | you a variety of powerful log handlers / formatters to utilize.
+    |
+    | Available Drivers: "single", "daily", "slack", "syslog",
+    |                    "errorlog", "monolog",
+    |                    "custom", "stack"
+    |
+    */
+
+    'channels' => [
+        'stack' => [
+            'driver' => 'stack',
+            'channels' => ['single'],
+        ],
+
+        'single' => [
+            'driver' => 'single',
+            'path' => storage_path('logs/laravel.log'),
+            'level' => 'debug',
+        ],
+
+        'daily' => [
+            'driver' => 'daily',
+            'path' => storage_path('logs/laravel.log'),
+            'level' => 'debug',
+            'days' => 7,
+        ],
+
+        'slack' => [
+            'driver' => 'slack',
+            'url' => env('LOG_SLACK_WEBHOOK_URL'),
+            'username' => 'Laravel Log',
+            'emoji' => ':boom:',
+            'level' => 'critical',
+        ],
+
+        'stderr' => [
+            'driver' => 'monolog',
+            'handler' => StreamHandler::class,
+            'with' => [
+                'stream' => 'php://stderr',
+            ],
+        ],
+
+        'syslog' => [
+            'driver' => 'syslog',
+            'level' => 'debug',
+        ],
+
+        'errorlog' => [
+            'driver' => 'errorlog',
+            'level' => 'debug',
+        ],
+    ],
+
+];

+ 123 - 0
config/mail.php

@@ -0,0 +1,123 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Mail Driver
+    |--------------------------------------------------------------------------
+    |
+    | Laravel supports both SMTP and PHP's "mail" function as drivers for the
+    | sending of e-mail. You may specify which one you're using throughout
+    | your application here. By default, Laravel is setup for SMTP mail.
+    |
+    | Supported: "smtp", "sendmail", "mailgun", "mandrill", "ses",
+    |            "sparkpost", "log", "array"
+    |
+    */
+
+    'driver' => env('MAIL_DRIVER', 'smtp'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | SMTP Host Address
+    |--------------------------------------------------------------------------
+    |
+    | Here you may provide the host address of the SMTP server used by your
+    | applications. A default option is provided that is compatible with
+    | the Mailgun mail service which will provide reliable deliveries.
+    |
+    */
+
+    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | SMTP Host Port
+    |--------------------------------------------------------------------------
+    |
+    | This is the SMTP port used by your application to deliver e-mails to
+    | users of the application. Like the host we have set this value to
+    | stay compatible with the Mailgun e-mail application by default.
+    |
+    */
+
+    'port' => env('MAIL_PORT', 587),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Global "From" Address
+    |--------------------------------------------------------------------------
+    |
+    | You may wish for all e-mails sent by your application to be sent from
+    | the same address. Here, you may specify a name and address that is
+    | used globally for all e-mails that are sent by your application.
+    |
+    */
+
+    'from' => [
+        'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
+        'name' => env('MAIL_FROM_NAME', 'Example'),
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | E-Mail Encryption Protocol
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the encryption protocol that should be used when
+    | the application send e-mail messages. A sensible default using the
+    | transport layer security protocol should provide great security.
+    |
+    */
+
+    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | SMTP Server Username
+    |--------------------------------------------------------------------------
+    |
+    | If your SMTP server requires a username for authentication, you should
+    | set it here. This will get used to authenticate with your server on
+    | connection. You may also set the "password" value below this one.
+    |
+    */
+
+    'username' => env('MAIL_USERNAME'),
+
+    'password' => env('MAIL_PASSWORD'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Sendmail System Path
+    |--------------------------------------------------------------------------
+    |
+    | When using the "sendmail" driver to send e-mails, we will need to know
+    | the path to where Sendmail lives on this server. A default path has
+    | been provided here, which will work well on most of your systems.
+    |
+    */
+
+    'sendmail' => '/usr/sbin/sendmail -bs',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Markdown Mail Settings
+    |--------------------------------------------------------------------------
+    |
+    | If you are using Markdown based email rendering, you may configure your
+    | theme and component paths here, allowing you to customize the design
+    | of the emails. Or, you may simply stick with the Laravel defaults!
+    |
+    */
+
+    'markdown' => [
+        'theme' => 'default',
+
+        'paths' => [
+            resource_path('views/vendor/mail'),
+        ],
+    ],
+
+];

+ 86 - 0
config/queue.php

@@ -0,0 +1,86 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Queue Connection Name
+    |--------------------------------------------------------------------------
+    |
+    | Laravel's queue API supports an assortment of back-ends via a single
+    | API, giving you convenient access to each back-end using the same
+    | syntax for every one. Here you may define a default connection.
+    |
+    */
+
+    'default' => env('QUEUE_DRIVER', 'sync'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Queue Connections
+    |--------------------------------------------------------------------------
+    |
+    | Here you may configure the connection information for each server that
+    | is used by your application. A default configuration has been added
+    | for each back-end shipped with Laravel. You are free to add more.
+    |
+    | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
+    |
+    */
+
+    'connections' => [
+
+        'sync' => [
+            'driver' => 'sync',
+        ],
+
+        'database' => [
+            'driver' => 'database',
+            'table' => 'jobs',
+            'queue' => 'default',
+            'retry_after' => 90,
+        ],
+
+        'beanstalkd' => [
+            'driver' => 'beanstalkd',
+            'host' => 'localhost',
+            'queue' => 'default',
+            'retry_after' => 90,
+        ],
+
+        'sqs' => [
+            'driver' => 'sqs',
+            'key' => env('SQS_KEY', 'your-public-key'),
+            'secret' => env('SQS_SECRET', 'your-secret-key'),
+            'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+            'queue' => env('SQS_QUEUE', 'your-queue-name'),
+            'region' => env('SQS_REGION', 'us-east-1'),
+        ],
+
+        'redis' => [
+            'driver' => 'redis',
+            'connection' => 'default',
+            'queue' => 'default',
+            'retry_after' => 90,
+            'block_for' => null,
+        ],
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Failed Queue Jobs
+    |--------------------------------------------------------------------------
+    |
+    | These options configure the behavior of failed queue job logging so you
+    | can control which database and table are used to store the jobs that
+    | have failed. You may change them to any database / table you wish.
+    |
+    */
+
+    'failed' => [
+        'database' => env('DB_CONNECTION', 'mysql'),
+        'table' => 'failed_jobs',
+    ],
+
+];

+ 38 - 0
config/services.php

@@ -0,0 +1,38 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Third Party Services
+    |--------------------------------------------------------------------------
+    |
+    | This file is for storing the credentials for third party services such
+    | as Stripe, Mailgun, SparkPost and others. This file provides a sane
+    | default location for this type of information, allowing packages
+    | to have a conventional place to find your various credentials.
+    |
+    */
+
+    'mailgun' => [
+        'domain' => env('MAILGUN_DOMAIN'),
+        'secret' => env('MAILGUN_SECRET'),
+    ],
+
+    'ses' => [
+        'key' => env('SES_KEY'),
+        'secret' => env('SES_SECRET'),
+        'region' => env('SES_REGION', 'us-east-1'),
+    ],
+
+    'sparkpost' => [
+        'secret' => env('SPARKPOST_SECRET'),
+    ],
+
+    'stripe' => [
+        'model' => App\User::class,
+        'key' => env('STRIPE_KEY'),
+        'secret' => env('STRIPE_SECRET'),
+    ],
+
+];

+ 197 - 0
config/session.php

@@ -0,0 +1,197 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Session Driver
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default session "driver" that will be used on
+    | requests. By default, we will use the lightweight native driver but
+    | you may specify any of the other wonderful drivers provided here.
+    |
+    | Supported: "file", "cookie", "database", "apc",
+    |            "memcached", "redis", "array"
+    |
+    */
+
+    'driver' => env('SESSION_DRIVER', 'file'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Lifetime
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the number of minutes that you wish the session
+    | to be allowed to remain idle before it expires. If you want them
+    | to immediately expire on the browser closing, set that option.
+    |
+    */
+
+    'lifetime' => env('SESSION_LIFETIME', 120),
+
+    'expire_on_close' => false,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Encryption
+    |--------------------------------------------------------------------------
+    |
+    | This option allows you to easily specify that all of your session data
+    | should be encrypted before it is stored. All encryption will be run
+    | automatically by Laravel and you can use the Session like normal.
+    |
+    */
+
+    'encrypt' => false,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session File Location
+    |--------------------------------------------------------------------------
+    |
+    | When using the native session driver, we need a location where session
+    | files may be stored. A default has been set for you but a different
+    | location may be specified. This is only needed for file sessions.
+    |
+    */
+
+    'files' => storage_path('framework/sessions'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Database Connection
+    |--------------------------------------------------------------------------
+    |
+    | When using the "database" or "redis" session drivers, you may specify a
+    | connection that should be used to manage these sessions. This should
+    | correspond to a connection in your database configuration options.
+    |
+    */
+
+    'connection' => null,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Database Table
+    |--------------------------------------------------------------------------
+    |
+    | When using the "database" session driver, you may specify the table we
+    | should use to manage the sessions. Of course, a sensible default is
+    | provided for you; however, you are free to change this as needed.
+    |
+    */
+
+    'table' => 'sessions',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cache Store
+    |--------------------------------------------------------------------------
+    |
+    | When using the "apc" or "memcached" session drivers, you may specify a
+    | cache store that should be used for these sessions. This value must
+    | correspond with one of the application's configured cache stores.
+    |
+    */
+
+    'store' => null,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Sweeping Lottery
+    |--------------------------------------------------------------------------
+    |
+    | Some session drivers must manually sweep their storage location to get
+    | rid of old sessions from storage. Here are the chances that it will
+    | happen on a given request. By default, the odds are 2 out of 100.
+    |
+    */
+
+    'lottery' => [2, 100],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cookie Name
+    |--------------------------------------------------------------------------
+    |
+    | Here you may change the name of the cookie used to identify a session
+    | instance by ID. The name specified here will get used every time a
+    | new session cookie is created by the framework for every driver.
+    |
+    */
+
+    'cookie' => env(
+        'SESSION_COOKIE',
+        str_slug(env('APP_NAME', 'laravel'), '_').'_session'
+    ),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cookie Path
+    |--------------------------------------------------------------------------
+    |
+    | The session cookie path determines the path for which the cookie will
+    | be regarded as available. Typically, this will be the root path of
+    | your application but you are free to change this when necessary.
+    |
+    */
+
+    'path' => '/',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cookie Domain
+    |--------------------------------------------------------------------------
+    |
+    | Here you may change the domain of the cookie used to identify a session
+    | in your application. This will determine which domains the cookie is
+    | available to in your application. A sensible default has been set.
+    |
+    */
+
+    'domain' => env('SESSION_DOMAIN', null),
+
+    /*
+    |--------------------------------------------------------------------------
+    | HTTPS Only Cookies
+    |--------------------------------------------------------------------------
+    |
+    | By setting this option to true, session cookies will only be sent back
+    | to the server if the browser has a HTTPS connection. This will keep
+    | the cookie from being sent to you if it can not be done securely.
+    |
+    */
+
+    'secure' => env('SESSION_SECURE_COOKIE', false),
+
+    /*
+    |--------------------------------------------------------------------------
+    | HTTP Access Only
+    |--------------------------------------------------------------------------
+    |
+    | Setting this value to true will prevent JavaScript from accessing the
+    | value of the cookie and the cookie will only be accessible through
+    | the HTTP protocol. You are free to modify this option if needed.
+    |
+    */
+
+    'http_only' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Same-Site Cookies
+    |--------------------------------------------------------------------------
+    |
+    | This option determines how your cookies behave when cross-site requests
+    | take place, and can be used to mitigate CSRF attacks. By default, we
+    | do not enable this as other CSRF protection services are in place.
+    |
+    | Supported: "lax", "strict"
+    |
+    */
+
+    'same_site' => null,
+
+];

+ 33 - 0
config/view.php

@@ -0,0 +1,33 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | View Storage Paths
+    |--------------------------------------------------------------------------
+    |
+    | Most templating systems load templates from disk. Here you may specify
+    | an array of paths that should be checked for your views. Of course
+    | the usual Laravel view path has already been registered for you.
+    |
+    */
+
+    'paths' => [
+        resource_path('views'),
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Compiled View Path
+    |--------------------------------------------------------------------------
+    |
+    | This option determines where all the compiled Blade templates will be
+    | stored for your application. Typically, this is within the storage
+    | directory. However, as usual, you are free to change this value.
+    |
+    */
+
+    'compiled' => realpath(storage_path('framework/views')),
+
+];

+ 1 - 0
database/.gitignore

@@ -0,0 +1 @@
+*.sqlite

+ 23 - 0
database/factories/UserFactory.php

@@ -0,0 +1,23 @@
+<?php
+
+use Faker\Generator as Faker;
+
+/*
+|--------------------------------------------------------------------------
+| Model Factories
+|--------------------------------------------------------------------------
+|
+| This directory should contain each of the model factory definitions for
+| your application. Factories provide a convenient way to generate new
+| model instances for testing / seeding your application's database.
+|
+*/
+
+$factory->define(App\User::class, function (Faker $faker) {
+    return [
+        'name' => $faker->name,
+        'email' => $faker->unique()->safeEmail,
+        'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
+        'remember_token' => str_random(10),
+    ];
+});

+ 35 - 0
database/migrations/2014_10_12_000000_create_users_table.php

@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateUsersTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('users', function (Blueprint $table) {
+            $table->increments('id');
+            $table->string('name');
+            $table->string('email')->unique();
+            $table->string('password');
+            $table->rememberToken();
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('users');
+    }
+}

+ 32 - 0
database/migrations/2014_10_12_100000_create_password_resets_table.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreatePasswordResetsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('password_resets', function (Blueprint $table) {
+            $table->string('email')->index();
+            $table->string('token');
+            $table->timestamp('created_at')->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('password_resets');
+    }
+}

+ 113 - 0
database/migrations/2016_01_04_173148_create_admin_tables.php

@@ -0,0 +1,113 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+
+class CreateAdminTables extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        $connection = config('admin.database.connection') ?: config('database.default');
+
+        Schema::connection($connection)->create(config('admin.database.users_table'), function (Blueprint $table) {
+            $table->increments('id');
+            $table->string('username', 190)->unique();
+            $table->string('password', 60);
+            $table->string('name');
+            $table->string('avatar')->nullable();
+            $table->string('remember_token', 100)->nullable();
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.roles_table'), function (Blueprint $table) {
+            $table->increments('id');
+            $table->string('name', 50)->unique();
+            $table->string('slug', 50);
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.permissions_table'), function (Blueprint $table) {
+            $table->increments('id');
+            $table->string('name', 50)->unique();
+            $table->string('slug', 50);
+            $table->string('http_method')->nullable();
+            $table->text('http_path')->nullable();
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.menu_table'), function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('parent_id')->default(0);
+            $table->integer('order')->default(0);
+            $table->string('title', 50);
+            $table->string('icon', 50);
+            $table->string('uri', 50)->nullable();
+
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.role_users_table'), function (Blueprint $table) {
+            $table->integer('role_id');
+            $table->integer('user_id');
+            $table->index(['role_id', 'user_id']);
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.role_permissions_table'), function (Blueprint $table) {
+            $table->integer('role_id');
+            $table->integer('permission_id');
+            $table->index(['role_id', 'permission_id']);
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.user_permissions_table'), function (Blueprint $table) {
+            $table->integer('user_id');
+            $table->integer('permission_id');
+            $table->index(['user_id', 'permission_id']);
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.role_menu_table'), function (Blueprint $table) {
+            $table->integer('role_id');
+            $table->integer('menu_id');
+            $table->index(['role_id', 'menu_id']);
+            $table->timestamps();
+        });
+
+        Schema::connection($connection)->create(config('admin.database.operation_log_table'), function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('user_id');
+            $table->string('path');
+            $table->string('method', 10);
+            $table->string('ip', 15);
+            $table->text('input');
+            $table->index('user_id');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        $connection = config('admin.database.connection') ?: config('database.default');
+
+        Schema::connection($connection)->dropIfExists(config('admin.database.users_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.roles_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.permissions_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.menu_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.user_permissions_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.role_users_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.role_permissions_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.role_menu_table'));
+        Schema::connection($connection)->dropIfExists(config('admin.database.operation_log_table'));
+    }
+}

+ 35 - 0
database/migrations/2018_07_30_054146_create_app_index_pics_table.php

@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateAppIndexPicsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('app_index_pics', function (Blueprint $table) {
+            $table->increments('id');
+            $table->text('pic');
+            $table->text('pic_link_url');
+            $table->integer('create_id');
+            $table->integer('update_id');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('app_index_pic');
+    }
+}

+ 41 - 0
database/migrations/2018_07_31_022952_create_service_times_table.php

@@ -0,0 +1,41 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateServiceTimesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('service_times', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('number')->comment('编号');
+            $table->string('name')->comment('名称');
+            $table->integer('type')->comment('类别');
+            $table->integer('priority')->comment('优先级');
+            $table->date('star_date')->comment('开始日期');
+            $table->date('end_date')->comment('结束日期');
+            $table->time('star_time')->comment('开始时间');
+            $table->time('end_time')->comment('结束时间');
+            $table->integer('create_id')->comment('创建者ID');
+            $table->integer('update_id')->comment('更新者ID');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('service_times');
+    }
+}

+ 38 - 0
database/migrations/2018_07_31_032946_create_codes_table.php

@@ -0,0 +1,38 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateCodesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('codes', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('type_id')->comment('类型ID');
+            $table->string('code_name',255)->comment('CODE名称');
+            $table->integer('code_id')->comment('CODE ID');
+            $table->string('code_value',255)->comment('CODE值');
+            $table->integer('code_seq')->comment('顺序');
+            $table->string('code_dsp_name_cn',255)->comment('显示名称');
+            $table->string('code_dsp_name_y',255)->comment('别名')->nullable();
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('codes');
+    }
+}

+ 40 - 0
database/migrations/2018_07_31_060437_create_show_times_table.php

@@ -0,0 +1,40 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateShowTimesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('show_times', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('number')->comment('编号');
+            $table->string('name')->comment('名称');
+            $table->integer('type')->comment('类别');
+            $table->date('star_date')->comment('开始日期');
+            $table->date('end_date')->comment('结束日期');
+            $table->time('star_time')->comment('开始时间');
+            $table->time('end_time')->comment('结束时间');
+            $table->integer('create_id')->comment('创建者ID');
+            $table->integer('update_id')->comment('更新者ID');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('show_times');
+    }
+}

+ 36 - 0
database/migrations/2018_07_31_063125_create_problems_table.php

@@ -0,0 +1,36 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateProblemsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('problems', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('type')->comment('类型');
+            $table->text('problem')->comment('问题');
+            $table->text('answer')->comment('回答');
+            $table->integer('create_id')->comment('创建者ID');
+            $table->integer('update_id')->comment('更新者ID');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('problems');
+    }
+}

+ 53 - 0
database/migrations/2018_07_31_073223_create_businesses_table.php

@@ -0,0 +1,53 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateBusinessesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('businesses', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('number')->comment('编号');
+            $table->string('name')->comment('名称');
+            $table->string('address')->comment('位置');
+            $table->string('poi_name')->comment('POI名称');
+            $table->string('poi_icon')->comment('POI图标');
+            $table->string('poi_link_url')->comment('POI跳转链接');
+            $table->string('poi_x_coord')->comment('POIY坐标');
+            $table->string('poi_y_coord')->comment('POIX坐标');
+            $table->time('star_time')->comment('开始时间');
+            $table->time('end_time')->comment('结束时间');
+            $table->float('price')->comment('人均价位');
+            $table->text('shop_intro',280)->comment('商家简介');
+            $table->text('shop_info',280)->comment('商家描述');
+            $table->json('food_type')->comment('商家风格');
+            $table->json('serve_facility')->comment('服务设施');
+            $table->integer('hot_status')->comment('加入热点');
+            $table->integer('hot_id')->comment('热点ID')->nullable();
+            $table->integer('self_support')->comment('是否自营');
+            $table->integer('business_status')->comment('营业状态');
+            $table->json('pics')->comment('宣传照片');
+            $table->integer('create_id')->comment('创建者ID');
+            $table->integer('update_id')->comment('更新者ID');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('businesses');
+    }
+}

+ 45 - 0
database/migrations/2018_08_01_010714_create_hot_spots_table.php

@@ -0,0 +1,45 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateHotSpotsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('hot_spots', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('open_status')->comment('开放状态');
+            $table->string('number')->comment('编号');
+            $table->string('name')->comment('名称');
+            $table->string('address')->comment('位置');
+            $table->text('hot_info')->comment('热点简介');
+            $table->date('star_date')->comment('开始日期');
+            $table->date('end_date')->comment('结束日期');
+            $table->time('star_time')->comment('开始时间');
+            $table->time('end_time')->comment('结束时间');
+            $table->json('pics')->comment('宣传照片');
+            $table->integer('type')->comment('类别')->nullable();
+            $table->integer('link_id')->comment('关联ID')->nullable();
+            $table->integer('create_id')->comment('创建者ID');
+            $table->integer('update_id')->comment('更新者ID');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('hot_spots');
+    }
+}

+ 53 - 0
database/migrations/2018_08_01_075546_create_restaurants_table.php

@@ -0,0 +1,53 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateRestaurantsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('restaurants', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('number')->comment('编号');
+            $table->string('name')->comment('名称');
+            $table->string('address')->comment('位置');
+            $table->string('poi_name')->comment('POI名称');
+            $table->string('poi_icon')->comment('POI图标');
+            $table->string('poi_link_url')->comment('POI跳转链接');
+            $table->string('poi_x_coord')->comment('POIY坐标');
+            $table->string('poi_y_coord')->comment('POIX坐标');
+            $table->time('star_time')->comment('开始时间');
+            $table->time('end_time')->comment('结束时间');
+            $table->float('price')->comment('人均价位');
+            $table->text('shop_intro',280)->comment('商家简介');
+            $table->text('shop_info',280)->comment('商家描述');
+            $table->json('food_type')->comment('餐饮风格');
+            $table->json('serve_facility')->comment('服务设施');
+            $table->integer('hot_status')->comment('加入热点');
+            $table->integer('hot_id')->comment('热点ID')->nullable();
+            $table->integer('self_support')->comment('是否自营');
+            $table->integer('business_status')->comment('营业状态');
+            $table->json('pics')->comment('宣传照片');
+            $table->integer('create_id')->comment('创建者ID');
+            $table->integer('update_id')->comment('更新者ID');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('restaurants');
+    }
+}

+ 43 - 0
database/migrations/2018_08_01_091757_create_rest_rooms_table.php

@@ -0,0 +1,43 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateRestRoomsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('rest_rooms', function (Blueprint $table) {
+            $table->increments('id');
+            $table->integer('number')->comment('编号');
+            $table->string('name')->comment('名称');
+            $table->string('address')->comment('位置');
+            $table->string('poi_name')->comment('POI名称');
+            $table->string('poi_icon')->comment('POI图标');
+            $table->string('poi_link_url')->comment('POI跳转链接');
+            $table->string('poi_x_coord')->comment('POIY坐标');
+            $table->string('poi_y_coord')->comment('POIX坐标');
+            $table->json('serve_people_facility')->comment('服务设施');
+            $table->integer('open_status')->comment('开放状态');
+            $table->integer('create_id')->comment('创建者ID');
+            $table->integer('update_id')->comment('更新者ID');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('rest_rooms');
+    }
+}

+ 16 - 0
database/seeds/CodeTableSeeder.php

@@ -0,0 +1,16 @@
+<?php
+
+use Illuminate\Database\Seeder;
+
+class CodeTableSeeder extends Seeder
+{
+    /**
+     * Run the database seeds.
+     *
+     * @return void
+     */
+    public function run()
+    {
+
+    }
+}

+ 16 - 0
database/seeds/DatabaseSeeder.php

@@ -0,0 +1,16 @@
+<?php
+
+use Illuminate\Database\Seeder;
+
+class DatabaseSeeder extends Seeder
+{
+    /**
+     * Seed the application's database.
+     *
+     * @return void
+     */
+    public function run()
+    {
+        // $this->call(UsersTableSeeder::class);
+    }
+}

+ 22 - 0
package.json

@@ -0,0 +1,22 @@
+{
+    "private": true,
+    "scripts": {
+        "dev": "npm run development",
+        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
+        "watch": "npm run development -- --watch",
+        "watch-poll": "npm run watch -- --watch-poll",
+        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
+        "prod": "npm run production",
+        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
+    },
+    "devDependencies": {
+        "axios": "^0.18",
+        "bootstrap": "^4.0.0",
+        "popper.js": "^1.12",
+        "cross-env": "^5.1",
+        "jquery": "^3.2",
+        "laravel-mix": "^2.0",
+        "lodash": "^4.17.4",
+        "vue": "^2.5.7"
+    }
+}

+ 33 - 0
phpunit.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="false"
+         backupStaticAttributes="false"
+         bootstrap="vendor/autoload.php"
+         colors="true"
+         convertErrorsToExceptions="true"
+         convertNoticesToExceptions="true"
+         convertWarningsToExceptions="true"
+         processIsolation="false"
+         stopOnFailure="false">
+    <testsuites>
+        <testsuite name="Unit">
+            <directory suffix="Test.php">./tests/Unit</directory>
+        </testsuite>
+
+        <testsuite name="Feature">
+            <directory suffix="Test.php">./tests/Feature</directory>
+        </testsuite>
+    </testsuites>
+    <filter>
+        <whitelist processUncoveredFilesFromWhitelist="true">
+            <directory suffix=".php">./app</directory>
+        </whitelist>
+    </filter>
+    <php>
+        <env name="APP_ENV" value="testing"/>
+        <env name="BCRYPT_ROUNDS" value="4"/>
+        <env name="CACHE_DRIVER" value="array"/>
+        <env name="SESSION_DRIVER" value="array"/>
+        <env name="QUEUE_DRIVER" value="sync"/>
+        <env name="MAIL_DRIVER" value="array"/>
+    </php>
+</phpunit>

+ 21 - 0
public/.htaccess

@@ -0,0 +1,21 @@
+<IfModule mod_rewrite.c>
+    <IfModule mod_negotiation.c>
+        Options -MultiViews -Indexes
+    </IfModule>
+
+    RewriteEngine On
+
+    # Handle Authorization Header
+    RewriteCond %{HTTP:Authorization} .
+    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+    # Redirect Trailing Slashes If Not A Folder...
+    RewriteCond %{REQUEST_FILENAME} !-d
+    RewriteCond %{REQUEST_URI} (.+)/$
+    RewriteRule ^ %1 [L,R=301]
+
+    # Handle Front Controller...
+    RewriteCond %{REQUEST_FILENAME} !-d
+    RewriteCond %{REQUEST_FILENAME} !-f
+    RewriteRule ^ index.php [L]
+</IfModule>

Різницю між файлами не показано, бо вона завелика
+ 6 - 0
public/css/app.css


+ 0 - 0
public/favicon.ico


+ 60 - 0
public/index.php

@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * Laravel - A PHP Framework For Web Artisans
+ *
+ * @package  Laravel
+ * @author   Taylor Otwell <taylor@laravel.com>
+ */
+
+define('LARAVEL_START', microtime(true));
+
+/*
+|--------------------------------------------------------------------------
+| Register The Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader for
+| our application. We just need to utilize it! We'll simply require it
+| into the script here so that we don't have to worry about manual
+| loading any of our classes later on. It feels great to relax.
+|
+*/
+
+require __DIR__.'/../vendor/autoload.php';
+
+/*
+|--------------------------------------------------------------------------
+| Turn On The Lights
+|--------------------------------------------------------------------------
+|
+| We need to illuminate PHP development, so let us turn on the lights.
+| This bootstraps the framework and gets it ready for use, then it
+| will load up this application so that we can run it and send
+| the responses back to the browser and delight our users.
+|
+*/
+
+$app = require_once __DIR__.'/../bootstrap/app.php';
+
+/*
+|--------------------------------------------------------------------------
+| Run The Application
+|--------------------------------------------------------------------------
+|
+| Once we have the application, we can handle the incoming request
+| through the kernel, and send the associated response back to
+| the client's browser allowing them to enjoy the creative
+| and wonderful application we have prepared for them.
+|
+*/
+
+$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
+
+$response = $kernel->handle(
+    $request = Illuminate\Http\Request::capture()
+);
+
+$response->send();
+
+$kernel->terminate($request, $response);

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
public/js/app.js


+ 2 - 0
public/robots.txt

@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:

BIN
public/uploads/files/007b69cd4aba74037dcf45db525c0d30.png


BIN
public/uploads/files/09ca80bbfb6622104919b98e42cfe81d.png


BIN
public/uploads/files/0dbd365273fa5e846fbc784da15d011e.png


BIN
public/uploads/files/1a12c8d7ef79587c900e2da75e26c9d5.png


BIN
public/uploads/files/1ddbb8f790124c002c90ebd710c67d04.png


BIN
public/uploads/files/2.png


BIN
public/uploads/files/208a3705fbf4bd05cfcb7140c6f76839.png


BIN
public/uploads/files/2b60f3ea598b1fddeacbd1473aba5787.png


+ 0 - 0
public/uploads/files/2e203e65e1b563cb063bcb75f1fd41f6.png


Деякі файли не було показано, через те що забагато файлів було змінено