diff --git a/sql/gamedb.sql b/sql/gamedb.sql index a40639f..8f40807 100644 --- a/sql/gamedb.sql +++ b/sql/gamedb.sql @@ -84,6 +84,7 @@ CREATE TABLE `user` ( `first_login` int(11) NOT NULL DEFAULT '0' COMMENT '是否第一次登陆', `daily_first_login` int(11) NOT NULL DEFAULT '0' COMMENT '每天是否第一次登陆', `daily_time` int(11) NOT NULL DEFAULT '0' COMMENT '每日刷新时间', + `free_box` int(11) NOT NULL DEFAULT '0' COMMENT '每日免费宝箱', PRIMARY KEY (`idx`), UNIQUE KEY `accountid` (`accountid`) ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; diff --git a/webapp/classes/AddReward.php b/webapp/classes/AddReward.php index 9708c67..2186db7 100644 --- a/webapp/classes/AddReward.php +++ b/webapp/classes/AddReward.php @@ -113,6 +113,34 @@ class AddReward { return $item_list; } + public function getCoinNum($accountid) + { + $conn = $this->getMysql($accountid); + if (!$conn) { + phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); + die(); + } + $row = $conn->execQueryOne('SELECT coin_num FROM user WHERE accountid=:accountid;', + array( + ':accountid' => $accountid + )); + return $row['coin_num']; + } + + public function getDiamondNum($accountid) + { + $conn = $this->getMysql($accountid); + if (!$conn) { + phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); + die(); + } + $row = $conn->execQueryOne('SELECT diamond_num FROM user WHERE accountid=:accountid;', + array( + ':accountid' => $accountid + )); + return $row['diamond_num']; + } + //添加礼包 protected function addGift($dropid, $accountid) { diff --git a/webapp/controller/ActivityController.class.php b/webapp/controller/ActivityController.class.php index 34f1541..52c83ef 100644 --- a/webapp/controller/ActivityController.class.php +++ b/webapp/controller/ActivityController.class.php @@ -312,11 +312,21 @@ class ActivityController{ //增加奖励 $addreward = new classes\AddReward(); $addreward->addReward($item_id, $item_num, $account_id); + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); + $item_list = array(); + array_push($item_list,array( + 'item_id' => $item_id, + 'item_num' => $item_num, + )); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', 'item_id' => $item_id, 'item_num' => $item_num, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num, + 'item_list' => $item_list )); } @@ -347,9 +357,11 @@ class ActivityController{ $times = $p['value'] - 1; $addreward = new classes\AddReward(); $addreward->addReward($row['item_id'], $row['item_num'] * $times, $account_id); + $coin_num = $addreward->getCoinNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', + 'coin_nums' => $coin_num, )); } diff --git a/webapp/controller/EmojiController.class.php b/webapp/controller/EmojiController.class.php index 10b5702..5621b2c 100644 --- a/webapp/controller/EmojiController.class.php +++ b/webapp/controller/EmojiController.class.php @@ -67,14 +67,15 @@ class EmojiController{ )); if (!$row && $emoji['get_type'] == 1) { //插入默认上阵的表情 - $ret = $conn->execScript('INSERT INTO emoji(accountid, emojiid, status, create_time, modify_time) ' . - ' VALUES(:account_id, :emojiid, 0, :create_time, :modify_time) ' . - ' ON DUPLICATE KEY UPDATE accountid=:account_id, emojiid=:emojiid, status=0, modify_time=:modify_time;', + $ret = $conn->execScript('INSERT INTO emoji(accountid, emojiid, status, create_time, modify_time) ' . + ' VALUES(:account_id, :emojiid, 0, :create_time, :modify_time) ' . + ' ON DUPLICATE KEY UPDATE accountid=:account_id, emojiid=:emojiid, status=0, modify_time=:modify_time;', array( ':account_id' => $account_id, ':emojiid' => $id, ':create_time' => time(), - ':modify_time' => time() + ':modify_time' => time(), + //':type' => $emoji['type'] )); if(!$ret){ die(); @@ -118,9 +119,37 @@ class EmojiController{ return; } $emoji_list = array(); - $usingemoji_id = $_REQUEST['usingemoji_id']; + //$usingemoji_id = $_REQUEST['usingemoji_id']; $exchangeemoji_id = $_REQUEST['exchangeemoji_id']; - $row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;', + $e = $this->getEmoji($exchangeemoji_id); + $emoji_meta_table = require('../res/emoji@emoji.php'); + foreach ($emoji_meta_table as $emoji_info) { + $id = $emoji_info['id']; + $emoji = $this->getEmoji($id); + if ($emoji['type'] != $e['type']) { + continue; + } + $row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;', + array( + ':accountid' => $account_id, + ':emojiid' => $id, + )); + if ($row['status'] != 0 || !$row) { + continue; + } + $using_ret = $conn->execScript('UPDATE emoji SET status=1, modify_time=:modify_time ' . + ' WHERE accountid = :account_id AND emojiid = :emojiid;', + array( + ':account_id' => $account_id, + ':emojiid' => $id, + ':modify_time' => time() + )); + array_push($emoji_list, array( + 'emoji_id' => $usingemoji_id, + 'emoji_status' => 1 + )); + } + /*$row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;', array( ':accountid' => $account_id, ':emojiid' => $usingemoji_id, @@ -148,7 +177,7 @@ class EmojiController{ array_push($emoji_list, array( 'emoji_id' => $usingemoji_id, 'emoji_status' => 1 - )); + ));*/ $row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;', array( ':accountid' => $account_id, @@ -233,11 +262,20 @@ class EmojiController{ //修改状态 $addreward = new classes\AddReward(); $addreward->addReward($id, 1, $account_id); - + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); + $item_list = array(); + array_push($item_list,array( + 'item_id' => $id, + 'item_num' => 1, + )); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', - 'emoji_status' => 1 + 'emoji_status' => 1, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num, + 'item_list' => $item_list )); } } diff --git a/webapp/controller/PassController.class.php b/webapp/controller/PassController.class.php index 58631da..be59900 100644 --- a/webapp/controller/PassController.class.php +++ b/webapp/controller/PassController.class.php @@ -346,10 +346,14 @@ class PassController{ } $addreward = new classes\AddReward(); $addreward->addReward($drop_multiply[0], $drop_multiply[1], $account_id); + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', 'status' => 1, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num )); } @@ -417,6 +421,7 @@ class PassController{ return; } $reward = array(); + $level = 0; $seaPoint_meta_table = require('../res/seasomPoint@seasomPoint.php'); for ($ii = 1; $ii <= count($seaPoint_meta_table); $ii++) { $seaPoint = $this->getSeasonPoint($ii); @@ -429,10 +434,11 @@ class PassController{ 'item_id' => $drop_multiply[0], 'item_num' => $drop_multiply[1], )); + $level = $ii; } } + $addreward = new classes\AddReward(); foreach ($reward as $r) { - $addreward = new classes\AddReward(); $addreward->addReward($r['item_id'], $r['item_num'], $account_id); } $ret = $conn->execScript('UPDATE user SET season_end_score=0, season_status=1, modify_time=:modify_time ' . @@ -445,10 +451,13 @@ class PassController{ die(); return; } + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', 'item_list' => $reward, + 'level' => $level, + 'diamond_nums' => $diamond_num )); } } diff --git a/webapp/controller/PayController.class.php b/webapp/controller/PayController.class.php index 0fa8a5e..acf78e6 100644 --- a/webapp/controller/PayController.class.php +++ b/webapp/controller/PayController.class.php @@ -421,14 +421,19 @@ class PayController{ if ($type == 1) { $item_list = $this->getVipItemInfo($vip['dailyreward']); } + $addreward = new classes\AddReward(); foreach ($item_list as $item) { //增加奖励 - $addreward = new classes\AddReward(); $addreward->addReward($item['item_id'], $item['item_num'], $account_id); } + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num, + 'item_list' => $item_list )); } @@ -783,10 +788,14 @@ class PayController{ //添加通行证 $addreward = new classes\AddReward(); $addreward->addReward(10005, 1, $account_id); + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', 'status' => 1, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num )); } } diff --git a/webapp/controller/QuestController.class.php b/webapp/controller/QuestController.class.php index 2bf3309..6165785 100644 --- a/webapp/controller/QuestController.class.php +++ b/webapp/controller/QuestController.class.php @@ -362,9 +362,14 @@ class QuestController{ $addreward = new classes\AddReward(); $addreward->addReward($reward_id, $reward_num, $account_id); } + $addreward = new classes\AddReward(); + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg' => '', + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num, )); } @@ -508,10 +513,15 @@ class QuestController{ } } } + + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg' => '', - 'item_list' => $item_list + 'item_list' => $item_list, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num )); } diff --git a/webapp/controller/RoleController.class.php b/webapp/controller/RoleController.class.php index c47c1e8..907e4d5 100644 --- a/webapp/controller/RoleController.class.php +++ b/webapp/controller/RoleController.class.php @@ -117,9 +117,9 @@ class RoleController{ ':accountid' => $account_id )); if (!$row) { - $ret = $conn->execScript('INSERT INTO user(accountid, user_name, avatar_url, game_times, win_times, kills, harm, add_HP, alive_time, coin_num, integral, kill_his, alive_time_his, harm_his, add_HP_his, act_share_time, act_share_status, create_time, modify_time, first_fight, collect_status, keys_num, battle_re_times, shop_flush_times, kefu_status, sign_sum, box_num, diamond_num, sum_coin, pass_status, score, season_status, recharge_times_total, first_gift, season_time, free_coin, free_diamond, season_end_score, kill_modifytime, win_modifytime, rank_modifytime, vip_score, first_login, daily_first_login, daily_time) ' . - ' VALUES(:accountid, :user_name, :avatar_url, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, :create_time, :modify_time, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, :daily_time) ' . - ' ON DUPLICATE KEY UPDATE accountid=:accountid, user_name=:user_name, avatar_url=:avatar_url, game_times=0, win_times=0, kills=0, harm=0, add_HP=0, alive_time=0, coin_num=0, integral=0, kill_his=0, alive_time_his=0, harm_his=0, add_HP_his=0, act_share_time=0, act_share_status=0, modify_time=:modify_time, first_fight=0, collect_status=0, keys_num=0, battle_re_times=0, shop_flush_times=0, kefu_status=0, sign_sum=0, box_num=0, diamond_num=0, sum_coin=0, pass_status=0, score=0, season_status=1, recharge_times_total=0, first_gift=0, season_time=0, free_coin=0, free_diamond=0, season_end_score=0, kill_modifytime=0, win_modifytime=0, rank_modifytime=0, vip_score=0, first_login=0, daily_first_login=0, daily_time=:daily_time;', + $ret = $conn->execScript('INSERT INTO user(accountid, user_name, avatar_url, game_times, win_times, kills, harm, add_HP, alive_time, coin_num, integral, kill_his, alive_time_his, harm_his, add_HP_his, act_share_time, act_share_status, create_time, modify_time, first_fight, collect_status, keys_num, battle_re_times, shop_flush_times, kefu_status, sign_sum, box_num, diamond_num, sum_coin, pass_status, score, season_status, recharge_times_total, first_gift, season_time, free_coin, free_diamond, season_end_score, kill_modifytime, win_modifytime, rank_modifytime, vip_score, first_login, daily_first_login, daily_time, free_box) ' . + ' VALUES(:accountid, :user_name, :avatar_url, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, :create_time, :modify_time, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, :daily_time, 0) ' . + ' ON DUPLICATE KEY UPDATE accountid=:accountid, user_name=:user_name, avatar_url=:avatar_url, game_times=0, win_times=0, kills=0, harm=0, add_HP=0, alive_time=0, coin_num=0, integral=0, kill_his=0, alive_time_his=0, harm_his=0, add_HP_his=0, act_share_time=0, act_share_status=0, modify_time=:modify_time, first_fight=0, collect_status=0, keys_num=0, battle_re_times=0, shop_flush_times=0, kefu_status=0, sign_sum=0, box_num=0, diamond_num=0, sum_coin=0, pass_status=0, score=0, season_status=1, recharge_times_total=0, first_gift=0, season_time=0, free_coin=0, free_diamond=0, season_end_score=0, kill_modifytime=0, win_modifytime=0, rank_modifytime=0, vip_score=0, first_login=0, daily_first_login=0, daily_time=:daily_time, free_box=0;', array( ':accountid' => $account_id, ':user_name' => $user_name, @@ -157,6 +157,7 @@ class RoleController{ 'recharge_times_total' => 0, 'first_login' => 0, 'daily_first_login' => 0, + 'free_box' => 0 )); } else { $ret = $conn->execScript('UPDATE user SET first_login=1 ' . @@ -227,7 +228,11 @@ class RoleController{ 'sum_coin' => $row['sum_coin'], 'recharge_times_total' => $row['recharge_times_total'], 'first_login' => 1, - 'daily_first_login' =>$daily_first_login + 'daily_first_login' =>$daily_first_login, + 'vip_score' => $row['vip_score'], + 'coin_nums' => $row['coin_num'], + 'diamond_nums' => $row['diamond_num'], + 'free_box' => $row['free_box'] )); } } diff --git a/webapp/controller/ShareController.class.php b/webapp/controller/ShareController.class.php index 610cf2c..e7126cd 100644 --- a/webapp/controller/ShareController.class.php +++ b/webapp/controller/ShareController.class.php @@ -162,10 +162,28 @@ class ShareController{ $item_list = array(); if ($free != 0) { $p = $this->getParameter(DIAMONDBOX10); + $diamond_num = $p['param_value']; $item_list = $this->randBoxReward(24001, 10); } else { - $p = $this->getParameter(DIAMONDBOX); + $diamond_num = 0; $item_list = $this->randBoxReward(24001, 1); + $row = $conn->execQueryOne('SELECT free_box FROM user WHERE accountid=:accountid;', + array( + ':accountid' => $account_id + )); + if ($row['free_box'] >= 5) { + phpcommon\sendError(ERR_USER_BASE + 2, '今日免费次数已达上限'); + die(); + return; + } + $ret = $conn->execScript('UPDATE user SET free_box=:free_box, ' . + 'modify_time=:modify_time WHERE accountid=:accountid;', + array( + ':accountid' => $account_id, + ':modify_time' => time(), + ':free_box' => $row['free_box'] + 1, + )); + } $row = $conn->execQueryOne('SELECT diamond_num FROM user WHERE accountid=:accountid;', array( @@ -176,7 +194,6 @@ class ShareController{ die(); } //扣除钻石 - $diamond_num = $p['param_value']; $this->subCoin($diamond_num, $account_id, $row['diamond_num']); $num = $row['diamond_num'] - $diamond_num; //保存开宝箱奖励 @@ -214,7 +231,7 @@ class ShareController{ 'errcode' => 0, 'errmsg' => '', 'item_list' => $item_list, - 'diamond_num' => $num, + 'diamond_nums' => $num, )); } @@ -261,9 +278,12 @@ class ShareController{ $addreward->addReward($boxreward['item_id'], $boxreward['item_num'] * $times, $account_id); } $r->del($boxreward_uuid, json_encode($user_db)); + $addreward = new classes\AddReward(); + $coin_num = $addreward->getCoinNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg' => '', + 'coin_nums' => $coin_num, )); } @@ -469,9 +489,11 @@ class ShareController{ } else if ($ach_id == 6) { $addreward->addReward(10003, 50 * $times, $account_id); } + $coin_num = $addreward->getCoinNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg' => '', + 'coin_nums' => $coin_num, )); } @@ -575,10 +597,15 @@ class ShareController{ return; } } + $addreward = new classes\AddReward(); + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => $errcode, 'errmsg' => $errmsg, - 'item_list' => $item_list + 'item_list' => $item_list, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num )); } @@ -617,9 +644,12 @@ class ShareController{ $addreward->addReward($kefureward['item_id'], $kefureward['item_num'] * $times, $account_id); } $r->del($kefureward_uuid, json_encode($user_db)); + $addreward = new classes\AddReward(); + $coin_num = $addreward->getCoinNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg' => '', + 'coin_nums' => $coin_num, )); } } diff --git a/webapp/controller/ShopController.class.php b/webapp/controller/ShopController.class.php index 5fe5908..83339a0 100644 --- a/webapp/controller/ShopController.class.php +++ b/webapp/controller/ShopController.class.php @@ -223,10 +223,19 @@ class ShopController{ //增加奖励 $addreward = new classes\AddReward(); $addreward->addReward($item_id, $item_num, $account_id); - + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); + $item_list = array(); + array_push($item_list,array( + 'item_id' => $item_id, + 'item_num' => $item_num, + )); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num, + 'item_list' => $item_list )); } @@ -280,10 +289,11 @@ class ShopController{ $times = $p['param_value'] - 1; $addreward = new classes\AddReward(); $addreward->addReward($item_id, $item_num * $times, $account_id); - + $coin_num = $addreward->getCoinNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', + 'coin_nums' => $coin_num, )); } @@ -378,12 +388,17 @@ class ShopController{ $user_db['shop_list'] = $shop_list; $r -> set($shop_uuid, json_encode($user_db)); $r -> pexpire($shop_uuid, 1000 * 3600 * 24); + $addreward = new classes\AddReward(); + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg'=> '', 'shop_uuid' => $shop_uuid, 'shop_list' => $shop_list, - 'flush_times' => $flush_times + 'flush_times' => $flush_times, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num )); } diff --git a/webapp/controller/SignController.class.php b/webapp/controller/SignController.class.php index fe9e3fb..6acfe0b 100644 --- a/webapp/controller/SignController.class.php +++ b/webapp/controller/SignController.class.php @@ -273,10 +273,14 @@ class SignController{ )); $addreward = new classes\AddReward(); $addreward->addReward($item_id, $num, $account_id); + $coin_num = $addreward->getCoinNum($account_id); + $diamond_num = $addreward->getDiamondNum($account_id); echo json_encode(array( 'errcode' => 0, 'errmsg' => '', - 'item_list' => $item_list + 'item_list' => $item_list, + 'coin_nums' => $coin_num, + 'diamond_nums' => $diamond_num )); } @@ -376,7 +380,7 @@ class SignController{ } } //刷新战斗结算奖励次数,商店刷新次数,客服, 每日免费金币钻石 - $battle_ret = $conn->execScript('UPDATE user SET battle_re_times=0, diamond_shop_flush_times=0, shop_flush_times=0, kefu_status=0, free_coin=0, free_diamond=0, modify_time=:modify_time ' . + $battle_ret = $conn->execScript('UPDATE user SET battle_re_times=0, diamond_shop_flush_times=0, shop_flush_times=0, kefu_status=0, free_coin=0, free_diamond=0, modify_time=:modify_time, free_box=0 ' . ' WHERE accountid=:accountid;', array( ':accountid' => $account_id,