public function savePcSyncAction(Request $request) { $session = $this->get('session'); $filename120 = $session->get("avatar_big"); $filename48 = $session->get("avatar_middle"); $filename24 = $session->get("avatar_small"); $user = $this->get('security.context')->getToken()->getUser(); $dm = $this->get('doctrine.odm.mongodb.document_manager'); if (!empty($filename120)) { $filename120 = $this->saveFile($filename120, $dm); } if (!empty($filename48)) { $filename48 = $this->saveFile($filename48, $dm); } if (!empty($filename24)) { $filename24 = $this->saveFile($filename24, $dm); } $session->remove("avatar_big"); $session->remove("avatar_middle"); $session->remove("avatar_small"); $da = $this->get("we_data_access"); $da_im = $this->get('we_data_access_im'); $para["account"] = $user->getUsername(); $table = $da->GetData("staff", "select nick_name,photo_path,photo_path_small,photo_path_big,fafa_jid from we_staff where login_account=?", array((string) $para["account"])); $oldRow = $table["staff"]["rows"][0]; if (!empty($filename120)) { if ($table && $table["staff"]["recordcount"] > 0) { $this->removeFile($table["staff"]["rows"][0]["photo_path"], $dm); $this->removeFile($table["staff"]["rows"][0]["photo_path_small"], $dm); $this->removeFile($table["staff"]["rows"][0]["photo_path_big"], $dm); } } $old_nick_name = $oldRow["nick_name"]; $Jid = $oldRow["fafa_jid"]; $y = $request->get("dateYear"); $birthday = empty($y) || $y == "0000" ? "" : $y . "-" . $request->get("dateMonth") . "-" . $request->get("dateDay"); $nick_name = $request->get("txtname"); if (empty($filename120)) { $sql = "update we_staff set nick_name=?,birthday=?,dept_id=?,work_phone=?,mobile=?,self_desc=?,specialty=?,hobby=?,hometown=?,graduated=?,work_his=?,sex_id=? where login_account=?"; $paras[] = $nick_name; $paras[] = $birthday; $paras[] = $request->get("txtdeptid"); $paras[] = $request->get("txtwork_phone"); $paras[] = $request->get("txtmobile"); $paras[] = $request->get("txtself_desc"); $paras[] = $request->get("txtspecialty"); $paras[] = $request->get("txthobby"); $paras[] = $request->get("txthometown"); $paras[] = $request->get("txtgraduated"); $paras[] = $request->get("txtwork_his"); $paras[] = $request->get("txtsex"); $paras[] = $para["account"]; } else { $sql = "update we_staff set nick_name=?,birthday=?,photo_path=?,photo_path_small=?,photo_path_big=?,dept_id=?,work_phone=?,mobile=?,self_desc=?,specialty=?,hobby=?,hometown=?,graduated=?,work_his=?,sex_id=? where login_account=?"; $paras[] = $nick_name; $paras[] = $birthday; $paras[] = $filename48; $paras[] = $filename24; $paras[] = $filename120; $paras[] = $request->get("txtdeptid"); $paras[] = $request->get("txtwork_phone"); $paras[] = $request->get("txtmobile"); $paras[] = $request->get("txtself_desc"); $paras[] = $request->get("txtspecialty"); $paras[] = $request->get("txthobby"); $paras[] = $request->get("txthometown"); $paras[] = $request->get("txtgraduated"); $paras[] = $request->get("txtwork_his"); $paras[] = $request->get("txtsex"); $paras[] = $para["account"]; } try { if (empty($filename120)) { if ($table && $table["staff"]["recordcount"] > 0) { $para["path"] = $this->container->getParameter('FILE_WEBSERVER_URL') . $table["staff"]["rows"][0]["photo_path_big"]; } else { $para["path"] = $this->get('templating.helper.assets')->geturl('bundles/fafatimewebase/images/no_photo.png'); } } else { $para["path"] = $this->container->getParameter('FILE_WEBSERVER_URL') . $filename120; $friendevent = new \Justsy\BaseBundle\Management\FriendEvent($da, $this->get('logger'), $this->container); $friendevent->photochange($user->getUserName(), $user->nick_name); } try { $da->ExecSQL($sql, $paras); } catch (\Exception $ex) { $this->get("logger")->err("========保存人员资料时错误:" . $ex); $this->get("logger")->err("========保存人员资料时错误-SQL:" . $sql); $this->get("logger")->err("========保存人员资料时错误-DATA:" . $paras); Utils::sendImPresence("", "*****@*****.**", "保存人员资料时错误", "AccountController->savePcSyncAction:<br>" . $sql . "<br>" . $paras, $this->container); } //如果更改了姓名时,需要同步到im库中并更新相关引用 if ($old_nick_name != $nick_name) { $da_im->ExecSQL("call emp_change_name(?,?)", array((string) $user->fafa_jid, (string) $nick_name)); } //发送个人资料编辑通知 try { //发送即时消息 $staffMgr = new \Justsy\BaseBundle\Management\Staff($da, $da_im, $user); $message = "{\"path\":\"" . $para["path"] . "\",\"desc\":\"" . strtr($request->get("txtself_desc"), array("\"" => "“")) . "\"}"; Utils::sendImPresence($user->fafa_jid, implode(",", $staffMgr->getFriendAndColleagueJid()), "staff-changeinfo", $message, $this->container, "", "", false, Utils::$systemmessage_code); } catch (\Exception $e) { $this->get('logger')->err($e); } $response = new Response("{\"succeed\":1,\"path\":\"" . $para["path"] . "\"}"); $response->headers->set('Content-Type', 'text/json'); return $response; } catch (\Exception $e) { //return $this->render('JustsyBaseBundle:login:index.html.twig', array('name' => 'err')); $response = new Response("{\"succeed\":0,\"e\":{$e}}"); $response->headers->set('Content-Type', 'text/json'); return $response; } }
public function updateStaffAction() { $da = $this->get("we_data_access"); $da_im = $this->get('we_data_access_im'); $request = $this->getRequest(); $state = $request->get("state"); $im_deptid = $request->get("dept_id"); //将im的部门id转化为sns里的部门id $deptInfo = $this->getDeptInfo($im_deptid); $sns_deptid = $deptInfo["deptid"]; $login_account = $request->get("login_account"); $e_mail = $request->get("e_mail"); $nick_name = $request->get("nick_name"); $password = $request->get("password"); $sex = $request->get("sex"); $duty = $request->get("duty"); $duty = empty($duty) ? null : $duty; $mobile = $request->get("mobile"); $mobile = empty($mobile) ? null : $mobile; $success = true; $msg = ""; //判断手机号正误 if (!empty($mobile)) { if (!Utils::validateMobile($mobile)) { $result = array("success" => false, "msg" => "手机账号格式错误!"); $response = new Response(json_encode($result)); $response->headers->set('Content-Type', 'text/json'); return $response; } else { $sql = ""; $para = array(); if ($state == "add") { $sql = "select count(*) number from we_staff where mobile_bind=?;"; array_push($para, (string) $mobile); } else { $sql = "select count(*) number from we_staff where mobile_bind=? and login_account!=?;"; array_push($para, (string) $mobile, $login_account); } try { $ds = $da->GetData("table", $sql, $para); if ($ds && $ds["table"]["recordcount"] > 0) { if ((int) $ds["table"]["rows"][0]["number"] > 0) { $result = array("success" => false, "msg" => "已存在该手机号码!"); $response = new Response(json_encode($result)); $response->headers->set('Content-Type', 'text/json'); return $response; } } } catch (\Exception $e) { $this->get("logger")->err($e->getMessage()); } } } $user = $this->get('security.context')->getToken()->getUser(); $deptMgr = new \Justsy\BaseBundle\Management\Dept($da, $da_im, $this->container); $staffMgr = new \Justsy\BaseBundle\Management\Staff($da, $da_im, $login_account, $this->container->get("logger"), $this->container); if ($state == "add") { if ($staffMgr->checkUser($mobile)) { $result = array("success" => false, "msg" => "用户账号已存在,请重新输入!"); $response = new Response(json_encode($result)); $response->headers->set('Content-Type', 'text/json'); return $response; } //获得ldap_uid $login_array = explode("@", $login_account); if (count($login_array) < 2) { continue; } $ldap_uid = $login_array[0]; //注册用户账号 $register = new \Justsy\BaseBundle\Controller\ActiveController(); $register->setContainer($this->container); $parameter = array("account" => $login_account, "realName" => $nick_name, "passWord" => $password, "ldap_uid" => $ldap_uid, "eno" => $user->eno, "ename" => $user->ename, "isNew" => '0', "mailtype" => "1", "import" => '1', "isSendMessage" => "N", "mobile" => $mobile, "duty" => $duty, "deptid" => $sns_deptid, "mutual" => "Y"); $result = $register->doSave($parameter); if ($result["returncode"] == "0000") { $staffdata = $staffMgr->getInfo(); //成功后统计人员 $sql = "call dept_emp_stat(?)"; $da_im->ExecSQL($sql, array((string) $staffdata["fafa_jid"])); //自动关注服务号 $servicerMgr = new \Justsy\BaseBundle\Management\Service($this->container); $parameter = array("eno" => $user->eno, "deptid" => $im_deptid, "login_account" => $login_account); $servicerMgr->atten_service($parameter); $revJids = $staffMgr->getFriendAndColleagueJid(); Utils::sendImMessage($user->fafa_jid, implode(",", $revJids), "newstaff", json_encode($staffMgr->getinfo()), $this->container, "", "", false, Utils::$systemmessage_code); } else { $success = false; $msg = "添加用户账号失败:" . $result["msg"]; } $result = array("success" => $success, "msg" => $msg); $response = new Response(json_encode($result)); $response->headers->set('Content-Type', 'text/json'); return $response; } else { $staffinfo = $staffMgr->getInfo(); $deptinfo = $deptMgr->getinfo($staffinfo["dept_id"]); //判断是否更改了性别 if ($sex == $staffinfo["sex_id"]) { $sex = null; } //判断是否更改了职务 if ($duty == $staffinfo["duty"]) { $duty = null; } //判断是否更改了姓名 if ($nick_name == $staffinfo["nick_name"]) { $nick_name = null; } //判断是否更新了部门 if ($sns_deptid == $deptinfo["dept_id"]) { $sns_deptid = null; } //判断是否更新了手机 if ($mobile == $staffinfo["mobile_bind"]) { $mobile = null; } $uResult = $staffMgr->checkAndUpdate($nick_name, $mobile, $sns_deptid, $duty, null, $sex, null, $e_mail); $u_staff = null; $factory = null; //判断是否修改了密码 if (!empty($password)) { $u_staff = new Staff($da, $da_im, $login_account, $this->get('logger'), $this->container); $factory = $this->get('security.encoder_factory'); $targetStaffInfo = $u_staff->getInfo(); $re = $u_staff->changepassword($targetStaffInfo["login_account"], $password, $factory); if ($re) { //给自己发送一个staff-changepasswod的出席,通知在线客户端密码发生修改,需要新密码重新登录 Utils::sendImPresence($user->fafa_jid, $targetStaffInfo["fafa_jid"], "staff-changepasswod", "staff-changepasswod", $this->container, "", "", false, Utils::$systemmessage_code); } } //判断是否修改了帐号 if ($e_mail != $login_account) { //判断邮件是否存在 if (empty($u_staff)) { $u_staff = new Staff($da, $da_im, $login_account, $this->get('logger'), $this->container); } if (empty($factory)) { $factory = $this->get('security.encoder_factory'); } $u_staff->changeLoginAccount($e_mail, $factory); } try { $revJids = $staffMgr->getFriendAndColleagueJid(); if ($uResult && !empty($sns_deptid)) { //部门变更时,需要通知手机端更新原部门和新部门数据 Utils::sendImMessage("", implode(",", $revJids), "staff-changedept", json_encode($deptinfo), $this->container, "", "", false, Utils::$systemmessage_code); Utils::sendImMessage("", implode(",", $revJids), "staff-changedept", json_encode($deptMgr->getinfo($sns_deptid)), $this->container, "", "", false, Utils::$systemmessage_code); $old_fafa_deptid = $deptinfo["fafa_deptid"]; $fafa_jid = $staffinfo["fafa_jid"]; //取消关注服务号 $servicerMgr = new \Justsy\BaseBundle\Management\Service($this->container); $parameter = array("eno" => $user->eno, "deptid" => $old_fafa_deptid, "login_account" => $login_account); $servicerMgr->cancel_atten($parameter); //自动关注服务号 $parameter = array("eno" => $user->eno, "deptid" => $im_deptid, "login_account" => $login_account); $servicerMgr->atten_service($parameter); } } catch (\Exception $e) { $this->get("logger")->err($e->getMessage()); $success = false; $msg = "修改人员信息失败!"; } } $result = array("success" => $success, "msg" => $msg); $response = new Response(json_encode($result)); $response->headers->set('Content-Type', 'text/json'); return $response; }
public function addEmployeeAction() { $request = $this->getRequest(); $user = $this->get('security.context')->getToken()->getUser(); //跟新字段 $sex = $request->get("sex"); $dept = $request->get("txtdeptid"); $mobile = $request->get("mobile"); $account = $request->get("account"); $duty = $request->get("duty"); $pass = $request->get("pass"); $realName = $request->get("realName"); if (empty($account)) { $response = new Response(json_encode(array('s' => 0, 'm' => '帐号不能为空'))); $response->headers->set('Content-Type', 'text/json'); return $response; } if (empty($pass)) { $response = new Response(json_encode(array('s' => 0, 'm' => '密码不能为空'))); $response->headers->set('Content-Type', 'text/json'); return $response; } $da = $this->get("we_data_access"); $dm = $this->get("we_data_access_im"); $sql = "select 1 from we_staff where login_account=?"; $params = array($account); $ds = $da->Getdata('staff', $sql, $params); if ($ds['staff']['recordcount'] > 0) { $response = new Response(json_encode(array('s' => 0, 'm' => '用户已存在'))); $response->headers->set('Content-Type', 'text/json'); return $response; } $active = new \Justsy\BaseBundle\Controller\ActiveController(); $active->setContainer($this->container); $success = 1; $msg = ""; try { //自动注册 $active->doSave(array('account' => $account, 'realName' => $realName, 'passWord' => $pass, 'eno' => $user->eno, 'ename' => $user->ename, 'isNew' => '0', 'mailtype' => "1", 'import' => '1', 'deptid' => $dept)); $sql = "select 1 from we_staff where login_account=?"; $params = array($account); $ds = $da->Getdata('staff', $sql, $params); if ($ds['staff']['recordcount'] > 0) { if (empty($mobile)) { $sql = "update we_staff set sex_id=? where login_account=?"; $params = array($sex, $account); } else { $sql = "update we_staff set mobile=?,mobile_bind=?,sex_id=? where login_account=?"; $params = array($mobile, $mobile, $sex, $account); } try { $da->ExecSQL($sql, $params); $dm->ExecSQL("call dept_emp_stat(?)", array((string) $user->eno)); //推送消息 $staffMgr = new \Justsy\BaseBundle\Management\Staff($da, $this->get("we_data_access_im"), $user); Utils::sendImPresence($user->fafa_jid, implode(",", $staffMgr->getFriendAndColleagueJid()), "staff-changeinfo", "", $this->container, "", "", false, Utils::$systemmessage_code); } catch (\Exception $e) { $log->err($e->getMessage()); } } else { $success = 0; $msg = "添加失败!"; } } catch (\Exception $e) { $this->get("logger")->err($e->getMessage()); $success = 0; $msg = "添加失败!"; } $result = array("s" => $success, "m" => $msg); $response = new Response(json_encode($result)); $response->headers->set('Content-Type', 'text/json'); return $response; }