public function pushNotice($data) { $receiver = $data["receiver"]; if (empty($receiver)) { return Utils::WrapResultError("接收人不能为空"); } $receiver = explode(',', $receiver); if (empty($data["text"])) { return Utils::WrapResultError("内容不能为空"); } $files = isset($data["files"]) ? $data["files"] : ''; if (!empty($files) && is_array($files)) { $files = implode(',', $files); } $noticeid = SysSeq::GetSeqNextValue($this->conn_im, "im_pushnotice_msg", "id"); $filefix = $this->container->getParameter('FILE_WEBSERVER_URL'); $senddata = array(); $senddata = array('noticeid' => $noticeid, 'text' => $data["text"], 'files' => $files, 'receivercount' => count($receiver), 'receiver' => implode(',', $receiver), 'sender' => array('nickname' => $this->user["nick_name"], 'photo' => $this->user["photo_path"], 'jid' => $this->user["jid"], 'date' => date("Y-m-d H:i:s", time()))); $notice = Utils::WrapMessageNoticeinfo($data["text"], $this->module["appname"], null, $this->module["logo"]); $msg = Utils::WrapMessage('push-notice', $senddata, $notice); $msgxml = Utils::WrapMessageXml($this->module["jid"], $msg, 'push-notice-' . $noticeid); $sql = 'insert into im_pushnotice_msg(id,replyid,msg,created,us,msgid)values(?,0,?,now(),?,?)'; $para = array((int) $noticeid, (string) $msgxml, (string) $this->user["jid"], 'push-notice-' . $noticeid); $sql2 = 'insert into im_pushnotice_memebr(noticeid,employeeid,lastread_reply,receive_time)values'; $sql2Values = array(); $staffinfo = new \Justsy\BaseBundle\Management\Staff($this->conn, $this->conn_im, $this->user['login_account'], $this->logger, $this->container); foreach ($receiver as $key => $value) { $rdata = $staffinfo->getstaffinfo($value); if (!empty($rdata)) { $receiver[$key] = $rdata['jid']; $sql2Values[] = '(' . $noticeid . ',\'' . $rdata['jid'] . '\',0,null)'; } } if (count($sql2Values) > 0) { $sql2 = $sql2 . implode(',', $sql2Values); $this->conn_im->ExecSQLs(array($sql, $sql2), array($para, array())); //发送消息 $receiver[] = $this->user["jid"]; Utils::findonlinejid($this->conn_im, $receiver); if (count($receiver) > 0) { $presence = new \Justsy\OpenAPIBundle\Controller\ApiController(); $presence->setContainer($this->container); $presence->sendMsg($this->module["jid"], $receiver, '新通知送达', json_encode($msg)); } } return Utils::WrapResultOK(array('noticeid' => $noticeid)); }