UserImportController.class.php 3.79 KB
<?php
/**
 * 【后台】批量导入人员接口
 *
 * @author: houyingcai
 * @email:     594609175@qq.com
 * @date :  2017-08-29 10:01:58
 * @version $Id$
 */

namespace Apicp\Controller\Paper;

use Common\Common\User;

class UserImportController extends \Apicp\Controller\AbstractController
{
    // 错误列表
    protected $_errorList = [
        'empty_username' => '员工姓名为空',
        'empty_mobile' => '手机号码为空或格式不正确',
        'repeat_mobile' => '手机号码有重复',
        'user_info_not' => '员工信息不存在',
    ];

    public function Index_post()
    {
        // 获取数据
        $params = I('post.');

        // 验证数据
        if (!$this->validation($params)) {

            return false;
        }

        // 初始化
        $i = 0;
        // 循环遍历数据
        foreach ($params['data'] as $key => $v) {

            // 如果大于头部标题长度则删除多余变量
            if ($i >= $params['head_total']) {

                unset($params['data'][$key]);

            }
            $i++;
        }
        // 导入成功和导入失败的人员列表
        $list = $this->is_parameter($params['data']);
        $this->_result = $list;

        return true;
    }

    /**
     * 验证数据
     *
     * @param array $params POST数据
     *
     * @return bool
     */
    protected function validation($params = [])
    {

        // 表头长度不能为空或者不是整数
        if (empty($params['head_total']) || !is_numeric($params['head_total'])) {

            E('_ERR_HEAD_TOTAL');

        }

        return true;
    }

    /**
     * 判断列表条件
     *
     * @author houyingcai
     * @param array $data POST 数据
     *
     * @return mixed
     */
    public function is_parameter($data)
    {
        // $mobiles = array();

        $errors = [];
        // 姓名为空
        if (empty($data['username'])) {

            $errors[] = $this->_errorList['empty_username'];
        }
        // 手机号格式
        if (empty($data['mobile']) || strlen($data['mobile']) != 11) {

            $errors[] = $this->_errorList['empty_mobile'];
        }

        // 员工信息不存在
        $user_info = $this->validate_user($data);
        if (empty($user_info)) {

            $errors[] = $this->_errorList['user_info_not'];
        }

        // 组织错误信息
        if (!empty($errors)) {
            if (count($errors) > 1) {

                $errMsg = implode(',', $errors);
            } else {

                $errMsg = $errors[0];
            }

            $list = [
                'memUsername' => $data['username'] ? $data['username'] : '',
                'mobile' => $data['mobile'] ? $data['mobile'] : '',
                'msg' => $errMsg,
                'status' => 0,
            ];
        } else {

            $list = [
                'memUsername' => $data['username'],
                'avatar' => $user_info['avatar'],
                'memID' => $user_info['memID'],
                'mobile' => $data['mobile'],
                'status' => 1
            ];
        }

        return $list;
    }

    /**
     * 验证用户是否存在
     *
     * @param array $user 用户信息
     *
     * @return array
     */
    public function validate_user($user)
    {
        $user_info = [];
        $user_com = User::instance();
        // 更加姓名和手机号搜索通讯录人员列表
        $user_list = $user_com->listByConds(['memUsername' => $user['username'], 'memMobile' => $user['mobile']]);
        foreach ($user_list['list'] as $v) {

            if ($v['memUsername'] == $user['username'] && $v['memMobile'] == $user['mobile']) {

                $user_info['memID'] = $v['memUid'];
                $user_info['avatar'] = $v['memFace'];
            }
        }

        return $user_info;
    }

}