pengchanglu 3 年之前
父節點
當前提交
a92568b67e
共有 2 個文件被更改,包括 90 次插入48 次删除
  1. 63 28
      application/admin/controller/Dashboard.php
  2. 27 20
      application/admin/view/dashboard/index.html

+ 63 - 28
application/admin/controller/Dashboard.php

@@ -4,10 +4,12 @@ namespace app\admin\controller;
 
 use app\admin\model\Admin;
 use app\admin\model\User;
+use app\admin\model\pig\Order;
 use app\common\controller\Backend;
 use app\common\model\Attachment;
 use fast\Date;
 use think\Db;
+use think\Cache;
 
 /**
  * 控制台
@@ -18,6 +20,12 @@ use think\Db;
 class Dashboard extends Backend
 {
 
+    //定义协会 进出
+    protected $_assoc = [
+        'out'=>[2],//安徽协会 产地
+        'in'=>[5],//上海协会 销售地
+    ];
+
     /**
      * 查看
      */
@@ -26,36 +34,55 @@ class Dashboard extends Backend
         try {
             \think\Db::execute("SET @@sql_mode='';");
         } catch (\Exception $e) {
+        }
+
+        $adminid = $this->auth->id;
 
+        $where = [];
+        if (in_array($adminid, $this->_assoc['in'])) {//销售地
+            $province = 'province_id';
+        } elseif (in_array($adminid, $this->_assoc['out'])) {//产地
+            $province = 'source_id';
+        } else {//屠宰场
+            $province = 'source_id';
         }
-        $column = [];
-        $starttime = Date::unixtime('day', -6);
-        $endtime = Date::unixtime('day', 0, 'end');
-        $joinlist = Db("user")->where('jointime', 'between time', [$starttime, $endtime])
-            ->field('jointime, status, COUNT(*) AS nums, DATE_FORMAT(FROM_UNIXTIME(jointime), "%Y-%m-%d") AS join_date')
+
+        $where[$province] = ['in',$this->auth->province_id];
+
+        //缓存图表
+        $key = __FILE__.__FUNCTION__.'orders'.json_encode($adminid);
+        $orders = Cache::get($key);
+        if (!$orders) {
+            $column = [];
+            $starttime = Date::unixtime('day', -6);
+            $endtime = Date::unixtime('day', 0, 'end');
+        //$joinlist = Db("p_order")->where('jointime', 'between time', [$starttime, $endtime])->field('jointime, status, COUNT(*) AS nums, DATE_FORMAT(FROM_UNIXTIME(jointime), "%Y-%m-%d") AS join_date')
+            $joinlist = Db("p_order")->where($where)->field('createtime, status, SUM(num) AS nums, DATE_FORMAT(FROM_UNIXTIME(createtime), "%Y-%m-%d") AS join_date')
             ->group('join_date')
             ->select();
-        for ($time = $starttime; $time <= $endtime;) {
-            $column[] = date("Y-m-d", $time);
-            $time += 86400;
-        }
-        $userlist = array_fill_keys($column, 0);
-        foreach ($joinlist as $k => $v) {
-            $userlist[$v['join_date']] = $v['nums'];
-        }
+            for ($time = $starttime; $time <= $endtime;) {
+                $column[] = date("Y-m-d", $time);
+                $time += 86400;
+            }
+            $userlist = array_fill_keys($column, 0);
+            foreach ($joinlist as $k => $v) {
+                $userlist[$v['join_date']] = $v['nums'];
+            }
+
+            $dbTableList = Db::query("SHOW TABLE STATUS");
+            $datalist = [
+            'totalcode'       => Order::where($where)->sum('num'),//码总数
+            'totalorder'       => Order::where($where)->count(),//订单总数
+            //'totaladdon'      => count(get_addon_list()),
+            //'totaladmin'      => Admin::count();
+            'todaycode' => Order::where($where)->whereTime('createtime', 'today')->sum('num'),//码总数
+            'todayorder'  => Order::where($where)->whereTime('createtime', 'today')->count(),//订单总数
+            'sevencode'        => Order::where($where)->whereTime('createtime', '-7 days')->sum('num'),
+            'sevenorder'        => Order::where($where)->whereTime('createtime', '-7 days')->count(),
+            'thirtycode'       => Order::where($where)->whereTime('createtime', '-30 days')->sum('num'),
+            'thirtyorder'       => Order::where($where)->whereTime('createtime', '-30 days')->count(),
 
-        $dbTableList = Db::query("SHOW TABLE STATUS");
-        $this->view->assign([
-            'totaluser'       => User::count(),
-            'totaladdon'      => count(get_addon_list()),
-            'totaladmin'      => Admin::count(),
             'totalcategory'   => \app\common\model\Category::count(),
-            'todayusersignup' => User::whereTime('jointime', 'today')->count(),
-            'todayuserlogin'  => User::whereTime('logintime', 'today')->count(),
-            'sevendau'        => User::whereTime('jointime|logintime|prevtime', '-7 days')->count(),
-            'thirtydau'       => User::whereTime('jointime|logintime|prevtime', '-30 days')->count(),
-            'threednu'        => User::whereTime('jointime', '-3 days')->count(),
-            'sevendnu'        => User::whereTime('jointime', '-7 days')->count(),
             'dbtablenums'     => count($dbTableList),
             'dbsize'          => array_sum(array_map(function ($item) {
                 return $item['Data_length'] + $item['Index_length'];
@@ -64,12 +91,20 @@ class Dashboard extends Backend
             'attachmentsize'  => Attachment::sum('filesize'),
             'picturenums'     => Attachment::where('mimetype', 'like', 'image/%')->count(),
             'picturesize'     => Attachment::where('mimetype', 'like', 'image/%')->sum('filesize'),
-        ]);
+            ];
+
+            $orders = [];
+            $orders['userlist'] = $userlist;
+            $orders['datalist'] = $datalist;
+            Cache::set($key, $orders, 300);
+        }
+
+        $this->view->assign($orders['datalist']);
+        $this->assignconfig('column', array_keys($orders['userlist']));
+        $this->assignconfig('userdata', array_values($orders['userlist']));
 
-        $this->assignconfig('column', array_keys($userlist));
-        $this->assignconfig('userdata', array_values($userlist));
+        $this->assign('isadmin', $this->auth->id == 1);
 
         return $this->view->fetch();
     }
-
 }

+ 27 - 20
application/admin/view/dashboard/index.html

@@ -164,7 +164,9 @@
         {:build_heading(null, false)}
         <ul class="nav nav-tabs">
             <li class="active"><a href="#one" data-toggle="tab">{:__('Dashboard')}</a></li>
+        <!--
             <li><a href="#two" data-toggle="tab">{:__('Custom')}</a></li>
+        -->
         </ul>
     </div>
     <div class="panel-body">
@@ -172,21 +174,23 @@
             <div class="tab-pane fade active in" id="one">
 
                 <div class="row">
+<!--
                     <div class="col-sm-3 col-xs-6">
                         <div class="sm-st clearfix">
                             <span class="sm-st-icon st-red"><i class="fa fa-users"></i></span>
                             <div class="sm-st-info">
-                                <span>{$totaluser}</span>
+                                <span></span>
                                 {:__('Total user')}
                             </div>
                         </div>
                     </div>
+-->
                     <div class="col-sm-3 col-xs-6">
                         <div class="sm-st clearfix">
                             <span class="sm-st-icon st-violet"><i class="fa fa-magic"></i></span>
                             <div class="sm-st-info">
-                                <span>{$totaladdon}</span>
-                                {:__('Total addon')}
+                                <span>{$totalcode}</span>
+                                溯源码数
                             </div>
                         </div>
                     </div>
@@ -194,20 +198,22 @@
                         <div class="sm-st clearfix">
                             <span class="sm-st-icon st-blue"><i class="fa fa-leaf"></i></span>
                             <div class="sm-st-info">
-                                <span>{$totalcategory}</span>
-                                {:__('Total category')}
+                                <span>{$totalorder}</span>
+                                订单数
                             </div>
                         </div>
                     </div>
+<!--
                     <div class="col-sm-3 col-xs-6">
                         <div class="sm-st clearfix">
                             <span class="sm-st-icon st-green"><i class="fa fa-user"></i></span>
                             <div class="sm-st-info">
-                                <span>{$totaladmin}</span>
+                                <span></span>
                                 {:__('Total admin')}
                             </div>
                         </div>
-                    </div>
+                    </div
+-->
                 </div>
 
                 <div class="row">
@@ -221,8 +227,8 @@
                                     <div class="col-xs-6 stat-col">
                                         <div class="stat-icon"><i class="fa fa-rocket"></i></div>
                                         <div class="stat">
-                                            <div class="value"> {$todayusersignup}</div>
-                                            <div class="name"> {:__('Today user signup')}</div>
+                                            <div class="value"> {$todaycode}</div>
+                                            <div class="name"> 今日溯源码数</div>
                                         </div>
                                         <div class="progress">
                                             <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@@ -231,8 +237,8 @@
                                     <div class="col-xs-6 stat-col">
                                         <div class="stat-icon"><i class="fa fa-vcard"></i></div>
                                         <div class="stat">
-                                            <div class="value"> {$todayuserlogin}</div>
-                                            <div class="name"> {:__('Today user login')}</div>
+                                            <div class="value"> {$todayorder}</div>
+                                            <div class="name"> 今日订单数</div>
                                         </div>
                                         <div class="progress">
                                             <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@@ -241,8 +247,8 @@
                                     <div class="col-xs-6  stat-col">
                                         <div class="stat-icon"><i class="fa fa-calendar"></i></div>
                                         <div class="stat">
-                                            <div class="value"> {$threednu}</div>
-                                            <div class="name"> {:__('Three dnu')}</div>
+                                            <div class="value"> {$sevencode}</div>
+                                            <div class="name"> 7日溯源码数</div>
                                         </div>
                                         <div class="progress">
                                             <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@@ -251,8 +257,8 @@
                                     <div class="col-xs-6 stat-col">
                                         <div class="stat-icon"><i class="fa fa-calendar-plus-o"></i></div>
                                         <div class="stat">
-                                            <div class="value"> {$sevendnu}</div>
-                                            <div class="name"> {:__('Seven dnu')}</div>
+                                            <div class="value"> {$sevenorder}</div>
+                                            <div class="name"> 7日订单数</div>
                                         </div>
                                         <div class="progress">
                                             <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@@ -261,8 +267,8 @@
                                     <div class="col-xs-6  stat-col">
                                         <div class="stat-icon"><i class="fa fa-user-circle"></i></div>
                                         <div class="stat">
-                                            <div class="value"> {$sevendau}</div>
-                                            <div class="name"> {:__('Seven dau')}</div>
+                                            <div class="value"> {$thirtycode}</div>
+                                            <div class="name"> 30日溯源码数</div>
                                         </div>
                                         <div class="progress">
                                             <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@@ -271,8 +277,8 @@
                                     <div class="col-xs-6  stat-col">
                                         <div class="stat-icon"><i class="fa fa-user-circle-o"></i></div>
                                         <div class="stat">
-                                            <div class="value"> {$thirtydau}</div>
-                                            <div class="name"> {:__('Thirty dau')}</div>
+                                            <div class="value"> {$thirtyorder}</div>
+                                            <div class="name"> 30日订单数</div>
                                         </div>
                                         <div class="progress">
                                             <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@@ -283,7 +289,7 @@
                         </div>
                     </div>
                 </div>
-
+{if condition="($isadmin)"}
                 <div class="row" style="margin-top:15px;" id="statistics">
 
                     <div class="col-lg-12">
@@ -390,6 +396,7 @@
                         </div>
                     </div>
                 </div>
+{/if}
             </div>
             <div class="tab-pane fade" id="two">
                 <div class="row">