/** * 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"); }