<?php  
 | 
  
 | 
class UserController extends System_Controller_Admin{ 
 | 
  
 | 
    public function init(){ 
 | 
        parent::init(); 
 | 
        $this->user_service = new Service_User(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 用户列表 
 | 
     */ 
 | 
    public function ListAction(){ 
 | 
        if($this->getRequest()->isXmlHttpRequest()){ 
 | 
            $total = $this->user_service->getUserListTotal(); 
 | 
            $data['draw'] = !empty($_REQUEST['draw'])?$_REQUEST['draw']:1; 
 | 
            $data['start'] = !empty($_REQUEST['start'])?$_REQUEST['start']:0; 
 | 
            $data['length'] = !empty($_REQUEST['length'])?$_REQUEST['length']:10; 
 | 
            $data['recordsTotal'] = $total; 
 | 
            $data['recordsFiltered'] = $total; 
 | 
            $data['data'] = $this->user_service->getUserList(array(), array(), array(), $data['length'], $data['start']); 
 | 
            exit($this->sendToDataTable($data)); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 添加用户 
 | 
     */ 
 | 
    public function AddAction(){ 
 | 
        if($this->getRequest()->isXmlHttpRequest()){ 
 | 
            $data['phone'] = $this->post('phone'); 
 | 
            if(!$this->_checkPhone($data['phone'])){ 
 | 
                exit($this->showError('手机号码已存在,无法继续创建', 400, true)); 
 | 
            } 
 | 
            $data['encrypt'] = Util::random(8); 
 | 
            $data['password'] = md5(md5($this->post('password', '123456')).$data['encrypt']); 
 | 
            $data['nickname'] = $this->post('nickname'); 
 | 
            $data['refresh_frequency'] = $this->post('refresh_frequency'); 
 | 
            $data['is_open_upload'] = $this->post('is_open_upload'); 
 | 
            $data['video'] = $this->post('video'); 
 | 
            $data['role'] = $this->post('role'); 
 | 
            $data['create_time'] = time(); 
 | 
            $data['edit_time'] = $data['create_time']; 
 | 
            $data['is_lock'] = $this->post('is_lock'); 
 | 
             if($this->user_service->add($data)){ 
 | 
                exit($this->showSuccess('用户添加成功', true)); 
 | 
            } 
 | 
            else{ 
 | 
                exit($this->showError($this->user_service->error, 400, true)); 
 | 
            } 
 | 
        } 
 | 
        $role_service = new service_Role(); 
 | 
        $roles = $role_service->getRoleList(); 
 | 
        $this->getView()->assign('roles', $roles); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改用户 
 | 
     */ 
 | 
    public function EditAction($id){ 
 | 
        $user = $this->user_service->getUserInfo(array('_id' => $id)); 
 | 
        if($user){ 
 | 
            if($this->getRequest()->isXmlHttpRequest()){ 
 | 
                $data['nickname'] = $this->post('nickname'); 
 | 
                $password = $this->post('password'); 
 | 
                if(!empty($password)) 
 | 
                $data['password'] = md5(md5($password).$user['encrypt']); 
 | 
                $data['refresh_frequency'] = $this->post('refresh_frequency'); 
 | 
                $data['is_open_upload'] = $this->post('is_open_upload'); 
 | 
                $data['video'] = $this->post('video'); 
 | 
                $data['role'] = $this->post('role'); 
 | 
                $data['edit_time'] = time(); 
 | 
                $data['is_lock'] = $this->post('is_lock'); 
 | 
                if($this->user_service->update($data, array('_id' => $id))){ 
 | 
                    exit($this->showSuccess('用户修改成功', true)); 
 | 
                } 
 | 
                else{ 
 | 
                    exit($this->showError($this->user_service->error, 400, true)); 
 | 
                } 
 | 
            } 
 | 
            $role_service = new Service_Role(); 
 | 
            $roles = $role_service->getRoleList(); 
 | 
            $this->getView()->assign(array('user' => $user, 'roles' => $roles)); 
 | 
        } 
 | 
        else{ 
 | 
            $this->redirect('/error/show/type/no_data'); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改我的信息 
 | 
     */ 
 | 
    public function MyAction(){ 
 | 
        $user_id = $this->session['user']['user_id']; 
 | 
        $user = $this->user_service->getUserInfo(array('_id' => $user_id)); 
 | 
        if($user){ 
 | 
            if($this->getRequest()->isXmlHttpRequest()){ 
 | 
                $data['nickname'] = $this->post('nickname'); 
 | 
                $password = $this->post('password'); 
 | 
                if(!empty($password)) 
 | 
                $data['password'] = md5(md5($password).$user['encrypt']); 
 | 
                $data['refresh_frequency'] = $this->post('refresh_frequency'); 
 | 
                $data['is_open_upload'] = $this->post('is_open_upload'); 
 | 
                $data['video'] = $this->post('video'); 
 | 
                $data['edit_time'] = time(); 
 | 
                if($this->user_service->update($data, array('_id' => $user_id))){ 
 | 
                    exit($this->showSuccess('用户修改成功', true)); 
 | 
                } 
 | 
                else{ 
 | 
                    exit($this->showError($this->user_service->error, 400, true)); 
 | 
                } 
 | 
            } 
 | 
            $role_service = new Service_Role(); 
 | 
            $roles = $role_service->getRoleList(); 
 | 
            $this->getView()->assign(array('user' => $user, 'roles' => $roles)); 
 | 
        } 
 | 
        else{ 
 | 
            $this->redirect('/error/show/type/no_data'); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 验证手机号码是否存在 
 | 
     */ 
 | 
    public function CheckPhoneAction(){ 
 | 
        $phone = $this->post('phone'); 
 | 
        $result = $this->_checkPhone($phone); 
 | 
        if($this->isAjax()){ 
 | 
            exit($this->send(array('valid' => $result))); 
 | 
        } 
 | 
        else{ 
 | 
            return $result; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 验证号码是否存在 
 | 
     * @param  [type] $phone [description] 
 | 
     * @return [type]        [description] 
 | 
     */ 
 | 
    public function _checkPhone($phone){ 
 | 
        $user = $this->user_service->getUserInfo(array('phone' => $phone)); 
 | 
        if($user) 
 | 
            return false; 
 | 
        else 
 | 
            return true; 
 | 
    } 
 | 
  
 | 
} 
 |