public function storeData($walletID) { $assets = $this->getEVEData($walletID); $character = Characters::model()->findByPk($walletID); CorpAssets::Model()->deleteAll('characterID=:characterID', array(':characterID' => $character->characterID)); $this->parseAssets($assets->result->rowset->row, $character->characterID, 0); }
public function getOrderTotal($characterID) { //Get the character information from the db $character = Characters::model()->findByPk($characterID); $criteria = new CDbCriteria(); $criteria->condition = 'charID=:characterID AND orderState=0 AND bid=0'; $criteria->params = array(':characterID' => $character->characterID); $orders = Orders::Model()->findAll($criteria); foreach ($orders as $order) { $orderTotal = $orderTotal + $order->price * $order->volRemaining; } return $orderTotal; }
public function run($args) { $characters = Characters::model()->findAll(); foreach ($characters as $character) { echo "Found character {$character->characterName}\n"; $walletInterface = new APITransactions(); $journalInterface = new APIJournal(); $ordersInterface = new APIOrders(); $assetsInterface = new APIAssetList(); $sheetInterface = new APICharacterSheet(); //Wallet if (!$walletInterface->getCacheExpiration($character->walletID) && $character->walletEnabled) { echo "Updating transactions...\n"; $walletInterface->storeData($character->walletID); } //Journal if (!$journalInterface->getCacheExpiration($character->walletID) && $character->journalEnabled) { echo "Updating journal...\n"; $journalInterface->storeData($character->walletID); } //Orders if (!$ordersInterface->getCacheExpiration($character->walletID) && $character->ordersEnabled) { echo "Updating orders...\n"; $ordersInterface->storeData($character->walletID); } /* //Assets if(!($assetsInterface->getCacheExpiration($character->walletID))) { echo "Updating assets...\n"; $assetsInterface->storeData($character->walletID); } */ //Balance if (!$sheetInterface->getCacheExpiration($character->walletID) && $character->displayBalance) { echo "Updating balances...\n"; $sheet = $sheetInterface->getEveData($character->walletID); $sheetBalance = $sheet->result->balance[0][0]; $balance = (double) $sheetBalance; $balanceRow = new Balances(); $balanceRow->characterID = $character->characterID; $balanceRow->balanceDateTime = $this->getEveTimeSql(); $balanceRow->balance = $balance; $balanceRow->save(); } } }
public function getCacheExpiration($characterID) { //Get the API model attributes $attributes = $this->apiAttributes(); //Get the character information from the db $character = Characters::model()->findByPk($characterID); //Create the full cacheID and check the cache $fullCacheID = $attributes['cacheID'] . $character->getAttribute($attributes['primaryID']); $expire = Yii::app()->cache->expiration($fullCacheID); if (empty($expire)) { return 0; } else { $timeLeft = $expire - time(); if ($timeLeft <= 0) { return 0; } else { return $timeLeft; } } /* if (empty($data)) { return 0; } else { $EVExml = new SimpleXMLElement($data); $remain = strtotime($EVExml->cachedUntil) - strtotime("+5 hour") + 5 + $attributes['cacheOffset']; if ($EVExml->error) { echo "ERROR: $EVExml->error CHARACTER: $characterID <br>"; } if ($remain <= 0) { return 0; } else { return $remain; } } */ }
/** * 软件兑换金币 * * @param unknown $user_id */ public function software_to_gold($user_id, $software_id) { try { $con_characters = Yii::app()->db_characters; $trans_characters = $con_characters->beginTransaction(); $table_name = sprintf('software_%02s', dechex($user_id % 256)); $ret = $con_characters->createCommand()->select('id')->from($table_name)->where('software_id=:ID AND status=1')->bindParam(':ID', $software_id, PDO::PARAM_INT, 11)->order('id DESC')->queryRow(); if ($ret) { return -2; } else { //查询软件推荐 $software_info = Common::model()->getSoftware($software_id); if (!$software_info) { return -3; } //获取用户基本信息 $player = Characters::model()->getCharactersInfo($user_id); //金币购买体力 $param['gold'] = (int) $player['gold'] + (int) $software_info[0]['gold']; //更新 加金币 Characters::model()->updateCharacters($user_id, $param); //解锁女神 加金币日志 $gold_params = array('user_id' => $user_id, 'type' => 10, 'value' => $software_info[0]['gold'], 'gold' => $param['gold'], 'create_ts' => date("Y-m-d H:i:s")); Gold::model()->createGold($user_id, $gold_params); //软件换金币记录 $p = array('user_id' => $user_id, 'software_id' => $software_id, 'gold' => $software_info[0]['gold'], 'status' => 1); $con_characters->createCommand()->insert($table_name, $p); //提交事务 $trans_characters->commit(); //获取角色信息 $info = Characters::model()->getCharactersInfo($user_id); $return['log']['gold'] = $software_info[0]['gold']; $return['log']['gold_after'] = $param['gold']; $return['result'] = array('point' => (int) $info['point'], 'exp' => (int) $info['exp'], 'vit' => (int) $info['vit'], 'vit_time' => (int) $info['vit_time'], 'level' => (int) $info['level'], 'gold' => (int) $info['gold'], 'flowers' => (int) $info['flowers']); } } catch (Exception $e) { error_log($e); $trans_characters->rollback(); return -1; } return $return; }
/** * 关注女神 * * @param string $user_id * @param string $token * @param int $goddess_id * @param int $follow 1:关注 0:取消关注 2:用户取消关注 * * */ public function actionFollowGoddess() { // 参数检查 if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token']) || !isset($_REQUEST['goddess_id']) || !isset($_REQUEST['follow'])) { $this->_return('MSG_ERR_LESS_PARAM'); } $now = date("Y-m-d H:i:s"); $user_id = trim(Yii::app()->request->getParam('user_id')); $token = trim(Yii::app()->request->getParam('token')); $goddess_id = trim(Yii::app()->request->getParam('goddess_id')); $follow = trim(Yii::app()->request->getParam('follow')); if (!is_numeric($goddess_id) || !is_numeric($follow)) { $this->_return('MSG_ERR_FAIL_PARAM'); } if ($follow != 0 && $follow != 1 && $follow != 2) { $this->_return('MSG_ERR_FAIL_PARAM'); } if (!is_numeric($user_id)) { $this->_return('MSG_ERR_FAIL_PARAM'); } //用户不存在 返回错误 if ($user_id < 1) { $this->_return('MSG_ERR_NO_USER'); } //验证token if (!Token::model()->verifyToken($user_id, $token, $GLOBALS['__APPID'])) { //token 错误 $this->_return('MSG_ERR_TOKEN'); } //查询是否有此女神 if (!Goddess::model()->isExitsGoddess($goddess_id)) { $this->_return('MSG_ERR_NO_EXIST_GODDESS'); } //如果已经相同 则成功 $rw = Follow::model()->getFollowRow($user_id, $goddess_id); if (isset($rw['followed']) && $follow == $rw['followed']) { $this->_return('MSG_SUCCESS'); } //用户关注赞+1,女神照片赞+1,女神赞总数+1 $characters_transaction = Yii::app()->db_characters->beginTransaction(); $heroine_transaction = Yii::app()->db_heroine->beginTransaction(); try { //关注女神 Characters::model()->followGoddess($user_id, $goddess_id, $follow); $followerCount = Goddess::model()->getFollowerCount($goddess_id); if ($follow == 1) { $followerCount = $followerCount + 1; $arr = array('follower_count' => $followerCount); if ($rw['followed'] != 2) { //关注魅力值+10 $glamorousCount = Goddess::model()->getGlamorousCount($goddess_id); $glamorousCount = $glamorousCount + Yii::app()->params['follow_glamorous']; $arr = array('follower_count' => $followerCount, 'glamorous' => $glamorousCount); //关注加好感值 $liking = $rw['liking'] + (int) Yii::app()->params['follow_liking']; Follow::model()->updateFollowRow($user_id, $goddess_id, array('liking' => $liking)); //关注加经验 //获取用户基本信息 $player = Characters::model()->getCharactersInfo($user_id); //获取等级信息 $liking = Liking::model()->getLikingRow($player['level']); //加经验值 $params = array('exp' => $player['exp'] + (int) Yii::app()->params['follow_exp']); //加经验更新等级 $lv = Level::model()->exp2Level($params['exp']); if (!empty($lv) && strcmp($lv, $player['level']) != 0) { $param['level'] = $lv; } Characters::model()->updateCharacters($user_id, $params); } } if ($follow == 0) { $followerCount = max($followerCount - 1, 0); $arr = array('follower_count' => $followerCount); } //增加关注度 Goddess::model()->updateHeroineInfo($goddess_id, $arr); $characters_transaction->commit(); $heroine_transaction->commit(); //关注女神 Log::model()->_goddess_log($user_id, $goddess_id, 'DS_FOLLOW', date('Y-m-d H:i:s'), ''); } catch (Exception $e) { error_log($e); $characters_transaction->rollback(); $heroine_transaction->rollback(); $this->_return('MSG_ERR_UNKOWN'); } $this->_return('MSG_SUCCESS'); }
public function iosPaySuccess($uid, $trade_no, $add_coin) { $con_pay = Yii::app()->db_pay; $now = date('Y-m-d H:i:s'); $con_pay->createCommand()->update('orders', array('status' => 1, 'charge_ts' => $now, 'notify_ts' => $now), 'trade_no=:Trade_no', array(':Trade_no' => $trade_no)); //给玩家金币 $p_info = Characters::model()->getCharactersInfo($uid); Characters::model()->updateCharacters($uid, array('gold' => $p_info['gold'] + $add_coin)); //添加金币log Log::model()->_gold_log($uid, $add_coin, $p_info['gold'] + $add_coin, 'PAY_BUY_GOLD', $now); }
/** * 给女神送礼 * @param unknown $user_id * @param unknown $goddess_id * @param unknown $gift_id * @param unknown $number */ public function giveGift($user_id, $goddess_id, $gift_id, $number) { try { $characters_transaction = Yii::app()->db_characters->beginTransaction(); $heroine_transaction = Yii::app()->db_heroine->beginTransaction(); //是否关注女神 if (!Follow::model()->isExitsFollow($user_id, $goddess_id)) { return -3; } //获取礼物信息 $gift_info = Gift::model()->getGiftInfo($gift_id); if ($gift_info) { //获取角色信息 $characters = Characters::model()->getCharactersInfo($user_id); if ($gift_info['is_give'] == 1) { $flowers_counts = $characters['flowers']; if ($number > $flowers_counts) { //赠送鲜花数超过已有鲜花数 $number = $number - $flowers_counts; $temp_num = $flowers_counts; } else { $temp_num = $number; } if ($temp_num != 0) { $characters['flowers'] = $characters['flowers'] - $temp_num; //角色加 经验 积分 $params = array('exp' => $characters['exp'] + $temp_num * $gift_info['add_exp'], 'point' => $characters['point'] + $temp_num * $gift_info['add_point'], 'flowers' => $characters['flowers']); //更新等级 $lv = Level::model()->exp2Level($params['exp']); if (!empty($lv) && strcmp($lv, $characters['level']) != 0) { $params['level'] = $lv; } Characters::model()->updateCharacters($user_id, $params); //女神好感 $follow = Follow::model()->getFollowRow($user_id, $goddess_id); //好感度 $liking_val = $follow['liking'] + $temp_num * $gift_info['add_liking']; //增加女神对角色的好感度 Follow::model()->updateFollow(date('Y-m-d H:i:s'), $user_id, $goddess_id, null, null, $liking_val); //增加魅力值 $glamorousCount = Goddess::model()->getGlamorousCount($goddess_id); $glamorous = array('glamorous' => (int) $glamorousCount + $temp_num * (int) $gift_info['add_glamorous']); Goddess::model()->updateHeroineInfo($goddess_id, $glamorous); //增加用户送礼物给女神记录 $this->createHeroineGift($user_id, $goddess_id, $gift_id, $temp_num); // 提交事务 $characters_transaction->commit(); $heroine_transaction->commit(); $res['log'] = ''; $res['log']['gold'] = 0; $res['result'] = array('point' => (int) $params['point'], 'exp' => (int) $params['exp'], 'vit' => (int) $characters['vit'], 'vit_time' => (int) $characters['vit_time'], 'level' => (int) $lv, 'gold' => (int) $characters['gold'], 'flowers' => (int) $characters['flowers'], 'goddess_id' => (int) $goddess_id, 'liking' => $liking_val); return $res; } } $total = $gift_info['gold'] * $number; //扣金币 if ($total > $characters['gold']) { return -4; } //角色加金币 经验 积分 $params = array('gold' => (int) $characters['gold'] - (int) $total, 'exp' => (int) $characters['exp'] + $number * $gift_info['add_exp'], 'point' => (int) $characters['point'] + $number * $gift_info['add_point']); //更新等级 $lv = Level::model()->exp2Level($params['exp']); if (!empty($lv) && strcmp($lv, $characters['level']) != 0) { $params['level'] = $lv; } Characters::model()->updateCharacters($user_id, $params); //女神好感 $follow = Follow::model()->getFollowRow($user_id, $goddess_id); //好感度 $liking_val = $follow['liking'] + $number * $gift_info['add_liking']; //增加女神对角色的好感度 Follow::model()->updateFollow(date('Y-m-d H:i:s'), $user_id, $goddess_id, null, null, $liking_val); //增加魅力值 $glamorousCount = Goddess::model()->getGlamorousCount($goddess_id); $glamorous = array('glamorous' => (int) $glamorousCount + $number * (int) $gift_info['add_glamorous']); Goddess::model()->updateHeroineInfo($goddess_id, $glamorous); //增加用户送礼物给女神记录 $this->createHeroineGift($user_id, $goddess_id, $gift_id, $number); // 提交事务 $characters_transaction->commit(); $heroine_transaction->commit(); $res['log']['gold'] = -$total; $res['log']['gold_after'] = (int) $characters['gold'] - (int) $total; $res['result'] = array('point' => (int) $params['point'], 'exp' => (int) $params['exp'], 'vit' => (int) $characters['vit'], 'vit_time' => (int) $characters['vit_time'], 'level' => (int) $lv, 'gold' => (int) $params['gold'], 'flowers' => (int) $characters['flowers'], 'goddess_id' => (int) $goddess_id, 'liking' => (int) $liking_val); } else { return -2; } } catch (Exception $e) { error_log($e); $characters_transaction->rollback(); $heroine_transaction->rollback(); //更新失败 return -1; } return $res; }
/** * 获取七天登陆奖励 */ public function login_reward($user_id, $bag_id = 0) { $res = array(); try { $con_common = Yii::app()->db_common; //获取角色信息 $characters_info = Characters::model()->getCharactersInfo($user_id); $ret = $con_common->createCommand()->select('reward_id, days, type, number')->from('login_reward')->order('days ASC')->queryAll(); if ($bag_id != 0) { //获取 if (date("Y-m-d", time()) > date("Y-m-d", strtotime($characters_info['update_ts']))) { //当前时间是否大于过领取时间 $days = $characters_info['login_days'] + 1; } elseif (date("Y-m-d", time()) == date("Y-m-d", strtotime($characters_info['update_ts']))) { //今天已经领取过 return -3; } else { //时间错误不能领取 return -2; } if ($days == 8) { $days = 1; } foreach ($ret as $k => $v) { if ($days == (int) $v['days'] && $v['reward_id'] == $bag_id) { $res['id'] = (int) $v['reward_id']; $res['gold'] = (int) $v['number']; $res['day'] = (int) $v['days']; } } } else { if (date("Y-m-d", time()) > date("Y-m-d", strtotime($characters_info['update_ts']))) { // echo $characters_info['login_days'];exit; if ($characters_info['login_days'] == 7) { $characters_info['login_days'] = 0; } } foreach ($ret as $k => $v) { $res[$k]['id'] = (int) $v['reward_id']; $res[$k]['gold'] = (int) $v['number']; $res[$k]['day'] = (int) $v['days']; //状态:0 已领取,1 可领取,2不可领取 if ($v['days'] < $characters_info['login_days']) { $res[$k]['status'] = 0; } else { if ($v['days'] == 1 && $characters_info['login_days'] == 0) { $res[$k]['status'] = 1; } else { if ($v['days'] <= $characters_info['login_days']) { $res[$k]['status'] = 0; } else { if (date("Y-m-d", time()) > date("Y-m-d", strtotime($characters_info['update_ts'])) && $v['days'] == $characters_info['login_days'] + 1) { $res[$k]['status'] = 1; } else { $res[$k]['status'] = 2; } } } } } } } catch (Exception $e) { error_log($e); return false; } return $res; }
/** * 登陆验证 * * @param string $user_id * @param string $token */ public function actionVerifyToken() { // 参数检查 if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token'])) { $this->_return('MSG_ERR_LESS_PARAM'); } $now = date("Y-m-d H:i:s"); $user_id = trim(Yii::app()->request->getParam('user_id')); $token = trim(Yii::app()->request->getParam('token')); if (!is_numeric($user_id)) { $this->_return('MSG_ERR_FAIL_PARAM'); } //用户不存在 返回错误 if ($user_id < 1) { $this->_return('MSG_ERR_NO_USER'); } //验证token if (Token::model()->verifyToken($user_id, $token, $GLOBALS['__APPID'])) { $data = Consumer::model()->getUserInfo($user_id); if ($data) { //每日玫瑰发放 Characters::model()->everyRose($user_id); $data['token'] = $token; //写入日志 更新用户信息 Log::model()->_user_log($user_id, 'USER_LOGIN', date('Y-m-d H:i:s'), ''); $this->_return('MSG_SUCCESS', $data); } else { $this->_return('MSG_ERR_UNKOWN'); } } else { $this->_return('MSG_ERR_TOKEN'); } }
public function actionOnOff() { // 参数检查 if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token']) || !isset($_REQUEST['open'])) { $this->_return('MSG_ERR_LESS_PARAM'); } $user_id = trim(Yii::app()->request->getParam('user_id')); $token = trim(Yii::app()->request->getParam('token')); $status = trim(Yii::app()->request->getParam('open')); if (!is_numeric($user_id)) { $this->_return('MSG_ERR_FAIL_PARAM'); } //用户不存在 返回错误 if ($user_id < 1) { $this->_return('MSG_ERR_NO_USER'); } //验证token if (Token::model()->verifyToken($user_id, $token, $GLOBALS['__APPID'])) { $param['push_enabled'] = $status; // 如果由更新参数 那么更新 if (!empty($param)) { try { Characters::model()->updateCharacters($user_id, $param); // 更新角色信息表 日志 防打扰 Log::model()->_goddess_log($user_id, '', 'DO_NOT_DISTURB', date("Y-m-d H:i:s"), ''); // 发送返回值 $this->_return('MSG_SUCCESS'); } catch (Exception $e) { error_log($e); $this->_return('MSG_ERR_UNKOWN'); } } } else { $this->_return('MSG_ERR_TOKEN'); } }
/** * API: 2.1.3.16 API_I_016 * 收体力 * @param int $user_id * @param string $token * @param string $message_id */ public function actionReceipt() { // 参数检查 if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token']) || !isset($_REQUEST['message_id'])) { $this->_return('MSG_ERR_LESS_PARAM'); } $user_id = trim(Yii::app()->request->getParam('user_id')); $token = trim(Yii::app()->request->getParam('token')); $message_id = trim(Yii::app()->request->getParam('message_id')); $now = date('Y-m-d H:i:s'); if (!is_numeric($user_id)) { $this->_return('MSG_ERR_FAIL_PARAM'); } if (!FriendVit::model()->getUserMess($user_id, $message_id)) { $this->_return('MSG_ERR_FAIL_PARAM'); } //用户不存在 返回错误 if ($user_id < 1) { $this->_return('MSG_ERR_NO_USER'); } //验证token if (!Token::model()->verifyToken($user_id, $token, $GLOBALS['__APPID'])) { $this->_return('MSG_ERR_TOKEN'); //#token 错误 } //查询今天收体力的数量是否已经超过上线 $num = FriendVit::model()->getEveryAcceptVitNum($user_id); if ($num >= Yii::app()->params['every_accept_vit_upper_limit']) { $this->_return('MSG_ERR_EVERY_ACCEPT_VIT'); //# } //获取用户游戏角色信息 $player = Characters::model()->getCharactersInfo($user_id); if (!is_array($player) || !isset($player['vit'])) { //未找到用户游戏角色信息 $this->_return('MSG_ERR_NO_FOUND_P_INFO'); } $level = Level::model()->exp2Level($player['exp']); $level_info = Level::model()->getLevelRow($level); if (isset($level_info['vit_per_giving'])) { $update_vit = $level_info['vit_per_giving']; } //最后插入的体力值 增加的+原有的 $vit = $update_vit + $player['vit']; if ($vit > $level_info['max_vit']) { $vit = $level_info['max_vit']; } if ($player['vit'] == $level_info['max_vit']) { //体力已满不能收体力 $this->_return('MSG_ERR_FULL_VIT'); } $characters_transaction = Yii::app()->db_characters->beginTransaction(); $vit_transaction = Yii::app()->db_friend_vit->beginTransaction(); $result = array(); try { //更新体力值 Characters::model()->updatePlayerInfo($user_id, array('vit' => $vit)); FriendVit::model()->updateVitStatus($user_id, $message_id); //返回参数 $result['point'] = $player['point']; $result['exp'] = $player['exp']; $result['vit'] = $vit; $result['vit_time'] = $player['vit_time']; $result['level'] = $level; $result['gold'] = $player['gold']; $result['flowers'] = $player['flowers']; $characters_transaction->commit(); $vit_transaction->commit(); } catch (Exception $e) { error_log($e); $characters_transaction->rollback(); $vit_transaction->rollback(); } //收体力日志 $this->_return('MSG_SUCCESS', $result); }