2
0

2 Komitmen f01d0c9139 ... 5205198f1c

Pembuat SHA1 Pesan Tanggal
  jekon 5205198f1c 平台管理 6 tahun lalu
  jekon 7468a830c9 第三方管理 6 tahun lalu
32 mengubah file dengan 1293 tambahan dan 1108 penghapusan
  1. 0 149
      app/Http/Controllers/Admin/ActivityController.php
  2. 0 141
      app/Http/Controllers/Admin/AdvertController.php
  3. 194 0
      app/Http/Controllers/Admin/AppController.php
  4. 0 149
      app/Http/Controllers/Admin/ArticleController.php
  5. 0 132
      app/Http/Controllers/Admin/CategoryController.php
  6. 0 142
      app/Http/Controllers/Admin/GameUrlController.php
  7. 0 120
      app/Http/Controllers/Admin/GmenuController.php
  8. 194 0
      app/Http/Controllers/Admin/PartyController.php
  9. 0 131
      app/Http/Controllers/Admin/PositionController.php
  10. 0 142
      app/Http/Controllers/Admin/ReliefController.php
  11. 32 0
      app/Http/Requests/AppCreateRequest.php
  12. 33 0
      app/Http/Requests/AppUpdateRequest.php
  13. 36 0
      app/Http/Requests/PartyCreateRequest.php
  14. 34 0
      app/Http/Requests/PartyUpdateRequest.php
  15. 3 0
      app/Models/App.php
  16. 2 0
      app/Models/Party.php
  17. 29 0
      resources/views/admin/app/_form.blade.php
  18. 16 0
      resources/views/admin/app/create.blade.php
  19. 18 0
      resources/views/admin/app/edit.blade.php
  20. 105 0
      resources/views/admin/app/index.blade.php
  21. 98 0
      resources/views/admin/app/permission.blade.php
  22. 36 0
      resources/views/admin/app/role.blade.php
  23. 55 0
      resources/views/admin/app/update.blade.php
  24. 2 2
      resources/views/admin/layout.blade.php
  25. 43 0
      resources/views/admin/party/_form.blade.php
  26. 16 0
      resources/views/admin/party/create.blade.php
  27. 18 0
      resources/views/admin/party/edit.blade.php
  28. 105 0
      resources/views/admin/party/index.blade.php
  29. 98 0
      resources/views/admin/party/permission.blade.php
  30. 36 0
      resources/views/admin/party/role.blade.php
  31. 55 0
      resources/views/admin/party/update.blade.php
  32. 35 0
      routes/admin.php

+ 0 - 149
app/Http/Controllers/Admin/ActivityController.php

@@ -1,149 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Http\Models\GameUrlData;
-use App\Http\Models\Activity;
-use App\Models\GameUrl;
-use App\Models\Activity as ActivityDatabase;
-use Illuminate\Http\Request;
-use App\Http\Controllers\PublicController;
-
-/**
- * 活动管理类
- */
-class ActivityController extends PublicController
-{
-
-
-    /**
-     * 视图加载
-     *
-     * @access public
-     * @return array
-     */
-    public function index()
-    {
-        return view('admin.activity.index');
-
-    }//end index()
-
-
-    /**
-     * 数据获取
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function data(Request $request)
-    {
-        $activityModel = new Activity;
-        $getActivityWhere = [];
-        // 查询参数.
-        if (empty($request->get('activity_title')) !== true) {
-            $getActivityWhere['activity_title'] = $request->get('activity_title');
-        }
-        // 查询参数.
-        if (strlen($request->get('activity_delete'))) {
-            $getActivityWhere['activity_delete'] = $request->get('activity_delete');
-        }
-
-        // 查询数据.
-        $res = $activityModel->getAllActivity($getActivityWhere, $request->get('limit', 30));
-        // 返回参数.
-        $data = [
-            'code'  => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data'],
-        ];
-        return response()->json($data);
-
-    }//end data()
-
-
-    /**
-     * 视图加载
-     *
-     * @access public
-     * @return array
-     */
-    public function create()
-    {
-        return view('admin.gameUrl.create');
-
-    }//end create()
-
-
-    /**
-     * 添加数据
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function store(Request $request)
-    {
-        $data = $request->only(['gameUrl_name', 'gameUrl_type', 'gameUrl_url', 'gameUrl_data']);
-
-        if ( GameUrl::insert($data)) {
-            return redirect()->to(route('admin.gameUrl'))->with(['status'=>'添加成功']);
-        }
-        return redirect()->to(route('admin.gameUrl'))->withErrors('系统错误');
-
-    }//end store()
-
-
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        $gameUrlModel = new GameUrl;
-        $gameUrl = $gameUrlModel->where(['gameUrl_id' => $id])->first();
-        return view('admin.gameUrl.edit',compact('gameUrl'));
-    }
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(Request $request)
-    {
-        $gameUrlModel = new GameUrl;
-        $gameUrl = $gameUrlModel->where(['gameUrl_id' => $request->get('gameUrl_id')]);
-        $data = $request->only(['gameUrl_name', 'gameUrl_type', 'gameUrl_url', 'gameUrl_data']);
-
-        if ($gameUrl->update($data)){
-            return redirect()->to(route('admin.gameUrl'))->with(['status'=>'更新成功']);
-        }
-        return redirect()->to(route('admin.gameUrl'))->withErrors('系统错误');
-    }
-
-
-    /**
-     * 删除
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function destroy(Request $request)
-    {
-        $ids = $request->get('ids');
-        $status = $request->get('status') == 0 ? 1 : 0;
-        if (empty($ids)){
-            return response()->json(['code'=>1,'msg'=>'请选择更改状态项']);
-        }
-        if (ActivityDatabase::whereIn('activity_identity',$ids)->update(['activity_delete'=>$status])){
-            return response()->json(['code'=>0,'msg'=>'更改状态成功']);
-        }
-        return response()->json(['code'=>1,'msg'=>'更改状态失败']);
-    }
-}

+ 0 - 141
app/Http/Controllers/Admin/AdvertController.php

@@ -1,141 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Models\Advert;
-use App\Models\Position;
-use Illuminate\Http\Request;
-use App\Http\Controllers\Controller;
-
-class AdvertController extends Controller
-{
-    /**
-     * Display a listing of the resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function index()
-    {
-        $positions = Position::get();
-        return view('admin.advert.index',compact('positions'));
-    }
-
-    public function data(Request $request)
-    {
-        $model = Advert::query();
-        if ($request->get('position_id')){
-            $model = $model->where('position_id',$request->get('position_id'));
-        }
-        if ($request->get('title')){
-            $model = $model->where('title','like','%'.$request->get('title').'%');
-        }
-        $res = $model->orderBy('sort','desc')->orderBy('id','desc')->with('position')->paginate($request->get('limit',30))->toArray();
-        $data = [
-            'code' => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data']
-        ];
-        return response()->json($data);
-    }
-
-    /**
-     * Show the form for creating a new resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function create()
-    {
-        //所有广告位置
-        $positions = Position::orderBy('sort','desc')->get();
-        return view('admin.advert.create',compact('positions'));
-    }
-
-    /**
-     * Store a newly created resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
-     */
-    public function store(Request $request)
-    {
-        $this->validate($request,[
-            'title'  => 'required|string',
-            'sort'  => 'required|numeric',
-            'thumb' => 'required|string',
-            'position_id' => 'required|numeric'
-        ]);
-        if (Advert::create($request->all())){
-            return redirect(route('admin.advert'))->with(['status'=>'添加完成']);
-        }
-        return redirect(route('admin.advert'))->with(['status'=>'系统错误']);
-    }
-
-    /**
-     * Display the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function show($id)
-    {
-        //
-    }
-
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        $advert = Advert::findOrFail($id);
-        //所有广告位置
-        $positions = Position::orderBy('sort','desc')->get();
-        foreach ($positions as $position){
-            $position->selected = $position->id == $advert->position_id ? 'selected' : '';
-        }
-        return view('admin.advert.edit',compact('positions','advert'));
-    }
-
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(Request $request, $id)
-    {
-        $this->validate($request,[
-            'title'  => 'required|string',
-            'sort'  => 'required|numeric',
-            'thumb' => 'required|string',
-            'position_id' => 'required|numeric'
-        ]);
-        $advert = Advert::findOrFail($id);
-        if ($advert->update($request->all())){
-            return redirect(route('admin.advert'))->with(['status'=>'更新成功']);
-        }
-        return redirect(route('admin.advert'))->withErrors(['status'=>'系统错误']);
-    }
-
-    /**
-     * Remove the specified resource from storage.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function destroy(Request $request)
-    {
-        $ids = $request->get('ids');
-        if (empty($ids)){
-            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
-        }
-        if (Advert::destroy($ids)){
-            return response()->json(['code'=>0,'msg'=>'删除成功']);
-        }
-        return response()->json(['code'=>1,'msg'=>'删除失败']);
-    }
-}

+ 194 - 0
app/Http/Controllers/Admin/AppController.php

@@ -0,0 +1,194 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Http\Requests\AppCreateRequest;
+use App\Http\Requests\AppUpdateRequest;
+use App\Models\App;
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use App\Models\Role;
+
+class AppController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index()
+    {
+        return view('admin.app.index');
+    }
+
+    public function data(Request $request)
+    {
+        $res = App::paginate($request->get('limit', 30))->toArray();
+        $data = [
+            'code' => 0,
+            'msg'   => '正在请求中...',
+            'count' => $res['total'],
+            'data'  => $res['data']
+        ];
+        return response()->json($data);
+    }
+
+    /**
+     * Show the form for creating a new resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function create()
+    {
+        return view('admin.app.create')->with(['app'=>array()]);
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(AppCreateRequest $request)
+    {
+        $data = $request->all();
+        if (App::create($data)){
+            return redirect()->to(route('admin.app'))->with(['status'=>'添加成功']);
+        }
+        return redirect()->to(route('admin.app'))->withErrors('系统错误');
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function show($id)
+    {
+        //
+    }
+
+    /**
+     * Show the form for editing the specified resource.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function edit($id)
+    {
+        $app = App::where('id', $id)->first();
+        return view('admin.app.edit',compact('app'));
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function update(AppUpdateRequest $request, $id)
+    {
+       // $app = App::findOrFail($id);
+
+        $data = $request->all();
+        if(empty($data['key'])){
+            unset($data['key']);
+        }
+        if(empty($data['secret'])){
+            unset($data['secret']);
+        }
+        $app = App::findOrFail($id);
+
+        if ($app->update($data)){
+            return redirect()->to(route('admin.app'))->with(['status'=>'更新成功']);
+        }
+        return redirect()->to(route('admin.app'))->withErrors('系统错误');
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(Request $request)
+    {
+        $ids = $request->get('ids');
+        if (empty($ids)){
+            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
+        }
+        if (App::destroy($ids)){
+            return response()->json(['code'=>0,'msg'=>'删除成功']);
+        }
+        return response()->json(['code'=>1,'msg'=>'删除失败']);
+    }
+
+    /**
+     * 分配角色
+     */
+    public function role(Request $request,$id)
+    {
+        $app = App::findOrFail($id);
+        $roles = Role::get();
+        $hasRoles = $app->roles();
+        foreach ($roles as $role){
+            $role->own = $app->hasRole($role) ? true : false;
+        }
+        return view('admin.app.role',compact('roles','app'));
+    }
+
+    /**
+     * 更新分配角色
+     */
+    public function assignRole(Request $request,$id)
+    {
+        $app = App::findOrFail($id);
+        $roles = $request->get('roles',[]);
+       if ($app->syncRoles($roles)){
+           return redirect()->to(route('admin.app'))->with(['status'=>'更新用户角色成功']);
+       }
+        return redirect()->to(route('admin.app'))->withErrors('系统错误');
+    }
+
+    /**
+     * 分配权限
+     */
+    public function permission(Request $request,$id)
+    {
+        $app = App::findOrFail($id);
+        $permissions = $this->tree();
+        foreach ($permissions as $key1 => $item1){
+            $permissions[$key1]['own'] = $app->hasDirectPermission($item1['id']) ? 'checked' : false ;
+            if (isset($item1['_child'])){
+                foreach ($item1['_child'] as $key2 => $item2){
+                    $permissions[$key1]['_child'][$key2]['own'] = $app->hasDirectPermission($item2['id']) ? 'checked' : false ;
+                    if (isset($item2['_child'])){
+                        foreach ($item2['_child'] as $key3 => $item3){
+                            $permissions[$key1]['_child'][$key2]['_child'][$key3]['own'] = $app->hasDirectPermission($item3['id']) ? 'checked' : false ;
+                        }
+                    }
+                }
+            }
+        }
+        return view('admin.app.permission',compact('app','permissions'));
+    }
+
+    /**
+     * 存储权限
+     */
+    public function assignPermission(Request $request,$id)
+    {
+        $app = App::findOrFail($id);
+        $permissions = $request->get('permissions');
+
+        if (empty($permissions)){
+            $app->permissions()->detach();
+            return redirect()->to(route('admin.app'))->with(['status'=>'已更新用户直接权限']);
+        }
+        $app->syncPermissions($permissions);
+        return redirect()->to(route('admin.app'))->with(['status'=>'已更新用户直接权限']);
+    }
+
+}

+ 0 - 149
app/Http/Controllers/Admin/ArticleController.php

@@ -1,149 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Http\Requests\ArticleRequest;
-use App\Models\Article;
-use App\Models\Category;
-use App\Models\Tag;
-use Illuminate\Http\Request;
-use App\Http\Controllers\Controller;
-
-class ArticleController extends Controller
-{
-    /**
-     * Display a listing of the resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function index()
-    {
-        //分类
-        $categorys = Category::with('allChilds')->where('parent_id',0)->orderBy('sort','desc')->get();
-        return view('admin.article.index',compact('categorys'));
-    }
-
-    public function data(Request $request)
-    {
-
-        $model = Article::query();
-        if ($request->get('category_id')){
-            $model = $model->where('category_id',$request->get('category_id'));
-        }
-        if ($request->get('title')){
-            $model = $model->where('title','like','%'.$request->get('title').'%');
-        }
-        $res = $model->orderBy('created_at','desc')->with(['tags','category'])->paginate($request->get('limit',30))->toArray();
-        $data = [
-            'code' => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data']
-        ];
-        return response()->json($data);
-    }
-
-    /**
-     * Show the form for creating a new resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function create()
-    {
-        //分类
-        $categorys = Category::with('allChilds')->where('parent_id',0)->orderBy('sort','desc')->get();
-        //标签
-        $tags = Tag::get();
-        return view('admin.article.create',compact('tags','categorys'));
-    }
-
-    /**
-     * Store a newly created resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
-     */
-    public function store(ArticleRequest $request)
-    {
-        $data = $request->only(['category_id','title','keywords','description','content','thumb','click']);
-        $article = Article::create($data);
-        if ($article && !empty($request->get('tags')) ){
-            $article->tags()->sync($request->get('tags'));
-        }
-        return redirect(route('admin.article'))->with(['status'=>'添加成功']);
-    }
-
-    /**
-     * Display the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function show($id)
-    {
-        //
-    }
-
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        $article = Article::with('tags')->findOrFail($id);
-        if (!$article){
-            return redirect(route('admin.article'))->withErrors(['status'=>'文章不存在']);
-        }
-        //分类
-        $categorys = Category::with('allChilds')->where('parent_id',0)->orderBy('sort','desc')->get();
-        //标签
-        $tags = Tag::get();
-        foreach ($tags as $tag){
-            $tag->checked = $article->tags->contains($tag) ? 'checked' : '';
-        }
-        return view('admin.article.edit',compact('article','categorys','tags'));
-
-    }
-
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(ArticleRequest $request, $id)
-    {
-        $article = Article::with('tags')->findOrFail($id);
-        $data = $request->only(['category_id','title','keywords','description','content','thumb','click']);
-        if ($article->update($data)){
-            $article->tags()->sync($request->get('tags',[]));
-            return redirect(route('admin.article'))->with(['status'=>'更新成功']);
-        }
-        return redirect(route('admin.article'))->withErrors(['status'=>'系统错误']);
-    }
-
-    /**
-     * Remove the specified resource from storage.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function destroy(Request $request)
-    {
-        $ids = $request->get('ids');
-        if (empty($ids)){
-            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
-        }
-        foreach (Article::whereIn('id',$ids)->get() as $model){
-            //清除中间表数据
-            $model->tags()->sync([]);
-            //删除文章
-            $model->delete();
-        }
-        return response()->json(['code'=>0,'msg'=>'删除成功']);
-    }
-
-}

+ 0 - 132
app/Http/Controllers/Admin/CategoryController.php

@@ -1,132 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Models\Category;
-use Illuminate\Http\Request;
-use App\Http\Controllers\Controller;
-
-class CategoryController extends Controller
-{
-    /**
-     * Display a listing of the resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function index()
-    {
-        return view('admin.category.index');
-    }
-
-    public function data(Request $request)
-    {
-        $res = Category::where('parent_id',$request->get('parent_id',0))->orderBy('id','desc')->orderBy('sort','desc')->paginate($request->get('limit',30))->toArray();
-        $data = [
-            'code' => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data']
-        ];
-        return response()->json($data);
-    }
-
-    /**
-     * Show the form for creating a new resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function create()
-    {
-        $categorys = $this->tree(Category::get()->toArray());
-        return view('admin.category.create',compact('categorys'));
-    }
-
-    /**
-     * Store a newly created resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
-     */
-    public function store(Request $request)
-    {
-        $this->validate($request,[
-            'name'  => 'required|string',
-            'sort'  => 'required|numeric',
-            'parent_id' => 'required|numeric'
-        ]);
-        if (Category::create($request->all())){
-            return redirect(route('admin.category'))->with(['status'=>'添加完成']);
-        }
-        return redirect(route('admin.category'))->with(['status'=>'系统错误']);
-    }
-
-    /**
-     * Display the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function show($id)
-    {
-        //
-    }
-
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        $category = Category::findOrFail($id);
-        $categorys = $this->tree(Category::get()->toArray());
-        return view('admin.category.edit',compact('category','categorys'));
-    }
-
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(Request $request, $id)
-    {
-        $this->validate($request,[
-            'name'  => 'required|string',
-            'sort'  => 'required|numeric',
-            'parent_id' => 'required|numeric'
-        ]);
-        $category = Category::findOrFail($id);
-        if ($category->update($request->all())){
-            return redirect(route('admin.category'))->with(['status'=>'更新成功']);
-        }
-        return redirect(route('admin.category'))->withErrors(['status'=>'系统错误']);
-    }
-
-    /**
-     * Remove the specified resource from storage.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function destroy(Request $request)
-    {
-        $ids = $request->get('ids');
-        if (empty($ids)){
-            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
-        }
-        $category = Category::with(['childs','articles'])->find($ids);
-        if (!$category){
-            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
-        }
-        if (!$category->childs->isEmpty() || !$category->articles->isEmpty()){
-            return response()->json(['code'=>1,'msg'=>'该分类下有子分类或者文章,不能删除']);
-        }
-        if ($category->delete()){
-            return response()->json(['code'=>0,'msg'=>'删除成功']);
-        }
-        return response()->json(['code'=>1,'msg'=>'删除失败']);
-    }
-}

+ 0 - 142
app/Http/Controllers/Admin/GameUrlController.php

@@ -1,142 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Http\Models\GameUrlData;
-use App\Models\GameUrl;
-use Illuminate\Http\Request;
-use App\Http\Controllers\PublicController;
-
-/**
- * 游戏url及参数类
- */
-class GameUrlController extends PublicController
-{
-
-
-    /**
-     * 视图加载
-     *
-     * @access public
-     * @return array
-     */
-    public function index()
-    {
-        return view('admin.gameUrl.index');
-
-    }//end index()
-
-
-    /**
-     * 数据获取
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function data(Request $request)
-    {
-        $gameUrlDataModel = new GameUrlData;
-        $getGameUrlWhere = [];
-        // 查询参数.
-        if (empty($request->get('gameUrl_name')) !== true) {
-            $getGameUrlWhere['gameUrl_name'] = $request->get('gameUrl_name');
-        }
-
-        // 查询数据.
-        $res = $gameUrlDataModel->getGameUrl($getGameUrlWhere, $request->get('limit', 30));
-        // 返回参数.
-        $data = [
-            'code'  => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data'],
-        ];
-        return response()->json($data);
-
-    }//end data()
-
-
-    /**
-     * 视图加载
-     *
-     * @access public
-     * @return array
-     */
-    public function create()
-    {
-        return view('admin.gameUrl.create');
-
-    }//end create()
-
-
-    /**
-     * 添加数据
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function store(Request $request)
-    {
-        $data = $request->only(['gameUrl_name', 'gameUrl_type', 'gameUrl_url', 'gameUrl_data']);
-
-        if ( GameUrl::insert($data)) {
-            return redirect()->to(route('admin.gameUrl'))->with(['status'=>'添加成功']);
-        }
-        return redirect()->to(route('admin.gameUrl'))->withErrors('系统错误');
-
-    }//end store()
-
-
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        $gameUrlModel = new GameUrl;
-        $gameUrl = $gameUrlModel->where(['gameUrl_id' => $id])->first();
-        return view('admin.gameUrl.edit',compact('gameUrl'));
-    }
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(Request $request)
-    {
-        $gameUrlModel = new GameUrl;
-        $gameUrl = $gameUrlModel->where(['gameUrl_id' => $request->get('gameUrl_id')]);
-        $data = $request->only(['gameUrl_name', 'gameUrl_type', 'gameUrl_url', 'gameUrl_data']);
-
-        if ($gameUrl->update($data)){
-            return redirect()->to(route('admin.gameUrl'))->with(['status'=>'更新成功']);
-        }
-        return redirect()->to(route('admin.gameUrl'))->withErrors('系统错误');
-    }
-
-
-    /**
-     * 删除
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function destroy(Request $request)
-    {
-        $ids = $request->get('ids');
-        if (empty($ids)){
-            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
-        }
-        if (GameUrl::whereIn('id',$ids)->update(['status'=>0])){
-            return response()->json(['code'=>0,'msg'=>'删除成功']);
-        }
-        return response()->json(['code'=>1,'msg'=>'删除失败']);
-    }
-}

+ 0 - 120
app/Http/Controllers/Admin/GmenuController.php

@@ -1,120 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Models\Gmenu;
-use Illuminate\Http\Request;
-use App\Http\Controllers\PublicController;
-
-class GmenuController extends PublicController
-{
-    /**
-    * Display a listing of the resource.
-    *
-    * @return \Illuminate\Http\Response
-    */
-    public function index()
-    {
-        return view('admin.gmenu.index');
-    }
-    public function data(Request $request)
-    {
-        $model = Gmenu::query();
-        if ($request->get('parent_id')!=null ){
-            $model = $model->where('parent_id',$request->get('parent_id'));
-        }
-
-        if ($request->get('status')!=null ){
-            $model = $model->where('status',$request->get('status'));
-        }
-
-        if ($request->get('isleaf')!=null ){
-            $model = $model->where('isleaf',$request->get('isleaf'));
-        }
-
-        if ($request->get('gname')){
-            $model = $model->where('gname','like','%'.$request->get('gname').'%');
-        }
-        $res = $model->orderBy('id','desc')->paginate($request->get('limit',30))->toArray();
-        $data = [
-            'code' => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data']
-        ];
-        return response()->json($data);
-    }
-    /**
-     * Show the form for creating a new resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function create()
-    {
-        return view('admin.gmenu.create');
-    }
-    /**
-     * Store a newly created resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
-     */
-    public function store(Request $request)
-    {
-        $data = $request->only(['parent_id','gname','sort','gaction','status','iconUrl','isleaf','smalliconUrl']);
-        $data['status'] = (trim($data['status']==1)) ? 1 : 0 ;
-        $data['isleaf'] = (trim($data['isleaf'])==1) ? 1 : 0 ;
-
-        if ( Gmenu::create($data) ){
-            return redirect()->to(route('admin.gmenu'))->with(['status'=>'添加成功']);
-        }
-        return redirect()->to(route('admin.gmenu'))->withErrors('系统错误');
-    }
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        $gmenu = Gmenu::findOrFail($id);
-        return view('admin.gmenu.edit',compact('gmenu'));
-    }
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(Request $request, $id)
-    {
-        $gmenu = Gmenu::findOrFail($id);
-        $data =  $request->only('gname','parent_id','sort','iconUrl','gaction','status','isleaf','smalliconUrl');
-        $data['status'] = (trim($data['status'])==1) ? 1 : 0 ;
-        $data['isleaf'] = (trim($data['isleaf'])==1) ? 1 : 0 ;
-
-        if ($gmenu->update($data)){
-            return redirect()->to(route('admin.gmenu'))->with(['status'=>'更新用户成功']);
-        }
-        return redirect()->to(route('admin.gmenu'))->withErrors('系统错误');
-    }
-    /**
-     * Remove the specified resource from storage.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function destroy(Request $request)
-    {
-        $ids = $request->get('ids');
-        if (empty($ids)){
-            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
-        }
-        if (Gmenu::whereIn('id',$ids)->update(['status'=>0])){
-            return response()->json(['code'=>0,'msg'=>'删除成功']);
-        }
-        return response()->json(['code'=>1,'msg'=>'删除失败']);
-    }
-}

+ 194 - 0
app/Http/Controllers/Admin/PartyController.php

@@ -0,0 +1,194 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Http\Requests\PartyCreateRequest;
+use App\Http\Requests\PartyUpdateRequest;
+use App\Models\Party;
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use App\Models\Role;
+
+class PartyController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index()
+    {
+        return view('admin.party.index');
+    }
+
+    public function data(Request $request)
+    {
+        $res = Party::paginate($request->get('limit', 30))->toArray();
+        $data = [
+            'code' => 0,
+            'msg'   => '正在请求中...',
+            'count' => $res['total'],
+            'data'  => $res['data']
+        ];
+        return response()->json($data);
+    }
+
+    /**
+     * Show the form for creating a new resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function create()
+    {
+        return view('admin.party.create')->with(['party'=>array()]);
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(PartyCreateRequest $request)
+    {
+        $data = $request->all();
+        if (Party::create($data)){
+            return redirect()->to(route('admin.party'))->with(['status'=>'添加成功']);
+        }
+        return redirect()->to(route('admin.party'))->withErrors('系统错误');
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function show($id)
+    {
+        //
+    }
+
+    /**
+     * Show the form for editing the specified resource.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function edit($id)
+    {
+        $party = Party::where('id', $id)->first();
+        return view('admin.party.edit',compact('party'));
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function update(PartyUpdateRequest $request, $id)
+    {
+       // $party = Party::findOrFail($id);
+
+        $data = $request->all();
+        if(empty($data['key'])){
+            unset($data['key']);
+        }
+        if(empty($data['secret'])){
+            unset($data['secret']);
+        }
+        $party = Party::findOrFail($id);
+
+        if ($party->update($data)){
+            return redirect()->to(route('admin.party'))->with(['status'=>'更新成功']);
+        }
+        return redirect()->to(route('admin.party'))->withErrors('系统错误');
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(Request $request)
+    {
+        $ids = $request->get('ids');
+        if (empty($ids)){
+            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
+        }
+        if (Party::destroy($ids)){
+            return response()->json(['code'=>0,'msg'=>'删除成功']);
+        }
+        return response()->json(['code'=>1,'msg'=>'删除失败']);
+    }
+
+    /**
+     * 分配角色
+     */
+    public function role(Request $request,$id)
+    {
+        $party = Party::findOrFail($id);
+        $roles = Role::get();
+        $hasRoles = $party->roles();
+        foreach ($roles as $role){
+            $role->own = $party->hasRole($role) ? true : false;
+        }
+        return view('admin.party.role',compact('roles','party'));
+    }
+
+    /**
+     * 更新分配角色
+     */
+    public function assignRole(Request $request,$id)
+    {
+        $party = Party::findOrFail($id);
+        $roles = $request->get('roles',[]);
+       if ($party->syncRoles($roles)){
+           return redirect()->to(route('admin.party'))->with(['status'=>'更新用户角色成功']);
+       }
+        return redirect()->to(route('admin.party'))->withErrors('系统错误');
+    }
+
+    /**
+     * 分配权限
+     */
+    public function permission(Request $request,$id)
+    {
+        $party = Party::findOrFail($id);
+        $permissions = $this->tree();
+        foreach ($permissions as $key1 => $item1){
+            $permissions[$key1]['own'] = $party->hasDirectPermission($item1['id']) ? 'checked' : false ;
+            if (isset($item1['_child'])){
+                foreach ($item1['_child'] as $key2 => $item2){
+                    $permissions[$key1]['_child'][$key2]['own'] = $party->hasDirectPermission($item2['id']) ? 'checked' : false ;
+                    if (isset($item2['_child'])){
+                        foreach ($item2['_child'] as $key3 => $item3){
+                            $permissions[$key1]['_child'][$key2]['_child'][$key3]['own'] = $party->hasDirectPermission($item3['id']) ? 'checked' : false ;
+                        }
+                    }
+                }
+            }
+        }
+        return view('admin.party.permission',compact('party','permissions'));
+    }
+
+    /**
+     * 存储权限
+     */
+    public function assignPermission(Request $request,$id)
+    {
+        $party = Party::findOrFail($id);
+        $permissions = $request->get('permissions');
+
+        if (empty($permissions)){
+            $party->permissions()->detach();
+            return redirect()->to(route('admin.party'))->with(['status'=>'已更新用户直接权限']);
+        }
+        $party->syncPermissions($permissions);
+        return redirect()->to(route('admin.party'))->with(['status'=>'已更新用户直接权限']);
+    }
+
+}

+ 0 - 131
app/Http/Controllers/Admin/PositionController.php

@@ -1,131 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Models\Position;
-use Illuminate\Http\Request;
-use App\Http\Controllers\Controller;
-
-class PositionController extends Controller
-{
-    /**
-     * Display a listing of the resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function index()
-    {
-        return view('admin.position.index');
-    }
-
-    public function data(Request $request)
-    {
-        $res = Position::orderBy('sort','desc')->orderBy('id','desc')->paginate($request->get('limit',30))->toArray();
-        $data = [
-            'code' => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data']
-        ];
-        return response()->json($data);
-    }
-    
-    /**
-     * Show the form for creating a new resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function create()
-    {
-        return view('admin.position.create');
-    }
-
-    /**
-     * Store a newly created resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
-     */
-    public function store(Request $request)
-    {
-        $this->validate($request,[
-            'name'  => 'required|string',
-            'sort'  => 'required|numeric'
-        ]);
-        if (Position::create($request->all())){
-            return redirect(route('admin.position'))->with(['status'=>'添加完成']);
-        }
-        return redirect(route('admin.position'))->with(['status'=>'系统错误']);
-    }
-
-    /**
-     * Display the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function show($id)
-    {
-        //
-    }
-
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        $position = Position::findOrFail($id);
-        if (!$position){
-            return redirect(route('admin.position'))->withErrors(['status'=>'分类不存在']);
-        }
-        return view('admin.position.edit',compact('position'));
-    }
-
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(Request $request, $id)
-    {
-        $this->validate($request,[
-            'name'  => 'required|string',
-            'sort'  => 'required|numeric'
-        ]);
-        $position = Position::findOrFail($id);
-        if ($position->update($request->only(['name','sort']))){
-            return redirect(route('admin.position'))->with(['status'=>'更新成功']);
-        }
-        return redirect(route('admin.position'))->withErrors(['status'=>'系统错误']);
-    }
-
-    /**
-     * Remove the specified resource from storage.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function destroy(Request $request)
-    {
-        $ids = $request->get('ids');
-        if (empty($ids)){
-            return response()->json(['code'=>1,'msg'=>'请选择删除项']);
-        }
-        $position = Position::with('adverts')->find($ids);
-        if (!$position){
-            return response()->json(['code'=>1,'msg'=>'数据不存在']);
-        }
-        if (!$position->adverts->isEmpty()){
-            return response()->json(['code'=>1,'msg'=>'该广告位下存在广告信息,不能删除']);
-        }
-        if ($position->delete()){
-            return response()->json(['code'=>0,'msg'=>'删除成功']);
-        }
-        return response()->json(['code'=>1,'msg'=>'删除失败']);
-    }
-}

+ 0 - 142
app/Http/Controllers/Admin/ReliefController.php

@@ -1,142 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
-
-use App\Http\Models\ReliefData;
-use App\Models\GetRelief;
-use Illuminate\Http\Request;
-use App\Http\Controllers\PublicController;
-
-/**
- * 救济金控制器
- */
-class ReliefController extends PublicController
-{
-
-
-    /**
-     * 视图加载
-     *
-     * @access public
-     * @return array
-     */
-    public function index()
-    {
-        return view('admin.relief.index');
-
-    }//end index()
-
-
-    /**
-     * 数据获取
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function data(Request $request)
-    {
-        $reliefDataModel = new ReliefData;
-        $getReliefWhere  = [];
-        // 查询参数.
-        if (strlen($request->get('userName'))) {
-            $getReliefWhere['name'] = $request->get('userName');
-        }
-
-        $startTime = strtotime(date('Y-m-d').'-6 day');
-        $endTime   = strtotime(date('Y-m-d').'+1 day');
-        if (strlen($request->get('time'))) {
-            $time      = explode(',', ($request->get('time')));
-            $startTime = strtotime($time[0]);
-            $endTime   = strtotime($time[1].'+1 day');
-        }
-
-        // 时间区间.
-        $getReliefBetween = [
-            $startTime,
-            $endTime,
-        ];
-
-        $getReliefSelect = [
-            'getrelief_id',
-            'getrelief_identity',
-            'name',
-            'getrelief_mony',
-            'getrelief_begin_money',
-            'getrelief_end_money',
-            'getrelief_addtime',
-        ];
-        // 查询数据.
-        $res = $reliefDataModel->getRelief($getReliefSelect, $request->get('limit', 30), $getReliefWhere, $getReliefBetween);
-        // 返回参数.
-        $data = [
-            'code'  => 0,
-            'msg'   => '正在请求中...',
-            'count' => $res['total'],
-            'data'  => $res['data'],
-        ];
-        return response()->json($data);
-
-    }//end data()
-
-
-    /**
-     * 视图加载
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function setting()
-    {
-        $reliefDataModel = new ReliefData;
-        $getConfigSelect = [
-            'systemconfig_data',
-            'systemconfig_status',
-            'systemconfig_id',
-        ];
-        $getConfigWhere['systemconfig_name'] = 'relief';
-        // 获取系统设置信息.
-        $getSystemconfig = $reliefDataModel->getSystemconfig($getConfigSelect, $getConfigWhere);
-        // 重组数据.
-        $data                    = json_decode($getSystemconfig[0]['systemconfig_data'], true);
-        $data['systemconfig_id'] = $getSystemconfig[0]['systemconfig_id'];
-        $data['systemconfig_status'] = $getSystemconfig[0]['systemconfig_status'];
-        return view('admin.relief.setting', compact('data'));
-
-    }//end setting()
-
-
-    /**
-     * 设置
-     *
-     * @access public
-     * @param  mixed $request 参数.
-     * @return array
-     */
-    public function onSetting(Request $request)
-    {
-        $reliefDataModel                   = new ReliefData;
-        $getConfigWhere['systemconfig_id'] = $_REQUEST['systemconfig_id'];
-        // 设置数据.
-        $data          = [
-            'condition' => $_REQUEST['condition'],
-            'count'     => $_REQUEST['count'],
-            'mony'      => $_REQUEST['mony'],
-        ];
-        $getConfigData = [
-            'systemconfig_status' => $_REQUEST['systemconfig_status'],
-            'systemconfig_data'   => json_encode($data),
-            'systemconfig_uptime'   => time(),
-        ];
-        $back = $reliefDataModel->upSystemconfig($getConfigWhere, $getConfigData);
-
-        if ($back){
-            return redirect()->to(route('admin.relief.setting'))->with(['status'=>'更新成功']);
-        }
-        return redirect()->to(route('admin.relief.setting'))->withErrors('系统错误');
-
-    }//end onSetting()
-
-
-}

+ 32 - 0
app/Http/Requests/AppCreateRequest.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class AppCreateRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     *
+     * @return bool
+     */
+    public function authorize()
+    {
+        return true;
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            'balance' => 'required|regex:/^[0-9]{1,8}(.[0-9]{1,2})?$/|',
+            'phone' => 'required|numeric|regex:/^1[34578][0-9]{9}$/|unique:ag_app,phone,'.$this->get('id').',id',
+            'appname'  => 'required|min:2|max:14|unique:ag_app,appname,'.$this->get('id').',id',
+        ];
+    }
+}

+ 33 - 0
app/Http/Requests/AppUpdateRequest.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class AppUpdateRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     *
+     * @return bool
+     */
+    public function authorize()
+    {
+        return true;
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        $reture = [
+            'balance' => 'required|regex:/^[0-9]{1,8}(.[0-9]{1,2})?$/|',
+            'phone' => 'required|numeric|regex:/^1[34578][0-9]{9}$/|unique:ag_app,phone,'.$this->get('id').',id',
+            'appname'  => 'required|min:2|max:14|unique:ag_app,appname,'.$this->get('id').',id',
+        ];
+        return $reture;
+    }
+}

+ 36 - 0
app/Http/Requests/PartyCreateRequest.php

@@ -0,0 +1,36 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class PartyCreateRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     *
+     * @return bool
+     */
+    public function authorize()
+    {
+        return true;
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            'balance' => 'required|regex:/^[0-9]{1,8}(.[0-9]{1,2})?$/|',
+            'phone' => 'required|numeric|regex:/^1[34578][0-9]{9}$/|unique:ag_party,phone,'.$this->get('id').',id',
+            'key' => 'required|unique:ag_party,key,'.$this->get('id').',id',
+            'name'  => 'required|min:2|max:14|unique:ag_party,name,'.$this->get('id').',id',
+            //'balance' => 'required|regex:/^[0-9]{1,8}(.[0-9]{1,2})?$/,'.$this->get('id').',id',
+            //'phone'   => 'required|numeric|regex:/^1[3456789][0-9]{9}$/|unique:users',
+            //'username'  => 'required|min:4|max:14|unique:users',
+        ];
+    }
+}

+ 34 - 0
app/Http/Requests/PartyUpdateRequest.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class PartyUpdateRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     *
+     * @return bool
+     */
+    public function authorize()
+    {
+        return true;
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        $reture = [
+            'balance' => 'required|regex:/^[0-9]{1,8}(.[0-9]{1,2})?$/|',
+            'phone' => 'required|numeric|regex:/^1[34578][0-9]{9}$/|unique:ag_party,phone,'.$this->get('id').',id',
+            'key' => 'required|unique:ag_party,key,'.$this->get('id').',id',
+            'name'  => 'required|min:2|max:14|unique:ag_party,name,'.$this->get('id').',id',
+        ];
+        return $reture;
+    }
+}

+ 3 - 0
app/Models/App.php

@@ -9,4 +9,7 @@ class App extends Model
     protected $table = 'ag_app';
 
 
+    protected $fillable = ['appname', 'status', 'balance','domo', 'login_api', 'register_api', 'create_at', 'update_at'];
+
+
 }

+ 2 - 0
app/Models/Party.php

@@ -8,5 +8,7 @@ class Party extends Model
 {
     protected $table = 'ag_party';
 
+    protected $fillable = ['name','balance','domo', 'key', 'phone', 'secret', 'login_out_api', 'create_at', 'update_at'];
+
 
 }

+ 29 - 0
resources/views/admin/app/_form.blade.php

@@ -0,0 +1,29 @@
+{{csrf_field()}}
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">平台名</label>
+    <div class="layui-input-inline">
+        <input type="text" name="appname" value="{{ $app->appname ?? old('appname') }}" lay-verify="required" placeholder="请输入平台名" class="layui-input" >
+    </div>
+</div>
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">额&nbsp;&nbsp;&nbsp;度</label>
+    <div class="layui-input-inline">
+        <input type="text" name="balance" value="{{$app->balance ?? old('balance')}}" required="" lay-verify="required" placeholder="余额" autocomplete="off" class="layui-input" >
+    </div>
+</div>
+
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">联系电话</label>
+    <div class="layui-input-inline">
+        <input type="text" name="phone" value="{{$app->phone ?? old('phone') ?? ''}}" required="phone" lay-verify="phone" placeholder="请输入联系电话" class="layui-input">
+    </div>
+</div>
+
+
+
+<div class="layui-form-item">
+    <div class="layui-input-block">
+        <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button>
+        <a  class="layui-btn" href="{{route('admin.app')}}" >返 回</a>
+    </div>
+</div>

+ 16 - 0
resources/views/admin/app/create.blade.php

@@ -0,0 +1,16 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-card">
+        <div class="layui-card-header  layuiadmin-card-header-auto">
+            <h2>添加平台</h2>
+        </div>
+        <div class="layui-card-body">
+            <form class="layui-form" action="{{route('admin.app.store')}}" method="post">
+            @include('admin.app._form')
+        </form>
+        </div>
+    </div>
+@endsection
+
+

+ 18 - 0
resources/views/admin/app/edit.blade.php

@@ -0,0 +1,18 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-card">
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <h2>更新平台</h2>
+        </div>
+        <div class="layui-card-body">
+            <form class="layui-form" action="{{route('admin.app.update',['app'=>$app])}}" method="post">
+                <input type="hidden" name="id" value="{{$app->id}}">
+                {{method_field('put')}}
+                @include('admin.app._form')
+            </form>
+        </div>
+    </div>
+@endsection
+
+

+ 105 - 0
resources/views/admin/app/index.blade.php

@@ -0,0 +1,105 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-card">
+
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <div class="layui-btn-group">
+                {{--<button class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删 除</button>--}}
+                <a class="layui-btn layui-btn-sm" href="{{ route('admin.app.create') }}">添 加</a>
+            </div>
+        </div>
+
+        <div class="layui-card-body">
+            <table id="dataTable" lay-filter="dataTable"></table>
+            <script type="text/html" id="options">
+                <div class="layui-btn-group">
+                    <a class="layui-btn layui-btn-sm" lay-event="edit">编辑</a>
+                    <a class="layui-btn layui-btn-danger layui-btn-sm " lay-event="del">删除</a>
+                </div>
+            </script>
+        </div>
+
+    </div>
+@endsection
+
+@section('script')
+    <script>
+        layui.use(['layer','table','form'],function () {
+            var layer = layui.layer;
+            var form = layui.form;
+            var table = layui.table;
+
+            //平台表格初始化
+            var dataTable = table.render({
+                elem: '#dataTable'
+                ,height: 500
+                ,url: "{{ route('admin.app.data') }}" //数据接口
+                ,where:{model:"app"}
+                ,page: true //开启分页
+                ,cols: [[ //表头
+                    {checkbox: true,fixed: true}
+                    ,{field: 'id', title: 'ID', sort: true,width:80}
+                    ,{field: 'appname', title: '平台名'}
+                    ,{field: 'balance', title: '剩余额度'}
+                    ,{field: 'phone', title: '联系电话'}
+                    ,{field: 'add_app', title: '添加者'}
+                    ,{field: 'ctime', title: '创建时间'}
+                    ,{field: 'updated_at', title: '更新时间'}
+                    ,{fixed: 'right', width: 320, align:'center', toolbar: '#options'}
+                ]]
+            });
+
+            //监听工具条
+            table.on('tool(dataTable)', function(obj){ //注:tool是工具条事件名,dataTable是table原始容器的属性 lay-filter="对应的值"
+                var data = obj.data //获得当前行数据
+                    ,layEvent = obj.event; //获得 lay-event 对应的值
+                if(layEvent === 'del'){
+                    layer.confirm('确认删除吗?', function(index){
+                        $.post("{{ route('admin.app.destroy') }}",{_method:'delete',ids:[data.id]},function (result) {
+                            if (result.code==0){
+                                obj.del(); //删除对应行(tr)的DOM结构
+                            }
+                            layer.close(index);
+                            layer.msg(result.msg,{icon:6})
+                        });
+                    });
+                } else if(layEvent === 'edit'){
+                    location.href = '/admin/app/'+data.id+'/edit';
+                } else if (layEvent === 'role'){
+                    location.href = '/admin/app/'+data.id+'/role';
+                } else if (layEvent === 'permission'){
+                    location.href = '/admin/app/'+data.id+'/permission';
+                }
+            });
+
+            //按钮批量删除
+            $("#listDelete").click(function () {
+                var ids = []
+                var hasCheck = table.checkStatus('dataTable')
+                var hasCheckData = hasCheck.data
+                if (hasCheckData.length>0){
+                    $.each(hasCheckData,function (index,element) {
+                        ids.push(element.id)
+                    })
+                }
+                if (ids.length>0){
+                    layer.confirm('确认删除吗?', function(index){
+                        $.post("{{ route('admin.app.destroy') }}",{_method:'delete',ids:ids},function (result) {
+                            if (result.code==0){
+                                dataTable.reload()
+                            }
+                            layer.close(index);
+                            layer.msg(result.msg,{icon:6})
+                        });
+                    })
+                }else {
+                    layer.msg('请选择删除项',{icon:5})
+                }
+            })
+        })
+    </script>
+@endsection
+
+
+

+ 98 - 0
resources/views/admin/app/permission.blade.php

@@ -0,0 +1,98 @@
+@extends('admin.base')
+
+@section('content')
+    <style>
+        .cate-box{margin-bottom: 15px;padding-bottom:10px;border-bottom: 1px solid #f0f0f0}
+        .cate-box dt{margin-bottom: 10px;}
+        .cate-box dt .cate-first{padding:10px 20px}
+        .cate-box dd{padding:0 50px}
+        .cate-box dd .cate-second{margin-bottom: 10px}
+        .cate-box dd .cate-third{padding:0 40px;margin-bottom: 10px}
+    </style>
+    <div class="layui-card">
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <h2>平台 【{{$app->name}}】分配直接权限,直接权限与角色拥有的角色权限不冲突</h2>
+        </div>
+        <div class="layui-card-body">
+            <form action="{{route('admin.app.assignPermission',['app'=>$app])}}" method="post" class="layui-form">
+                {{csrf_field()}}
+                {{method_field('put')}}
+                @forelse($permissions as $first)
+                    <dl class="cate-box">
+                        <dt>
+                        <div class="cate-first"><input id="menu{{$first['id']}}" type="checkbox" name="permissions[]" value="{{$first['id']}}" title="{{$first['display_name']}}" lay-skin="primary" {{$first['own']??''}} ></div>
+                        </dt>
+                        @if(isset($first['_child']))
+                            @foreach($first['_child'] as $second)
+                                <dd>
+                                    <div class="cate-second"><input id="menu{{$first['id']}}-{{$second['id']}}" type="checkbox" name="permissions[]" value="{{$second['id']}}" title="{{$second['display_name']}}" lay-skin="primary" {{$second['own']??''}}></div>
+                                    @if(isset($second['_child']))
+                                        <div class="cate-third">
+                                            @foreach($second['_child'] as $thild)
+                                                <input type="checkbox" id="menu{{$first['id']}}-{{$second['id']}}-{{$thild['id']}}" name="permissions[]" value="{{$thild['id']}}" title="{{$thild['display_name']}}" lay-skin="primary" {{$thild['own']??''}}>
+                                            @endforeach
+                                        </div>
+                                    @endif
+                                </dd>
+                            @endforeach
+                        @endif
+                    </dl>
+                @empty
+                    <div style="text-align: center;padding:20px 0;">
+                        无数据
+                    </div>
+                @endforelse
+                <div class="layui-form-item">
+                    <button type="submit" class="layui-btn" lay-submit="" >确 认</button>
+                    <a href="{{route('admin.app')}}"  class="layui-btn" >返 回</a>
+                </div>
+
+            </form>
+        </div>
+    </div>
+@endsection
+
+@section('script')
+    <script type="text/javascript">
+        form.on('checkbox', function (data) {
+            var check = data.elem.checked;//是否选中
+            var checkId = data.elem.id;//当前操作的选项框
+            if (check) {
+                //选中
+                var ids = checkId.split("-");
+                if (ids.length == 3) {
+                    //第三极菜单
+                    //第三极菜单选中,则他的上级选中
+                    $("#" + (ids[0] + '-' + ids[1])).prop("checked", true);
+                    $("#" + (ids[0])).prop("checked", true);
+                } else if (ids.length == 2) {
+                    //第二季菜单
+                    $("#" + (ids[0])).prop("checked", true);
+                    $("input[id*=" + ids[0] + '-' + ids[1] + "]").each(function (i, ele) {
+                        $(ele).prop("checked", true);
+                    });
+                } else {
+                    //第一季菜单不需要做处理
+                    $("input[id*=" + ids[0] + "-]").each(function (i, ele) {
+                        $(ele).prop("checked", true);
+                    });
+                }
+            } else {
+                //取消选中
+                var ids = checkId.split("-");
+                if (ids.length == 2) {
+                    //第二极菜单
+                    $("input[id*=" + ids[0] + '-' + ids[1] + "]").each(function (i, ele) {
+                        $(ele).prop("checked", false);
+                    });
+                } else if (ids.length == 1) {
+                    $("input[id*=" + ids[0] + "-]").each(function (i, ele) {
+                        $(ele).prop("checked", false);
+                    });
+                }
+            }
+            form.render();
+        });
+    </script>
+@endsection
+

+ 36 - 0
resources/views/admin/app/role.blade.php

@@ -0,0 +1,36 @@
+@extends('admin.base')
+
+@section('content')
+    <style>
+        .layui-form-checkbox span{width: 100px}
+    </style>
+    <div class="layui-card">
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <h2>平台【{{$app->name}}】分配角色</h2>
+        </div>
+        <div class="layui-card-body">
+            <form class="layui-form" action="{{route('admin.app.assignRole',['app'=>$app])}}" method="post">
+                {{csrf_field()}}
+                {{method_field('put')}}
+                <div class="layui-form-item">
+                    <label for="" class="layui-form-label">角色</label>
+                    <div class="layui-input-block" style="width: 400px">
+                        @forelse($roles as $role)
+                            <input type="checkbox" name="roles[]" value="{{$role->id}}" title="{{$role->display_name}}" {{ $role->own ? 'checked' : ''  }} >
+                        @empty
+                            <div class="layui-form-mid layui-word-aux">还没有角色</div>
+                        @endforelse
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <div class="layui-input-block">
+                        <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button>
+                        <a class="layui-btn" href="{{route('admin.app')}}" >返 回</a>
+                    </div>
+                </div>
+            </form>
+        </div>
+    </div>
+@endsection
+
+

+ 55 - 0
resources/views/admin/app/update.blade.php

@@ -0,0 +1,55 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-elem-quote">更新平台</div>
+    <form class="layui-form" action="{{route('app.update',['role'=>$app])}}" method="post">
+        {{csrf_field()}}
+        {{method_field('put')}}
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">额&nbsp;&nbsp;&nbsp;度</label>
+            <div class="layui-input-inline">
+                <input type="email" name="email" value="{{$app->balance}}" required="" lay-verify="required" placeholder="余额" autocomplete="off" class="layui-input" >
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">平台名</label>
+            <div class="layui-input-inline">
+                <input type="text" name="name" value="{{$app->name}}" required="" lay-verify="required" placeholder="请输入平台名" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">联系电话</label>
+            <div class="layui-input-inline">
+                <input type="text" name="tel" value="{{$app->tel}}" required="" lay-verify="required" placeholder="请输入联系电话" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">KEY</label>
+            <div class="layui-input-inline">
+                <input type="text" id="key" name="key" value="{{$app->key}}" placeholder="KEY" autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">不修改则留空</div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">SECRET</label>
+            <div class="layui-input-inline">
+                <input type="text" id="secret" name="secret" value="{{$app->secret}}" placeholder="SECRET" autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">不修改则留空</div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">确&nbsp;&nbsp;&nbsp;认</label>
+            <div class="layui-input-inline">
+                <input type="password" id="password_confirmation" name="password_confirmation" placeholder="请输入密码" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <div class="layui-input-block">
+                <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button>
+                <a class="layui-btn" href="{{route('app.index')}}" >返 回</a>
+            </div>
+        </div>
+    </form>
+@endsection
+
+

+ 2 - 2
resources/views/admin/layout.blade.php

@@ -107,13 +107,13 @@
                         </dl>
                     </li>
                     <li data-name="party" class="layui-nav-item">
-                        <a lay-href="{{route('admin.index1')}}" lay-tips="第三方管理" lay-direction="2">
+                        <a lay-href="{{route('admin.party')}}" lay-tips="第三方管理" lay-direction="2">
                             <i class="layui-icon layui-icon-home"></i>
                             <cite>第三方管理</cite>
                         </a>
                     </li>
                     <li data-name="app" class="layui-nav-item">
-                        <a lay-href="{{route('admin.index1')}}" lay-tips="" lay-direction="2">
+                        <a lay-href="{{route('admin.app')}}" lay-tips="" lay-direction="2">
                             <i class="layui-icon layui-icon-home"></i>
                             <cite>平台管理</cite>
                         </a>

+ 43 - 0
resources/views/admin/party/_form.blade.php

@@ -0,0 +1,43 @@
+{{csrf_field()}}
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">第三方名</label>
+    <div class="layui-input-inline">
+        <input type="text" name="name" value="{{ $party->name ?? old('name') }}" lay-verify="required" placeholder="请输入第三方名" class="layui-input" >
+    </div>
+</div>
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">额&nbsp;&nbsp;&nbsp;度</label>
+    <div class="layui-input-inline">
+        <input type="text" name="balance" value="{{$party->balance ?? old('balance')}}" required="" lay-verify="required" placeholder="余额" autocomplete="off" class="layui-input" >
+    </div>
+</div>
+
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">联系电话</label>
+    <div class="layui-input-inline">
+        <input type="text" name="phone" value="{{$party->phone ?? old('phone') ?? ''}}" required="phone" lay-verify="phone" placeholder="请输入联系电话" class="layui-input">
+    </div>
+</div>
+
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">KEY</label>
+    <div class="layui-input-inline">
+        <input type="text" id="key" name="key" value="{{$party->key ?? old('key')}}" placeholder="KEY" autocomplete="off" class="layui-input">
+    </div>
+    <div class="layui-form-mid layui-word-aux">不修改则留空</div>
+</div>
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">SECRET</label>
+    <div class="layui-input-inline">
+        <input type="text" id="secret" name="secret" value="{{$party->secret ?? old('secret')}}" placeholder="SECRET" autocomplete="off" class="layui-input">
+    </div>
+    <div class="layui-form-mid layui-word-aux">不修改则留空</div>
+</div>
+
+
+<div class="layui-form-item">
+    <div class="layui-input-block">
+        <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button>
+        <a  class="layui-btn" href="{{route('admin.party')}}" >返 回</a>
+    </div>
+</div>

+ 16 - 0
resources/views/admin/party/create.blade.php

@@ -0,0 +1,16 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-card">
+        <div class="layui-card-header  layuiadmin-card-header-auto">
+            <h2>添加第三方</h2>
+        </div>
+        <div class="layui-card-body">
+            <form class="layui-form" action="{{route('admin.party.store')}}" method="post">
+            @include('admin.party._form')
+        </form>
+        </div>
+    </div>
+@endsection
+
+

+ 18 - 0
resources/views/admin/party/edit.blade.php

@@ -0,0 +1,18 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-card">
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <h2>更新第三方</h2>
+        </div>
+        <div class="layui-card-body">
+            <form class="layui-form" action="{{route('admin.party.update',['party'=>$party])}}" method="post">
+                <input type="hidden" name="id" value="{{$party->id}}">
+                {{method_field('put')}}
+                @include('admin.party._form')
+            </form>
+        </div>
+    </div>
+@endsection
+
+

+ 105 - 0
resources/views/admin/party/index.blade.php

@@ -0,0 +1,105 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-card">
+
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <div class="layui-btn-group">
+                {{--<button class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删 除</button>--}}
+                <a class="layui-btn layui-btn-sm" href="{{ route('admin.party.create') }}">添 加</a>
+            </div>
+        </div>
+
+        <div class="layui-card-body">
+            <table id="dataTable" lay-filter="dataTable"></table>
+            <script type="text/html" id="options">
+                <div class="layui-btn-group">
+                    <a class="layui-btn layui-btn-sm" lay-event="edit">编辑</a>
+                    <a class="layui-btn layui-btn-danger layui-btn-sm " lay-event="del">删除</a>
+                </div>
+            </script>
+        </div>
+
+    </div>
+@endsection
+
+@section('script')
+    <script>
+        layui.use(['layer','table','form'],function () {
+            var layer = layui.layer;
+            var form = layui.form;
+            var table = layui.table;
+
+            //第三方表格初始化
+            var dataTable = table.render({
+                elem: '#dataTable'
+                ,height: 500
+                ,url: "{{ route('admin.party.data') }}" //数据接口
+                ,where:{model:"party"}
+                ,page: true //开启分页
+                ,cols: [[ //表头
+                    {checkbox: true,fixed: true}
+                    ,{field: 'id', title: 'ID', sort: true,width:80}
+                    ,{field: 'name', title: '第三方名'}
+                    ,{field: 'balance', title: '剩余额度'}
+                    ,{field: 'phone', title: '联系电话'}
+                    ,{field: 'add_party', title: '添加者'}
+                    ,{field: 'ctime', title: '创建时间'}
+                    ,{field: 'updated_at', title: '更新时间'}
+                    ,{fixed: 'right', width: 320, align:'center', toolbar: '#options'}
+                ]]
+            });
+
+            //监听工具条
+            table.on('tool(dataTable)', function(obj){ //注:tool是工具条事件名,dataTable是table原始容器的属性 lay-filter="对应的值"
+                var data = obj.data //获得当前行数据
+                    ,layEvent = obj.event; //获得 lay-event 对应的值
+                if(layEvent === 'del'){
+                    layer.confirm('确认删除吗?', function(index){
+                        $.post("{{ route('admin.party.destroy') }}",{_method:'delete',ids:[data.id]},function (result) {
+                            if (result.code==0){
+                                obj.del(); //删除对应行(tr)的DOM结构
+                            }
+                            layer.close(index);
+                            layer.msg(result.msg,{icon:6})
+                        });
+                    });
+                } else if(layEvent === 'edit'){
+                    location.href = '/admin/party/'+data.id+'/edit';
+                } else if (layEvent === 'role'){
+                    location.href = '/admin/party/'+data.id+'/role';
+                } else if (layEvent === 'permission'){
+                    location.href = '/admin/party/'+data.id+'/permission';
+                }
+            });
+
+            //按钮批量删除
+            $("#listDelete").click(function () {
+                var ids = []
+                var hasCheck = table.checkStatus('dataTable')
+                var hasCheckData = hasCheck.data
+                if (hasCheckData.length>0){
+                    $.each(hasCheckData,function (index,element) {
+                        ids.push(element.id)
+                    })
+                }
+                if (ids.length>0){
+                    layer.confirm('确认删除吗?', function(index){
+                        $.post("{{ route('admin.party.destroy') }}",{_method:'delete',ids:ids},function (result) {
+                            if (result.code==0){
+                                dataTable.reload()
+                            }
+                            layer.close(index);
+                            layer.msg(result.msg,{icon:6})
+                        });
+                    })
+                }else {
+                    layer.msg('请选择删除项',{icon:5})
+                }
+            })
+        })
+    </script>
+@endsection
+
+
+

+ 98 - 0
resources/views/admin/party/permission.blade.php

@@ -0,0 +1,98 @@
+@extends('admin.base')
+
+@section('content')
+    <style>
+        .cate-box{margin-bottom: 15px;padding-bottom:10px;border-bottom: 1px solid #f0f0f0}
+        .cate-box dt{margin-bottom: 10px;}
+        .cate-box dt .cate-first{padding:10px 20px}
+        .cate-box dd{padding:0 50px}
+        .cate-box dd .cate-second{margin-bottom: 10px}
+        .cate-box dd .cate-third{padding:0 40px;margin-bottom: 10px}
+    </style>
+    <div class="layui-card">
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <h2>第三方 【{{$party->name}}】分配直接权限,直接权限与角色拥有的角色权限不冲突</h2>
+        </div>
+        <div class="layui-card-body">
+            <form action="{{route('admin.party.assignPermission',['party'=>$party])}}" method="post" class="layui-form">
+                {{csrf_field()}}
+                {{method_field('put')}}
+                @forelse($permissions as $first)
+                    <dl class="cate-box">
+                        <dt>
+                        <div class="cate-first"><input id="menu{{$first['id']}}" type="checkbox" name="permissions[]" value="{{$first['id']}}" title="{{$first['display_name']}}" lay-skin="primary" {{$first['own']??''}} ></div>
+                        </dt>
+                        @if(isset($first['_child']))
+                            @foreach($first['_child'] as $second)
+                                <dd>
+                                    <div class="cate-second"><input id="menu{{$first['id']}}-{{$second['id']}}" type="checkbox" name="permissions[]" value="{{$second['id']}}" title="{{$second['display_name']}}" lay-skin="primary" {{$second['own']??''}}></div>
+                                    @if(isset($second['_child']))
+                                        <div class="cate-third">
+                                            @foreach($second['_child'] as $thild)
+                                                <input type="checkbox" id="menu{{$first['id']}}-{{$second['id']}}-{{$thild['id']}}" name="permissions[]" value="{{$thild['id']}}" title="{{$thild['display_name']}}" lay-skin="primary" {{$thild['own']??''}}>
+                                            @endforeach
+                                        </div>
+                                    @endif
+                                </dd>
+                            @endforeach
+                        @endif
+                    </dl>
+                @empty
+                    <div style="text-align: center;padding:20px 0;">
+                        无数据
+                    </div>
+                @endforelse
+                <div class="layui-form-item">
+                    <button type="submit" class="layui-btn" lay-submit="" >确 认</button>
+                    <a href="{{route('admin.party')}}"  class="layui-btn" >返 回</a>
+                </div>
+
+            </form>
+        </div>
+    </div>
+@endsection
+
+@section('script')
+    <script type="text/javascript">
+        form.on('checkbox', function (data) {
+            var check = data.elem.checked;//是否选中
+            var checkId = data.elem.id;//当前操作的选项框
+            if (check) {
+                //选中
+                var ids = checkId.split("-");
+                if (ids.length == 3) {
+                    //第三极菜单
+                    //第三极菜单选中,则他的上级选中
+                    $("#" + (ids[0] + '-' + ids[1])).prop("checked", true);
+                    $("#" + (ids[0])).prop("checked", true);
+                } else if (ids.length == 2) {
+                    //第二季菜单
+                    $("#" + (ids[0])).prop("checked", true);
+                    $("input[id*=" + ids[0] + '-' + ids[1] + "]").each(function (i, ele) {
+                        $(ele).prop("checked", true);
+                    });
+                } else {
+                    //第一季菜单不需要做处理
+                    $("input[id*=" + ids[0] + "-]").each(function (i, ele) {
+                        $(ele).prop("checked", true);
+                    });
+                }
+            } else {
+                //取消选中
+                var ids = checkId.split("-");
+                if (ids.length == 2) {
+                    //第二极菜单
+                    $("input[id*=" + ids[0] + '-' + ids[1] + "]").each(function (i, ele) {
+                        $(ele).prop("checked", false);
+                    });
+                } else if (ids.length == 1) {
+                    $("input[id*=" + ids[0] + "-]").each(function (i, ele) {
+                        $(ele).prop("checked", false);
+                    });
+                }
+            }
+            form.render();
+        });
+    </script>
+@endsection
+

+ 36 - 0
resources/views/admin/party/role.blade.php

@@ -0,0 +1,36 @@
+@extends('admin.base')
+
+@section('content')
+    <style>
+        .layui-form-checkbox span{width: 100px}
+    </style>
+    <div class="layui-card">
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <h2>第三方【{{$party->name}}】分配角色</h2>
+        </div>
+        <div class="layui-card-body">
+            <form class="layui-form" action="{{route('admin.party.assignRole',['party'=>$party])}}" method="post">
+                {{csrf_field()}}
+                {{method_field('put')}}
+                <div class="layui-form-item">
+                    <label for="" class="layui-form-label">角色</label>
+                    <div class="layui-input-block" style="width: 400px">
+                        @forelse($roles as $role)
+                            <input type="checkbox" name="roles[]" value="{{$role->id}}" title="{{$role->display_name}}" {{ $role->own ? 'checked' : ''  }} >
+                        @empty
+                            <div class="layui-form-mid layui-word-aux">还没有角色</div>
+                        @endforelse
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <div class="layui-input-block">
+                        <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button>
+                        <a class="layui-btn" href="{{route('admin.party')}}" >返 回</a>
+                    </div>
+                </div>
+            </form>
+        </div>
+    </div>
+@endsection
+
+

+ 55 - 0
resources/views/admin/party/update.blade.php

@@ -0,0 +1,55 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-elem-quote">更新第三方</div>
+    <form class="layui-form" action="{{route('party.update',['role'=>$party])}}" method="post">
+        {{csrf_field()}}
+        {{method_field('put')}}
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">额&nbsp;&nbsp;&nbsp;度</label>
+            <div class="layui-input-inline">
+                <input type="email" name="email" value="{{$party->balance}}" required="" lay-verify="required" placeholder="余额" autocomplete="off" class="layui-input" >
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">第三方名</label>
+            <div class="layui-input-inline">
+                <input type="text" name="name" value="{{$party->name}}" required="" lay-verify="required" placeholder="请输入第三方名" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">联系电话</label>
+            <div class="layui-input-inline">
+                <input type="text" name="tel" value="{{$party->tel}}" required="" lay-verify="required" placeholder="请输入联系电话" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">KEY</label>
+            <div class="layui-input-inline">
+                <input type="text" id="key" name="key" value="{{$party->key}}" placeholder="KEY" autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">不修改则留空</div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">SECRET</label>
+            <div class="layui-input-inline">
+                <input type="text" id="secret" name="secret" value="{{$party->secret}}" placeholder="SECRET" autocomplete="off" class="layui-input">
+            </div>
+            <div class="layui-form-mid layui-word-aux">不修改则留空</div>
+        </div>
+        <div class="layui-form-item">
+            <label for="" class="layui-form-label">确&nbsp;&nbsp;&nbsp;认</label>
+            <div class="layui-input-inline">
+                <input type="password" id="password_confirmation" name="password_confirmation" placeholder="请输入密码" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <div class="layui-input-block">
+                <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button>
+                <a class="layui-btn" href="{{route('party.index')}}" >返 回</a>
+            </div>
+        </div>
+    </form>
+@endsection
+
+

+ 35 - 0
routes/admin.php

@@ -35,6 +35,41 @@ Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>'auth'],funct
     Route::get('icons','IndexController@icons')->name('admin.icons');
 });
 
+//第三方管理
+Route::group(['namespace'=>'Admin','prefix'=>'admin'],function (){
+    //数据表格接口
+    Route::get('party/data', 'PartyController@data')->name('admin.party.data');
+    Route::get('party','PartyController@index')->name('admin.party');
+    //添加
+    Route::get('party/create','PartyController@create')->name('admin.party.create');
+    Route::post('party/store','PartyController@store')->name('admin.party.store')->middleware();
+    //编辑
+    Route::get('party/{id}/edit','PartyController@edit')->name('admin.party.edit')->middleware();
+    Route::put('party/{id}/update','PartyController@update')->name('admin.party.update')->middleware();
+    //删除
+    Route::delete('party/destroy','PartyController@destroy')->name('admin.party.destroy')->middleware();
+
+
+});
+
+//平台管理
+Route::group(['namespace'=>'Admin','prefix'=>'admin'],function (){
+    //数据表格接口
+    Route::get('app/data', 'AppController@data')->name('admin.app.data');
+    Route::get('app','AppController@index')->name('admin.app');
+    //添加
+    Route::get('app/create','AppController@create')->name('admin.app.create');
+    Route::post('app/store','AppController@store')->name('admin.app.store')->middleware();
+    //编辑
+    Route::get('app/{id}/edit','AppController@edit')->name('admin.app.edit')->middleware();
+    Route::put('app/{id}/update','AppController@update')->name('admin.app.update')->middleware();
+    //删除
+    Route::delete('app/destroy','AppController@destroy')->name('admin.app.destroy')->middleware();
+
+
+});
+
+
 Route::group(['namespace'=>'Admin','middleware'=>'auth'],function (){
     //图片上传
     Route::post('gmenu/uploadImg','GmenuController@uploadImg')->name('admin.uploadImg');