Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
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;
 }
Ejemplo n.º 3
0
 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();
         }
     }
 }
Ejemplo n.º 4
0
 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;
     	}
     }
     */
 }
Ejemplo n.º 5
0
 /**
  * 软件兑换金币
  *
  * @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;
 }
Ejemplo n.º 6
0
 /**
  * 关注女神
  *
  * @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');
 }
Ejemplo n.º 7
0
 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);
 }
Ejemplo n.º 8
0
 /**
  * 给女神送礼
  * @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;
 }
Ejemplo n.º 9
0
 /**
  * 获取七天登陆奖励
  */
 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;
 }
Ejemplo n.º 10
0
 /**
  * 登陆验证
  *
  * @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');
     }
 }
Ejemplo n.º 11
0
 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');
     }
 }
Ejemplo n.º 12
0
 /**
  * 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);
 }