dever 3 years ago
parent
commit
2de3bbf9ea

+ 12 - 1
service/agent/database/member.php

@@ -431,7 +431,7 @@ return array
             'desc'      => '销售业绩',
             'match'     => 'is_numeric',
             'update'    => 'text',
-            'list'      => ($parent_mid || $pmid) ? true : false,
+            //'list'      => ($parent_mid || $pmid) ? true : false,
         ),
 
         'group_sell'      => array
@@ -479,6 +479,17 @@ return array
         ),
     ),
 
+    'alter' => array
+    (
+        3 => array
+        (
+            array('update', 'cash', 'cash', 'float-11,2 0 余额'),
+            array('update', 'sell', 'sell', 'float-11,2 0 直推业绩-已废弃'),
+            array('update', 'group_sell', 'group_sell', 'float-11,2 0 团队业绩'),
+        ),
+        'version' => 3,
+    ),
+
     'manage' => array
     (
         'insert' => false,

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

@@ -198,7 +198,7 @@ return array
                 'sku_id' => 'yes',
                 'state' => 1,
             ),
-            'order' => array('type' => 'asc', 'id' => 'desc'),
+            'order' => array('type' => 'desc', 'id' => 'desc'),
             'type' => 'all',
             'col' => '*, total_num-sell_num as num',
         ),
@@ -208,6 +208,7 @@ return array
             # 匹配的正则或函数 选填项
             'option' => array
             (
+                'id' => 'yes',
                 'mid' => 'yes',
                 'type' => 'yes',
                 'type_id' => 'yes',

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

@@ -520,6 +520,16 @@ return array
             'update'    => 'text',
         ),
 
+        'goods_cash'      => array
+        (
+            'type'      => 'float-11,2',
+            'name'      => '商品价值-名额不算,商品价值第一次分配后保持不变',
+            'default'   => '0',
+            'desc'      => '商品价值',
+            'match'     => 'option',
+            'update'    => 'text',
+        ),
+
         'state'     => array
         (
             'type'      => 'tinyint-1',
@@ -552,6 +562,16 @@ return array
         ),
     ),
 
+    'alter' => array
+    (
+        3 => array
+        (
+            array('update', 'agent_cash', 'agent_cash', 'float-11,2 0 代理费'),
+            array('update', 'soft_cash', 'soft_cash', 'float-11,2 0 软件服务费'),
+        ),
+        'version' => 3,
+    ),
+
     'manage' => array
     (
         'insert' => false,

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

@@ -112,7 +112,7 @@ return array
                 'config' => 'yes',
                 'state' => 1,
             ),
-            'order' => array('type' => 'asc', 'id' => 'desc'),
+            'order' => array('type' => 'desc', 'id' => 'desc'),
             'type' => 'all',
             'col' => '*',
         ),

+ 6 - 1
service/agent/lib/Dhorder.php

@@ -261,7 +261,12 @@ class Dhorder
         $order_data['price'] = $price;
         $order_data['dh_type'] = $dh_type;
         $order_data['type'] = $type;
-        $order_data['status'] = 2;
+        if ($dh_type == 2) {
+            $order_data['status'] = 5;
+        } else {
+            $order_data['status'] = 2;
+        }
+        
         $order_data['refund_cash'] = 0;
         $order_data['audit'] = 2;
 

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

@@ -319,6 +319,12 @@ class Manage
         $where['type_id'] = $v['type_id'];
         $where['sku_id'] = $v['sku_id'];
         $info = Dever::db('agent/member_goods')->find($where);
+        $t = intval($order['price']/10000);
+        if ($v['type'] == 1) {
+            $v['num'] = $v['num'] * $t;
+        } elseif ($v['type'] == 2) {
+            # 生成一个电子券
+        }
         if ($info) {
             $up['where_id'] = $info['id'];
             $up['total_num'] = $info['total_num'] + $v['num'];
@@ -344,36 +350,36 @@ class Manage
         if ($param) {
             $param = explode(',', $param);
             foreach ($param as $k => $v) {
-                $t = explode('-', $v);
-                $where['type'] = $t[0];
+                $t = Dever::array_decode($v);
+                $where['type'] = $t['type'];
                 $where['order_id'] = $order['id'];
                 $where['mid'] = $order['mid'];
-                $where['parent_mid'] = $t[2];
+                $where['parent_mid'] = $t['parent_mid'];
                 $info = Dever::db('agent/order_cash')->find($where);
                 if (!$info) {
                     $insert = $where;
-                    $insert['cash'] = $t[3];
-                    $insert['per'] = $t[5];
-                    if (isset($t[6])) {
-                        $insert['prize_id'] = $t[6];
+                    $insert['cash'] = $t['cash'];
+                    $insert['per'] = $t['per'];
+                    if (isset($t['prize_id'])) {
+                        $insert['prize_id'] = $t['prize_id'];
                     }
                     Dever::db('agent/order_cash')->insert($insert);
                 } else {
                     $update['where_id'] = $info['id'];
-                    $update['cash'] = $t[3];
-                    $update['per'] = $t[5];
-                    if (isset($t[6])) {
-                        $update['prize_id'] = $t[6];
+                    $update['cash'] = $t['cash'];
+                    $update['per'] = $t['per'];
+                    if (isset($t['prize_id'])) {
+                        $update['prize_id'] = $t['prize_id'];
                     }
                     Dever::db('agent/order_cash')->update($update);
                 }
 
-                if (isset($t[6]) && isset($t[7])) {
-                    $prize_info = Dever::db('setting/prize')->find($t[6]);
+                if (isset($t['prize_id']) && isset($t['child_num'])) {
+                    $prize_info = Dever::db('setting/prize')->find($t['prize_id']);
                     if ($prize_info) {
                         $prize_insert['order_id'] = $order['order_id'];
-                        $prize_insert['mid'] = $t[2];
-                        $prize_insert['child_num'] = $t[7];
+                        $prize_insert['mid'] = $t['parent_mid'];
+                        $prize_insert['child_num'] = $t['child_num'];
                         $prize_insert['prize_id'] = $prize_info['id'];
                         Dever::db('agent/member_prize')->insert($prize_insert);
 
@@ -384,10 +390,24 @@ class Manage
                         $this->addGoods($order, $prize);
                     }
                 }
+                if (isset($t['parent_goods_id'])) {
+                    $parent_goods = Dever::db('agent/member_goods')->getOne(array('id' => $t['parent_goods_id']));
+                    if ($parent_goods && $parent_goods['num'] > 0) {
+                        $parent_prize = Dever::db('setting/prize')->find($parent_goods['type_id']);
+                        $member = Dever::db('agent/member')->find($t['parent_mid']);
+                        if ($member) {
+                            $desc = $parent_prize['name'] . '名额使用';
+                            Dever::load('agent/lib/dhorder')->action($member, $parent_prize['name'], $parent_prize['num'], $parent_prize['price'], array(), -1, 2, 3, $desc);
+                        }
+                    }
+                }
 
+                if (!isset($t['parent_level'])) {
+                    $t['parent_level'] = false;
+                }
                 $member = Dever::db('agent/member')->find($where['mid']);
-                $desc = $member['name'] . '成为代理商,佣金'.$t[5].'%';
-                Dever::load('agent/lib/member')->up($member, $order['id'], $order['role'], $where['type'], $where['parent_mid'], $t[3], $order['agent_cash'], $t[4], $desc);
+                $desc = $member['name'] . '成为代理商,佣金'.$t['per'].'%';
+                Dever::load('agent/lib/member')->up($member, $order['id'], $order['role'], $where['type'], $where['parent_mid'], $t['cash'], $order['agent_cash'], $t['parent_level'], $desc);
             }
         }
     }

+ 6 - 2
service/agent/lib/Member.php

@@ -58,7 +58,7 @@ class Member
             $member['signature'] = $data['signature'];
         }
 
-        $member['birthday_string'] = date('Y-m-d', $member['birthday']);
+        $member['birthday'] = date('Y-m-d', $member['birthday']);
 
         return $member;
     }
@@ -143,11 +143,15 @@ class Member
         if ($level_id) {
             $data['level_id'] = $level_id;
         }
+
+        $method = 'upGroupSell';
+        /*
         if ($type == 1) {
             $method = 'upSell';
         } else {
             $method = 'upGroupSell';
         }
+        */
         $data['clear'] = true;
         Dever::db('agent/member')->$method($data);
 
@@ -418,7 +422,7 @@ class Member
                 array
                 (
                     array('资金余额', '<span style="color:blue">¥' . $member['cash'] . '元</span>'),
-                    array('直推业绩', '<span style="color:blue">¥' . $member['sell'] . '元</span>'),
+                    //array('直推业绩', '<span style="color:blue">¥' . $member['sell'] . '元</span>'),
                     array('团队业绩', '<span style="color:blue">¥' . $member['group_sell'] . '元</span>'),
                 ),
             ),

+ 334 - 289
service/agent/lib/Order.php

@@ -436,12 +436,6 @@ class Order
             array('代理商签名', $sign_pic),
         );
 
-        $cstatus = '';
-        if ($role['soft'] && $role['soft'] && $info['price'] > 0 && $info['status'] > 1) {
-            $cstatus = ',cstatus';
-            //$soft = '【<a href="" style="color:blue">拆分代理费</a>】';
-        }
-
         $result['支付信息'] = array
         (
             'type' => 'info',
@@ -473,7 +467,45 @@ class Order
             ),
         );
 
+        $button = $this->show_button($process, $info, $role);
+
+        if (($info['status'] == 3 || $info['status'] == 4) && $info['agent_cash'] > 0) {
+
+            if (isset($process[3]) && $process[3]) {
+                $process[3]['type'] = explode(',', $process[3]['type']);
+            }
+
+            # 分润信息
+            if ($parent_member) {
+                $this->show_parent($parent_member, $info, $role, $result);
+            }
+
+            # 权益信息
+            $this->show_goods($process, $info, $role, $result);
+
+            # 合同信息
+            $this->show_agreement($process, $info, $role, $result);
+        }
+        
+        
+        $head = array
+        (
+            'name' => '基本信息',
+            'btn' => $button,
+        );
+        $html = Dever::show($head, $result);
+
+        return $html;
+    }
+
+    private function show_button($process, $info, $role)
+    {
         $button = array();
+        $cstatus = '';
+        if ($role['soft'] && $role['soft'] && $info['price'] > 0 && $info['status'] > 1) {
+            $cstatus = ',cstatus';
+            //$soft = '【<a href="" style="color:blue">拆分代理费</a>】';
+        }
 
         if ($info['status'] == 1) {
             $purl = Dever::url('project/database/update?project=agent&table=order_process&order_id='.$info['id'].'&status=1&col=order_id,status,audit,desc', 'manage');
@@ -520,320 +552,333 @@ class Order
             );
         }
 
-        if (($info['status'] == 3 || $info['status'] == 4) && $info['agent_cash'] > 0) {
+        return $button;
+    }
 
-            if (isset($process[3]) && $process[3]) {
-                $process[3]['type'] = explode(',', $process[3]['type']);
-            }
+    private function show_parent($parent_member, $info, $role, &$result)
+    {
+        # 这里要获取上级信息
+        $table = array();
+        $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_per = 0;
+        foreach ($parents as $k => $v) {
+            $parent_info = Dever::db('agent/member')->find($v['uid']);
+            if ($parent_info && $parent_info['status'] == 2) {
+                $child_num = 0;
+                $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, 'num' => 1, 'value' => '0');
+                }
+                $cash = 0;
+                $level = array();
 
-            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_info['status'] == 2) {
-                        $child_num = 0;
-                        $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, 'num' => 1, 'value' => '0');
-                        }
-                        $cash = 0;
-
-                        $order_cash = Dever::db('agent/order_cash')->getData(array('order_id' => $info['id'], 'parent_mid' => $v['uid'], 'type' => 2));
-
-                        if ($order_cash) {
-                            $cash = $order_cash['cash'];
-                            $parent_level['value'] = $order_cash['per'];
-                        } else {
-                            # 根据团队业绩获取等级
-                            # 获取当前用户的团队业绩
-                            if (!$parent_info['group_sell']) {
-                                $parent_info['group_sell'] = 0;
-                            }
-                            $sell = $parent_info['group_sell'] + $info['agent_cash'];
-
-                            $level = Dever::db('setting/level')->getOne(array('target' => ($sell/10000)));
-                            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'];
-                            }
+                $order_cash = Dever::db('agent/order_cash')->getData(array('order_id' => $info['id'], 'parent_mid' => $v['uid'], 'type' => 2));
 
-                            # 获取直推人数
-                            $child_num = Dever::load('invite/api')->getChildNum($v['uid'], 1) + 1;
+                if ($order_cash) {
+                    $cash = $order_cash['cash'];
+                    $parent_level['value'] = $order_cash['per'];
+                } else {
+                    # 根据团队业绩获取等级
+                    # 获取当前用户的团队业绩
+                    if (!$parent_info['group_sell']) {
+                        $parent_info['group_sell'] = 0;
+                    }
+                    $sell = $parent_info['group_sell'] + $info['agent_cash'];
+
+                    $level = Dever::db('setting/level')->getOne(array('target' => ($sell/10000)));
+                    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'];
+                    }
 
-                            if ($parent_level['id'] > 0 && $child_num >= $parent_level['num']) {
-                                # 达到要求,开始团队分润
-                                if ($parent_per > 0) {
-                                    $parent_level['value'] = $parent_level['value'] - $parent_per;
-                                }
-                                if ($parent_level['value'] > 0) {
-                                    $cash += $info['agent_cash'] * ($parent_level['value']/100);
-                                    $parent_per = $parent_level['value'];
-                                }
-                            }
-                        }
+                    # 获取直推人数
+                    $child_num = Dever::load('invite/api')->getChildNum($v['uid'], 1) + 1;
 
-                        if ($k == 0) {
-                            $order_cash = Dever::db('agent/order_cash')->getData(array('order_id' => $info['id'], 'parent_mid' => $v['uid'], 'type' => 1));
-                            $parent_name .= $parent_role['name'] . '('.$parent_level['name'].')';
-                            # 根据角色获取佣金 直推
-                            if (!$order_cash) {
-                                $reward = Dever::db('setting/role_reward')->find(array('role_id' => $parent_info['role'], 't_role_id' => $info['role']));
-                                if ($reward) {
-                                    $zcash = 0;
-                                    $zper = 0;
-                                    if ($reward['num'] == 1) {
-                                        # 每推荐1个,获取直推佣金
-                                        if ($reward['value_type'] == 1) {
-                                            $zcash = $info['agent_cash'] * ($reward['value']/100);
-                                            $zper = $reward['value'];
-                                        } else {
-                                            $zcash = $reward['value'];
-                                            $zper = 0;
-                                        }
-                                    } elseif ($reward['num'] > 1) {
-                                        # 每推荐多少个,获取直推佣金
-                                        if (!$child_num) {
-                                            $child_num = Dever::load('invite/api')->getChildNum($v['uid'], 1) + 1;
-                                        }
-                                        if ($child_num > $reward['num'] && $child_num % $reward['num'] == 0) {
-                                                $zcash = $reward['value'];
-                                                $zper = 0;
-                                        }
-                                    }
-                                    if ($reward['is_give'] == 1) {
-                                        $give = Dever::array_decode($reward['give']);
-                                        if (!$child_num) {
-                                            $child_num = Dever::load('invite/api')->getChildNum($v['uid'], 1) + 1;
-                                        }
-                                        foreach ($give as $gv) {
-                                            if (isset($gv['num']) && $child_num > $gv['num'] && $child_num % $gv['num'] == 0) {
-                                                $prize_log = Dever::db('agent/member_prize')->find(array('mid' => $v['uid'], 'prize_id' => $gv['type'], 'child_num' => $child_num));
-                                                if (!$prize_log) {
-                                                    $prize = Dever::db('setting/prize')->find($gv['type']);
-                                                    $zper .= '-' . $prize['id'] . '-' . $child_num;
-                                                    break;
-                                                }
-                                            }
-                                        }
-                                    }
-
-                                    if ($zcash > 0) {
-                                        if (isset($prize)) {
-                                            $parent_name .= '&nbsp;&nbsp;赠送名额:'.$prize['name'];
-                                        }
-                                        if ($zper > 0) {
-                                            $parent_name .= '&nbsp;&nbsp;直推佣金比例:'.$zper.'%';
-                                        }
-                                        $parent_name .= '&nbsp;&nbsp;直推佣金:<a style="color:blue" class="set_cash" data-param="1-'.$info['id'].'-'.$parent_info['id'].'-'.$zcash.'-'.$parent_level['id'].'-'.$zper.'">' . $zcash . '</a>元';
-                                    }
-                                }
-                            } else {
-                                $zcash = $order_cash['cash'];
-                                if ($order_cash['prize_id'] && $order_cash['prize_id'] > 0) {
-                                    $prize = Dever::db('setting/prize')->find($order_cash['prize_id']);
-                                    if ($prize) {
-                                        $zper .= '-' . $prize['id'];
-                                        $parent_name .= '&nbsp;&nbsp;赠送名额:'.$prize['name'];
-                                    }
-                                }
-                                if ($order_cash['per'] > 0) {
-                                    $parent_name .= '&nbsp;&nbsp;直推佣金比例:'.$order_cash['per'].'%';
-                                }
-                                $parent_name .= '&nbsp;&nbsp;直推佣金:<a style="color:blue">' . $zcash . '</a>元';
-                            }
+                    if ($parent_level['id'] > 0 && $child_num >= $parent_level['num']) {
+                        # 达到要求,开始团队分润
+                        if ($parent_per > 0) {
+                            $parent_level['value'] = $parent_level['value'] - $parent_per;
                         }
-                        if ($parent_level['id'] > 0) {
-                            $cash = '<a style="color:blue" class="set_cash" data-param="2-'.$info['id'].'-'.$parent_info['id'].'-'.$cash.'-'.$parent_level['id'].'-'.$parent_level['value'].'">' . $cash . '</a>';
-
-                            $table['body'][] = array($parent_info['name'], $parent_role['name'], $parent_level['name'], $parent_level['value'] . '%', $cash);
+                        if ($parent_level['value'] > 0) {
+                            $cash += $info['agent_cash'] * ($parent_level['value']/100);
+                            $parent_per = $parent_level['value'];
                         }
                     }
                 }
 
-                if (!$table['body']) {
-                    $table['head'] = array();
+                # 直推佣金
+                if ($k == 0) {
+                    $parent_name = $this->show_parent_reward($parent_info, $info, $role, $v, $parent_role, $parent_level);
                 }
+                if ($parent_level['id'] > 0) {
+
+                    $param = array();
+                    $param['type'] = 2;
+                    $param['order_id'] = $info['id'];
+                    $param['parent_mid'] = $parent_info['id'];
+                    if (isset($level) && $level) {
+                        $param['parent_level'] = $level['id'];
+                    }
+                    
+                    $param['cash'] = $cash;
+                    $param['per'] = $parent_level['value'];
 
-                if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(3, $process[3]['type'])) {
-                    $parent_title = '(已发放分润)';
-                    $parent_button = array();
-                } else {
-                    $parent_title = '(未发放分润)';
-                    /*
-                    $parent_button[] = array
-                    (
-                        'type' => 'link',
-                        'link' => Dever::url('lib/order_set.home?order_id='.$info['id'].'&role_id=' . $info['role'], 'agent'),
-                        'name' => '修改分润金额'
-                    );*/
-
-                    $furl = Dever::url('lib/manage.set_commit?json=1&type=3&order_id='.$info['id'], 'agent');
-                    $parent_button[] = array
-                    (
-                        'type' => 'click',
-                        'content' => 'setCash()',
-                        'name' => '确认发放分润<script>function setCash(){layer.confirm(\'确定进行此项操作吗?\', function(){var cash = [];$(\'.set_cash\').each(function(){cash.push($(this).attr(\'data-param\'));});$.post(\''.$furl.'\',{param:cash.join(",")}, function(t){t=JSON.parse(t);showYes(t)})})}</script>'
-                    );
+                    $data_param = Dever::array_encode($param);
+
+                    $cash = '<a style="color:blue" class="set_cash" data-param="'.$data_param.'">' . $cash . '</a>';
+
+                    $table['body'][] = array($parent_info['name'], $parent_role['name'], $parent_level['name'], $parent_level['value'] . '%', $cash);
                 }
-                
-                $result['分润信息' . $parent_title] = array
-                (
-                    'type' => 'table',
-                    'content' => $table,
-                    'head' => array('name' => '<span>' . $parent_name . '</span>', 'btn' => $parent_button),
-                );
             }
+        }
 
-            $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 (!$table['body']) {
+            $table['head'] = array();
+        }
 
-            if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(2, $process[3]['type'])) {
-                $process_status = 1;
-                $process_title = '(已发放权益)';
-                $process_button = array();
-            } else {
-                $process_status = 2;
-                $process_title = '(未发放权益)';
-                
-                $process_button[] = array(
-                    'type' => 'link',
-                    'link' => Dever::url('lib/order_set.home?order_id='.$info['id'].'&role_id=' . $info['role'], 'agent'),
-                    'name' => '修改权益'
-                );
-                $process_button[] = array(
-                    'type' => 'action',
-                    'link' => Dever::url('lib/manage.set_commit?json=1&type=2&order_id='.$info['id'], 'agent'),
-                    'name' => '确认发放权益'
-                );
-            }
-            
-            if ($goods) {
-                foreach ($goods as $k => $v) {
-                    if ($v['type'] == 1) {
-                        $goods_info = Dever::load('goods/lib/info')->getInfoBySku($v['type_id'], $v['sku_id']);
-                        if (isset($goods_info['sku'])) {
-                            $sku = $goods_info['sku']['string'];
-                        } else {
-                            $sku = '无';
+        if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(3, $process[3]['type'])) {
+            $parent_title = '(已发放分润)';
+            $parent_button = array();
+        } else {
+            $parent_title = '(未发放分润)';
+            /*
+            $parent_button[] = array
+            (
+                'type' => 'link',
+                'link' => Dever::url('lib/order_set.home?order_id='.$info['id'].'&role_id=' . $info['role'], 'agent'),
+                'name' => '修改分润金额'
+            );*/
+
+            $furl = Dever::url('lib/manage.set_commit?json=1&type=3&order_id='.$info['id'], 'agent');
+            $parent_button[] = array
+            (
+                'type' => 'click',
+                'content' => 'setCash()',
+                'name' => '确认发放分润<script>function setCash(){layer.confirm(\'确定进行此项操作吗?\', function(){var cash = [];$(\'.set_cash\').each(function(){cash.push($(this).attr(\'data-param\'));});$.post(\''.$furl.'\',{param:cash.join(",")}, function(t){t=JSON.parse(t);showYes(t)})})}</script>'
+            );
+        }
+        
+        $result['分润信息' . $parent_title] = array
+        (
+            'type' => 'table',
+            'content' => $table,
+            'head' => array('name' => '<span>' . $parent_name . '</span>', 'btn' => $parent_button),
+        );
+    }
+
+    private function show_parent_reward($parent_info, $info, $role, $v, $parent_role, $parent_level)
+    {
+        $parent_name = '邀请人:'.$parent_info['name'].','.$parent_info['mobile'].'&nbsp;&nbsp;邀请人角色:';
+
+        $order_cash = Dever::db('agent/order_cash')->getData(array('order_id' => $info['id'], 'parent_mid' => $v['uid'], 'type' => 1));
+        $parent_name .= $parent_role['name'] . '('.$parent_level['name'].')';
+        # 根据角色获取佣金 直推
+        if (!$order_cash) {
+            $reward = Dever::db('setting/role_reward')->find(array('role_id' => $parent_info['role'], 't_role_id' => $info['role']));
+            if ($reward) {
+                $param = array();
+                $param['type'] = 1;
+                $param['order_id'] = $info['id'];
+                $param['parent_mid'] = $parent_info['id'];
+                $param['cash'] = 0;
+                $param['per'] = 0;
+
+                if ($reward['num'] == 1) {
+                    # 每推荐1个,获取直推佣金
+                    if ($reward['value_type'] == 1) {
+                        # 检测有没有创客名额
+                        if ($role['id'] == 6) {
+                            $parent_goods = Dever::db('agent/member_goods')->getOne(array('mid' => $v['uid'], 'type' => 3));
+                            if ($parent_goods && $parent_goods['num'] > 0) {
+                                $parent_prize = Dever::db('setting/prize')->find($parent_goods['type_id']);
+                                if ($parent_prize && $parent_prize['type'] == 2) {
+                                    $reward['value'] = $parent_prize['per'];
+                                    $param['parent_goods_id'] = $parent_goods['id'];
+                                }
+                            }
                         }
-                        $del = Dever::url('order_tui?order_goods_id=' . $v['id'] . '&order_id=' . $info['id'] . '&type=13', 'factory');
-
-                        $status = '<a href="javascript:;" onclick="audit('.$v['id'].', 2, \''.$del.'\')" class="layui-btn">删除</a>';
-
-                        $d = array
-                        (
-                            'pic' => $goods_info['cover'],
-                            'name' => $goods_info['name'],
-                            'sku' => $sku,
-                            'price' => $goods_info['price'],
-                            'num' => $v['num'],
-                            //'status' => $status,
-                        );
-                    } elseif ($v['type'] == 2) {
-                        $card = Dever::db('card/info')->find($v['type_id']);
-
-                        $d = array
-                        (
-                            //'pic' => $goods_info['cover'],
-                            'name' => $card['name'],
-                            'sku' => '',
-                            'price' => $card['price'],
-                            'num' => $v['num'],
-                            //'status' => $status,
-                        );
-                    } elseif ($v['type'] == 3) {
-                        $prize = Dever::db('setting/role_goods')->config['set']['prize'];
-                        $d = array
-                        (
-                            //'pic' => $goods_info['cover'],
-                            'name' => $prize[$v['type_id']],
-                            'sku' => '',
-                            'price' => 0,
-                            'num' => $v['num'],
-                            //'status' => $status,
-                        );
+                        
+                        $param['cash'] = $info['agent_cash'] * ($reward['value']/100);
+                        $param['per'] = $reward['value'];
+                    } else {
+                        $param['cash'] = $reward['value'];
+                        $param['per'] = 0;
+                    }
+                } elseif ($reward['num'] > 1) {
+                    # 每推荐多少个,获取直推佣金
+                    if (!$child_num) {
+                        $child_num = Dever::load('invite/api')->getChildNum($v['uid'], 1) + 1;
+                    }
+                    if ($child_num > $reward['num'] && $child_num % $reward['num'] == 0) {
+                            $param['cash'] = $reward['value'];
+                            $param['per'] = 0;
                     }
-                    
-                    $body[] = $d;
                 }
 
-                $result['权益信息' . $process_title] = array
-                (
-                    'type' => 'list',
-                    'head' => array('name' => '权益列表:', 'btn' => $process_button),
-                    'content' => $body,
-                );
-            }
-
-            $body = array();
-            $agreement_type = Dever::db('setting/agreement')->config['config_type'];
-            if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(5, $process[3]['type'])) {
-                $agreement_status = 1;
-                $agreement_title = '(已生成合同)';
-                $agreement_button = array();
+                if ($reward['is_give'] == 1) {
+                    $give = Dever::array_decode($reward['give']);
+                    if (!$child_num) {
+                        $child_num = Dever::load('invite/api')->getChildNum($v['uid'], 1) + 1;
+                    }
+                    foreach ($give as $gv) {
+                        if (isset($gv['num']) && $child_num > $gv['num'] && $child_num % $gv['num'] == 0) {
+                            $prize_log = Dever::db('agent/member_prize')->find(array('mid' => $v['uid'], 'prize_id' => $gv['type'], 'child_num' => $child_num));
+                            if (!$prize_log) {
+                                $prize = Dever::db('setting/prize')->find($gv['type']);
+                                $param['prize_id'] = $prize['id'];
+                                $param['child_num'] = $child_num;
+                                break;
+                            }
+                        }
+                    }
+                }
 
-                $agreement = Dever::db('agent/member_agreement')->getData(array('order_id' => $info['id']));
-                foreach ($agreement as $k => $v) {
-                    $agreement_info = Dever::db('setting/agreement')->find($v['agreement_id']);
+                if ($param['cash'] > 0) {
+                    
+                    if (isset($prize)) {
+                        $parent_name .= '&nbsp;&nbsp;赠送名额:'.$prize['name'];
+                    }
+                    if ($param['per'] > 0) {
+                        $parent_name .= '&nbsp;&nbsp;直推佣金比例:'.$param['per'].'%';
+                    }
+                    $data_param = Dever::array_encode($param);
+                    $parent_name .= '&nbsp;&nbsp;直推佣金:<a style="color:blue" class="set_cash" data-param="'.$data_param.'">' . $param['cash'] . '</a>元';
+                    if (isset($parent_goods)) {
 
-                    $body[] = array($agreement_type[$agreement_info['type']], Dever::load('agent/lib/agreement')->name($agreement_info, $v, $role, 2));
+                    }
+                }
+            }
+        } else {
+            if ($order_cash['prize_id'] && $order_cash['prize_id'] > 0) {
+                $prize = Dever::db('setting/prize')->find($order_cash['prize_id']);
+                if ($prize) {
+                    $parent_name .= '&nbsp;&nbsp;赠送名额:'.$prize['name'];
                 }
+            }
+            if ($order_cash['per'] > 0) {
+                $parent_name .= '&nbsp;&nbsp;直推佣金比例:'.$order_cash['per'].'%';
+            }
+            $parent_name .= '&nbsp;&nbsp;直推佣金:<a style="color:blue">' . $order_cash['cash'] . '</a>元';
+        }
 
-            } else {
-                $agreement_status = 2;
-                $agreement_title = '(未生成合同)';
-                
-                $agreement_button[] = array(
-                    'type' => 'action',
-                    'link' => Dever::url('lib/manage.set_commit?json=1&type=5&order_id='.$info['id'], 'agent'),
-                    'name' => '生成代理合同'
-                );
-
-                $agreement = Dever::db('setting/agreement')->getData();
-                $body[] = array($agreement_type[$agreement[1]['type']], Dever::load('agent/lib/agreement')->name($agreement[1], $info, $role, 1));
-                if ($info['order_type'] == 2) {
-                    # 升级的话,增加解除合同
-                    $body[] = array($agreement_type[$agreement[2]['type']], Dever::load('agent/lib/agreement')->name($agreement[2], $info, $role, 1));
-                } else {
-                    $body[] = array($agreement_type[$agreement[4]['type']], Dever::load('agent/lib/agreement')->name($agreement[4], $info, $role, 1));
+        return $parent_name;
+    }
+
+    private function show_goods($process, $info, $role, &$result)
+    {
+        $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'])) {
+            $process_status = 1;
+            $process_title = '(已发放权益)';
+            $process_button = array();
+        } else {
+            $process_status = 2;
+            $process_title = '(未发放权益)';
+            
+            $process_button[] = array(
+                'type' => 'link',
+                'link' => Dever::url('lib/order_set.home?order_id='.$info['id'].'&role_id=' . $info['role'], 'agent'),
+                'name' => '修改权益'
+            );
+            $process_button[] = array(
+                'type' => 'action',
+                'link' => Dever::url('lib/manage.set_commit?json=1&type=2&order_id='.$info['id'], 'agent'),
+                'name' => '确认发放权益'
+            );
+        }
+        
+        if ($goods) {
+            $table = array();
+            $table['head'] = array('权益类型', '权益名称', '权益价值', '权益数量');
+            $table['body'] = array();
+            $t = intval($info['price']/10000);
+            foreach ($goods as $k => $v) {
+                if ($v['type'] == 1) {
+                    $goods_info = Dever::load('goods/lib/info')->getInfoBySku($v['type_id'], $v['sku_id']);
+                    if (isset($goods_info['sku'])) {
+                        $sku = '-' . $goods_info['sku']['string'];
+                    } else {
+                        $sku = '';
+                    }
+                    $v['num'] = $v['num'] * $t;
+                    $table['body'][] = array('商品', $goods_info['name'] . $sku, $goods_info['price'], $v['num']);
+                } elseif ($v['type'] == 2) {
+                    $card = Dever::db('card/info')->find($v['type_id']);
+                    $card['price'] = $card['price'] * $t;
+                    $table['body'][] = array('电子券', $card['name'], $card['price'], $v['num']);
+                } elseif ($v['type'] == 3) {
+                    $prize = Dever::db('setting/prize')->find($v['type_id']);
+                    $table['body'][] = array('名额', $prize['name'], $prize['price'], $v['num']);
                 }
             }
 
-            $result['代理合同' . $agreement_title] = array
+            $result['权益信息' . $process_title] = array
             (
-                'type' => 'info',
-                'head' => array('name' => '&nbsp;', 'btn' => $agreement_button),
-                'content' => array
-                (
-                    $body,
-                )
+                'type' => 'table',
+                'head' => array('name' => '权益列表:', 'btn' => $process_button),
+                'content' => $table,
             );
         }
-        
-        
-        $head = array
+    }
+
+    # 合同
+    private function show_agreement($process, $info, $role, &$result)
+    {
+        $table = array();
+        $table['head'] = array('合同类型', '合同名称');
+        $table['body'] = array();
+        $agreement_type = Dever::db('setting/agreement')->config['config_type'];
+        if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(5, $process[3]['type'])) {
+            $agreement_status = 1;
+            $agreement_title = '(已生成合同)';
+            $agreement_button = array();
+
+            $agreement = Dever::db('agent/member_agreement')->getData(array('order_id' => $info['id']));
+            foreach ($agreement as $k => $v) {
+                $agreement_info = Dever::db('setting/agreement')->find($v['agreement_id']);
+
+                $table['body'][] = array($agreement_type[$agreement_info['type']], Dever::load('agent/lib/agreement')->name($agreement_info, $v, $role, 2));
+            }
+
+        } else {
+            $agreement_status = 2;
+            $agreement_title = '(未生成合同)';
+            
+            $agreement_button[] = array(
+                'type' => 'action',
+                'link' => Dever::url('lib/manage.set_commit?json=1&type=5&order_id='.$info['id'], 'agent'),
+                'name' => '生成代理合同'
+            );
+
+            $agreement = Dever::db('setting/agreement')->getData();
+            $table['body'][] = array($agreement_type[$agreement[1]['type']], Dever::load('agent/lib/agreement')->name($agreement[1], $info, $role, 1));
+            if ($info['order_type'] == 2) {
+                # 升级的话,增加解除合同
+                $table['body'][] = array($agreement_type[$agreement[2]['type']], Dever::load('agent/lib/agreement')->name($agreement[2], $info, $role, 1));
+            } else {
+                $table['body'][] = array($agreement_type[$agreement[4]['type']], Dever::load('agent/lib/agreement')->name($agreement[4], $info, $role, 1));
+            }
+        }
+
+        $result['代理合同' . $agreement_title] = array
         (
-            'name' => '基本信息',
-            'btn' => $button,
+            'type' => 'table',
+            'head' => array('name' => '&nbsp;', 'btn' => $agreement_button),
+            'content' => $table
         );
-        $html = Dever::show($head, $result);
-
-        return $html;
     }
 }

+ 32 - 28
service/agent/lib/Set.php

@@ -34,37 +34,39 @@ class Set
                 $value = $order_id;
             }
         }
-
         $data = array();
-
-        /*
         $prize = Dever::db('setting/prize')->select();
-
-        $data[0]['id'] = -1;
-        $data[0]['name'] = '名额';
-        $data[0]['price'] = 0;
-        $data[0]['price_type'] = 2;
-        $data[0]['select'] = 2;
-        $data[0]['del'] = 1;
-        $data[0]['total'] = 0;
-        foreach ($prize as $k => $v) {
-            $data[1]['children'][$k]['id'] = $v['id'] . '_3';
-            $data[1]['children'][$k]['name'] = $v['name'];
-            $data[1]['children'][$k]['price'] = $v['price'];
-            $data[1]['children'][$k]['price_type'] = 2;
-            $data[1]['children'][$k]['select'] = 2;
-            $data[1]['children'][$k]['del'] = 1;
-            $data[1]['children'][$k]['total'] = 0;
-            $data[1]['children'][$k]['end'] = true;
-
-            $info = Dever::db($table)->find(array('type' => 3, 'type_id' => $k, $col => $value));
-            if ($info) {
-                $data[0]['children'][$k-1]['select'] = 1;
-                $data[0]['children'][$k-1]['total'] = $info['num'];
+        if ($prize) {
+            $data[0]['id'] = -1;
+            $data[0]['name'] = '名额';
+            $data[0]['price'] = 0;
+            $data[0]['price_type'] = 2;
+            $data[0]['select'] = 2;
+            $data[0]['del'] = 1;
+            $data[0]['total'] = 0;
+
+            foreach ($prize as $k => $v) {
+                $data[0]['children'][$k]['id'] = $v['id'] . '_3';
+                $data[0]['children'][$k]['name'] = $v['name'];
+                $data[0]['children'][$k]['price'] = $v['price'];
+                $data[0]['children'][$k]['price_type'] = 2;
+                $data[0]['children'][$k]['select'] = 2;
+                $data[0]['children'][$k]['del'] = 1;
+                $data[0]['children'][$k]['total'] = 0;
+                $data[0]['children'][$k]['end'] = true;
+
+                $info = Dever::db($table)->find(array('type' => 3, 'type_id' => $v['id'], $col => $value));
+                if ($info) {
+                    if ($table == 'agent/member_goods') {
+                        $info['num'] = $info['total_num'] - $info['sell_num'];
+                    }
+                    $data[0]['children'][$k]['select'] = 1;
+                    $data[0]['children'][$k]['total'] = $info['num'];
+                }
             }
         }
 
-        $card = Dever::db('card/info')->select(array('status' => 1));
+        $card = Dever::db('card/info')->getDataByType(array('type_id' => '4,6'));
         if ($card) {
             $data[1]['id'] = -2;
             $data[1]['name'] = '厨人E卡';
@@ -83,14 +85,16 @@ class Set
                 $data[1]['children'][$k]['total'] = 0;
                 $data[1]['children'][$k]['end'] = true;
 
-                $info = Dever::db($table)->find(array('type' => 2, 'type_id' => $k, $col => $value));
+                $info = Dever::db($table)->find(array('type' => 2, 'type_id' => $v['id'], $col => $value));
                 if ($info) {
+                    if ($table == 'agent/member_goods') {
+                        $info['num'] = $info['total_num'] - $info['sell_num'];
+                    }
                     $data[1]['children'][$k]['select'] = 1;
                     $data[1]['children'][$k]['total'] = $info['num'];
                 }
             }
         }
-        */
 
         $data = array_merge($data, Dever::load('goods/lib/set.getGoodsList', $value, $col, $table, 'type_id'));
 

+ 8 - 0
service/agent/src/My.php

@@ -28,6 +28,14 @@ class My extends Core
     public function getUser()
     {
         $where['id'] = $this->uid;
+        $this->data['user'] = array();
+        if (!$this->user['idcard']) {
+            return $this->data;
+        }
+        $this->data['user'] = array();
+        if (!preg_match(Dever::rule('idcard'), $this->user['idcard'])) {
+            return $this->data;
+        }
         $where['idcard'] = $this->user['idcard'];
         $this->data['user'] = Dever::db('agent/member')->getData($where);
 

+ 7 - 7
service/bill/database/sell.php

@@ -21,8 +21,8 @@ if ($mid) {
 }
 $type = array
 (
-    1 => '直推业绩',
-    2 => '团队业绩',
+    //1 => '直推',
+    2 => '自动发放',
     10 => '手动发放',
 );
 
@@ -117,9 +117,9 @@ return array
             'match'     => 'is_numeric',
             'search'    => 'select',
             'update'    => 'checkbox',
-            'option'    => $type,
-            'list'      => true,
-            'list_order' => 7,
+            //'option'    => $type,
+            //'list'      => true,
+            //'list_order' => 7,
         ),
 
         'type_id'      => array
@@ -226,7 +226,7 @@ return array
             (
                 'start' => array('yes-cdate', '>='),
                 'end' => array('yes-cdate', '<='),
-                'type' => array('yes', 'in'),
+                //'type' => array('yes', 'in'),
                 'state' => 1,
             ),
             'type' => 'all',
@@ -242,7 +242,7 @@ return array
                 'start' => array('yes-cdate', '>='),
                 'end' => array('yes-cdate', '<='),
                 'mid' => 'yes',
-                'type' => array('yes', 'in'),
+                //'type' => array('yes', 'in'),
                 'state' => 1,
             ),
             'type' => 'one',

+ 1 - 1
service/bill/lib/Cash.php

@@ -104,7 +104,7 @@ class Cash
                 array
                 (
                     array('资金余额', '¥' . $member['cash'] . '元'),
-                    array('直推业绩', '¥' . $member['sell'] . '元'),
+                    //array('直推业绩', '¥' . $member['sell'] . '元'),
                     array('团队业绩', '¥' . $member['group_sell'] . '元'),
                 ),
             ),

+ 2 - 2
service/bill/lib/Sell.php

@@ -13,7 +13,7 @@ class Sell
             $desc = explode(',', $desc);
             $desc = $desc[0];
             $where['mid'] = $mid;
-            $where['type'] = $type;
+            $where['type'] = 2;
             $where['type_id'] = $type_id;
             $where['clear'] = true;
             $info = Dever::db('bill/sell')->find($where);
@@ -88,7 +88,7 @@ class Sell
                 array
                 (
                     array('资金余额', '¥' . $member['cash'] . '元'),
-                    array('直推业绩', '¥' . $member['sell'] . '元'),
+                    //array('直推业绩', '¥' . $member['sell'] . '元'),
                     array('团队业绩', '¥' . $member['group_sell'] . '元'),
                 ),
             ),

+ 14 - 3
service/setting/database/prize.php

@@ -1,8 +1,8 @@
 <?php
 $type = array
 (
-	1 => '街道',
-	//2 => '创客',
+	//1 => '街道',
+	2 => '创客直推佣金',
 	//3 => '九阳自动炒菜机套餐',
 );
 
@@ -96,10 +96,21 @@ return array
             'list'      => true,
         ),
 
+        'per'      => array
+        (
+            'type'      => 'varchar-11',
+            'name'      => '百分比数值-输入60代表60%,选择创客时,代表推荐创客可以获得60%的佣金',
+            'default'   => '0',
+            'desc'      => '价值',
+            'match'     => 'option',
+            'update'    => 'text',
+            'show'      => 'type=2',
+        ),
+
         'num'      => array
         (
             'type'      => 'int-11',
-            'name'      => '数量',
+            'name'      => '默认数量',
             'default'   => '1',
             'desc'      => '数量',
             'match'     => 'is_numeric',

+ 1 - 1
service/setting/database/role_goods.php

@@ -157,7 +157,7 @@ return array
                 'config' => 'yes',
                 'state' => 1,
             ),
-            'order' => array('type' => 'asc', 'id' => 'desc'),
+            'order' => array('type' => 'desc', 'id' => 'desc'),
             'type' => 'all',
             'col' => '*',
         ),