dever 3 年之前
父節點
當前提交
dfd499a4d4

+ 30 - 11
service/agent/database/member.php

@@ -43,13 +43,21 @@ $level = function()
 	}
 	return $array;
 };
-$parent_mid = Dever::input('search_option_parent_mid');
-$getInfo = Dever::input('getInfo');
 
 $info = '';
 $button = array();
-if ($parent_mid && $parent_mid > 0 && $getInfo != 1) {
-    $info = Dever::load('agent/lib/member')->getInfoString($parent_mid) . ', 以下为直推列表:';
+$getInfo = Dever::input('getInfo');
+$pmid = Dever::input('search_option_pmid');
+$parent_mid = Dever::input('search_option_parent_mid');
+$search_api_parent_mid = Dever::input('search_api_parent_mid');
+if ($search_api_parent_mid && $getInfo != 1) {
+    Dever::setInput('search_api_parent_mid', 0);
+    $parent = Dever::db('agent/member')->find(array('mobile' => $search_api_parent_mid));
+    if ($parent) {
+        $info = '上级' . Dever::load('agent/lib/member')->getInfoString($parent) . ', 以下为直推列表:';
+    }
+} elseif ($parent_mid && $parent_mid > 0 && $getInfo != 1) {
+    $info = '上级' . Dever::load('agent/lib/member')->getInfoString($parent_mid) . ', 以下为直推列表:';
     $button = array
     (
         '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $parent_mid),
@@ -89,7 +97,7 @@ return array
             'desc'      => '姓名',
             'match'     => 'is_string',
             'update'    => 'text',
-            'search'    => 'fulltext',
+            'search'    => ($parent_mid || $pmid) ? 'hidden' : 'fulltext',
             'list'      => true,
         ),
 
@@ -125,7 +133,7 @@ return array
             'desc'      => '请输入手机号',
             'match'     => Dever::rule('mobile'),
             'update'    => 'text',
-            'search'    => 'fulltext',
+            'search'    => ($parent_mid || $pmid) ? 'hidden' : 'fulltext',
             'list'      => true,
         ),
 
@@ -186,7 +194,18 @@ return array
                 'result' => 'id',
             ),
             'list_name' => '邀请人',
-            'list'      => $parent_mid ? false : 'Dever::load("agent/member-find#name", {parent_mid})',
+            'list'      => ($parent_mid || $pmid) ? false : 'Dever::load("agent/member-find#name", {parent_mid})',
+        ),
+
+        'pmid'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '邀请人id-废弃无用处',
+            'default'   => '-1',
+            'desc'      => '邀请人',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => 'hidden',
         ),
 
         'code'        => array
@@ -197,7 +216,7 @@ return array
             'desc'      => '邀请码',
             'match'     => 'option',
             //'update'    => 'text',
-            'list'      => $parent_mid ? false : 'Dever::load("invite/api.code", {id})',
+            'list'      => ($parent_mid || $pmid) ? false : 'Dever::load("invite/api.code", {id})',
         ),
 
         'role'      => array
@@ -248,7 +267,7 @@ return array
             'match'     => 'is_numeric',
             'update'    => 'select',
             'update_search' => 'shop/lib/manage.search',
-            'list'      => $parent_mid ? false : '{shop_id} > 0 ? Dever::load("shop/info-one#name", {shop_id}) : "无"',
+            'list'      => ($parent_mid || $pmid) ? false : '{shop_id} > 0 ? Dever::load("shop/info-one#name", {shop_id}) : "无"',
         ),
 
         'type'        => array
@@ -374,7 +393,7 @@ return array
             'desc'      => '销售业绩',
             'match'     => 'is_numeric',
             'update'    => 'text',
-            'list'      => $parent_mid ? true : false,
+            'list'      => ($parent_mid || $pmid) ? true : false,
         ),
 
         'group_sell'      => array
@@ -385,7 +404,7 @@ return array
             'desc'      => '团队销售业绩',
             'match'     => 'is_numeric',
             'update'    => 'text',
-            'list'      => $parent_mid ? true : false,
+            'list'      => ($parent_mid || $pmid) ? true : false,
         ),
 
         'status'        => array

+ 2 - 2
service/agent/database/member_goods.php

@@ -17,8 +17,8 @@ return array
     # 表名
     'name' => 'member_goods',
     # 显示给用户看的名称
-    'lang' => '代理商权益',
-    'menu' => false,
+    'lang' => '权益管理',
+    'order' => 81,
     # 数据结构
     'struct' => array
     (

+ 90 - 0
service/agent/database/member_parent.php

@@ -0,0 +1,90 @@
+<?php
+
+$mid = Dever::input('mid');
+
+$desc = '';
+if ($mid) {
+	$desc = '当前上级' . Dever::load('agent/lib/member')->getInfoString($mid);
+}
+
+
+return array
+(
+    # 表名
+    'name' => 'member_parent',
+    # 显示给用户看的名称
+    'lang' => '代理上级',
+    'menu' => false,
+    'end' => array
+    (
+        'insert' => 'agent/lib/manage.setParent_commit',
+        'update' => 'agent/lib/manage.setParent_commit',
+    ),
+    # 数据结构
+    'struct' => array
+    (
+    
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'search'    => 'order',
+            //'list'        => true,
+        ),
+
+        'mid'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '代理商',
+            'default'   => '-1',
+            'desc'      => '代理商',
+            'match'     => 'is_string',
+            'update'    => 'hidden',
+            'value'		=> $mid,
+        ),
+
+        'parent_mobile'      => array
+        (
+            'type'      => 'bigint-11',
+            'name'      => '输入上级手机号-请谨慎操作,此操作会更改当前代理商的上级,更改后,之前的关系链将断掉',
+            'default'   => '',
+            'desc'      => '邀请人',
+            'match'     => 'is_string',
+            'update'    => 'text',
+        ),
+
+        '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
+    (
+        'desc' => $desc,
+    ),
+
+    'request' => array
+    (
+        
+    ),
+);

+ 37 - 0
service/agent/lib/Manage.php

@@ -6,6 +6,43 @@ use Dever;
 
 class Manage
 {
+    # 设置上级
+    public function setParent_commit($id, $name, $data)
+    {
+        Dever::config('base')->hook = true;
+        $mid = Dever::param('mid', $data);
+        $parent_mobile = trim(Dever::param('parent_mobile', $data));
+        if ($mid && $parent_mobile) {
+            $member = Dever::db('agent/member')->find($mid);
+            $parent = Dever::db('agent/member')->find(array('mobile' => $parent_mobile));
+            if ($parent && $parent['status'] == 2) {
+                if ($member['parent_mid'] == $parent['id']) {
+                    Dever::alert('上级代理商设置失败');
+                    return;
+                }
+                if ($member['parent_mid'] == $mid) {
+                    Dever::alert('上级代理商不能设置为自己');
+                    return;
+                }
+                # 删除之前关系
+                Dever::load('invite/api')->dropRelation($mid, $parent['id']);
+                # 获取所有下级
+                $child = Dever::load('invite/api')->getChild($mid);
+                if ($child) {
+                    foreach ($child as $k => $v) {
+                        Dever::load('invite/api')->dropRelation($v['to_uid'], $parent['id']);
+                    }
+                }
+
+                # 重新设置关系
+                Dever::load('invite/api')->setRelation($mid, $parent['id']);
+                Dever::db('agent/member')->update(array('id' => $mid, 'parent_mid' => $parent['id']));
+            } else {
+                Dever::alert('上级代理商还未注册或者已封禁');
+            }
+        }
+    }
+
     public function orderUpdate($id, $name, $data)
     {
         Dever::config('base')->hook = true;

+ 3 - 4
service/agent/lib/Member.php

@@ -11,7 +11,7 @@ class Member
         $member = $this->getInfo($member);
 
         $info = '代理商信息:'.$member['name'].' '.$member['mobile'].' ' . $member['role']['name'];
-        if ($member) {
+        if ($member && isset($member['level']) && $member['level']) {
             $info .= '('.$member['level']['name'].')';
         }
 
@@ -292,14 +292,13 @@ class Member
         );
         */
 
-        /*
+        $furl = '';
         $button[2]['btn'][] = array
         (
             'type' => 'edit',
-            'link' => Dever::url('lib/member.setStatus?id=' . $member['id'] . '&value=5', 'agent'),
+            'link' => Dever::url('project/database/update?project=agent&table=member_parent&mid='.$member['id'], 'manage'),
             'name' => '设置直推上级',
         );
-        */
 
         $head_btn[] = array
         (