dever 7 vuotta sitten
vanhempi
commit
929abe7bcb
2 muutettua tiedostoa jossa 159 lisäystä ja 5 poistoa
  1. 126 0
      task/database/user_level.php
  2. 33 5
      task/src/User.php

+ 126 - 0
task/database/user_level.php

@@ -0,0 +1,126 @@
+<?php
+
+
+$status = array
+(
+	1 => '审核中',
+	2 => '已认证',
+	3 => '未认证',
+);
+
+return array
+(
+	# 表名
+	'name' => 'user_level',
+	# 显示给用户看的名称
+	'lang' => '等级设置',
+	'menu' => 'passport',
+	'order' => 20,
+	'fast' => 10,
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			//'search'	=> 'order',
+			'order'		=> 'desc',
+			'list'		=> true,
+		),
+		
+		'name'		=> array
+		(
+			'type' 		=> 'varchar-80',
+			'name' 		=> '等级名称',
+			'default' 	=> '',
+			'desc' 		=> '等级名称',
+			'match' 	=> 'is_string',
+			'update'	=> 'text',
+			'search'	=> 'fulltext',
+			'list'		=> true,
+		),
+
+		'score'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '等级所需积分',
+			'default' 	=> '0',
+			'desc' 		=> '等级所需积分',
+			'match' 	=> 'is_numeric',
+			'update'	=> 'text',
+			'list'		=> true,
+			'edit'		=> true,
+		),
+
+		'member'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '等级所需成员数',
+			'default' 	=> '0',
+			'desc' 		=> '等级所需成员数',
+			'match' 	=> 'is_numeric',
+			'update'	=> 'text',
+			'list'		=> true,
+			'edit'		=> true,
+		),
+
+		'reorder'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '级别数字(数值越大越高)',
+			'default' 	=> '1',
+			'desc' 		=> '请输入级别',
+			'match' 	=> 'option',
+			'update'	=> 'text',
+			'search'	=> 'order',
+			'list_name' => '排序',
+			'list'		=> true,
+			'order'		=> 'desc',
+			'edit'		=> 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})',
+		),
+	),
+	
+	'manage' => array
+	(
+
+	),
+
+	'default' => array
+	(
+		'col' => 'name,score,member,state, reorder,cdate',
+		'value' => array
+		(
+			'"小队成员","0", "0", 1, 1,' . DEVER_TIME,
+			'"小队长","200", "5", 1, 2,' . DEVER_TIME,
+			'"中队长","1000", "0", 1, 3,' . DEVER_TIME,
+			'"大队长","3000", "0", 1, 4,' . DEVER_TIME,
+			'"大队委员","6000", "0", 1, 5,' . DEVER_TIME,
+			'"合伙人","15000", "0", 1, 6,' . DEVER_TIME,
+		),
+	),
+);

+ 33 - 5
task/src/User.php

@@ -35,19 +35,47 @@ class User extends Base
 
         # 获取消息
         $user['msg'] = Dever::load('message/lib/data.num', $this->data['uid']);
-
         # 获取退出链接
         $user['quit'] = Dever::url('login.quit', 'passport');
 
         # 获取头衔
+        $user['group_name'] = $this->group();
+
+        # 获取手机号
+        $user['mobile'] = Dever::hide($user['mobile']);
+        return $user;
+    }
+
+    # 获取头衔
+    private function group()
+    {
+        $name = '';
+        $where['uid'] = $this->data['uid'];
+        $score = Dever::db('task/user_score')->one($where);
+        $score = $score['score'];
+
         $group = Dever::db('task/user_group')->one(array('uid' => $this->data['uid']));
-        $user['group_name'] = '';
         if ($group) {
-            $user['group_name'] = '小队长';
+            $group_num = Dever::db('task/user_group')->total(array('group_id' => $group['id']));
+        } else {
+            $group_num = 0;
         }
 
-        $user['mobile'] = Dever::hide($user['mobile']);
-        return $user;
+        # 获取用户等级
+        $level = Dever::db('task/user_level')->state();
+        if ($level) {
+            foreach ($level as $k => $v) {
+                if ($v['member'] > 0 && $group_num >= $v['member'] && $v['score'] > 0 && $score >= $v['score']) {
+                    $name = $v['name'];
+                    break;
+                } elseif ($v['member'] <= 0 && $v['score'] >= 0 && $score >= $v['score']) {
+                    $name = $v['name'];
+                    break;
+                }
+            }
+        }
+
+        return $name;
     }
 
     /**