Browse Source

账务管理

jekon 6 years ago
parent
commit
a0140af1e4

+ 235 - 0
app/Http/Controllers/Admin/BalanceController.php

@@ -0,0 +1,235 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Http\Requests\BalanceCreateRequest;
+use App\Http\Requests\BalanceUpdateRequest;
+use App\Models\Balance;
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use App\Models\Role;
+
+class BalanceController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function party()
+{
+    return view('admin.balance.index');
+}
+
+    public function partyData(Request $request)
+    {
+        $balanceModel = new Balance();
+        $res = $balanceModel
+            ->select(['ag_balance_log.*','ag_app.appname','ag_party.name'])
+            ->leftJoin('ag_app', 'ag_balance_log.app_id', '=', 'ag_app.id')
+            ->leftJoin('ag_party', 'ag_balance_log.party_id', '=', 'ag_party.id')
+            ->orderBy('ag_balance_log.id','asc')
+            ->paginate($request->get('limit', 30))
+            ->toArray();
+        ;
+
+        foreach ($res['data'] as $key=>$val){
+            $res['data'][$key]['typename'] = $val['type'] == 1 ? '充值' : '扣除';
+        }
+        $data = [
+            'code' => 0,
+            'msg'   => '正在请求中...',
+            'count' => $res['total'],
+            'data'  => $res['data']
+        ];
+        return response()->json($data);
+    }
+
+    public function app()
+    {
+        return view('admin.balance.appIndex');
+    }
+
+    public function appData(Request $request)
+    {
+        $balanceModel = new Balance();
+        $res = $balanceModel
+            ->select(['ag_balance_log.*','ag_app.appname','ag_party.name'])
+            ->leftJoin('ag_app', 'ag_balance_log.app_id', '=', 'ag_app.id')
+            ->leftJoin('ag_party', 'ag_balance_log.party_id', '=', 'ag_party.id')
+            ->orderBy('ag_balance_log.id','asc')
+            ->paginate($request->get('limit', 30))
+            ->toArray();
+        ;
+
+        foreach ($res['data'] as $key=>$val){
+            $res['data'][$key]['typename'] = $val['type'] == 2 ? '充值' : '扣除';
+        }
+        $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(BalanceCreateRequest $request)
+    {
+        $data = $request->all();
+        if (Balance::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 = Balance::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(BalanceUpdateRequest $request, $id)
+    {
+       // $party = Balance::findOrFail($id);
+
+        $data = $request->all();
+        if(empty($data['key'])){
+            unset($data['key']);
+        }
+        if(empty($data['secret'])){
+            unset($data['secret']);
+        }
+        $party = Balance::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 (Balance::destroy($ids)){
+            return response()->json(['code'=>0,'msg'=>'删除成功']);
+        }
+        return response()->json(['code'=>1,'msg'=>'删除失败']);
+    }
+
+    /**
+     * 分配角色
+     */
+    public function role(Request $request,$id)
+    {
+        $party = Balance::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 = Balance::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 = Balance::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 = Balance::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'=>'已更新用户直接权限']);
+    }
+
+}

+ 14 - 0
app/Models/Balance.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class Balance extends Model
+{
+    protected $table = 'ag_balance_log';
+
+    protected $fillable = ['id','type','money', 'app_id', 'app_username', 'party_id', 'party_username', 'billno', 'update_at'];
+
+
+}

+ 56 - 0
resources/views/admin/balance/appIndex.blade.php

@@ -0,0 +1,56 @@
+@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.balance.appData') }}" //数据接口
+                ,where:{model:"balance"}
+                ,page: true //开启分页
+                ,cols: [[ //表头
+                    {checkbox: true,fixed: true}
+                    ,{field: 'id', title: 'ID', sort: true,width:80}
+                    ,{field: 'appname', title: '平台名'}
+                    ,{field: 'app_username', title: '平台用户名'}
+                    ,{field: 'money', title: '金额'}
+                    ,{field: 'typename', title: '类型'}
+                    ,{field: 'name', title: '第三方名'}
+                    ,{field: 'created_at', title: '时间'}
+                ]]
+            });
+        })
+    </script>
+@endsection
+
+
+

+ 56 - 0
resources/views/admin/balance/index.blade.php

@@ -0,0 +1,56 @@
+@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.balance.partyData') }}" //数据接口
+                ,where:{model:"balance"}
+                ,page: true //开启分页
+                ,cols: [[ //表头
+                    {checkbox: true,fixed: true}
+                    ,{field: 'id', title: 'ID', sort: true,width:80}
+                    ,{field: 'name', title: '第三方名'}
+                    ,{field: 'party_username', title: '账号名'}
+                    ,{field: 'money', title: '金额'}
+                    ,{field: 'typename', title: '类型'}
+                    ,{field: 'appname', title: '平台名'}
+                    ,{field: 'created_at', title: '时间'}
+                ]]
+            });
+        })
+    </script>
+@endsection
+
+
+

+ 14 - 0
resources/views/admin/layout.blade.php

@@ -132,6 +132,20 @@
                             </dd>
                         </dl>
                     </li>
+                    <li data-name="finance" class="layui-nav-item layui-nav-itemed">
+                        <a href="javascript:;" lay-tips="账务管理" lay-direction="2">
+                            <i class="layui-icon layui-icon-user"></i>
+                            <cite>账务管理</cite>
+                        </a>
+                        <dl class="layui-nav-child">
+                            <dd data-name="console" class="layui-this">
+                                <a lay-href="{{route('admin.balance.party')}}">第三方账务记录</a>
+                            </dd>
+                            <dd data-name="console">
+                                <a lay-href="{{route('admin.balance.app')}}">平台账务记录</a>
+                            </dd>
+                        </dl>
+                    </li>
                     @foreach($menus as $menu)
                         @can($menu->name)
                         <li data-name="{{$menu->name}}" class="layui-nav-item">

+ 10 - 0
routes/admin.php

@@ -95,6 +95,16 @@ Route::group(['namespace'=>'Admin','prefix'=>'admin', 'middleware'=>'auth'],func
     Route::delete('appUser/destroy','AppUserController@destroy')->name('admin.appUser.destroy')->middleware();
 });
 
+//账务管理
+Route::group(['namespace'=>'Admin','prefix'=>'admin', 'middleware'=>'auth'],function (){
+    //第三方
+    Route::get('balance/partyData', 'BalanceController@partyData')->name('admin.balance.partyData');
+    Route::get('balance/party','BalanceController@party')->name('admin.balance.party');
+    //平台
+    Route::get('balance/appData','BalanceController@appData')->name('admin.balance.appData');
+    Route::get('balance/app','BalanceController@app')->name('admin.balance.app')->middleware();
+});
+
 Route::group(['namespace'=>'Admin','middleware'=>'auth'],function (){
     //图片上传
     Route::post('gmenu/uploadImg','GmenuController@uploadImg')->name('admin.uploadImg');