From 9705a2dc02e5bcd04dfe5f727314fa767cab952f Mon Sep 17 00:00:00 2001
From: colly <576734462@qq.com>
Date: Wed, 02 Aug 2017 14:04:05 +0800
Subject: [PATCH] 新增用户资料修改接口和mongo异常输出

---
 Yfs/Api/User.php       |   41 ++++++++++++++++++++
 Yfs/Domain/User.php    |   29 ++++++++++++++
 Library/Mongo/Lite.php |    7 +++
 Yfs/Model/User.php     |    1 
 4 files changed, 76 insertions(+), 2 deletions(-)

diff --git a/Library/Mongo/Lite.php b/Library/Mongo/Lite.php
index b06990d..9d16b53 100644
--- a/Library/Mongo/Lite.php
+++ b/Library/Mongo/Lite.php
@@ -543,7 +543,12 @@
     // ���������������������'_id'������(���������������)
     private function _parseId($arr){
         if(isset($arr['_id'])){
-            $arr['_id'] = new MongoId($arr['_id']);
+            try{
+                $arr['_id'] = new MongoId($arr['_id']);
+            }
+            catch(MongoException $ex){
+                die('���������������id');
+            }
         }
         return $arr;
     }
diff --git a/Yfs/Api/User.php b/Yfs/Api/User.php
index 43be14b..9110a9b 100644
--- a/Yfs/Api/User.php
+++ b/Yfs/Api/User.php
@@ -23,6 +23,11 @@
                 'phone' => array('name' => 'phone', 'type' => 'string', 'require' => true, 'desc' => '������������'),
                 'password' => array('name' => 'password', 'type' => 'string', 'require' => true, 'desc' => '������'),
                 'code' => array('name' => 'code', 'type' => 'string', 'require' => true, 'desc' => '���������������������'),
+            ),
+            'updateUserInfo' => array(
+                'user_id' => array('name' => 'user_id', 'type' => 'string', 'require' => true, 'desc' => '������id'),
+                'field' => array('name' => 'field', 'type' => 'string', 'require' => true, 'desc' => '������������'),
+                'value' => array('name' => 'value', 'type' => 'string', 'require' => true, 'desc' => '������'),
             )
         );
     }
@@ -178,4 +183,40 @@
         return $rs;
     }
 
+    /**
+     * ������������������
+     * @return string user_id ������id
+     * @return string field ������������������������������������['refresh_frequency', 'video', 'is_open_upload']
+     * @return string value ������
+     */
+    public function updateUserInfo(){
+        $promit_field = array('refresh_frequency', 'video', 'is_open_upload');
+        if(in_array($this->field, $promit_field)){
+            $user_service = new Domain_User();
+            $data[$this->field] = $this->value;
+            $data['_id'] = $this->user_id;
+            $result = $user_service->updateUserInfo($data);
+            if($result == 0){
+                $rs['msg'] = '������������������������';
+            }
+            elseif($result == 1){
+                $rs['code'] = 1;
+                $rs['msg'] = '������������������������';
+            }
+            elseif($result == 2){
+                $rs['code'] = 1;
+                $rs['msg'] = '���������������������������������������';
+            }
+            else{
+                $rs['code'] = 1;
+                $rs['msg'] = '������id������������';
+            }
+        }
+        else{
+            $rs['code'] = 1;
+            $rs['msg'] = '���������������������';
+        }
+        return $rs;
+    }
+
 }
diff --git a/Yfs/Domain/User.php b/Yfs/Domain/User.php
index 00bca82..8ef7457 100644
--- a/Yfs/Domain/User.php
+++ b/Yfs/Domain/User.php
@@ -93,4 +93,33 @@
         }
     }
 
+    /**
+     * ������������������
+     * @param  [type] $data [description]
+     * @return [type]       [description]
+     */
+    public function updateUserInfo($data){
+        if(isset($data['_id']) && !empty($data['_id'])){
+            $id = $data['_id'];
+            $user = $this->model->get(array('_id' => $id)); 
+            unset($data['_id']);
+            if($user && $user['is_lock'] == 0){
+                $result = $this->model->update($data, array('_id' => $id));
+                if($result){
+                    return 0;
+                }
+                else{
+                    return 1;
+                }
+            }
+            else{
+                return 2;
+            }
+        }
+        else{
+            return 3;
+        }
+
+    }
+
 }
diff --git a/Yfs/Model/User.php b/Yfs/Model/User.php
index 2272205..c956806 100644
--- a/Yfs/Model/User.php
+++ b/Yfs/Model/User.php
@@ -31,5 +31,4 @@
     }
 
 
-
 }

--
Gitblit v1.8.0