protected function getData($field, $order, $limit, $offset) { Wind::import('SRV:user.vo.PwUserSo'); $so = new PwUserSo(); $field['uids'] && $so->setUid($field['uids']); $field['gid'] != '-1' && $so->setGid($field['gid']); if ($field['gender']) { if (in_array(0, $field['gender']) && !in_array(1, $field['gender'])) { $so->setGender(0); } elseif (!in_array(0, $field['gender']) && in_array(1, $field['gender'])) { $so->setGender(1); } } $field['hometown']['id'] && $so->setHometown($field['hometown']['id']); $field['location']['id'] && $so->setLocation($field['location']['id']); $orderby = $field['orderby']; switch ($orderby) { case '2': //按主题数倒序, $so->orderbyPostnum(false); break; case '3': //按发帖时间倒序, $so->orderbyLastpost(false); break; case '4': //按被喜欢数倒序, break; case '5': //按注册时间倒序, $so->orderbyRegdate(false); break; case '6': // 按访问时间倒序, $so->orderbyLastvisit(false); break; case '1': //系统推荐排序 //系统推荐排序 default: break; } $list = Wekit::load('user.PwUserSearch')->searchUserAllData($so, $limit, $offset); return $this->_buildSignKey($list); }
/** * 根据规则获取推荐关注 | 先从在线用户取数据,大站20个在线用户总有的吧,20个在线用户都没有,那就慢查吧根据发帖数 * * @param $uid * @param $num * @return array */ public function getRecommendAttention($uid, $num) { $uids = $this->getOnlneUids(20); $onlineCount = count($uids); if ($onlineCount < $num) { $num = $num - $onlineCount; Wind::import('SRV:user.vo.PwUserSo'); $vo = new PwUserSo(); $vo->orderbyPostnum(true); $searchDs = Wekit::load('SRV:user.PwUserSearch'); $result = $searchDs->searchUser($vo, $num); $uids = array_merge($uids, array_keys($result)); } return array_unique(array_diff($uids, array($uid))); }