rabin 3 years ago
parent
commit
b6e42e25dc
3 changed files with 89 additions and 49 deletions
  1. 40 21
      service/agent/database/import_log.php
  2. 1 0
      service/agent/lib/Agreement.php
  3. 48 28
      service/agent/lib/Import.php

+ 40 - 21
service/agent/database/import_log.php

@@ -6,6 +6,7 @@ $type = array
 	3 => '团队业绩错误',
 	4 => '地区导入提醒',
 	5 => '新系统不存在该地区',
+    6 => '金额异常',
 );
 
 $status = array
@@ -14,6 +15,16 @@ $status = array
 	2 => '已处理',
 );
 
+$role = function()
+{
+    $array = array();
+    $data = Dever::load('setting/role-state');
+    if($data)
+    {
+        $array += $data;
+    }
+    return $array;
+};
 
 return array
 (
@@ -42,54 +53,62 @@ return array
         'mid'      => array
         (
             'type'      => 'int-11',
-            'name'      => '代理商',
+            'name'      => '代理商姓名/手机号',
             'default'   => '-1',
             'desc'      => '代理商',
             'match'     => 'is_string',
             'update'    => 'text',
-            'searchs'    => array
+            'search'    => array
             (
-                'api' => 'agent/member-find',
-                'col' => 'mobile',
+                'api' => 'agent/member-getSearch',
+                'col' => 'col',
                 'result' => 'id',
+                'search' => 'mid',
             ),
-            'search'    => 'hidden',
-            //'list'      => 'Dever::load("agent/lib/member.getOne", {mid})',
+            //'list_name' => '姓名',
+            //'list'      => 'Dever::load("agent/lib/member.getOne", {mid}, "agent/member", true)',
             //'list_order' => 1,
         ),
 
-        'agent-member-name'=> array
+        'agent-member-name'      => array
         (
+            'type'      => 'int-11',
             'name'      => '姓名',
             'default'   => '',
             'desc'      => '姓名',
-            'match'     => 'option',
-            # 读取另外表的关联方式
+            'match'     => 'is_numeric',
             'sync'      => array('mid', 'id'),
-            'search'    => array
-            (
-                'api' => 'agent/member-find',
-                'col' => 'name',
-                'result' => 'id',
-            ),
             'list'      => true,
         ),
 
-        'agent-member-mobile'=> array
+        'agent-member-mobile'      => array
         (
+            'type'      => 'int-11',
             'name'      => '手机号',
             'default'   => '',
             'desc'      => '手机号',
-            'match'     => 'option',
-            # 读取另外表的关联方式
+            'match'     => 'is_numeric',
             'sync'      => array('mid', 'id'),
+            'list'      => true,
+        ),
+
+        'agent-member-role'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '代理角色',
+            'default'   => '',
+            'desc'      => '代理角色',
+            'match'     => 'is_numeric',
             'search'    => array
             (
-                'api' => 'agent/member-find',
-                'col' => 'mobile',
+                'api' => 'agent/member-all',
+                'col' => 'role',
                 'result' => 'id',
+                'search' => 'mid',
+                'option'    => $role,
             ),
-            'list'      => true,
+            'sync'      => array('mid', 'id'),
+            'list'      => 'Dever::load("setting/role-one#name", "{agent-member-role}")',
         ),
 
         'type'        => array

+ 1 - 0
service/agent/lib/Agreement.php

@@ -192,6 +192,7 @@ class Agreement
             $method = 'content_' . $v['type'];
 
             if ($info) {
+                $up['name'] = $where['name'];
                 $up['content'] = Dever::array_encode($this->$method($v, $info));
                 $up['where_id'] = $info['id'];
                 $state = Dever::db('agent/member_agreement')->update($up);

+ 48 - 28
service/agent/lib/Import.php

@@ -83,7 +83,12 @@ class Import
 
             # 创建订单
             $order = Dever::db('agent/order')->find(array('id' => $v['id'], 'clear' => true));
-            if (!$order) {
+            if (1) {
+                $update = false;
+                if ($order) {
+                    $update = true;
+                }
+
                 $data = array();
                 $data['id'] = $v['id'];
                 $data['mobile'] = $v['mobile'];
@@ -109,7 +114,7 @@ class Import
                     list($data['area'], $new) = Dever::load('area/api')->up($v['province'], $v['city'], $v['area'], $v['street'], $v['datavalue'], $v['streetvalue']);
                     # 记录日志
                     if ($new) {
-                        $this->log($v['id'], 4, $data['address'], $new);
+                        $this->log($v['id'], 4, $data['address'], $new, $update);
                     }
                     
                 } else {
@@ -117,7 +122,7 @@ class Import
                         list($data['area'], $new) = Dever::load('area/api')->upByName($v['province'], $v['city'], $v['area'], $v['street'], $v['streetvalue']);
                         # 记录日志
                         if ($data['area'] && strstr($data['area'], '-1')) {
-                            $this->log($v['id'], 5, $data['address'], $new);
+                            $this->log($v['id'], 5, $data['address'], $new, $update);
                             $data['area'] = '';
                         }
                     }
@@ -132,6 +137,10 @@ class Import
                 $data['price'] = $v['paymoney'];
                 $data['f_price'] = $data['price'];
 
+                if ($data['price'] < 1) {
+                    $this->log($v['id'], 6, $data['price'], $data['price'], $update);
+                }
+
                 $role = Dever::db('setting/role')->find($data['role']);
                 if ($role['type'] == 1) {
                     //$data['f_price'] = $role['price'];
@@ -147,10 +156,13 @@ class Import
                     if ($data['area']) {
                         Dever::load('area/api')->upStatus($data['area'], 2);
                         $area_data = array('mid' => $v['id'], 'order_id' => $v['id'], 'role' => $data['role'], 'area' => $data['area']);
-                        $area_data['type'] = 4;
-                        $area_data['price'] = $data['f_price'];
-                        $area_data['cdate'] = $v['agentapplytime'];
-                        Dever::db('agent/member_area')->insert($area_data);
+                        $area_info = Dever::db('agent/member_area')->find($area_data);
+                        if (!$area_info) {
+                            $area_data['type'] = 4;
+                            $area_data['price'] = $data['f_price'];
+                            $area_data['cdate'] = $v['agentapplytime'];
+                            Dever::db('agent/member_area')->insert($area_data);
+                        }
                     }
                 }
                 $data['agent_cash'] = $data['f_price'];
@@ -198,36 +210,37 @@ class Import
                 $data['order_type'] = 1;
                 $data['company_pic'] = '';
 
-                $order_id = Dever::db('agent/order')->insert($data);
-
-                /*
-                $order = Dever::db('agent/order')->find(array('id' => $v['id'], 'clear' => true));
-                if (!$order) {
-                    $order_id = Dever::db('agent/order')->insert($data);
+                if ($update) {
+                    $data['where_id'] = $order['id'];
+                    $order_id = Dever::db('agent/order')->update($data);
                 } else {
-                    $order_id = $order['id'];
-                }*/
+                    $order_id = Dever::db('agent/order')->insert($data);
+                }
 
                 if ($order_id) {
 
                     if (!$v['preagenttime']) {
                         $v['preagenttime'] = $v['agenttime'];
                     }
-                    if ($data['status'] == 2) {
-                        $this->addProcess($order_id, 1, $v['preagenttime'], $data);
-                    } elseif ($data['status'] == 3) {
-                        $this->addProcess($order_id, 1, $v['preagenttime'], $data);
-                        $this->addProcess($order_id, 2, $v['agenttime'], $data);
-                    } elseif ($data['status'] == 4) {
-                        $this->addProcess($order_id, 1, $v['preagenttime'], $data);
-                        $this->addProcess($order_id, 2, $v['agenttime'], $data);
-                        $this->addProcess($order_id, 3, $v['agenttime'], $data);
+                    if (!$update) {
+                        if ($data['status'] == 2) {
+                            $this->addProcess($order_id, 1, $v['preagenttime'], $data);
+                        } elseif ($data['status'] == 3) {
+                            $this->addProcess($order_id, 1, $v['preagenttime'], $data);
+                            $this->addProcess($order_id, 2, $v['agenttime'], $data);
+                        } elseif ($data['status'] == 4) {
+                            $this->addProcess($order_id, 1, $v['preagenttime'], $data);
+                            $this->addProcess($order_id, 2, $v['agenttime'], $data);
+                            $this->addProcess($order_id, 3, $v['agenttime'], $data);
+                        }
                     }
 
                     if ($data['status'] == 4) {
                         # 生成合同
-                        if ($data['sign']) {
+                        if (!$update && $data['sign']) {
+                            $data['sdate'] = $data['cdate'];
                             $this->addAgreement($data);
+                            unset($data['sdate']);
                         }
 
                         $member = Dever::db('agent/member')->find($v['id']);
@@ -255,7 +268,7 @@ class Import
                             Dever::db('agent/member')->update($data);
                         }
 
-                        if ($data['parent_mid']) {
+                        if (!$update && $data['parent_mid']) {
                             # 添加直推关系
                             Dever::load('invite/lib/relation')->add($data['parent_mid'], $data['mid'], 1);
                             # 为上级增加增加业绩
@@ -386,7 +399,7 @@ class Import
     }
 
     # 导入日志记录
-    public function log($mid, $type, $before, $after)
+    public function log($mid, $type, $before, $after, $update = false)
     {
         # 地区、直推代理人数、团队业绩
         $data['mid'] = $mid;
@@ -396,7 +409,14 @@ class Import
         if ($type == 4) {
             $data['status'] = 2;
         }
-        Dever::db('agent/import_log')->insert($data);
+        if ($update) {
+            $info = Dever::db('agent/import_log')->find($data);
+            if (!$info) {
+                Dever::db('agent/import_log')->insert($data);
+            }
+        } else {
+            Dever::db('agent/import_log')->insert($data);
+        }
     }
 
     # 验证直推代理人数是否正确 agentdownnum