allen 3 年之前
父節點
當前提交
6bb9c855cc
共有 3 個文件被更改,包括 121 次插入62 次删除
  1. 14 24
      app/admin/controller/Award.php
  2. 103 17
      app/admin/view/award/index.html
  3. 4 21
      app/index/controller/Index.php

+ 14 - 24
app/admin/controller/Award.php

@@ -10,6 +10,7 @@ use think\admin\helper\QueryHelper;
 use think\admin\service\AdminService;
 use think\admin\service\MenuService;
 use think\admin\service\NodeService;
+use think\facade\Db;
 
 /**
  * 奖品订单管理
@@ -35,21 +36,13 @@ class Award extends Controller
      */
     public function index()
     {
-        $this->_query('UserTaskLog')->layTable(function (){
-            $this->title = '排行榜前50名';
-            $this->type = input('type', 'award');
-        },function (QueryHelper $query){
-            $query->alias('l')
-                ->leftJoin('awards_order o', 'o.uid = l.uid')
-                ->leftJoin('awards_user_info u', 'l.uid = u.uid')
-                ->leftJoin('awards_gift g', 'o.gift_id = g.id')
-                ->field(['l.id', 'l.uid', 'min(l.duration) as duration', 'max(l.number) as number', 'u.nickname', 'o.name', 'o.mobile', 'o.address', 'g.name as giftName', 'FROM_UNIXTIME(o.create_at) as createAt'])
-                ->group('l.uid')
-                ->order('l.number', 'desc')
-                ->order('l.duration', 'asc')->limit(50);
-
-            $query->equal('o.uid')->like('u.nickname');
-        });
+        $lists = Db::query("select l.id, l.uid, u.nickname, o.name, o.mobile, o.address, g.name as giftName, FROM_UNIXTIME(o.create_at) as createAt, l.duration, l.number from awards_user_task_log as l 
+    left join awards_user_info as u on l.uid = u.uid 
+    left join awards_order as o on o.uid = l.uid 
+    left join awards_gift as g on o.gift_id = g.id
+where u.portrait != '' and u.portrait is not null group by l.uid order by l.number desc, l.duration asc limit 50");
+        $this->assign('lists', $lists);
+        $this->fetch();
     }
 
     /**
@@ -62,14 +55,11 @@ class Award extends Controller
      */
     public function award()
     {
-        $data = $this->app->db->name('UserTaskLog')->alias('l')
-            ->leftJoin('awards_order o', 'o.uid = l.uid')
-            ->leftJoin('awards_user_info u', 'o.uid = u.uid')
-            ->leftJoin('awards_gift g', 'o.gift_id = g.id')
-            ->field(['o.id', 'l.uid', 'min(l.duration) as duration', 'max(l.number) as number', 'u.nickname', 'o.name', 'o.mobile', 'o.address', 'g.name as giftName', 'FROM_UNIXTIME(o.create_at) as createAt'])
-            ->group('l.uid')
-            ->order('l.number', 'desc')
-            ->order('l.duration', 'asc')->limit(50)->select();
+        $data = Db::query("select l.id, l.uid, u.nickname, o.name, o.mobile, o.address, g.name as giftName, FROM_UNIXTIME(o.create_at) as createAt, l.duration, l.number from awards_user_task_log as l 
+    left join awards_user_info as u on l.uid = u.uid 
+    left join awards_order as o on o.uid = l.uid 
+    left join awards_gift as g on o.gift_id = g.id
+where u.portrait != '' and u.portrait is not null group by l.uid order by l.number desc, l.duration asc limit 50");
 
         //实例化
         $objExcel = new \PHPExcel();
@@ -97,7 +87,7 @@ class Award extends Controller
             $objActSheet->setCellValue('G' . $k, $v['createAt']);
         }
 
-        $outfile = "中奖信息" . date('Ymd') . ".xlsx";
+        $outfile = "排行榜前50名" . date('Ymd') . ".xlsx";
         ob_end_clean();
         header("Content-Type: application/force-download");
         header("Content-Type: application/octet-stream");

+ 103 - 17
app/admin/view/award/index.html

@@ -3,29 +3,115 @@
 {block name="content"}
 <div class="think-box-shadow">
     {include file='award/index_search'}
-    <table id="award" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
+
+    <div class="layui-form layui-border-box layui-table-view" lay-filter="LAY-table-2" lay-id="luckDraw" style=" height:424px;">
+        <div class="layui-table-box">
+            <div class="layui-table-header">
+                <table cellspacing="0" cellpadding="0" border="0" class="layui-table" lay-even="">
+                    <thead>
+                    <tr>
+                        <th data-field="id" data-key="2-0-1" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-1" align="center">
+                                <span>ID</span>
+                            </div>
+                        </th>
+                        <th data-field="uid" data-key="2-0-2" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-2" align="center">
+                                <span>微博用户UID</span>
+                            </div>
+                        </th>
+                        <th data-field="nickname" data-key="2-0-3" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-3">
+                                <span>微博昵称</span>
+                            </div>
+                        </th>
+                        <th data-field="name" data-key="2-0-4" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-4">
+                                <span>收件人姓名</span>
+                            </div>
+                        </th>
+                        <th data-field="mobile" data-key="2-0-5" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-5">
+                                <span>联系人电话</span>
+                            </div>
+                        </th>
+                        <th data-field="address" data-key="2-0-6" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-6">
+                                <span>收件地址</span>
+                            </div>
+                        </th>
+                        <th data-field="giftName" data-key="2-0-7" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-7">
+                                <span>奖品名称</span>
+                            </div>
+                        </th>
+                        <th data-field="createAt" data-key="2-0-8" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-8">
+                                <span>中奖时间</span>
+                            </div>
+                        </th>
+                    </tr>
+                    </thead>
+                </table>
+            </div>
+            <div class="layui-table-body layui-table-main" style="height: 383px;">
+                <table cellspacing="0" cellpadding="0" border="0" class="layui-table" lay-even="">
+                    <tbody>
+                    {foreach $lists as $val}
+                    <tr data-index="0" class="">
+                        <td data-field="id" data-key="2-0-1" align="center" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-1">{$val['id']}</div>
+                        </td>
+                        <td data-field="uid" data-key="2-0-2" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-2">{$val['uid']}</div>
+                        </td>
+                        <td data-field="nickname" data-key="2-0-3" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-3">{$val['nickname']}</div>
+                        </td>
+                        <td data-field="name" data-key="2-0-4" align="center" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-4">{$val['name']}</div>
+                        </td>
+                        <td data-field="mobile" data-key="2-0-5" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-5">{$val['mobile']}</div>
+                        </td>
+                        <td data-field="address" data-key="2-0-6" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-6">{$val['address']}</div>
+                        </td>
+                        <td data-field="giftName" data-key="2-0-7" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-7">{$val['giftName']}</div>
+                        </td>
+                        <td data-field="createAt" data-key="2-0-8" class="">
+                            <div class="layui-table-cell laytable-cell-2-0-8">{$val['createAt']}</div>
+                        </td>
+                    </tr>
+                    {/foreach}
+                    </tbody>
+                </table>
+            </div>
+        </div>
+        <style>.laytable-cell-2-0-1{ width: 10px; }.laytable-cell-2-0-2{ width: 150px; }.laytable-cell-2-0-3{ width: 150px; }.laytable-cell-2-0-4{ width: 100px; }.laytable-cell-2-0-5{ width: 150px; }.laytable-cell-2-0-6{ width: 220px; }.laytable-cell-2-0-7{ width: 110px; }.laytable-cell-2-0-8{ width: 150px; }</style></div>
 </div>
 {/block}
 
 {block name='script'}
 <script>
     $(function () {
-        $('#award').layTable({
-            even: true, height: 'full',
-            sort: {field: 'id', type: 'desc'},
-            page: false,
-            cols: [[
-                {checkbox: true},
-                {field: 'id', title: 'ID', width: 80, sort: false, align: 'center'},
-                {field: 'uid', title: '微博用户UID', sort: false, align: 'center'},
-                {field: 'nickname', title: '微博昵称', sort: false},
-                {field: 'name', title: '收件人姓名', sort: false},
-                {field: 'mobile', title: '联系人电话', sort: false},
-                {field: 'address', title: '收件地址', sort: false},
-                {field: 'giftName', title: '奖品名称', sort: false},
-                {field: 'createAt', title: '中奖时间', sort: false},
-            ]]
-        });
+        // $('#award').layTable({
+        //     even: true, height: 'full',
+        //     sort: {field: 'id', type: 'desc'},
+        //     page: false,
+        //     cols: [[
+        //         {checkbox: true},
+        //         {field: 'id', title: 'ID', width: 80, sort: false, align: 'center'},
+        //         {field: 'uid', title: '微博用户UID', sort: false, align: 'center'},
+        //         {field: 'nickname', title: '微博昵称', sort: false},
+        //         {field: 'name', title: '收件人姓名', sort: false},
+        //         {field: 'mobile', title: '联系人电话', sort: false},
+        //         {field: 'address', title: '收件地址', sort: false},
+        //         {field: 'giftName', title: '奖品名称', sort: false},
+        //         {field: 'createAt', title: '中奖时间', sort: false},
+        //     ]]
+        // });
     });
 </script>
 {/block}

+ 4 - 21
app/index/controller/Index.php

@@ -473,17 +473,9 @@ class Index extends Controller
      */
     public function topRanking()
     {
-        $ranking = Db::table('awards_user_task_log')->alias("l")
-            ->leftJoin('awards_user_info u', 'l.uid = u.uid')
-            ->field(['u.nickname', 'u.portrait', 'l.uid', 'min(l.duration) as duration', 'max(l.number) as number'])
-            ->where('u.portrait', '<>', '')
-            ->whereNotNull('u.portrait')
-            ->group('l.uid')
-            ->order('l.number', 'desc')
-            ->order('l.duration', 'asc')
-            ->limit(50)
-            ->select();
 
+        $ranking = Db::query("select u.nickname, u.portrait, l.uid, l.duration, l.number from awards_user_task_log as l left join awards_user_info as u on l.uid = u.uid
+where u.portrait != '' and u.portrait is not null group by l.uid order by l.number desc, l.duration asc limit 50");
 
         $userInfo = Db::table('awards_user_task_log')->alias('l')
             ->leftJoin('awards_user_info u', 'l.uid = u.uid')
@@ -512,17 +504,8 @@ class Index extends Controller
      */
     public function newRanking()
     {
-        $ranking = Db::table('awards_user_task_log')->alias("l")
-            ->leftJoin('awards_user_info u', 'l.uid = u.uid')
-            ->field(['u.nickname', 'u.portrait', 'l.uid', 'min(l.duration) as duration', 'max(l.number) as number', 'l.create_at'])
-            ->where('u.portrait', '<>', '')
-            ->whereNotNull('u.portrait')
-            ->group('l.uid')
-            ->order('l.create_at', 'desc')
-            ->order('l.number', 'desc')
-            ->order('l.duration', 'asc')
-            ->limit(50)
-            ->select();
+        $ranking = Db::query("select u.nickname, u.portrait, l.uid, l.duration, l.number from awards_user_task_log as l left join awards_user_info as u on l.uid = u.uid
+where u.portrait != '' and u.portrait is not null group by l.uid order by l.create_at desc, l.number desc, l.duration asc limit 50");
 
         $userInfo = Db::table('awards_user_task_log')->alias('l')
             ->leftJoin('awards_user_info u', 'l.uid = u.uid')