diff --git a/sql/gamedb.sql b/sql/gamedb.sql index 3a31ce6..a40639f 100644 --- a/sql/gamedb.sql +++ b/sql/gamedb.sql @@ -82,6 +82,8 @@ CREATE TABLE `user` ( `rank_modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '排位积分更新时间', `vip_score` int(11) NOT NULL DEFAULT '0' COMMENT 'vip积分', `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 '每日刷新时间', PRIMARY KEY (`idx`), UNIQUE KEY `accountid` (`accountid`) ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; diff --git a/webapp/controller/RoleController.class.php b/webapp/controller/RoleController.class.php index e6e5008..add504b 100644 --- a/webapp/controller/RoleController.class.php +++ b/webapp/controller/RoleController.class.php @@ -100,15 +100,16 @@ 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) ' . - ' 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) ' . - ' 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;', + $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;', array( ':accountid' => $account_id, ':user_name' => $user_name, ':avatar_url' => $avatar_url, ':create_time' => time(), - ':modify_time' => time() + ':modify_time' => time(), + ':daily_time' => 0 )); if (!$ret) { die(); @@ -137,7 +138,8 @@ class RoleController{ 'first_gift' => 0, 'sum_coin' => 0, 'recharge_times_total' => 0, - 'first_login' => 0 + 'first_login' => 0, + 'daily_first_login' => 0, )); } else { $ret = $conn->execScript('UPDATE user SET first_login=1 ' . @@ -149,6 +151,25 @@ class RoleController{ die(); return; } + if ($user_name != $row['user_name']) { + $ret = $conn->execScript('UPDATE user SET user_name=:user_name, modify_time=:modify_time ' . + ' WHERE accountid=:accountid;', + array( + ':accountid' => $account_id, + ':user_name' => $user_name, + ':modify_time' => time() + )); + } + if ($avatar_url != $row['avatar_url']) { + $ret = $conn->execScript('UPDATE user SET avatar_url=:avatar_url, modify_time=:modify_time ' . + ' WHERE accountid=:accountid;', + array( + ':accountid' => $account_id, + ':avatar_url' => $avatar_url, + ':modify_time' => time() + )); + } + $daily_first_login = $this->updateDaily($account_id, $row['daily_first_login'], $row['daily_time']); echo json_encode(array( 'errcode' => 0, 'errmsg' => '', @@ -172,11 +193,34 @@ class RoleController{ 'first_gift' => $row['first_gift'], 'sum_coin' => $row['sum_coin'], 'recharge_times_total' => $row['recharge_times_total'], - 'first_login' => 1 + 'first_login' => 1, + 'daily_first_login' => $daily_first_login )); } } + protected function updateDaily($account_id, $daily_first_login, $daily_time) + { + $nowTime = phpcommon\getdayseconds(time()); + $conn = $this->getMysql($account_id); + $daily_first_login = $daily_first_login + 1; + //更新人物信息 + if ($daily_time == 0 || ($nowTime - phpcommon\getdayseconds($daily_time) > 0)) { + $daily_first_login = 0; + } + $ret = $conn->execScript('UPDATE user SET daily_first_login=:daily_first_login, ' . + 'modify_time=:modify_time WHERE accountid=:accountid;', + array( + ':accountid' => $account_id, + ':modify_time' => time(), + ':daily_first_login' => $daily_first_login, + )); + if (!$ret) { + die(); + } + return $daily_first_login; + } + public function battleReport() { $account_id = $_REQUEST['account_id']; //账号 @@ -286,8 +330,13 @@ class RoleController{ if ($row['box_num'] + 1 <= 20) { $box_num = $row['box_num'] + 1; } - $ret = $conn->execScript('UPDATE user SET game_times=:game_times, kills=:kills, harm=:harm, add_HP=:add_HP, alive_time=:alive_time, kill_his=:kill_his, alive_time_his=:alive_time_his, harm_his=:harm_his, add_HP_his=:add_HP_his, coin_num=:coin_num, modify_time=:modify_time, first_fight=1, box_num=:box_num, score=:score ' . - ' WHERE accountid=:accountid;', + $nowTime = phpcommon\getdayseconds(time()); + $daily_time = $row['daily_time']; + if ($daily_time == 0 || ($nowTime - phpcommon\getdayseconds($daily_time) > 0)) { + $daily_time = time(); + } + $ret = $conn->execScript('UPDATE user SET game_times=:game_times, kills=:kills, harm=:harm, add_HP=:add_HP, alive_time=:alive_time, kill_his=:kill_his, alive_time_his=:alive_time_his, harm_his=:harm_his, add_HP_his=:add_HP_his, coin_num=:coin_num, modify_time=:modify_time, first_fight=1, box_num=:box_num, score=:score, daily_time=:daily_time ' . + 'WHERE accountid=:accountid;', array( ':game_times' => $row['game_times'] + 1, ':kill_his' => $kill_his, @@ -303,6 +352,7 @@ class RoleController{ ':modify_time' => time(), ':box_num' => $box_num, ':score' => $row['score'] + $score, + ':daily_time' => $daily_time )); if (!$ret) { die(); @@ -725,27 +775,12 @@ class RoleController{ phpcommon\sendError(ERR_USER_BASE + 1, 'session无效'); return; } - $member_list = array(); + $member = array(); $i = Rand(1, 100); $coin = Rand(1, 100) * 0.01; $num = 1; $robot_id = 1000 + $i; - $rob = $this->getRobot($robot_id, $num); - array_push ($member_list, array( - 'account_id' => $rob['id'], - 'name' => $rob['name'], - 'avatar_url' => $rob['avatar_url'], - )); - echo json_encode(array( - 'errcode' => 0, - 'errmsg' => '', - 'member_list' => $member_list, - 'num' => $coin, - )); - } - protected function getRobot($robot_id, $num) - { $address = '../res/robot@robot' . $num . '.php'; $robot_meta_cluster = require($address); $robot_meta = getRobotConfig($robot_meta_cluster, $robot_id); @@ -755,7 +790,20 @@ class RoleController{ 'avatar_url' => $robot_meta['avatar_url'], 'sex' => $robot_meta['sex'] ); - return $rob; + + array_push ($member, array( + 'account_id' => $rob['id'], + 'name' => $rob['name'], + 'avatar_url' => $rob['avatar_url'], + )); + + echo json_encode(array( + 'errcode' => 0, + 'errmsg' => '', + 'member_list' => $member, + 'sin_member' => $robot_meta_cluster, + 'num' => $coin, + )); } } ?>