Example #1
0
 /**
  * API:接受所有邮件
  *
  * @access public
  * @param 无
  * @return JsonView 响应json
  */
 public function exeUpdateAllMail()
 {
     $requestParam = $this->getAllParameters();
     Logger::debug('requestParam:' . print_r($requestParam, true));
     $requestJsonParam = $this->getDecodedJsonRequest();
     Logger::debug('requestJsonParam:' . print_r($requestJsonParam, true));
     $user_id = $requestParam['user_id'];
     $session_key = $requestParam['session_key'];
     $mailInfo = MailModel::getSystemMail($user_id);
     $userInfo = UserCache::getAllUserCache($user_id);
     if (!$userInfo) {
         $userInfo = UserAction::iniUserInfo($user_id);
     }
     if (!$mailInfo) {
         $messageArr['error'] = "没有系统邮件";
         $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key);
         $view = new JsonView();
         return $this->getViewByJson($view, $messageArr, 0, "mail/update_all_mail");
     }
     $price_type = $this->price_type;
     foreach ($mailInfo as $key => $value) {
         foreach ($price_type as $key2 => $value2) {
             if ($key2 == $value['n_item_type']) {
                 $userInfo[$value2] = $userInfo[$value2] + $value['n_item_num'];
                 if ($key2 == 4) {
                     $n_thew = $userInfo[$value2];
                 } else {
                     $newInfo[$value2] = $userInfo[$value2];
                 }
                 if ($key2 == 1) {
                     $n_coin = $n_coin + $value['n_item_num'];
                 }
                 if ($key2 == 3) {
                     $n_soul = $n_soul + $value['n_item_num'];
                 }
             }
         }
     }
     if ($n_thew) {
         $thewArr['n_thew'] = $n_thew;
         $thewArr['n_refresh_time'] = UserCache::getBykey($user_id, 'n_refresh_time');
         if (!$thewArr['n_refresh_time']) {
             $userInfo = MailModel::getUserInfo($user_id);
             $thewArr['n_refresh_time'] = $userInfo['n_refresh_time'];
         }
         $getArr = UserAction::refreshThew($thewArr);
         if (!$getArr) {
             $res = CharacterModel::update($thewArr, array('n_id' => $user_id));
             UserCache::setByKey($user_id, 'n_thew', $thewArr['n_thew']);
             UserCache::setByKey($user_id, 'n_refresh_time', $thewArr['n_refresh_time']);
         } else {
             $res = CharacterModel::update($getArr, array('n_id' => $user_id));
             UserCache::setByKey($user_id, 'n_thew', $getArr['n_thew']);
             UserCache::setByKey($user_id, 'n_refresh_time', $getArr['n_refresh_time']);
         }
     }
     //任务成就统计
     TaskAndAchieveAction::taskStatistic($user_id, array('reward' => $n_coin));
     //TaskAndAchieveAction::taskStatistic($user_id,array('soul'=>$n_soul));
     TaskAndAchieveAction::achieveStatistic($user_id, array('soul' => $n_soul));
     $res = MailModel::update(array('n_type' => 0), array('n_receive_id' => $user_id));
     $res = CharacterModel::update($newInfo, array('n_id' => $user_id));
     foreach ($newInfo as $key => $value) {
         UserCache::setByKey($user_id, $key, $value);
     }
     foreach ($price_type as $key => $value) {
         $moneyArr[$value] = UserCache::getByKey($user_id, $value);
         if (!$moneyArr[$value]) {
             $userInfo = MailModel::getUserInfo($user_id);
             $moneyArr[$value] = $userInfo[$value];
         }
     }
     $messageArr['moneyInfo'] = $moneyArr;
     //任务成就界面
     $messageArr['achieveInfo'] = TaskAndAchieveAction::getAchieveInfo($user_id);
     $messageArr['taskInfo'] = TaskAndAchieveAction::getTaskInfo($user_id);
     $messageArr['friend_mail'] = MailModel::getFriendMail($user_id);
     $messageArr['system_mail'] = MailModel::getSystemMail($user_id);
     $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key);
     $view = new JsonView();
     return $this->getViewByJson($view, $messageArr, 1, "mail/update_all_mail");
 }
 public function getAction()
 {
     if (empty($_SERVER['HTTP_X_REQUESTED_WITH'])) {
         error404();
     }
     $model = new MailModel();
     $hash = post('__hash');
     $dialog = getSession($hash);
     $messages = '';
     if (!$dialog['did']) {
         $response['error'] = 'There is no dialogue';
         echo json_encode($response);
         exit;
     }
     $data['countMsg' . $dialog['pos']] = '0';
     $model->update('dialog', $data, "`id` = '" . $dialog['did'] . "'");
     $lastMessageID = getSession('mail_last_message' . $dialog['did'], false);
     $mailList = $model->getMessages($dialog['did'], 'ASC', $lastMessageID);
     if ($mailList) {
         foreach ($mailList as $value) {
             //$objVal = (object)$value;
             $messages .= '<div class="chat_message">' . '<div class="chat_img"><a href="' . url($value['uid']) . '" target="_blank"><img src="' . getAvatar($value['uid'], 's') . '"></a></div>' . '<div class="chat_text">' . '<div><span class="chat_nickname">' . $value['name'] . '</span> <span class="chat_time">' . printTime($value['time']) . '</span></div>' . '<div>' . $value['message'] . '</div>' . '</div>' . '</div>';
             setSession('mail_last_message' . $dialog['did'], $value['id']);
         }
     }
     unset($chatList);
     $response['error'] = 0;
     $response['target_a']['#dialog'] = $messages;
     echo json_encode($response);
     exit;
 }