Beispiel #1
0
 /**
  * API:接受一个邮件
  *
  * @access public
  * @param 无
  * @return JsonView 响应json
  */
 public function exeUpdateOneMail()
 {
     $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'];
     $mail_id = $requestJsonParam['mail_id'];
     $mailInfo = MailModel::getOneMail($mail_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_one_mail");
     }
     $price_type = $this->price_type;
     $type = $price_type[$mailInfo['n_item_type']];
     $money = UserCache::getBykey($user_id, $type);
     if (!$money) {
         $userInfo = MailModel::getUserInfo($user_id);
         $money = $userInfo[$type];
     }
     $money = $money + $mailInfo['n_item_num'];
     $res = MailModel::update(array('n_type' => 0), array('n_id' => $mail_id));
     //体力领取恢复时间更新
     if ($type == $price_type[4]) {
         $thewArr['n_thew'] = $money;
         $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']);
         }
     } else {
         $res = CharacterModel::update(array($type => $money), array('n_id' => $user_id));
         UserCache::setByKey($user_id, $type, $money);
     }
     //任务成就统计
     if ($type == $price_type[1]) {
         TaskAndAchieveAction::taskStatistic($user_id, array('reward' => $mailInfo['n_item_num']));
     }
     if ($type == $price_type[3]) {
         //TaskAndAchieveAction::taskStatistic($user_id,array('soul'=>$mailInfo['n_item_num']));
         TaskAndAchieveAction::achieveStatistic($user_id, array('soul' => $mailInfo['n_item_num']));
     }
     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_one_mail");
 }