public function getDataAccessAction()
 {
     $request = $this->getRequest();
     //判断是否是访问api控制器,是则直接跳转过去
     $module = trim($request->get("module"));
     if (!empty($module) && strpos($module, "Api") !== false) {
         $action = trim($request->get("action"));
         $apiclass = "\\Justsy\\OpenAPIBundle\\Controller\\" . $module . "Controller";
         $apiclass = new $apiclass();
         $apiclass->setContainer($this->container);
         return call_user_func_array(array($apiclass, $action . "Action"), array());
     }
     //访问权限校验
     $api = new \Justsy\OpenAPIBundle\Controller\ApiController();
     $api->setContainer($this->container);
     $isWeFaFaDomain = $api->checkWWWDomain();
     $da = $this->get('we_data_access');
     if (!$isWeFaFaDomain) {
         $token = $api->checkAccessToken($request, $da);
         if (!$token) {
             $re = array("returncode" => "9999");
             $re["code"] = "err0105";
             $re["msg"] = "参数Appid或Openid或Access_token未指定或无效.";
             return $this->responseJson($request, $re);
         }
     }
     $dbAccessInf = new \Justsy\InterfaceBundle\Controller\DataInterfaceController();
     $dbAccessInf->setContainer($this->container);
     $response = $dbAccessInf->getDataAccessAction();
     return $response;
 }
 public function getHisMessageAction()
 {
     $request = $this->getRequest();
     $conn = $this->get("we_data_access");
     $conn_im = $this->get("we_data_access_im");
     $logger = $this->get("logger");
     $container = $this->container;
     $api = new \Justsy\OpenAPIBundle\Controller\ApiController();
     $api->setContainer($this->container);
     $isWeFaFaDomain = $api->checkWWWDomain();
     if (!$isWeFaFaDomain) {
         $token = $api->checkAccessToken($request, $conn);
         if (!$token) {
             $re = array("returncode" => "9999");
             $re["code"] = "err0105";
             $re["msg"] = "参数Appid或Openid或Access_token未指定或无效.";
             return $this->responseJson($re);
         }
     }
     $microaccount = $request->get("microaccount");
     //微应用帐号
     $microgroupid = $request->get("microgroupid");
     //微应用分组ID
     $pageindex = $request->get("pageindex");
     //分页索引数
     $factory = $this->get('security.encoder_factory');
     if (empty($microaccount)) {
         return $this->responseJson(array("returncode" => ReturnCode::$SYSERROR, "msg" => "帐号不能为空."));
     }
     if (empty($pageindex)) {
         $pageindex = 1;
     }
     $baseinfoCtl = new \Justsy\BaseBundle\Management\Staff($conn, $conn_im, $request->get("openid"), $this->get("logger"), $this->container);
     $currUser = $baseinfoCtl->getSessionUser();
     if (empty($currUser)) {
         return $this->responseJson(array("returncode" => ReturnCode::$SYSERROR, "msg" => "无效的操作帐号"));
     }
     $sql_micro = "select number,type from we_micro_account where jid=?";
     $para_micro = array($microaccount);
     $data_micro = $conn->GetData("dt", $sql_micro, $para_micro);
     if ($data_micro == null || count($data_micro["dt"]["rows"]) == 0 || empty($data_micro["dt"]["rows"][0]["number"])) {
         return $this->responseJson(array("returncode" => ReturnCode::$SYSERROR, "msg" => "微应用帐号不存在."));
     }
     $microaccount = $data_micro["dt"]["rows"][0]['number'];
     $login_account = $currUser->getUserName();
     $micr_type = $data_micro["dt"]["rows"][0]["type"];
     //var_dump($login_account);
     $sql_total = "select count(1) as count from we_micro_send_message where send_account=? ";
     $para_total = array($microaccount);
     if (!empty($microgroupid)) {
         $sql_total = "select count(1) as count from we_micro_send_message where send_account=? and send_groupid=? ";
         $para_total = array($microaccount, $microgroupid);
     }
     $data_total = $conn->GetData("dt", $sql_total, $para_total);
     $total = 0;
     if ($data_total != null && count($data_total['dt']['rows']) > 0) {
         $total = $data_total['dt']['rows'][0]['count'];
     }
     $totalpage = 1;
     if ($total > 1) {
         $totalpage = ceil($total / 10);
     }
     $startrow = ($pageindex - 1) * 10;
     $sql = "select * from we_micro_send_message where send_account=? order by send_datetime desc LIMIT " . $startrow . ",10";
     $para = array($microaccount);
     if (!empty($microgroupid)) {
         $sql = "select * from we_micro_send_message where send_account=? and send_groupid=? order by send_datetime desc LIMIT " . $startrow . ",10";
         $para = array($microaccount, $microgroupid);
     }
     $re = array('returncode' => '9999', "msg" => '消息获取失败');
     $data_row = $conn->GetData("dt", $sql, $para);
     //var_dump($sql);
     if ($data_row != null && count($data_row['dt']['rows']) > 0) {
         $objlist = array();
         $pushMgr = new \Justsy\AdminAppBundle\Controller\MsgPushController();
         $pushMgr->setContainer($this->container);
         for ($i = 0; $i < count($data_row['dt']['rows']); $i++) {
             $send_id = $data_row['dt']['rows'][$i]["id"];
             $send_type = $data_row['dt']['rows'][$i]["send_type"];
             $send_datetime = $data_row['dt']['rows'][$i]["send_datetime"];
             $sql = "select * from we_micro_message where send_id=?";
             $para = array($send_id);
             $dataitem = $conn->GetData("dt", $sql, $para);
             if ($dataitem != null && count($dataitem['dt']['rows']) > 0) {
                 $list = array("type" => $send_type, "date" => $send_datetime);
                 //var_dump($send_type);
                 switch ($send_type) {
                     case 'TEXT':
                         $text_items = array();
                         for ($l = 0; $l < count($dataitem['dt']['rows']); $l++) {
                             $item = array('title' => $dataitem['dt']['rows'][$l]["msg_title"], 'content' => $dataitem['dt']['rows'][$l]["msg_text"]);
                             array_push($text_items, $item);
                         }
                         $list['data'] = array('item' => $text_items);
                         //var_dump($list);
                         break;
                     case 'PICTURE':
                         for ($j = 0; $j < count($dataitem['dt']['rows']); $j++) {
                             $headitem = array("title" => $dataitem['dt']['rows'][$j]["msg_title"], 'content' => $dataitem['dt']['rows'][$j]["msg_summary"], 'image' => array('type' => $dataitem['dt']['rows'][$j]["msg_img_type"], 'value' => $dataitem['dt']['rows'][$j]["msg_img_url"]), 'link' => $pushMgr->getLink($dataitem['dt']['rows'][$j]["msg_web_url"]));
                             $list['data'] = array("headitem" => $headitem);
                         }
                         break;
                     case 'TEXTPICTURE':
                         $items = array();
                         for ($k = 0; $k < count($dataitem['dt']['rows']); $k++) {
                             $ishead = $dataitem['dt']['rows'][$k]["ishead"];
                             //var_dump($ishead);
                             if ($ishead == "1") {
                                 $headitem = array("title" => $dataitem['dt']['rows'][$k]["msg_title"], 'content' => $dataitem['dt']['rows'][$k]["msg_text"], 'image' => array('type' => $dataitem['dt']['rows'][$k]["msg_img_type"], 'value' => $dataitem['dt']['rows'][$k]["msg_img_url"]), 'link' => $pushMgr->getLink($dataitem['dt']['rows'][$k]["msg_web_url"]));
                                 $data['headitem'] = $headitem;
                             } else {
                                 $item = array("title" => $dataitem['dt']['rows'][$k]["msg_title"], 'content' => $dataitem['dt']['rows'][$k]["msg_text"], 'image' => array('type' => $dataitem['dt']['rows'][$k]["msg_img_type"], 'value' => $dataitem['dt']['rows'][$k]["msg_img_url"]), 'link' => $pushMgr->getLink($dataitem['dt']['rows'][$k]["msg_web_url"]));
                                 array_push($items, $item);
                             }
                         }
                         if (!empty($items)) {
                             $data['item'] = $items;
                         }
                         $list['data'] = $data;
                         break;
                 }
                 array_push($objlist, $list);
             }
         }
         if (!empty($objlist)) {
             $re = array('returncode' => '0000', "total" => $total, 'totalpage' => $totalpage, 'list' => $objlist);
         }
     } else {
         $re = array('returncode' => '0000', "total" => 0, 'totalpage' => 1, 'list' => array());
     }
     return $this->responseJson($re);
 }