Ethan пре 6 година
родитељ
комит
b0b13657f9

+ 139 - 0
app/Http/Controllers/Admin/SignController.php

@@ -0,0 +1,139 @@
+<?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 SignController extends PublicController
+{
+
+
+    /**
+     * 视图加载
+     *
+     * @access public
+     * @return array
+     */
+    public function index()
+    {
+        return view('admin.sign.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');
+        }
+        $getReliefBetween = [];
+        if (strlen($request->get('time'))) {
+            $time      = explode(",", $request->get('time'));
+            $startTime = strtotime($time[0]);
+            $endTime   = strtotime($time[1]);
+            // 时间区间.
+            $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()
+
+
+}

+ 43 - 0
app/Http/Controllers/Sys/RankController.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace App\Http\Controllers\Sys;
+
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use \App\Http\Models;
+use App\Http\Models\UserInfo;
+use \Exception;
+
+/**
+ * 排行榜类
+ */
+class RankController extends Controller
+{
+
+
+    /**
+     * 定时任务:更新用户前一天总余额
+     *
+     * @access public
+     * @param mixed $req 数据传输
+     * @return array JsonString
+     */
+    public function activityList(Request $req)
+    {
+        $userInfoModel    = new UserInfo;
+        // 查询用户余额.
+        $getUserSelect              = ['membersDetailed_cash'];
+        $userInfo = $userInfoModel->getUserInfo($getUserSelect, '');
+        // 查询用户游戏余额.
+        $gameMoneySelect              = ['gameMoney_money'];
+        $gameMoney = $userInfoModel->gameMoney($gameMoneySelect, '');
+        /*foreach ($userInfo as $v) {
+            foreach ()
+        }*/
+        $ress = $this->updateBatch('news', $multipleDatas);
+        print_r($gameMoney);die;
+
+    }//end activityList()
+
+
+}

+ 30 - 4
app/Http/Models/UserInfo.php

@@ -34,6 +34,30 @@ class UserInfo extends Model
     }//end userInfo()
 
 
+    /**
+     * 用户详细多个查询
+     *
+     * @access public
+     * @param mixed $where 查询条件
+     * @param mixed $select 查询字段
+     * @return array
+     */
+    public function getUserInfo($select, $where)
+    {
+        // 获取救济金记录.
+        $membersDetailedModel = new Models\MembersDetailed;
+        $result               = $membersDetailedModel->select($select);
+        if (empty($where) === false) {
+            $result = $result->where($where);
+        }
+
+        $result = $result->get();
+
+        return $result;
+
+    }//end getUserInfo()
+
+
     /**
      * 用户游戏余额
      *
@@ -46,10 +70,12 @@ class UserInfo extends Model
     {
         // 获取救济金记录.
         $gameMoneyModel = new Models\GameMoney;
-        $result = $gameMoneyModel
-            ->select($select)
-            ->where($where)
-            ->get();
+        $result         = $gameMoneyModel->select($select);
+        if (empty($where) === false) {
+            $result = $result->where($where);
+        }
+
+        $result = $result->get();
 
         return $result;
 

+ 40 - 0
resources/views/admin/sign/_form.blade.php

@@ -0,0 +1,40 @@
+{{csrf_field()}}
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">游戏地址指向名</label>
+    <div class="layui-input-inline">
+        <input type="text" name="gameUrl_name" value="{{ $gameUrl->gameUrl_name ?? old('gameUrl_name') }}" lay-verify="required" placeholder="请输入游戏地址指向名" 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="gameUrl_type" value="{{$gameUrl->gameUrl_type??old('gameUrl_type')}}" required="required" placeholder="请输入游戏地址指向类型" 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="gameUrl_url" value="{{ $gameUrl->gameUrl_url ?? old('gameUrl_url') }}" lay-verify="required"  placeholder="请输入游戏地址" class="layui-input" style="width: 600px">
+    </div>
+    <br/>
+    <div class="layui-form-mid layui-word-aux" style="padding: 20px 0 !important; margin-left: -200px;">实例:http://www.kaiyou.com/InApi-index/dobusiness</div>
+</div>
+
+<div class="layui-form-item">
+    <label for="" class="layui-form-label">所需参数</label>
+    <div class="layui-input-inline">
+        <input type="text" name="gameUrl_data" value="{{ $gameUrl->gameUrl_data ?? old('gameUrl_data') }}" lay-verify="required"  placeholder="请输入所需参数" class="layui-input" style="width: 750px">
+    </div>
+    <br/>
+    <div class="layui-form-mid layui-word-aux" style="padding: 20px 0 !important; margin-left: -200px;">实例:{"agent":"test1agent","method":"gb"}</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.gameUrl')}}" >返 回</a>
+    </div>
+</div>

+ 69 - 0
resources/views/admin/sign/_js.blade.php

@@ -0,0 +1,69 @@
+<style>
+    #layui-upload-box li{
+        width: 120px;
+        height: 100px;
+        float: left;
+        position: relative;
+        overflow: hidden;
+        margin-right: 10px;
+        border:1px solid #ddd;
+    }
+    #layui-upload-box li img{
+        width: 100%;
+    }
+    #layui-upload-box li p{
+        width: 100%;
+        height: 22px;
+        font-size: 12px;
+        position: absolute;
+        left: 0;
+        bottom: 0;
+        line-height: 22px;
+        text-align: center;
+        color: #fff;
+        background-color: #333;
+        opacity: 0.6;
+    }
+    #layui-upload-box li i{
+        display: block;
+        width: 20px;
+        height:20px;
+        position: absolute;
+        text-align: center;
+        top: 2px;
+        right:2px;
+        z-index:999;
+        cursor: pointer;
+    }
+</style>
+<script>
+    layui.use(['upload'],function () {
+        var upload = layui.upload
+        //普通图片上传
+        var uploadInst = upload.render({
+            elem: '#uploadPic'
+            ,url: '{{ route("admin.uploadImg") }}'
+            ,multiple: false
+            ,data:{"_token":"{{ csrf_token() }}"}
+            ,before: function(obj){
+                //预读本地文件示例,不支持ie8
+                /*obj.preview(function(index, file, result){
+                 $('#layui-upload-box').append('<li><img src="'+result+'" /><p>待上传</p></li>')
+                 });*/
+                obj.preview(function(index, file, result){
+                    $('#layui-upload-box').html('<li><img src="'+result+'" /><p>上传中</p></li>')
+                });
+
+            }
+            ,done: function(res){
+                //如果上传失败
+                if(res.code == 0){
+                    $("#iconUrl").val(res.url);
+                    $('#layui-upload-box li p').text('上传成功');
+                    return layer.msg(res.msg,{icon:6});
+                }
+                return layer.msg(res.msg,{icon:5});
+            }
+        });
+    });
+</script>

+ 18 - 0
resources/views/admin/sign/create.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.gameUrl.store')}}" method="post">
+                @include('admin.gameUrl._form')
+            </form>
+        </div>
+    </div>
+@endsection
+
+@section('script')
+    @include('admin.gameUrl._js')
+@endsection

+ 172 - 0
resources/views/admin/sign/index.blade.php

@@ -0,0 +1,172 @@
+@extends('admin.base')
+
+@section('content')
+    <div class="layui-card">
+        <div class="layui-card-header layuiadmin-card-header-auto">
+            <div class="layui-btn-group ">
+                {{--@can('config.gameUrl.destroy')
+                    <button class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
+                @endcan--}}
+                @can('config.gameUrl.create')
+                    <a class="layui-btn layui-btn-sm" href="{{ route('admin.relief.setting') }}">设置</a>
+                @endcan
+                <button class="layui-btn layui-btn-sm" id="memberSearch">搜索</button>
+            </div>
+            <div class="layui-form">
+
+                <div class="layui-input-inline">
+                    <input type="text" name="userName" id="userName" placeholder="名称" class="layui-input">
+                </div>
+
+                <div class="layui-input-inline">
+                    <input style="width: 200px" type="text" name="time" id="time" placeholder="时间区间" class="layui-input">
+                </div>
+
+            </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">
+                    @can('config.gameUrl.edit')
+                        <a class="layui-btn layui-btn-sm" lay-event="edit">编辑</a>
+                    @endcan
+                    {{--@can('config.gameUrl.destroy')
+                        <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
+                    @endcan--}}
+                </div>
+            </script>
+            {{--<script type="text/html" id="avatar">
+                <a href="@{{d.avatar}}" target="_blank" title="点击查看"><img src="@{{d.avatar}}" alt="" width="28" height="28"></a>
+            </script>--}}
+        </div>
+    </div>
+@endsection
+
+@section('script')
+    @can('config.gameUrl')
+        <script>
+            let endDay = customFormatDateTime(new Date(new Date().setHours(0, 0, 0, 0)) / 1000,'-',1);
+            let startDay = customFormatDateTime((new Date(new Date().setHours(0, 0, 0, 0)) / 1000) - 60 * 60 * 24 * 6,'-',1);
+            $("#time").val(startDay+" , "+endDay);
+            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.relief.data') }}" //数据接口
+                    ,where:{model:"relief"}
+                    ,page: true //开启分页
+                    ,cols: [[ //表头
+                        {checkbox: true,fixed: true}
+                        ,{field: 'getrelief_id', title: 'ID', sort: true,width:80}
+                        ,{field: 'getrelief_identity', title: '工单号'}
+                        ,{field: 'name', title: '用户名'}
+                        ,{field: 'getrelief_mony', title: '领取金额'}
+                        ,{field: 'getrelief_begin_money', title: '用户初始金额'}
+                        ,{field: 'getrelief_end_money', title: '领取后金额'}
+                        ,{field: 'getrelief_addtime', title: '生成时间'}
+
+                        /*,{fixed: 'right', width: 120, 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.gameUrl.destroy') }}",{_method:'delete',ids:[data.gameUrl_id]},function (result) {
+                                if (result.code==0){
+                                    obj.del(); //删除对应行(tr)的DOM结构
+                                }
+                                layer.close(index);
+                                layer.msg(result.msg)
+                            });
+                        });
+                    } else if(layEvent === 'edit'){
+                        location.href = '/admin/gameUrl/'+data.gameUrl_id+'/edit';
+                    }
+                });
+
+                //按钮批量删除
+                $("#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.gameUrl_id)
+                        })
+                    }
+                    if (ids.length>0){
+                        layer.confirm('确认删除吗?', function(index){
+                            $.post("{{ route('admin.gameUrl.destroy') }}",{_method:'delete',ids:ids},function (result) {
+                                if (result.code==0){
+                                    dataTable.reload()
+                                }
+                                layer.close(index);
+                                layer.msg(result.msg)
+                            });
+                        })
+                    }else {
+                        layer.msg('请选择删除项')
+                    }
+                })
+                //搜索
+                $("#memberSearch").click(function () {
+                    var userName = $("#userName").val();
+                    var time = $("#time").val();
+                    dataTable.reload({
+                        where:{userName:userName, time: time},
+                        page:{curr:1}
+                    })
+                })
+            })
+            layui.use('laydate', function () {
+              var laydate = layui.laydate;
+              laydate.render({
+                elem: '#time'
+                , range: ','
+              });
+            });
+            /**
+             * 时间戳转化为年 月 日 时 分 秒
+             * time: 传入时间戳
+             * format:返回格式,支持自定义,但参数必须与formateArr里保持一致
+             */
+            function customFormatDateTime(timeStamp,custom,isDtae) {
+              var date = new Date();
+              date.setTime(timeStamp * 1000);
+              var y = date.getFullYear();
+              var m = date.getMonth() + 1;
+              m = m < 10 ? ('0' + m) : m;
+              var d = date.getDate();
+              d = d < 10 ? ('0' + d) : d;
+              var h = date.getHours();
+              h = h < 10 ? ('0' + h) : h;
+              var minute = date.getMinutes();
+              var second = date.getSeconds();
+              minute = minute < 10 ? ('0' + minute) : minute;
+              second = second < 10 ? ('0' + second) : second;
+              if (isDtae == 0){
+                return y + custom + m //+'student';
+              }else if (isDtae ==1){
+                return y + custom + m + custom + d;
+              } else if (isDtae ==2) {
+                return h + ':' + minute;
+              } else {
+                return y + '-' + m + '-' + d + '-' + h + ':' + minute + ':' + second;
+              }
+            };
+        </script>
+    @endcan
+@endsection
+
+
+

+ 53 - 0
resources/views/admin/sign/setting.blade.php

@@ -0,0 +1,53 @@
+@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.relief.onSetting')}}" method="post">
+                {{csrf_field()}}
+                {{method_field('put')}}
+                <input type="hidden" name="systemconfig_id" value="{{$data['systemconfig_id']}}">
+                <div class="layui-form-item">
+                    <label for="" class="layui-form-label">领取条件:</label>
+                    <div class="layui-input-block" style="display: flex">
+                        <span style="line-height: 2.5;">当玩家金币额度低于</span>
+                        <input style="width: 70px; text-align: right; padding-right: 10px; margin-left: 5px" type="text" name="condition" value="{{ $data['condition']??'' }}" lay-verify="required" placeholder="请输入金额" class="layui-input" >
+                        <span style="line-height: 2.5; margin-left: 5px">可领取</span>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label for="" class="layui-form-label">领取次数:</label>
+                    <div class="layui-input-block" style="display: flex">
+                        <span style="line-height: 2.5;">每日最大领取次数</span>
+                        <input style="width: 70px; text-align: right; padding-right: 10px; margin-left: 5px" type="text" name="count" value="{{ $data['count']??'' }}" lay-verify="required" placeholder="请输入金额" class="layui-input" >
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label for="" class="layui-form-label">领取金额:</label>
+                    <div class="layui-input-block" style="display: flex">
+                        <span style="line-height: 2.5;">每次可以领取金币</span>
+                        <input style="width: 70px; text-align: right; padding-right: 10px; margin-left: 5px" type="text" name="mony" value="{{ $data['mony']??'' }}" lay-verify="required" placeholder="请输入金额" class="layui-input" >
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label for="" class="layui-form-label">启用:</label>
+                    <div class="layui-input-block" style="width: 100px;">
+                        <select name="systemconfig_status" lay-verify="required">
+                            <option value=""></option>
+                            <option value="1" {{$data['systemconfig_status']==1?'selected': ''}}>启用</option>
+                            <option value="2" {{$data['systemconfig_status']==2?'selected': ''}}>停用</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item" style="margin-top: 50px;">
+                    <div class="layui-input-block">
+                        <button type="submit" class="layui-btn" lay-submit="" lay-filter="formDemo">确 认</button>
+                    </div>
+                </div>
+            </form>
+        </div>
+    </div>
+@endsection

+ 12 - 0
routes/admin.php

@@ -182,6 +182,18 @@ Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['aut
         Route::put('relief/onSetting', 'ReliefController@onSetting')->name('admin.relief.onSetting')->middleware('permission:config.relief.setting');
 
 
+    });
+
+    //签到
+    Route::group(['middleware' => 'permission:config.sign'], function () {
+
+        Route::get('sign/data', 'SignController@data')->name('admin.sign.data');
+        Route::get('sign', 'SignController@index')->name('admin.sign');
+        //设置
+        Route::get('sign/setting', 'SignController@setting')->name('admin.sign.setting')->middleware('permission:config.sign.setting');
+        Route::put('sign/onSetting', 'SignController@onSetting')->name('admin.sign.onSetting')->middleware('permission:config.sign.setting');
+
+
     });
 
     //游戏导航菜单