示例#1
0
 public function run()
 {
     list($page, $perpage, $username, $starttime, $endtime, $keyword) = $this->getInput(array('page', 'perpage', 'username', 'starttime', 'endtime', 'keyword'));
     $starttime && ($pwStartTime = Pw::str2time($starttime));
     $endtime && ($pwEndTime = Pw::str2time($endtime));
     $page = $page ? $page : 1;
     $perpage = $perpage ? $perpage : $this->perpage;
     list($start, $limit) = Pw::page2limit($page, $perpage);
     if ($username) {
         $userinfo = $this->_getUserDs()->getUserByName($username);
         $fromUid = $userinfo['uid'] ? $userinfo['uid'] : 0;
     }
     Wind::import('WINDID:service.message.srv.vo.WindidMessageSo');
     $vo = new WindidMessageSo();
     $endtime && $vo->setEndTime($endtime);
     $fromUid && $vo->setFromUid($fromUid);
     $keyword && $vo->setKeyword($keyword);
     $starttime && $vo->setStarttime($starttime);
     $messages = $this->_getMessageDs()->searchMessage($vo, $start, $limit);
     $count = $this->_getMessageDs()->countMessage($vo);
     foreach ($messages as $k => $v) {
         $uids[] = $v['from_uid'];
     }
     $users = $this->_getUserDs()->fetchUserByUid($uids);
     foreach ($messages as $k => $v) {
         $messages[$k]['username'] = $users[$v['from_uid']]['username'];
     }
     $this->setOutput($count, 'count');
     $this->setOutput($page, 'page');
     $this->setOutput($perpage, 'perpage');
     $this->setOutput(array('keyword' => $keyword, 'username' => $username, 'starttime' => $starttime, 'endtime' => $endtime), 'args');
     $this->setOutput($messages, 'messages');
 }