function post() { $objData = array(); $infoData = array(); //获取字段内容 $fieldList = D('steadmin')->getTableFields(); foreach ($fieldList['fields'] as $key => $val) { $objData[$key] = $val['type'] == 'int' ? $this->_postid($key, $val['value']) : $this->_post($key, $val['value']); } $objData['effective'] = $this->_post('effective', 0); $objData['regdateline'] = TIME; //内容规则检查 T('content/validate'); $validate = array(array('username', 'username', '帐户名称不符合要求', 2, 30), array('real_name', 'username', '真实姓名不符合要求', 2, 30), array('phone', 'phone', '手机号码不符合要求'), array('psw', 'min_length', '密码长度必须大于4位', 4)); if (steadmin::$adminInfo['groupid'] == 7) { $objData['groupid'] = 8; } else { $objData['shop_id'] = 0; } $infoData = array('nick_name' => $this->_post('nick_name'), 'user_avatar' => $this->_post('user_avatar'), 'total_service' => $this->_postid('total_service'), 'average_times' => $this->_postid('average_times'), 'score_service' => $this->_post('score_service'), 'score_speed' => $this->_post('score_speed'), 'total_comment' => $this->_postid('total_comment'), 'wechat_id' => $this->_post('wechat_id')); //工作人员完善资料 if (in_array($objData['groupid'], $this->hasWorkerInfo)) { $validateInData = array(array('nick_name', 'username', '称呼不符合要求', 2, 30), array('user_avatar', 'required', '用户头像不能为空'), array('total_service', 'int', '总服务次数不符合要求'), array('average_times', 'int', '服务时间不符合要求'), array('score_service', 'double', '服务评分不符合要求'), array('score_speed', 'double', '速度评分不符合要求'), array('total_comment', 'int', '评论人次不符合要求')); if (!validate::check($validateInData, $infoData)) { $this->JsonReturn(validate::getError()); } $validate[] = array('service_id', 'required', '服务中心不能为空'); } //社长必须有服务中心 if ($objData['groupid'] == 9) { if (!$objData['service_id']) { $this->JsonReturn('服务中心不能为空'); } elseif (D('steadmin')->field('user_id')->where(array('city_id' => steadmin::$adminInfo['city_id'], 'service_id' => $objData['service_id'], 'groupid' => 9, 'status' => 1))->find()) { //社长只能有一个帐号 $this->JsonReturn('该服务中心已有社长帐号'); } } //社长只能创建配货员和小管家帐号 if (parent::_checkIsPresident()) { if (!in_array($objData['groupid'], array(3, 4))) { $this->JsonReturn('权限不足'); } else { $objData['service_id'] = steadmin::$adminInfo['service_id']; } } if (!validate::check($validate, $objData)) { $this->JsonReturn(validate::getError()); } if ($objData['psw'] != $this->_post('repsw')) { $this->JsonReturn('两次密码不一致,请检查'); } $exist = D('steadmin')->field('user_id')->where(array('city_id' => steadmin::$adminInfo['city_id'], 'username' => $objData['username']))->find(); if ($exist) { $this->JsonReturn('该帐户名已存在'); } // $exist = D('steadmin')->field('user_id') // ->where(array('city_id' => steadmin::$adminInfo['city_id'], 'phone' => $objData['phone']))->find(); // if ($exist) { // $this->JsonReturn('该手机号已经存在'); // } // if ($infoData['wechat_id']) { // $exist = M('ste_worker')->field('user_id') // ->where(array('wechat_id' => $infoData['wechat_id']))->find(); // if ($exist) { // $this->JsonReturn('该微信号已经存在'); // } // } $objData['psw'] = D('steadmin')->setUserPassword($objData['psw']); if ($objData['effective']) { $objData['effective'] = inTime($objData['effective']); } else { $objData['effective'] = 0; } $objData['status'] = 1; $objData['city_id'] = steadmin::$adminInfo['city_id']; $objData['build_uid'] = steadmin::$adminInfo['user_id']; $syncToQyh = false; // z($objData); $id = D('steadmin')->insert($objData); if ($this->isLocal) { $objData['openid'] = 'steward_' . $id; $syncToQyh = false; } else { //是否已经存在于企业号 if ($objData['openid']) { T('weixin/qy/qyWeixin.api'); qyApi::init(steadmin::$adminInfo['city_id']); $onlineinfo = qyApi::userGet($objData['openid']); if ($onlineinfo) { $qiyehaoinfo['userid'] = $objData['openid']; $corp_info = $this->_getAdminSetting('corp_info'); $onlineinfo['department'][] = intval($corp_info['departmentId']); $qiyehaoinfo['department'] = $onlineinfo['department']; if (isHave($infoData['wechat_id'])) { $qiyehaoinfo['weixinid'] = $infoData['wechat_id']; } if (!qyApi::userUpdate($qiyehaoinfo)) { $this->JsonReturn('同步到企业号通讯录失败 ' . qyApi::$errorMsg); } } else { $this->JsonReturn('UserId不存在于企业号通讯录中'); } $objData['openid'] = $objData['openid']; } else { $objData['openid'] = 'steward_' . $id; $syncToQyh = true; } } D('steadmin')->update(array('openid' => $objData['openid']), array('user_id' => $id)); //===记录操作日志==== parent::saveSySLog(1, $objData, 0, array(), '帐号管理-添加'); //===记录操作日志==== if ($id) { if (in_array($objData['groupid'], $this->hasWorkerInfo)) { $infoData['user_id'] = $id; //插入员工信息 D('steadmin')->addUserDetailInfo($infoData); } //添加到企业号通讯录 if ($syncToQyh) { T('weixin/qy/qyWeixin.api'); qyApi::init(steadmin::$adminInfo['city_id']); $qiyehaoinfo['userid'] = 'steward_' . $id; $qiyehaoinfo['name'] = $objData['real_name']; $qiyehaoinfo['mobile'] = $objData['phone']; if (isHave($infoData['wechat_id'])) { $qiyehaoinfo['weixinid'] = $infoData['wechat_id']; } $groupidname = $this->adminConfig['group']; $qiyehaoinfo['position'] = $groupidname[$objData['groupid']]; if (!qyApi::userCreate($qiyehaoinfo)) { $this->JsonReturn('同步到企业号通讯录失败 ' . qyApi::$errorMsg); } } $this->JsonReturn('ok', $id, 1); } else { $this->JsonReturn('数据插入失败'); } }