Your Name 2 anni fa
parent
commit
ae610b7743

+ 221 - 0
service/agent/database/member_account_log.php

@@ -0,0 +1,221 @@
+<?php
+
+$mid = Dever::input('search_option_mid');
+$button = array();
+if ($mid) {
+    $button = array
+    (
+        // '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $mid),
+    );
+}
+
+$role = function()
+{
+    $array = array();
+    $data = Dever::load('setting/role-state');
+    if($data)
+    {
+        $array += $data;
+    }
+    return $array;
+};
+
+$type = array
+(
+    // 1 => '购买',
+    1 => '客户自己修改',
+    3 => '后台修改',
+);
+
+return array
+(
+    # 表名
+    'name' => 'member_account_log',
+    # 显示给用户看的名称
+    'lang' => '账户升级变更记录',
+    'order' => 9,
+    # 数据结构
+    'struct' => array
+    (
+    
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'search'    => 'order',
+            'update'    => 'hidden',
+            //'list'        => true,
+        ),
+
+        'mid'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '手机号',
+            'default'   => '-1',
+            'desc'      => '代理商',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => $mid ? 'hidden' : array
+            (
+                'api' => 'agent/member-find',
+                'col' => 'mobile',
+                'result' => 'id',
+            ),
+            'list_name' => '代理商',
+            'list'      => 'Dever::load("agent/lib/member.getOne", {mid})',
+            'list_order' => 1,
+        ),
+
+        'order_id'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '关联订单',
+            'default'   => '',
+            'desc'      => '关联订单',
+            'match'     => 'is_numeric',
+            // 'list'		=> 'Dever::db("agent/order-find#order_num", {order_id})',
+            // 'list'      => true,
+            // 'list_order' => 6,
+        ),
+
+        'agent-member-name'=> array
+        (
+            'name'      => '代理商',
+            'default'   => '',
+            'desc'      => '代理商',
+            'match'     => 'option',
+            # 读取另外表的关联方式
+            'sync'      => array('mid', 'id'),
+            //'list'      => $mid ? false : true,
+            //'list_order' => 3,
+        ),
+
+        // 'agent-member-role'=> array
+        // (
+        //     'name'      => '角色',
+        //     'default'   => '',
+        //     'desc'      => '角色',
+        //     'match'     => 'option',
+        //     # 读取另外表的关联方式
+        //     'sync'      => array('mid', 'id'),
+        //     //'list'      => 'Dever::load("setting/role-find#name", "{agent-member-role}")',
+        //     //'list_order' => 5,
+        // ),
+
+        'price'      => array
+        (
+            'type'      => 'float-11,2',
+            'name'      => '实付金额',
+            'default'   => '0',
+            'desc'      => '金额',
+            'match'     => 'option',
+            'update'    => 'text',
+            'list'      => true,
+        ),
+
+        'old_role'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '升级前代理角色',
+            'default'   => '',
+            'desc'      => '升级前代理角色',
+            'match'     => 'is_numeric',
+            'search'    => 'select',
+            'update'    => 'checkbox',
+            'option'    => $role,
+            'list'      => true,
+        ),
+        'new_role'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '升级后代理角色',
+            'default'   => '',
+            'desc'      => '升级后代理角色',
+            'match'     => 'is_numeric',
+            'search'    => 'select',
+            'update'    => 'checkbox',
+            'option'    => $role,
+            'list'      => true,
+        ),
+        'area'       => array
+        (
+            'type'      => 'varchar-500',
+            'name'      => '升级后区域',
+            'default'   => '',
+            'desc'      => '新区域',
+            'match'     => 'option',
+            'search'    => 'linkage',
+            'update'    => 'linkage',
+            'option'    => Dever::url('api.get?level_total=4', 'old_area'),
+            'list'      => 'Dever::load("area/api.string", "{old_area}")',
+        ),
+        // 'audit_date'     => array
+        // (
+        //     'type'      => 'int-11',
+        //     'name'      => '审核时间',
+        //     'match'     => 'is_numeric',
+        //     'desc'      => '审核时间',
+        //     'default'   => '',
+        // ),
+
+        // 'audit_admin'     => array
+        // (
+        //     'type'      => 'int-11',
+        //     'name'      => '操作人',
+        //     'default'   => '',
+        //     'match'     => 'is_numeric',
+        //     'desc'      => '操作人',
+        //     'list'      => '"{audit_admin}" > 0 ? Dever::load("manage/admin-find#username", {audit_admin}) : "-"',
+        //     // 'list_order'  => 8,
+        // ),
+        '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", {cdate})',
+            'list_order' => 2,
+        ),
+    ),
+
+    'manage' => array
+    (
+        'edit' => false,
+        'insert' => false,
+        'delete' => false,
+        'button' => $button,
+    ),
+
+    'request' => array
+    (
+        'getData' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'mid' => 'yes',
+                'type' => 'yes',
+                'state' => 1,
+            ),
+            'order' => array('type' => 'asc', 'id' => 'desc'),
+            'type' => 'all',
+            'col' => '*, total_num-sell_num as num',
+        ),
+    ),
+);

+ 233 - 0
service/agent/database/member_area_log.php

@@ -0,0 +1,233 @@
+<?php
+
+$mid = Dever::input('search_option_mid');
+$button = array();
+if ($mid) {
+    $button = array
+    (
+        // '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $mid),
+    );
+}
+
+$role = function()
+{
+    $array = array();
+    $data = Dever::load('setting/role-state');
+    if($data)
+    {
+        $array += $data;
+    }
+    return $array;
+};
+
+$type = array
+(
+    // 1 => '购买',
+    1 => '客户自己修改',
+    3 => '后台修改',
+);
+
+return array
+(
+    # 表名
+    'name' => 'member_area_log',
+    # 显示给用户看的名称
+    'lang' => '区域变更记录',
+    'order' => 9,
+    # 数据结构
+    'struct' => array
+    (
+    
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'search'    => 'order',
+            'update'    => 'hidden',
+            //'list'        => true,
+        ),
+
+        'mid'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '手机号',
+            'default'   => '-1',
+            'desc'      => '代理商',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => $mid ? 'hidden' : array
+            (
+                'api' => 'agent/member-find',
+                'col' => 'mobile',
+                'result' => 'id',
+            ),
+            'list_name' => '代理商',
+            'list'      => 'Dever::load("agent/lib/member.getOne", {mid})',
+            'list_order' => 1,
+        ),
+
+        'order_id'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '关联订单',
+            'default'   => '',
+            'desc'      => '关联订单',
+            'match'     => 'is_numeric',
+            // 'list'		=> 'Dever::db("agent/order-find#order_num", {order_id})',
+            // 'list'      => true,
+            // 'list_order' => 6,
+        ),
+
+        'agent-member-name'=> array
+        (
+            'name'      => '代理商',
+            'default'   => '',
+            'desc'      => '代理商',
+            'match'     => 'option',
+            # 读取另外表的关联方式
+            'sync'      => array('mid', 'id'),
+            //'list'      => $mid ? false : true,
+            //'list_order' => 3,
+        ),
+
+        // 'agent-member-role'=> array
+        // (
+        //     'name'      => '角色',
+        //     'default'   => '',
+        //     'desc'      => '角色',
+        //     'match'     => 'option',
+        //     # 读取另外表的关联方式
+        //     'sync'      => array('mid', 'id'),
+        //     //'list'      => 'Dever::load("setting/role-find#name", "{agent-member-role}")',
+        //     //'list_order' => 5,
+        // ),
+
+        'price'      => array
+        (
+            'type'      => 'float-11,2',
+            'name'      => '实付金额',
+            'default'   => '0',
+            'desc'      => '金额',
+            'match'     => 'option',
+            'update'    => 'text',
+            'list'      => true,
+        ),
+
+        'old_role'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '升级前角色',
+            'default'   => '',
+            'desc'      => '升级前角色',
+            'match'     => 'is_numeric',
+            'search'    => 'select',
+            'update'    => 'checkbox',
+            'option'    => $role,
+            'list'      => true,
+        ),
+        'new_role'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '升级后角色',
+            'default'   => '',
+            'desc'      => '升级后角色',
+            'match'     => 'is_numeric',
+            'search'    => 'select',
+            'update'    => 'checkbox',
+            'option'    => $role,
+            'list'      => true,
+        ),
+        'area'       => array
+        (
+            'type'      => 'varchar-500',
+            'name'      => '代理区域',
+            'default'   => '',
+            'desc'      => '代理区域',
+            'match'     => 'option',
+            'search'    => 'linkage',
+            'update'    => 'linkage',
+            'option'    => Dever::url('api.get?level_total=4', 'old_area'),
+            'list'      => 'Dever::load("area/api.string", "{old_area}")',
+        ),
+
+        'type'        => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '类型',
+            'default'   => '1',
+            'desc'      => '类型',
+            'match'     => 'is_numeric',
+            'update'    => 'radio',
+            'option'    => $type,
+        ),
+
+        'audit_date'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '审核时间',
+            'match'     => 'is_numeric',
+            'desc'      => '审核时间',
+            'default'   => '',
+        ),
+
+        'audit_admin'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '操作人',
+            'default'   => '',
+            'match'     => 'is_numeric',
+            'desc'      => '操作人',
+            'list'      => '"{audit_admin}" > 0 ? Dever::load("manage/admin-find#username", {audit_admin}) : "-"',
+            // 'list_order'  => 8,
+        ),
+        '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", {cdate})',
+            'list_order' => 2,
+        ),
+    ),
+
+    'manage' => array
+    (
+        'edit' => false,
+        'insert' => false,
+        'delete' => false,
+        'button' => $button,
+    ),
+
+    'request' => array
+    (
+        'getData' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'mid' => 'yes',
+                'type' => 'yes',
+                'state' => 1,
+            ),
+            'order' => array('type' => 'asc', 'id' => 'desc'),
+            'type' => 'all',
+            'col' => '*, total_num-sell_num as num',
+        ),
+    ),
+);

+ 30 - 67
service/agent/database/order.php

@@ -65,14 +65,7 @@ $pay_type = array
 (
 	1 => '在线支付',
     2 => '汇款',
-    //3 => '个人转账',
-);
-
-$pay_type_manage = array
-(
-    //1 => '在线支付',
-    2 => '汇款',
-    //3 => '个人转账',
+    3 => '个人转账',
 );
 
 $get_type = array
@@ -121,13 +114,6 @@ if ($pmid) {
         '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $pmid),
     );
 }
-
-$invite_type = array
-(
-    1 => '邀请人',
-    2 => '来源',
-);
-
 return array
 (
     # 表名
@@ -143,11 +129,6 @@ return array
     	'pay_type' => $pay_type,
         'order_type' => $order_type,
     ),
-    'start' => array
-    (
-        //'insert' => 'agent/lib/manage.orderUpdate',
-        'update' => 'agent/lib/manage.orderUpdateParent',
-    ),
     'order' => 99,
     # 数据结构
     'struct' => array
@@ -194,18 +175,6 @@ return array
             'list_order' => 1,
         ),
 
-        'mobile'      => array
-        (
-            'type'      => 'bigint-11',
-            'name'      => '手机号',
-            'default'   => '',
-            'desc'      => '请输入手机号',
-            'match'     => Dever::rule('mobile'),
-            'update'    => 'text',
-            'search'    => 'fulltext',
-            //'list'      => true,
-        ),
-
         'order_type'        => array
         (
             'type'      => 'tinyint-1',
@@ -216,29 +185,16 @@ return array
             'option'    => $order_type,
         ),
 
-        'invite_type'        => array
-        (
-            'type'      => 'tinyint-1',
-            'name'      => '邀请类型',
-            'default'   => '1',
-            'desc'      => '邀请类型',
-            'match'     => 'is_numeric',
-            'option'    => $invite_type,
-            'update'    => 'radio',
-            'control'   => 'invite_type',
-        ),
-
-        'parent_code'        => array
+        'mobile'      => array
         (
-            'type'      => 'varchar-50',
-            'name'      => '邀请人邀请码',
+            'type'      => 'bigint-11',
+            'name'      => '手机号',
             'default'   => '',
-            'desc'      => '邀请人邀请码',
-            'match'     => 'option',
+            'desc'      => '请输入手机号',
+            'match'     => Dever::rule('mobile'),
             'update'    => 'text',
-            # 绑定js脚本,更新时使用,第一个参数是执行的方式,第二个参数执行的方法,第三个参数是传值。
-            'bind'        => array('onblur', 'loading', array('url' => Dever::url("lib/member.search", 'agent'))),
-            'show'      => 'invite_type=1',
+            'search'    => 'fulltext',
+            //'list'      => true,
         ),
 
         'parent_mid'      => array
@@ -268,11 +224,10 @@ return array
             'desc'      => '注册来源',
             'match'     => 'is_numeric',
             'search'    => 'select',
-            'update'    => 'select',
+            'update'    => 'checkbox',
             'option'    => $source_id,
             'list'      => true,
             'list_order' => 5,
-            'show'      => 'invite_type=2',
         ),
 
         'name'      => array
@@ -355,11 +310,10 @@ return array
 			'desc' 		=> '支付方式',
 			'match' 	=> 'is_numeric',
 			'search'	=> 'select',
-			'update'	=> 'radio',
-			'option'	=> $pay_type_manage,
+			'update'	=> 'select',
+			'option'	=> $pay_type,
 			'list'		=> true,
             'list_order' => 7,
-            'control'   => 'pay_type',
 		),
 
 		'pay_pic'		=> array
@@ -371,8 +325,7 @@ return array
 			'match' 	=> 'option',
 			'update'	=> 'image',
 			'key' 		=> '1',
-			//'place'		=> '150',
-            'show'      => 'pay_type=2',
+			'place'		=> '150',
 		),
 
         'pay_price'      => array
@@ -411,8 +364,6 @@ return array
             'desc'      => '类型',
             'match'     => 'is_numeric',
             'option'    => $type,
-            'update'    => 'radio',
-            'control'   => 'type',
         ),
 
         'sign'     => array
@@ -447,7 +398,7 @@ return array
             'match'     => 'option',
             'update'    => 'image',
             'key'       => '8',
-            //'place'     => '660*660',
+            'place'     => '660*660',
         ),
 
         'idcard_back'     => array
@@ -459,7 +410,7 @@ return array
             'match'     => 'option',
             'update'    => 'image',
             'key'       => '8',
-            //'place'     => '660*660',
+            'place'     => '660*660',
         ),
 
         'company_name'      => array
@@ -472,7 +423,6 @@ return array
             'update'    => 'text',
             //'search'    => 'fulltext',
             //'list'      => true,
-            'show'      => 'type=2',
         ),
 
         'company_pic'      => array
@@ -484,8 +434,7 @@ return array
             'match'     => 'option',
             'update'    => 'image',
             'key'       => '8',
-           // 'place'     => '660*660',
-            'show'      => 'type=2',
+            'place'     => '660*660',
         ),
 
         'company_number'      => array
@@ -496,7 +445,6 @@ return array
             'desc'      => '营业执照号码',
             'match'     => 'is_string',
             'update'    => 'text',
-            'show'      => 'type=2',
         ),
 
         'address'      => array
@@ -794,5 +742,20 @@ return array
             'type' => 'one',
             'col' => 'sum(goods_cash) as total',
         ),
+
+        'getFindOne' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'id' => array('yes','!='),
+                'mid' => 'yes',
+                'order_type' => 'yes',
+                'state' => 1,
+            ),
+            'type' => 'one',
+            'order' => array('cdate' => 'desc'),
+            'col' => '*',
+        ),
     ),
 );

+ 62 - 17
service/agent/lib/Manage.php

@@ -10,7 +10,8 @@ class Manage
     public function updateArea($id, $name, $data)
     {
         Dever::config('base')->hook = true;
-        $area = Dever::param('area', $data);
+        $id = $id['where_id'];
+        $area = Dever::param('area', $data);#修改后
         $role = Dever::param('role', $data);
         if ($area && is_array($area)) {
             $area_string = implode(',', $area);
@@ -23,7 +24,7 @@ class Manage
             if ($member_role && $member_role['type'] == 2) {
                 Dever::load('area/api')->upStatus($member['area'], 1);
 
-                $area_data = array('mid' => $id, 'area' => $member['area']);
+                $area_data = array('mid' => $id);
                 $area_info = Dever::db('agent/member_area')->find($area_data);
                 if ($area_info) {
                     Dever::db('agent/member_area')->update(array('where_id' => $area_info['id'], 'state' => 2));
@@ -44,11 +45,17 @@ class Manage
                 $area_data['type'] = 3;
                 $area_data['price'] = 0;
                 $area_data['status'] = 1;
+                
                 Dever::db('agent/member_area')->insert($area_data);
+                if(!$member['area']){
+                    $member['area']='';
+                }
+               
+                $this->area_log($id,-1,$area_data['type'],$member['area'],$area,$area_data['price'],$member['role']);
             }
         }
     }
-
+     
     # 获取
     # 设置上级
     public function setParent_commit($id, $name, $data)
@@ -209,10 +216,10 @@ class Manage
                 Dever::db('agent/order')->update(array('where_id' => $order_id, 'fdate' => time(), 'status' => 4, 'goods_status' => $goods_status));
 
                 # 通知短信
-                if (Dever::project('sms')) {
-                    $order = Dever::db('agent/order')->find($order_id);
-                    Dever::load('sms/api')->send('daili_reg_yes', $order['mobile'], array('name' => $order['name']));
-                }
+                // if (Dever::project('sms')) {
+                //     $order = Dever::db('agent/order')->find($order_id);
+                //     Dever::load('sms/api')->send('daili_reg_yes', $order['mobile'], array('name' => $order['name']));
+                // }
 
                 $order = Dever::db('agent/order')->find($order_id);
                 if ($order && $order['mid']) {
@@ -227,28 +234,66 @@ class Manage
 
                     Dever::db('agent/member')->update($update);
 
+                    #账户升级变更记录
+                    $account = array('mid' => $order['mid'], 'order_type' => 2);
+                    if ($order['order_type']==1){
+                        $oldrole['id'] = '';
+                        $newrole['id'] = $order['role'];
+                    }else{
+                        $neworder = Dever::db('agent/order')->state($account);
+                        if (count($neworder)>=2){
+                            $neworder = Dever::db('agent/order')->getFindOne(array('id' => $order['id'],'mid' => $order['mid'],'order_type' => 2,'state' => 1));
+                        }else{
+                            $neworder = Dever::db('agent/order')->find(array('mid' => $order['mid'],'order_type' => 1));
+                        }
+                        $newrole = Dever::db('setting/role')->find($order['role']);
+                        $oldrole = Dever::db('setting/role')->find($neworder['role']);
+                    }
+                    $acc['mid'] = $order['mid'];
+                    $acc['order_id'] = $order['id'];
+                    $acc['old_role'] = $oldrole['id'];
+                    $acc['new_role'] = $newrole['id'];
+                    $acc['price'] = $order['price'];
+                    $acc['area'] = $order['area'];
+                    Dever::db('agent/member_account_log')->insert($acc);
                     # 对区域进行占用
                     $role = Dever::db('setting/role')->one($order['role']);
                     if ($role && $role['type'] == 2) {
                         Dever::load('area/api')->upStatus($order['area'], 2);
-
                         $area_data = array('mid' => $order['mid'], 'order_id' => $order['id'], 'role' => $order['role'], 'area' => $order['area']);
-                        $area = Dever::db('agent/member_area')->find($area_data);
-
-                        if (!$area) {
-                            $area_data['type'] = $order['get_type'];
-                            $area_data['price'] = $order['price'];
-                            $area_data['status'] = 1;
-                            Dever::db('agent/member_area')->insert($area_data);
-                        } else {
-                            Dever::db('agent/member_area')->update(array('where_id' => $area['id'], 'state' => 2));
+                        $area_datas = array('mid' => $order['mid']);
+                        $area = Dever::db('agent/member_area')->find($area_datas);
+                        // print_R($area);die;
+                        if($area){
+                           Dever::db('agent/member_area')->update(array('where_id'=>$area['id'],'set_state'=>2));
                             Dever::load('area/api')->upStatus($area['area'], 1);
+                            $old_area = $area['area'];
                         }
+                        $area_data['price'] = $order['price'];
+                        Dever::db('agent/member_area')->insert($area_data);
+                        
+                        if(!$old_area){
+                            $old_area='';
+                        }
+                        $this->area_log($order['mid'],$order['id'],$order['type'],$old_area,$order['area'],$order['price'],$order['role']);  
                     }
                 }
             }
         }
     }
+    #区域日志
+    public function area_log($mid,$order_id,$type,$old_area,$new_area,$price,$role){
+        $data['mid']=$mid;
+        $data['order_id']=$order_id;
+        $data['type']=$type;
+        $data['old_area']=$old_area;
+        $data['new_area']=$new_area;
+        $data['price']=$price;
+        $data['role']=$role;
+        $ids=Dever::db('agent/member_area_log')->insert($data);
+        return $ids;
+
+    }
 
     # 发放权益
     public function set_commit_api()