コード例 #1
0
ファイル: GroupController.php プロジェクト: 3116246/haolinju
         if ($b) {
             $da->ExecSQLs($sqls, $paras);
             return new Response("1");
         } else {
             return new Response("0");
         }
     } catch (\Exception $e) {
         $logger = $this->get('logger')->err($e);
         return new Response("0");
     }
 }
 public function applyCancelAction($groupid)
 {
     $da = $this->get("we_data_access");
     $user = $this->get('security.context')->getToken()->getUser();
     $apply = new \Justsy\BaseBundle\Management\ApplyMgr($da, null);
     $apply->SetGroupApplyInvalid($user->GetUserName(), $groupid);
     $re = array();
     $re["success"] = "1";
     $response = new Response(json_encode($re));
     $response->headers->set('Content-Type', 'text/json');
     return $response;
 }
 //申请加入群组
 public function applyJoinGroupAction()
 {
     $da = $this->get("we_data_access");
     $user = $this->get('security.context')->getToken()->getUser();
     $group_id = $this->get('request')->request->get('group_id');
     $group_name = $this->get('request')->request->get('group_name');
     $create_staff = $this->get('request')->request->get('create_staff');
     $network_domain = $this->get('request')->request->get('network_domain');
     //判断加入群组数是否超过了限制
     $ec = new \Justsy\BaseBundle\Management\EnoParamManager($da, $this->get('logger'));
     if ($ec->IsBeyondJoinGroup($user->getUserName())) {
         return new Response("-2");
コード例 #2
0
ファイル: GroupController.php プロジェクト: 3116246/haolinju
 public function creategroupAction()
 {
     $re = array("returncode" => ReturnCode::$SUCCESS);
     $user = $this->get('security.context')->getToken()->getUser();
     $request = $this->getRequest();
     $circleid = $request->get("circle_id");
     $groupname = $request->get("group_name");
     $groupdesc = $request->get("group_desc");
     $joinmethod = $request->get("join_method", "0");
     $groupclassid = $request->get("group_class_id");
     $invitedmemebers = $request->get("invitedmemebers");
     $group_photo_path = $request->get("group_photo_path");
     $da = $this->get('we_data_access');
     $da_im = $this->get('we_data_access_im');
     $ec = new \Justsy\BaseBundle\Management\EnoParamManager($da, $this->get('logger'));
     try {
         if ($ec->IsBeyondCreateGroup($user->getUserName())) {
             $re["returncode"] = ReturnCode::$SYSERROR;
             $re["error"] = "创建群组数量已超过限制!";
             $response = new Response($request->get('jsoncallback') ? $request->get('jsoncallback') . "(" . json_encode($re) . ");" : json_encode($re));
             $response->headers->set('Content-Type', 'text/json');
             return $response;
         }
         if (empty($circleid) || empty($groupname)) {
             $re["returncode"] = ReturnCode::$SYSERROR;
             $re["error"] = "参数传递错误!";
             $response = new Response($request->get('jsoncallback') ? $request->get('jsoncallback') . "(" . json_encode($re) . ");" : json_encode($re));
             $response->headers->set('Content-Type', 'text/json');
             return $response;
         }
         if (!$this->hasGroup($da, $groupname)) {
             //根据typeid取出typename
             $sql = "select typename from im_grouptype where typeid=?";
             $ds = $da_im->GetData('im_grouptype', $sql, array($groupclassid));
             $typename = '';
             if ($ds['im_grouptype']["recordcount"] > 0) {
                 $typename = $ds["im_grouptype"]['rows'][0]["typename"];
             } else {
                 $typename = $groupclassid;
             }
             //注册fafa_group
             $sqls = array();
             $paras = array();
             $fafa_groupid = SysSeq::GetSeqNextValue($da_im, "im_group", "groupid");
             $sqls[] = "insert into im_group (groupid, groupname, groupclass, groupdesc, creator, add_member_method, accessright) \n\t\t\t        values (?, ?, ?, ?, ?, ?, 'any')";
             $paras[] = array((string) $fafa_groupid, (string) $groupname, (string) $typename, (string) $groupdesc, (string) $user->fafa_jid, (string) $joinmethod);
             $sqls[] = "insert into im_groupemployee (employeeid, groupid, employeenick, grouprole) values (?,?,?,'owner')";
             $paras[] = array((string) $user->fafa_jid, (string) $fafa_groupid, (string) $user->nick_name);
             //跟新群组版本号
             $sqls[] = "delete from im_group_version where us=?";
             $paras[] = array((string) $user->fafa_jid);
             $da_im->ExecSQLs($sqls, $paras);
             //保存图标
             $sqls = array();
             $paras = array();
             $groupId = SysSeq::GetSeqNextValue($da, "we_groups", "group_id");
             $sqls[] = "insert into we_groups (group_id,circle_id,group_name,group_desc,group_photo_path,join_method,create_staff,fafa_groupid,create_date, group_class)\n\t\t\t        values (?,?,?,?,?,?,?,?,now(),?)";
             $paras[] = array((string) $groupId, (string) $circleid, (string) $groupname, (string) $groupdesc, (string) $group_photo_path, (string) $joinmethod, (string) $user->getUserName(), (string) $fafa_groupid, (string) $groupclassid);
             $sqls[] = "insert into we_group_staff (group_id,login_account) values (?,?)";
             $paras[] = array((string) $groupId, (string) $user->getUserName());
             $da->ExecSQLs($sqls, $paras);
             //创建文档根目录
             $docCtl = new \Justsy\BaseBundle\Controller\DocumentMgrController();
             $docCtl->setContainer($this->container);
             if ($docCtl->createDir("g" . $groupId, "c" . $circleid, $groupname, $circleid) > 0) {
                 $docCtl->saveShare("g" . $groupId, "0", $groupId, "g", "w");
                 //将群目录共享给该群组成员
             }
             $im_sender = $this->container->getParameter('im_sender');
             //给创建者发送创建群组成功出席
             Utils::sendImPresence($im_sender, $user->fafa_jid, "creategroup", json_encode(array("groupid" => $fafa_groupid, "logoid" => $group_photo_path, "groupname" => $groupname)), $this->container, "", "", false, Utils::$systemmessage_code);
             //给邀请人员发送消息 站内和即时消息
             if (!empty($invitedmemebers)) {
                 $invitedmemebers = str_replace(";", ";", $invitedmemebers);
                 $invs = explode(";", $invitedmemebers);
                 $title = "邀请加入群组";
                 foreach ($invs as $key => $value) {
                     if (empty($value)) {
                         continue;
                     }
                     //群编号,被邀请人帐号,network_domain,fafa_groupid
                     $encode = DES::encrypt("{$groupId},{$value},{$circleid}," . $fafa_groupid);
                     $activeurl = $this->generateUrl("JustsyBaseBundle_group_invjoin", array('para' => $encode), true);
                     $txt = $this->renderView("JustsyBaseBundle:Group:message.html.twig", array("ename" => $user->ename, "realName" => $user->nick_name, "activeurl" => $activeurl, 'gname' => $groupname));
                     //发送站内消息
                     $msgId = SysSeq::GetSeqNextValue($da, "we_message", "msg_id");
                     $sql = "insert into we_message(msg_id,sender,recver,title,content,send_date)values(?,?,?,?,?,now())";
                     $da->ExecSQL($sql, array((int) $msgId, (string) $user->getUserName(), (string) $value, "邀请加入群组", $txt));
                     //发送即时消息
                     $fafa_jid = Utils::getJidByAccount($da, $value);
                     //$this->get("logger")->info(Utils::makeHTMLElementTag('employee',$user->fafa_jid,$user->nick_name));
                     $message = Utils::makeHTMLElementTag('employee', $user->fafa_jid, $user->nick_name) . "邀请您加入群组【" . Utils::makeHTMLElementTag('group', $fafa_groupid, $groupname) . "】";
                     $buttons = array();
                     $buttons[] = array("text" => "立即加入", "code" => "agree", "value" => "1");
                     $buttons[] = array("text" => "拒绝", "code" => "agree", "value" => "0");
                     Utils::sendImMessage($im_sender, $fafa_jid, $title, $message, $this->container, $activeurl . "?invite_user="******"1");
                 }
             }
             $re["group"] = $this->getGroup($da, $user, $circleid, $groupId);
             //变更版本信息
             $eno = $user->eno;
             $verchange = new \Justsy\BaseBundle\Management\VersionChange($da, $this->get("logger"));
             $result = $verchange->SetVersionChange(2, $groupId, $eno);
         } else {
             $re["returncode"] = ReturnCode::$SYSERROR;
             $re["error"] = "群组名称已存在!";
         }
     } catch (Exception $e) {
         $re["returncode"] = ReturnCode::$SYSERROR;
         $re["error"] = "系统错误,创建群组失败!";
         $this->get('logger')->err($e);
     }
     $response = new Response($request->get('jsoncallback') ? $request->get('jsoncallback') . "(" . json_encode($re) . ");" : json_encode($re));
     $response->headers->set('Content-Type', 'text/json');
     return $response;
 }
コード例 #3
0
ファイル: CircleController.php プロジェクト: 3116246/haolinju
 public function applyJoinAction()
 {
     $da = $this->get("we_data_access");
     $user = $this->get('security.context')->getToken()->getUser();
     $circleId = $this->get('request')->request->get('circleId');
     $apply = new \Justsy\BaseBundle\Management\ApplyMgr($da, null);
     //判断是否已加入该圈子
     $sql = "select count(1) as cnt from we_circle_staff where circle_id=? and login_account=?";
     $ds = $da->GetData('we_circle_staff', $sql, array((string) $circleId, (string) $user->getUserName()));
     if (!$ds || $ds['we_circle_staff']['recordcount'] == 0) {
         //已经是该圈子成员
         return new Response("-1");
     }
     //判断是否已超出加入圈子数量的限制
     $ec = new \Justsy\BaseBundle\Management\EnoParamManager($da, $this->get('logger'));
     if ($ec->IsBeyondJoinCircle($user->getUserName())) {
         return new Response("-2");
     }
     //判断改圈子成员数是否已满
     if ($ec->IsBeyondCircleMembers($circleId)) {
         return new Response("-3");
     }
     //判断是否已申请或者超出申请限制
     $result = $apply->ApplyJoinCircle($user->getUsername(), $circleId, "");
     if ($result == 0 || $result == 99999) {
         return new Response((string) $result);
     }
     $circleObj = new \Justsy\BaseBundle\Management\CircleMgr($da, null, $circleId);
     $circle = $circleObj->Get();
     if ($circle == null) {
         return new Response("0");
     }
     $createStaff = $circle["create_staff"];
     $circleName = $circle["circle_name"];
     //para 圈子ID,申请人帐号,申请人姓名,圈子名称 DES加密
     $para = DES::encrypt($circleId . "," . $user->getUserName() . "," . $user->nick_name . "," . $circleName);
     $addurl = $this->generateUrl("JustsyBaseBundle_publicpage_agreejoincircle", array('para' => $para), true);
     $refuseurl = $this->generateUrl("JustsyBaseBundle_circle_refusejoincircle", array(), true);
     $txt = $this->renderView("JustsyBaseBundle:Circle:mail_apply_join.html.twig", array("ename" => $user->ename, "realName" => $user->nick_name, "account" => DES::encrypt($user->getUserName()), "activeurl" => $addurl, "circlename" => $circleName, "refuseurl" => $refuseurl, "para" => $para));
     //发送站内消息
     $sqls = array();
     $paras = array();
     $msgId = SysSeq::GetSeqNextValue($da, "we_message", "msg_id");
     $sqls[] = "insert into we_message(msg_id,sender,recver,send_date,title,content)values(?,?,?,now(),?,?)";
     //$sqls[] = "insert into we_notify(notify_type, msg_id,notify_staff)values('01',?,?)";
     $paras[] = array((int) $msgId, (string) $user->getUserName(), (string) $createStaff, "申请加入圈子", $txt);
     //$paras[] = array((int)$msgId,(string)$createStaff);
     $da->ExecSQLs($sqls, $paras);
     Utils::saveMail($da, $user->getUsername(), $createStaff, "申请加入圈子", $txt, $circleId);
     //Utils::sendMail($this->get('mailer'),"申请加入微发发企业社交圈子",$this->container->getParameter('mailer_user'),null,$createStaff,$txt);
     //发送即时消息
     $im_sender = $this->container->getParameter('im_sender');
     $fafa_jid = $circle["fafa_jid"];
     $message = Utils::makeHTMLElementTag('employee', $user->fafa_jid, $user->nick_name) . "申请加入您的圈子【" . $circleName . "】";
     $buttons = array();
     $buttons[] = array("text" => "拒绝", "code" => "agree", "value" => "0", "link" => $refuseurl . "?para=" . $para);
     $buttons[] = array("text" => "同意", "code" => "agree", "value" => "1", "link" => $addurl);
     Utils::sendImMessage($im_sender, $fafa_jid, "申请加入圈子", $message, $this->container, "", Utils::makeBusButton($buttons), false, Utils::$systemmessage_code);
     return new Response("1");
 }
コード例 #4
0
ファイル: CircleController.php プロジェクト: 3116246/haolinju
 public function createcircleAction()
 {
     $re = array("returncode" => ReturnCode::$SUCCESS);
     $user = $this->get('security.context')->getToken()->getUser();
     $request = $this->getRequest();
     $circlename = $request->get("circle_name");
     $circledesc = $request->get("circle_desc");
     $joinmethod = $request->get("join_method", "0");
     $allowcopy = $request->get("allow_copy", "0");
     $circleclassid = $request->get("circle_class_id");
     $invitedmemebers = $request->get("invitedmemebers");
     $logo_path = $request->get("logo_path");
     $logo_path_small = $request->get("logo_path_small");
     $logo_path_big = $request->get("logo_path_big");
     $da = $this->get('we_data_access');
     $da_im = $this->get('we_data_access_im');
     try {
         if (empty($circlename) || empty($circleclassid)) {
             $re["returncode"] = ReturnCode::$SYSERROR;
             $re["error"] = "参数传递错误!";
             $response = new Response($request->get('jsoncallback') ? $request->get('jsoncallback') . "(" . json_encode($re) . ");" : json_encode($re));
             $response->headers->set('Content-Type', 'text/json');
             return $response;
         }
         if (!$this->hasCircle($da, $circlename)) {
             $ec = new \Justsy\BaseBundle\Management\EnoParamManager($da, $this->get('logger'));
             if ($ec->IsBeyondCreateCircle($user->getUserName())) {
                 $re["returncode"] = ReturnCode::$SYSERROR;
                 $re["error"] = "创建圈子数量已超过限制!";
             } else {
                 $circle_id = (string) SysSeq::GetSeqNextValue($da, "we_circle", "circle_id");
                 //创建圈子不再同步创建群组
                 //liling 2015-1-18
                 $fafa_groupid = "";
                 // SysSeq::GetSeqNextValue($da_im,"im_group","groupid");
                 $network = $circle_id;
                 $sqls = array("insert into we_circle(circle_id,circle_name,circle_desc,logo_path,logo_path_big,logo_path_small,create_staff,create_date,manager,join_method,network_domain,allow_copy,circle_class_id,fafa_groupid)value(?,?,?,?,?,?,?,now(),?,?,?,?,?,?)", "insert into we_circle_staff(circle_id,login_account,nick_name)values(?,?,?)");
                 $paras = array(array((string) $circle_id, (string) $circlename, (string) $circledesc, (string) $logo_path, (string) $logo_path_big, (string) $logo_path_small, (string) $user->getUsername(), (string) $user->getUsername(), (string) $joinmethod, $network, (string) $allowcopy, (string) $circleclassid, (string) $fafa_groupid), array((string) $circle_id, (string) $user->getUsername(), (string) $user->nick_name));
                 $da->ExecSQLs($sqls, $paras);
                 //创建文档根目录
                 $docCtl = new \Justsy\BaseBundle\Controller\DocumentMgrController();
                 $docCtl->setContainer($this->container);
                 if ($docCtl->createDir("c" . $circle_id, "", $circlename, $circle_id) > 0) {
                     $docCtl->saveShare("c" . $circle_id, "0", $circle_id, "c", "w");
                     //将圈子目录共享给该圈子成员
                 }
                 //给创建者发送创建群组成功出席
                 //Utils::sendImPresence($user->fafa_jid,$user->fafa_jid,"creategroup",json_encode(array("groupid"=> $fafa_groupid,"groupname"=> $circlename)),$this->container,"","",false,Utils::$systemmessage_code);
                 //发送邀请邮件
                 if (!empty($invitedmemebers)) {
                     $user = $this->get('security.context')->getToken()->getUser();
                     $invInfo = array('inv_send_acc' => $user->getUsername(), 'inv_recv_acc' => '', 'eno' => '', 'inv_rela' => '', 'inv_title' => '', 'inv_content' => '', 'active_addr' => '');
                     $invitedmemebers = str_replace(";", ";", $invitedmemebers);
                     $invitedmemebersLst = explode(";", $invitedmemebers);
                     foreach ($invitedmemebersLst as $key => $value) {
                         $invacc = trim($value);
                         if (empty($invacc)) {
                             continue;
                         }
                         $invInfo['inv_recv_acc'] = $invacc;
                         $sql = "select eno,fafa_jid from we_staff where login_account=?";
                         $ds = $da->GetData("we_staff", $sql, array((string) $invacc));
                         //帐号存在
                         if ($ds && $ds['we_staff']['recordcount'] > 0) {
                             //1.帐号存在,直接加入圈子
                             //受邀人员帐号,圈子id,邀请人帐号
                             $encode = DES::encrypt("{$invacc},{$circle_id}," . $user->getUsername());
                             $activeurl = $this->generateUrl("JustsyBaseBundle_invite_agreejoincircle", array('para' => $encode), true);
                             $rejectactiveurl = $this->generateUrl("JustsyBaseBundle_invite_refuse", array('para' => $encode), true);
                             $txt = $this->renderView('JustsyBaseBundle:Invite:circle_invitation_msg.html.twig', array("ename" => $user->ename, "nick_name" => $user->nick_name, "activeurl" => $activeurl, 'circle_name' => $circlename, 'invMsg' => '', 'staff' => array()));
                             $invInfo['eno'] = "c{$circle_id}";
                             $invInfo['inv_title'] = "邀请加入圈子【" . Utils::makeCircleTipHTMLTag($circle_id, $circlename) . "】";
                             $invInfo['inv_content'] = '';
                             $invInfo['active_addr'] = $activeurl;
                             //保存邀请信息
                             InviteController::saveWeInvInfo($da, $invInfo);
                             //发送即时消息
                             $fafa_jid = $ds['we_staff']['rows'][0]['fafa_jid'];
                             $message = Utils::makeHTMLElementTag('employee', $user->fafa_jid, $user->nick_name) . "邀请您加入圈子【" . Utils::makeHTMLElementTag('circle', $fafa_groupid, $circlename) . "】";
                             $buttons = array();
                             $buttons[] = array("text" => "拒绝", "code" => "agree", "value" => "0", "link" => $rejectactiveurl);
                             $buttons[] = array("text" => "立即加入", "code" => "agree", "value" => "1", "link" => $activeurl);
                             Utils::sendImMessage($im_sender, $fafa_jid, "邀请加入圈子", $message, $this->container, "", Utils::makeBusButton($buttons), false, Utils::$systemmessage_code);
                         } else {
                             //2.帐号不存在
                             $tmp = explode("@", $invacc);
                             $tmp = count($tmp) > 1 ? $tmp[1] : 'fafatime.com';
                             $sql = "select count(1) as cnt from we_public_domain where domain_name=?";
                             $ds = $da->GetData("we_public_domain", $sql, array((string) $tmp));
                             if ($ds && $ds['we_public_domain']['rows'][0]['cnt'] == 0) {
                                 //2.1企业邮箱
                                 $sql = "select eno from we_enterprise where edomain=?";
                                 $ds = $da->GetData("we_enterprise", $sql, array((string) $tmp));
                                 if ($ds && $ds['we_enterprise']['recordcount'] > 0) {
                                     //2.1.1企业已创建 帐号,圈子id,企业edomain des encode
                                     $eno = $ds['we_enterprise']['rows'][0]['eno'];
                                     $encode = DES::encrypt($user->getUsername() . ",{$circle_id},{$eno}");
                                     $activeurl = $this->generateUrl("JustsyBaseBundle_active_inv_s1", array('account' => DES::encrypt($invacc), 'invacc' => $encode), true);
                                 } else {
                                     //2.1.2企业未创建
                                     $sql = "insert into we_register (login_account,ename,credential_path,active_code,ip,email_type,first_reg_date,last_reg_date,register_date,state_id)" . " values (?,?,?,?,?,?,now(),now(),now(),'0')";
                                     $para = array($invacc, '', '', strtoupper(substr(uniqid(), 3, 10)), $_SERVER['REMOTE_ADDR'], '1');
                                     $da->ExecSQL($sql, $para);
                                     //发送邮件 帐号,圈子id,邀请发送者帐号,邀请人企业名 des encode
                                     $encode = DES::encrypt("{$invacc},{$circle_id}," . $user->getUserName() . "," . $user->ename);
                                     $activeurl = $this->generateUrl("JustsyBaseBundle_active_reg_s1", array('account' => $encode), true);
                                 }
                                 //保存邀请信息 circleid保存到eno字段,以字母'c'开头
                                 $invInfo['eno'] = "c{$circle_id}";
                                 $title = $user->nick_name . " 邀请您加入 " . Utils::makeCircleTipHTMLTag($circle_id, $circlename) . " 协作网络";
                                 $txt = $this->renderView('JustsyBaseBundle:Invite:circle_invitation.html.twig', array("ename" => $user->ename, "nick_name" => $user->nick_name, "activeurl" => $activeurl, 'circle_name' => $circlename, 'invMsg' => '', 'staff' => array()));
                                 $invInfo['inv_title'] = $title;
                                 $invInfo['inv_content'] = $txt;
                                 $invInfo['active_addr'] = $activeurl;
                                 InviteController::saveWeInvInfo($da, $invInfo);
                                 Utils::saveMail($da, $user->getUsername(), $invacc, $title, $txt, $invInfo['eno']);
                             } else {
                                 //公共邮箱
                                 $sql = "insert into we_register (login_account,ename,credential_path,active_code,ip,email_type,first_reg_date,last_reg_date,register_date,state_id) " . "select ?,'','','" . strtoupper(substr(uniqid(), 3, 10)) . "','" . $_SERVER['REMOTE_ADDR'] . "','0',now(),now(),now(),'2' from dual " . "where not exists (select 1 from we_register where login_account=?)";
                                 $para = array($invacc, $invacc);
                                 $da->ExecSQL($sql, $para);
                                 //发送邮件 帐号,圈子id,邀请发送者帐号,邀请人企业名 des encode
                                 $encode = DES::encrypt("{$invacc},{$circle_id}," . $user->getUserName() . "," . $user->ename);
                                 $activeurl = $this->generateUrl("JustsyBaseBundle_active_reg_s1", array('account' => $encode), true);
                                 $invInfo['eno'] = "c{$circle_id}";
                                 $title = $user->nick_name . " 邀请您加入 " . Utils::makeCircleTipHTMLTag($circle_id, $circlename) . " 协作网络";
                                 $txt = $this->renderView('JustsyBaseBundle:Invite:circle_invitation.html.twig', array("ename" => $user->ename, "nick_name" => $user->nick_name, "activeurl" => $activeurl, 'circle_name' => $circlename, 'invMsg' => '', 'staff' => array()));
                                 //保存邀请信息
                                 $invInfo['inv_title'] = $title;
                                 $invInfo['inv_content'] = $txt;
                                 $invInfo['active_addr'] = $activeurl;
                                 InviteController::saveWeInvInfo($da, $invInfo);
                                 Utils::saveMail($da, $user->getUsername(), $invacc, $title, $txt, $invInfo['eno']);
                             }
                         }
                     }
                 }
                 $re["circle"] = $this->getCricle($da, $circle_id);
             }
         } else {
             $re["returncode"] = ReturnCode::$SYSERROR;
             $re["error"] = "圈子名称已存在!";
         }
     } catch (\Exception $e) {
         $re["returncode"] = ReturnCode::$SYSERROR;
         $re["error"] = "系统错误,创建圈子失败!";
         $this->get('logger')->err($e);
     }
     $response = new Response($request->get('jsoncallback') ? $request->get('jsoncallback') . "(" . json_encode($re) . ");" : json_encode($re));
     $response->headers->set('Content-Type', 'text/json');
     return $response;
 }