dever 3 years ago
parent
commit
ed89984e45

+ 20 - 0
service/agent/database/member.php

@@ -258,6 +258,26 @@ return array
             'place'     => '660*660',
             'place'     => '660*660',
         ),
         ),
 
 
+        'cash'      => array
+        (
+            'type'      => 'varchar-500',
+            'name'      => '余额',
+            'default'   => '0',
+            'desc'      => '余额',
+            'match'     => 'is_string',
+            'update'    => 'text',
+        ),
+
+        'sell'      => array
+        (
+            'type'      => 'varchar-500',
+            'name'      => '销售业绩',
+            'default'   => '0',
+            'desc'      => '销售业绩',
+            'match'     => 'is_string',
+            'update'    => 'text',
+        ),
+
         'status'        => array
         'status'        => array
         (
         (
             'type'      => 'tinyint-1',
             'type'      => 'tinyint-1',

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

@@ -123,7 +123,7 @@ return array
             # 匹配的正则或函数 选填项
             # 匹配的正则或函数 选填项
             'option' => array
             'option' => array
             (
             (
-                'order_id' => 'yes',
+                'mid' => 'yes',
                 'state' => 1,
                 'state' => 1,
             ),
             ),
             'order' => array('type' => 'asc', 'id' => 'desc'),
             'order' => array('type' => 'asc', 'id' => 'desc'),

+ 1 - 1
service/agent/database/order.php

@@ -167,7 +167,7 @@ return array
                 'col' => 'name',
                 'col' => 'name',
                 'result' => 'id',
                 'result' => 'id',
             ),
             ),
-            'list'      => 'Dever::load("agent/member-find#name", {mid})',
+            'list'      => 'Dever::load("agent/member-find#name", {parent_mid})',
         ),
         ),
 
 
         'name'      => array
         'name'      => array

+ 4 - 2
service/agent/lib/Manage.php

@@ -16,6 +16,7 @@ class Manage
             if ($audit == 1) {
             if ($audit == 1) {
                 $update = array('where_id' => $order_id, 'status' => $status+1);
                 $update = array('where_id' => $order_id, 'status' => $status+1);
                 if ($status == 2) {
                 if ($status == 2) {
+                    $update['pay_status'] = 2;
                     # 财务终审之后,先生成代理商
                     # 财务终审之后,先生成代理商
                     $order = Dever::db('agent/order')->find($order_id);
                     $order = Dever::db('agent/order')->find($order_id);
                     if ($order['mid'] <= 0) {
                     if ($order['mid'] <= 0) {
@@ -44,6 +45,7 @@ class Manage
     # 发放权益
     # 发放权益
     public function setGoods_commit_api()
     public function setGoods_commit_api()
     {
     {
+        Dever::config('base')->hook = true;
         $type = 2;
         $type = 2;
 
 
         $order_id = Dever::input('order_id');
         $order_id = Dever::input('order_id');
@@ -52,6 +54,7 @@ class Manage
         if ($order['status'] != 3) {
         if ($order['status'] != 3) {
             Dever::alert('无发放权限');
             Dever::alert('无发放权限');
         }
         }
+
         if ($order['mid'] <= 0) {
         if ($order['mid'] <= 0) {
             $update = array('where_id' => $order_id);
             $update = array('where_id' => $order_id);
             $where['mobile'] = $order['mobile'];
             $where['mobile'] = $order['mobile'];
@@ -65,7 +68,6 @@ class Manage
                 $data['parent_mid'] = $order['parent_mid'];
                 $data['parent_mid'] = $order['parent_mid'];
                 $update['mid'] = Dever::db('agent/member')->insert($data);
                 $update['mid'] = Dever::db('agent/member')->insert($data);
             }
             }
-            print_r($update);die;
             Dever::db('agent/order')->update($update);
             Dever::db('agent/order')->update($update);
             $order['mid'] = $update['mid'];
             $order['mid'] = $update['mid'];
         }
         }
@@ -78,7 +80,7 @@ class Manage
             $yes = 1;
             $yes = 1;
         } elseif ($order_process) {
         } elseif ($order_process) {
             $order_process['type'] = explode(',', $order_process['type']);
             $order_process['type'] = explode(',', $order_process['type']);
-            if (!in_array($type, $process[3]['type'])) {
+            if (!in_array($type, $order_process['type'])) {
                 # 可以发放
                 # 可以发放
                 $yes = 2;
                 $yes = 2;
             }
             }

+ 1 - 1
service/agent/lib/Member.php

@@ -22,7 +22,7 @@ class Member
         	Dever::alert('邀请码错误');
         	Dever::alert('邀请码错误');
         }
         }
 
 
-        $user = Dever::db('agent/member')->find($where);
+        $user = Dever::db('agent/member')->find($uid);
         if (!$user) {
         if (!$user) {
         	Dever::alert('邀请码错误');
         	Dever::alert('邀请码错误');
         }
         }

+ 92 - 25
service/agent/lib/Order.php

@@ -20,11 +20,11 @@ class Order
     		}
     		}
     		$mobile = $member['mobile'];
     		$mobile = $member['mobile'];
     		$parent_mid = $member['parent_mid'];
     		$parent_mid = $member['parent_mid'];
-    		$data['type'] = $data['type'];
-	        $data['name'] = $data['name'];
-	        $data['idcard'] = $data['idcard'];
-	        $data['idcard_front'] = $data['idcard_front'];
-	        $data['idcard_back'] = $data['idcard_back'];
+    		$data['type'] = $member['type'];
+	        $data['name'] = $member['name'];
+	        $data['idcard'] = $member['idcard'];
+	        $data['idcard_front'] = $member['idcard_front'];
+	        $data['idcard_back'] = $member['idcard_back'];
     	} else {
     	} else {
     		$mobile = Dever::input('mobile');
     		$mobile = Dever::input('mobile');
 	        $where['mobile'] = Dever::load('agent/lib/member')->checkMobile($mobile);
 	        $where['mobile'] = Dever::load('agent/lib/member')->checkMobile($mobile);
@@ -401,7 +401,7 @@ class Order
                 (
                 (
                     array('支付方式', $config['pay_type'][$info['pay_type']]),
                     array('支付方式', $config['pay_type'][$info['pay_type']]),
                     array('支付金额', '¥' . $info['price'] . '元'),
                     array('支付金额', '¥' . $info['price'] . '元'),
-                    array('系统查询', $config['pay_status'][$info['pay_status']]),
+                    array('支付状态', $config['pay_status'][$info['pay_status']]),
                 ),
                 ),
 
 
                 array
                 array
@@ -440,24 +440,91 @@ class Order
         if ($info['status'] == 3 || $info['status'] == 4) {
         if ($info['status'] == 3 || $info['status'] == 4) {
             if ($parent_member) {
             if ($parent_member) {
                 # 这里要获取上级信息
                 # 这里要获取上级信息
+                $table['head'] = array('名称', '角色', '级别', '分润(元)');
+                $table['body'] = array();
+
+                $parents[0] = array('uid' => $parent_member['id'], 'level' => 0);
+                $parents = array_merge($parents, Dever::load('invite/api')->getParentAll($parent_member['id'], 20));
+
+                $parent_name = '邀请人:'.$parent_member['name'].','.$parent_member['mobile'].'&nbsp;&nbsp;邀请人角色:';
+
+                $parent_per = 0;
+                foreach ($parents as $k => $v) {
+                    $parent_info = Dever::db('agent/member')->find($v['uid']);
+                    if ($parent_info) {
+                        $parent_role = Dever::db('setting/role')->find($parent_info['role']);
+                        if ($parent_info['level_id'] > 0) {
+                            $parent_level = Dever::db('setting/level')->find($parent_info['level_id']);
+                        } else {
+                            $parent_level = array('id' => -1, 'name' => '普通', 'level' => 0);
+                        }
+                        $cash = 0;
+
+                        # 获取当前用户的业绩
+                        if (!$parent_info['sell']) {
+                            $parent_info['sell'] = 0;
+                        }
+                        $sell = $parent_info['sell'] + $info['price'];
+                        # 根据业绩获取等级
+                        $level = Dever::db('setting/level')->getOne(array('target' => $sell));
+                        if ($level && $level['level'] > $parent_level['level']) {
+                            # 升级
+                            $old = $parent_level;
+                            $parent_info['level_id'] = $level['id'];
+                            $parent_level = $level;
+                            $parent_level['name'] = $old['name'] . '->' . $level['name'];
+                        }
+
+                        # 获取直推人数
+                        $parent_num = Dever::load('invite/api')->getChildNum($v['uid'], 1) + 1;
+
+                        if ($parent_num >= $parent_level['num']) {
+                            # 达到要求,开始团队分润
+                            if ($parent_per > 0) {
+                                $parent_level['value'] = $parent_level['value'] - $parent_per;
+                            }
+                            if ($parent_level['value'] > 0) {
+                                $cash += $info['price'] * ($parent_level['value']/100);
+                                $parent_per = $parent_level['value'];
+                            }
+                        }
+
+                        if ($k == 0) {
+                            $parent_name .= $parent_role['name'] . '('.$parent_level['name'].')';
+                            # 根据角色获取佣金 直推
+                            $reward = Dever::db('setting/role_reward')->find(array('role_id' => $parent_info['role'], 't_role_id' => $info['role']));
+                            if ($reward) {
+                                if ($reward['num'] == 1) {
+                                    if ($reward['value_type'] == 1) {
+                                        $cash += $info['price'] * ($reward['value']/100);
+                                    } else {
+                                        $cash += $reward['value'];
+                                    }
+                                }
+                            }
+                        }
+
+                        # 根据等级来获取团队佣金
+
+                        $table['body'][] = array($parent_info['name'], $parent_role['name'], $parent_level['name'], $cash);
+                    }
+                }
+                
+                $parent_button[] = array(
+                    'type' => 'link',
+                    'link' => Dever::url('lib/order_set.home?order_id='.$info['id'].'&role_id=' . $info['role'], 'agent'),
+                    'name' => '修改分润金额'
+                );
+                $parent_button[] = array(
+                    'type' => 'link',
+                    'link' => Dever::url('lib/manage.setGoods_commit?order_id='.$info['id'], 'agent'),
+                    'name' => '确认分润比例'
+                );
                 $result['分润信息'] = array
                 $result['分润信息'] = array
                 (
                 (
-                    'type' => 'info',
-                    'content' => array
-                    (
-                        array
-                        (
-                            array('支付方式', $config['pay_type'][$info['pay_type']]),
-                            array('支付金额', '¥' . $info['price'] . '元'),
-                            array('系统查询', $config['pay_status'][$info['pay_status']]),
-                        ),
-
-                        array
-                        (
-                            array('付款备注', $info['desc']),
-                            array('支付凭证', $pay_pic),
-                        ),
-                    ),
+                    'type' => 'table',
+                    'content' => $table,
+                    'head' => array('name' => $parent_name, 'btn' => $parent_button),
                 );
                 );
             }
             }
 
 
@@ -466,6 +533,9 @@ class Order
             }
             }
 
 
             $goods = Dever::db('agent/order_goods')->getData(array('order_id' => $info['id']));
             $goods = Dever::db('agent/order_goods')->getData(array('order_id' => $info['id']));
+            if (!$goods) {
+                $goods = Dever::db('setting/role_goods')->getData(array('role_id' => $info['role'], 'give' => $info['order_type']));
+            }
 
 
             if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(2, $process[3]['type'])) {
             if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(2, $process[3]['type'])) {
                 $process_status = 1;
                 $process_status = 1;
@@ -485,9 +555,6 @@ class Order
                     'link' => Dever::url('lib/manage.setGoods_commit?order_id='.$info['id'], 'agent'),
                     'link' => Dever::url('lib/manage.setGoods_commit?order_id='.$info['id'], 'agent'),
                     'name' => '发放权益'
                     'name' => '发放权益'
                 );
                 );
-                if (!$goods) {
-                    $goods = Dever::db('setting/role_goods')->getData(array('role_id' => $info['role'], 'give' => $info['order_type']));
-                }
             }
             }
             
             
             if ($goods) {
             if ($goods) {

+ 6 - 0
service/agent/src/Auth.php

@@ -103,4 +103,10 @@ class Auth
 
 
         return $this->data;
         return $this->data;
     }
     }
+
+    # 根据邀请码获取邀请人
+    public function getInfoByCode()
+    {
+        return Dever::load('agent/lib/member')->checkCode();
+    }
 }
 }

+ 30 - 6
service/setting/database/level.php

@@ -47,10 +47,21 @@ return array
             'order'     => 'asc',
             'order'     => 'asc',
         ),
         ),
 
 
+        'num'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '直推人数-达到该等级所需要的直推人数',
+            'default'   => '3',
+            'desc'      => '直推人数',
+            'match'     => 'is_numeric',
+            'update'    => 'text',
+            'list'      => true,
+        ),
+
         'target'      => array
         'target'      => array
         (
         (
             'type'      => 'varchar-15',
             'type'      => 'varchar-15',
-            'name'      => '目标额-成为该等级的目标额,以万为单位',
+            'name'      => '目标额-成为该等级的团队业绩总数,以万为单位',
             'default'   => '0',
             'default'   => '0',
             'desc'      => '目标额',
             'desc'      => '目标额',
             'match'     => 'is_string',
             'match'     => 'is_string',
@@ -61,7 +72,18 @@ return array
         'value'      => array
         'value'      => array
         (
         (
             'type'      => 'varchar-15',
             'type'      => 'varchar-15',
-            'name'      => '奖励额-这里以百分比为单位,如输入10,就是10%',
+            'name'      => '补贴额-补贴团队政策,这里以百分比为单位,如输入10,就是每次推广分润10%',
+            'default'   => '0',
+            'desc'      => '补贴额',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'list'      => true,
+        ),
+
+        'target_value'      => array
+        (
+            'type'      => 'varchar-15',
+            'name'      => '奖励额-总业绩的百分比奖励,这里以百分比为单位,如输入10,就是总业绩10%奖励',
             'default'   => '0',
             'default'   => '0',
             'desc'      => '奖励额',
             'desc'      => '奖励额',
             'match'     => 'is_string',
             'match'     => 'is_string',
@@ -120,16 +142,18 @@ return array
 
 
     'request' => array
     'request' => array
     (
     (
-        'getAll' => array
+        'getOne' => array
         (
         (
             # 匹配的正则或函数 选填项
             # 匹配的正则或函数 选填项
             'option' => array
             'option' => array
             (
             (
                 'type' => array('yes', 'in'),
                 'type' => array('yes', 'in'),
-                //'state' => 1,
+                'target' => array('yes', '<='),
+                'state' => 1,
             ),
             ),
-            'type' => 'all',
-            'col' => '*|id',
+            'type' => 'one',
+            'order' => array('level' => 'desc', 'id' => 'desc'),
+            'col' => '*',
         ),
         ),
     ),
     ),
 );
 );