dever 3 anos atrás
pai
commit
6f7b34a171
3 arquivos alterados com 161 adições e 0 exclusões
  1. 116 0
      database/stat.php
  2. 13 0
      database/user.php
  3. 32 0
      lib/Cron.php

+ 116 - 0
database/stat.php

@@ -0,0 +1,116 @@
+<?php
+
+return array
+(
+    # 表名
+    'name' => 'stat',
+    # 显示给用户看的名称
+    'lang' => '用户统计',
+    'order' => -100,
+    'menu'	=> false,
+    # 数据结构
+    'struct' => array
+    (
+    
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'search'    => 'order',
+            //'list'      => true,
+        ), 
+
+        'day'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '日期',
+            'default'   => '',
+            'match'     => 'is_numeric',
+            'desc'      => '',
+            'search'    => 'day',
+            'search_button' => array
+            (
+            	'sum' => 'user',
+            	'option' => array(
+            		'day' => '按天',
+	            	'week' => '按周',
+	            	'month' => '按月',
+            	),
+            ),
+            'order'     => 'desc',
+            'list'      => 'Dever::showDay("{day}")',
+        ),
+
+        'user'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '新增用户量',
+            'default'   => '0',
+            'desc'      => '新增用户量',
+            'match'     => 'option',
+            'update'    => 'text',
+            'list'      => true,
+        ),
+
+        'state'     => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '状态',
+            'default'   => '1',
+            'desc'      => '请选择状态',
+            'match'     => 'is_numeric',
+        ),
+        
+        'cdate'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '生成时间',
+            'match'     => array('is_numeric', time()),
+            'desc'      => '',
+            # 只有insert时才生效
+            'insert'    => true,
+            //'search'    => 'date',
+            //'list'        => 'date("Y-m-d H:i:s", {cdate})',
+            //'list'      => 'Dever::load("service/lib/manage.showOrderTime", "{id}")',
+        ),
+    ),
+
+    'manage' => array
+    (
+        'delete' => false,
+        'edit' => false,
+        'insert' => false,
+        'chart' => array
+        (
+        	'x' => 'day',
+        	'data' => array('user'),
+        ),
+        'data' => array
+        (
+        	array('用户总量', function() {return Dever::db('passport/user')->total();}),
+        	array('今日新增用户量', function() {list($start, $end) = Dever::day();return Dever::db('passport/user')->total(array('start' => $start, 'end' => $end));}),
+        	array('昨日新增用户量', function() {list($start, $end) = Dever::day(1);return Dever::db('passport/user')->total(array('start' => $start, 'end' => $end));}),
+        	array('本月新增用户量', function() {list($start, $end) = Dever::month();return Dever::db('passport/user')->total(array('start' => $start, 'end' => $end));}),
+        ),
+    ),
+
+    'request' => array
+    (
+        # 获取总金额
+        'getAll' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'start' => array('yes-day', '>='),
+                'end' => array('yes-day', '<='),
+                'state' => 1,
+            ),
+            'type' => 'all',
+            'col' => '*',
+        ),
+    ),
+);

+ 13 - 0
database/user.php

@@ -608,5 +608,18 @@ return array
 			'type' => 'one',
 			'col' => 'id,username,avatar,sex,truename,area,mobile,area_id,address,address_contact,address_mobile,info,title,birthday,avatar_id',
 		),
+
+		'getNum' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'start' => array('yes-cdate', '>='),
+                'end' => array('yes-cdate', '<='),
+                'state' => 1,
+            ),
+            'type' => 'count',
+            'col' => '*',
+        ),
 	),
 );

+ 32 - 0
lib/Cron.php

@@ -32,4 +32,36 @@ class Cron
         }
         return 'ok';
     }
+
+    # 获取用户每日新增数量
+    public function user_api(){}
+    public function user()
+    {
+        $num = Dever::input('num', 1);
+        $start = Dever::input('start', date('Y-m-d', strtotime('-'.$num.' day')));
+        $end = Dever::input('end', date('Y-m-d'));
+
+        $start = Dever::maketime($start . ' 00:00:00');
+        $end = Dever::maketime($end . ' 23:59:59');
+        $day = intval(($end - $start)/86400);
+
+        for($i=0; $i<=$day; $i++) {
+            $where['start'] = $start + 86400*$i;
+            $where['end'] = $start + 86400*$i + 86399;
+            $num = Dever::db('passport/user')->getNum($where);
+            if ($num <= 0) {
+                continue;
+            }
+            $data = array();
+            $data['day'] = $where['start'];
+            $info = Dever::db('passport/stat')->find($data);
+            $data['user'] = $num;
+            if (!$info) {
+                Dever::db('passport/stat')->insert($data);
+            } else {
+                $data['where_id'] = $info['id'];
+                Dever::db('passport/stat')->update($data);
+            }
+        }
+    }
 }