/upload/src/service/space/bo/PwSpaceModel.php
https://gitlab.com/wuhang2003/phpwind · PHP · 134 lines · 107 code · 12 blank · 15 comment · 9 complexity · e0c82ee4005a224ad15015d1d969f460 MD5 · raw file
- <?php
- Wind::import('SRV:space.bo.PwSpaceBo');
- /**
- * the last known user to change this file in the repository <$LastChangedBy: jieyin $>
- * @author $Author: jieyin $ Foxsee@aliyun.com
- * @copyright ©2003-2103 phpwind.com
- * @license http://www.phpwind.com
- * @version $Id: PwSpaceModel.php 20893 2012-11-16 07:00:39Z jieyin $
- * @package
- */
-
- class PwSpaceModel extends PwSpaceBo {
-
- /**
- * 模块调用接口
- * Enter description here ...
- * @param string $mod visit|tovisit|tag|keys|fllow|fans
- * @param int $limit
- * @param int $page
- */
- public function model($mod, $limit = 10, $page = 0) {
- $limit = (int)$limit;
- $page = (int)$page;
- if ($page > 0 ) {
- $method = sprintf('model%sList', ucwords($mod));
- if (!method_exists($this, $method)) return array();
- return $this->$method($limit, $page);
- } else {
- $method = sprintf('model%s', ucwords($mod));
- if (!method_exists($this, $method)) return array();
- return $this->$method($limit);
- }
- }
-
- protected function modelVisit($limit) {
- $_users = array();
- $visitors = unserialize($this->space['visitors']);
- if (!$visitors) return array(0,array());
- $count = count($visitors);
- $visitors = is_array($visitors) ? array_slice($visitors, 0, $limit, true) : array();
- $uids = array_keys($visitors);
- $users = Wekit::load('user.PwUser')->fetchUserByUid($uids);
- foreach ($visitors AS $k=>$v) {
- $users[$k]['visitor_time'] = $v;
- $_users[$k] = $users[$k];
- }
-
- return array($count, $_users);
- }
-
- protected function modelTovisit($limit) {
- $_users = array();
- $tovisitors = unserialize($this->space['tovisitors']);
- if (!$tovisitors) return array(0,array());
- $count = count($tovisitors);
- $tovisitors = is_array($tovisitors) ? array_slice($tovisitors, 0, $limit, true) : array();
- $uids = array_keys($tovisitors);
- $users = Wekit::load('user.PwUser')->fetchUserByUid($uids);
- foreach ($tovisitors AS $k=>$v) {
- $users[$k]['visitor_time'] = $v;
- $_users[$k] = $users[$k];
- }
- return array($count, $_users);
- }
-
- protected function modelTag($limit) {
- $count = Wekit::load('tag.PwTagAttention')->countAttentionByUid($this->spaceUid);
- return array($count, Wekit::load('tag.PwTag')->getAttentionByUid($this->spaceUid, 0, $limit));
- }
-
- protected function modelUserTag($limit) {
- $tags = Wekit::load('usertag.srv.PwUserTagService')->getUserTagList($this->spaceUid);
- $count = count($tags);
- $tags = is_array($tags) ? array_slice($tags, 0, $limit, true) : array();
- return array($count, $tags);
- }
-
- protected function modelFollow($limit) {
- $count = $this->spaceUser['follows'];
- $follows = Wekit::load('attention.PwAttention')->getFollows($this->spaceUid, $limit, 0);
- $uids = array_keys($follows);
- return array($count, Wekit::load('user.PwUser')->fetchUserByUid($uids));
- }
-
- protected function modelFans($limit) {
- $count = $this->spaceUser['fans'];
- $fans = Wekit::load('attention.PwAttention')->getFans($this->spaceUid, $limit, 0);
- $uids = array_keys($fans);
- return array($count, Wekit::load('user.PwUser')->fetchUserByUid($uids));
- }
-
- protected function modelThreadList($limit, $page) {
- $ds = Wekit::load('forum.PwThread');
- $count =$ds->countThreadByUid($this->spaceUid);
- if ($count) {
- list($offset,$limit) = Pw::page2limit($page, $limit);
- $threads = $ds->getThreadByUid($this->spaceUid,$limit,$offset, 2);
- }
- return array($count, $threads);
- }
-
- protected function modelPostList($limit, $page) {
- $ds = Wekit::load('forum.PwThread');
- list($offset,$limit) = Pw::page2limit($page, $limit);
- $count = $ds->countPostByUid($this->spaceUid);
- if ($count) {
- $tmpPosts = $ds->getPostByUid($this->spaceUid, $limit, $offset);
- $posts = $tids = array();
- foreach ($tmpPosts as $v) {
- $tids[] = $v['tid'];
- }
- $threads = $this->_getThreadDs()->fetchThread($tids);
- foreach ($tmpPosts as $v) {
- $v['threadSubject'] = Pw::substrs($threads[$v['tid']]['subject'], 30);
- $v['content'] = Pw::substrs($v['content'], 30);
- $v['created_time'] = PW::time2str($v['created_time'],'auto');
- $posts[] = $v;
- }
- }
- return array($count, $posts);
- }
-
- protected function modelFreshList($limit, $page) {
- Wind::import('SRV:attention.srv.PwFreshDisplay');
- Wind::import('SRV:attention.srv.dataSource.PwFetchMyFresh');
- $count = Wekit::load('attention.PwFresh')->countFreshByUid($this->spaceUid);
- $totalpage = ceil($count / $limit);
- $page > $totalpage && $page = $totalpage;
- list($offset,$limit) = Pw::page2limit($page, $limit);
- $freshDisplay = new PwFreshDisplay(new PwFetchMyFresh($this->spaceUid, $limit, $offset));
- return array($count, $freshDisplay->gather());
- }
- }
- ?>