コード例 #1
0
ファイル: UserModule.php プロジェクト: nicklos17/appserver
 /**
  * [用户体验模式数据获取]
  * @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;
     }
 }
コード例 #2
0
ファイル: RankModule.php プロジェクト: nicklos17/appserver
 /**
  * [获取总排行榜]
  * @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;
     }
 }