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; } }