/** * API:领取任务奖励 * * @access public * @param 无 * @return JsonView 响应json */ public function exeGetTaskReward() { $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']; $task_id = $requestJsonParam['task_id']; $session_key = $requestParam['session_key']; $userTask = UserCache::getByKey($user_id, self::TASK_STRING); if (!$userTask) { $userTask = TaskAchieveModel::getUserInfoByCondition($user_id, self::TASK_STRING); UserCache::setByKey($user_id, self::TASK_STRING, $userTask); } $str = "task_id = " . $task_id . "_" . $userTask[0][$task_id]; $file = IniFileManager::getRootDir() . "/files/csv/task.csv"; $taskInfo = CharacterAction::readCsv($file, $str); //完成条件的判断 if ($userTask[$task_id]['n_num'] < $taskInfo[0]['condition']) { $messageArr['error'] = "领取条件不足!"; $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 0, "task_and_achieve/get_task_reward"); } //是否领取的判断 if ($userTask[$task_id]['n_reward'] != 0) { $messageArr['error'] = "已领取该奖励!"; $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 0, "task_and_achieve/get_task_reward"); } //更新任务状态,及金钱 $price_type = $this->price_type; $type = $price_type[$taskInfo[0]['reward_type']]; $money = UserCache::getByKey($user_id, $type); if (!$money) { $userInfo = TaskAchieveModel::getUserInfo($user_id); $money = $userInfo[$type]; } $money = $money + $taskInfo[0]['reward_num']; //体力领取恢复时间更新 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); } $userTask[$task_id]['n_reward'] = 1; $s_task_info = serialize($userTask); $res = TaskAchieveModel::update(array('s_task_info' => $s_task_info), array('n_id' => $user_id)); if (!$res) { throw new Exception("update false"); } UserCache::setByKey($user_id, self::TASK_STRING, $userTask); //任务成就统计 if ($type == $price_type[1]) { TaskAndAchieveAction::taskStatistic($user_id, array('reward' => $taskInfo[0]['reward_num'])); } if ($type == $price_type[3]) { //TaskAndAchieveAction::taskStatistic($user_id,array('soul'=>$taskInfo[0]['reward_num'])); TaskAndAchieveAction::achieveStatistic($user_id, array('soul' => $taskInfo[0]['reward_num'])); } //sessdion_key $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $messageArr['achieveInfo'] = self::getAchieveInfo($user_id); $messageArr['taskInfo'] = self::getTaskInfo($user_id); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 1, "task_and_achieve/get_task_reward"); }
/** * 结算发送合体奖励邮件 * * @access public * @param 无 * @return JsonView 响应json */ public function sendFitMail($user_id, $friend_id) { $user_name = UserCache::getByKey($user_id, "s_name"); if (!$friend_id) { $userInfo = MailModel::getUserInfo($user_id); $user_name = $userInfo['s_name']; } $type = Constants::FIT_REWARD_TYPE; $coin = Constants::FIT_REWARD_NUM; $str = "你的好友" . $user_name . "邀你助战,你获得人生果" . $coin; $res = MailModel::insert(array('n_send_id' => $user_id, 'n_receive_id' => $friend_id, 's_message' => $str, 'n_item_type' => $type, 'n_item_num' => $coin, 'n_type' => 1, 't_update_time' => date("Y-m-d H:i:s"), 't_create_time' => date("Y-m-d H:i:s"))); }
/** * API:购买商城物品 * * @access public * @param 无 * @return JsonView 响应json */ public function exeBuyMall() { $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']; $mall_id = $requestJsonParam['mall_id']; $session_key = $requestParam['session_key']; $str = "mall_id = " . $mall_id; $file = IniFileManager::getRootDir() . "/files/csv/mall.csv"; $itemInfo = CharacterAction::readCsv($file, $str); $price_type = self::$price_type; //余额判断 $type1 = $price_type[$itemInfo[0]['price_type']]; $type2 = $price_type[$itemInfo[0]['buy_type']]; $money1 = UserCache::getByKey($user_id, $type1); $money2 = UserCache::getByKey($user_id, $type2); if (!$money1) { $userInfo = BuyPropModel::getUserInfo($user_id); $money1 = $userInfo[$type1]; } if (!$money2) { $userInfo = BuyPropModel::getUserInfo($user_id); $money2 = $userInfo[$type2]; } $money1 = $money1 - $itemInfo[0]['price_num']; $money2 = $money2 + $itemInfo[0]['buy_num']; if ($money1 < 0) { $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $messageArr['error'] = "人生果/钻石不足!"; $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 0, "buy_prop/buy_mall"); } //任务成就统计 if ($type2 == $price_type[1]) { TaskAndAchieveAction::taskStatistic($user_id, array('reward' => $itemInfo[0]['buy_num'])); } if ($type1 == $price_type[1]) { TaskAndAchieveAction::achieveStatistic($user_id, array('cost' => $itemInfo[0]['price_num'])); } //购买体力是更新体力时间 if ($type2 == $price_type[3]) { $thewArr['n_thew'] = $money2; $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']); } $res = BuyPropModel::update(array($type1 => $money1), array('n_id' => $user_id)); UserCache::setByKey($user_id, $type1, $money1); } else { $res = BuyPropModel::update(array($type1 => $money1, $type2 => $money2), array('n_id' => $user_id)); UserCache::setByKey($user_id, $type1, $money1); UserCache::setByKey($user_id, $type2, $money2); } $messageArr['moneyInfo'] = BuyPropModel::getUserInfo($user_id); $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); //任务成就界面 $messageArr['achieveInfo'] = TaskAndAchieveAction::getAchieveInfo($user_id); $messageArr['taskInfo'] = TaskAndAchieveAction::getTaskInfo($user_id); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 1, "buy_prop/buy_mall"); }