/** * [用户体验模式数据获取] * @return [type] [description] */ public function trial($lat, $lng) { try { $trial = new \Appserver\Utils\RpcService($this->di['sysconfig']['thriftConf']['ip'], $this->di['sysconfig']['thriftConf']['port']); $trialData = json_decode($trial->GetTrialData($lat, $lng, (string) $_SERVER['REQUEST_TIME']), true); if (!empty($trialData) && is_array($trialData)) { $msgList = $trialData['msgList']; $picUrl = $this->di['sysconfig']['msgsPicServer'] . '/' . $this->di['sysconfig']['msgPic'] . '/%s.png'; foreach ($msgList as $k => $val) { $val['title'] = $this->di['sysconfig']['msgTitle'][$val['msg_type']]; $val['pic'] = sprintf($picUrl, $val['msg_type']); if ($val['msg_type'] === '1' || $val['msg_type'] === '3') { $trialData['dailylist'][] = $val; } else { $trialData['syslist'][] = $val; } } unset($trialData['msgList']); if (!isset($trialData['dailylist'])) { $trialData['dailylist'] = array(); } if (!isset($trialData['syslist'])) { $trialData['syslist'] = array(); } return array('flag' => '1', 'data' => $trialData); } else { return self::FAILED_UPDATE_DATA; } } catch (\Exception $e) { return self::FAILED_GET_DATA; } }
/** * [获取总排行榜] * @param [type] $babyId [宝贝id] * @param [type] $count [排行榜个数] * @param string $sinceId [下拉排行,用来获取更高的名次] * @param string $maxId [上拉排行,用来获取更低的名次] * @return [type] [description] */ public function getAllRank($babyId, $count, $sinceId = '', $maxId = '') { try { //获取今天的时间戳 $today = strtotime(date('Y-m-d', $_SERVER['REQUEST_TIME'])); if ($count == 0 || $sinceId != 0 && $maxId != 0) { return self::INVALID_OPERATE; } $getRankFromRpc = new \Appserver\Utils\RpcService($this->di['sysconfig']['thriftConf']['ip'], $this->di['sysconfig']['thriftConf']['port']); if ($sinceId == 0 && $maxId == 0) { $data = $getRankFromRpc->GetStepAllRank($babyId, intval(($count - 4) / 2)); $data = json_decode($data, true); if (!empty($data)) { //如果宝贝没有排行,或者排名在前三则返回前count位排名 if (empty($data['you']) || $data['you']['index'] <= '3') { $data = json_decode($getRankFromRpc->GetStepAllRankByOffset(1, $count), true); } else { //去掉before数组里面存在的前三的名次 foreach ($data['before'] as $k => $v) { if ($v['index'] <= '3') { unset($data['before'][$k]); } } //如果自己排名前三,也去掉自己 if ($data['you']['index'] <= '3') { $data = array_merge(array_chunk($data['top'], '3')[0], $data['after']); } else { $data = array_merge(array_chunk($data['top'], '3')[0], $data['before'], array($data['you']), $data['after']); } } } } elseif ($sinceId != 0 && $maxId == 0) { $data = json_decode($getRankFromRpc->GetStepAllRankByOffset($sinceId - $count, $sinceId - 1), true); } elseif ($sinceId == 0 && $maxId != 0) { $data = json_decode($getRankFromRpc->GetStepAllRankByOffset($maxId + 1, $maxId + $count), true); } if (!empty($data)) { //获取宝贝id的集合 $bids = array_column($data, 'baby_id'); $babyInfo = $this->baby->getListBybid(implode(',', $bids)); foreach ($data as $m => $val) { $data[$m]['rank'] = $rank[$m] = (string) $val['index']; if (intval($val['last_index']) == 0) { $data[$m]['change'] = '0'; } else { $data[$m]['change'] = (string) ($val['last_index'] - $val['index']); } foreach ($babyInfo as $k => $v) { if ($v['baby_id'] == $val['baby_id']) { $data[$m]['baby_pic'] = $this->di['sysconfig']['babyPicServer'] . $babyInfo[$k]['baby_pic']; $data[$m]['nick'] = $babyInfo[$k]['nick']; $data[$m]['sex'] = $babyInfo[$k]['sex']; } } //如果匹配不到图片,返回空 if (!isset($data[$m]['baby_pic'])) { $data[$m]['baby_pic'] = ''; } } //按名次排序 array_multisort($rank, SORT_ASC, $data); } else { $data = array(); } return array('flag' => '1', 'list' => $data); } catch (\Exception $e) { return self::NON_DATA; } }