From fcb7c02a54ee9b13fade4a1d4a145998ca986279 Mon Sep 17 00:00:00 2001 From: wangwei01 Date: Tue, 9 Apr 2019 16:39:41 +0800 Subject: [PATCH] 1 --- sql/gamedb.sql | 1 + .../controller/SupplyBoxController.class.php | 41 +++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/sql/gamedb.sql b/sql/gamedb.sql index 97b7f6d..46e2ad7 100644 --- a/sql/gamedb.sql +++ b/sql/gamedb.sql @@ -96,6 +96,7 @@ CREATE TABLE `supplybox` ( `box_id` int(11) NOT NULL COMMENT '补给箱id', `box_num` int(11) NOT NULL COMMENT '补给箱数量', `buy_times` int(11) NOT NULL COMMENT '购买次数', + `last_buy_time` varchar(50) NOT NULL DEFAULT '最后一次购买', PRIMARY KEY (`idx`), KEY `accountid` (`accountid`) ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; diff --git a/webapp/controller/SupplyBoxController.class.php b/webapp/controller/SupplyBoxController.class.php index ab0ef1c..70a9634 100644 --- a/webapp/controller/SupplyBoxController.class.php +++ b/webapp/controller/SupplyBoxController.class.php @@ -206,10 +206,6 @@ class SupplyBoxController{ phpcommon\sendError(ERR_USER_BASE + 2, '没有这个宝箱'); return; } - if ($coin_num < 5) { - phpcommon\sendError(ERR_USER_BASE + 3, '金币不足'); - return; - } $row = $conn->execQueryOne('SELECT * FROM supplybox WHERE accountid=:account_id AND box_id=:box_id', array( ':account_id' => $account_id, @@ -220,32 +216,53 @@ class SupplyBoxController{ phpcommon\sendError(ERR_USER_BASE + 3, '金币不足'); return; } - $ret = $conn->execScript('INSERT INTO supplybox(accountid, box_id, box_num, buy_times) ' . - ' VALUES(:accountid, :box_id, :box_num, :buy_times);', + $ret = $conn->execScript('INSERT INTO supplybox(accountid, box_id, box_num, buy_times, last_buy_time) ' . + ' VALUES(:accountid, :box_id, :box_num, :buy_times, :last_buy_time);', array( ':accountid' => $account_id, ':box_id' => $box_id, ':box_num' => 1, - ':buy_times' => 1 + ':buy_times' => 1, + ':last_buy_time' => time() )); if (!$ret) { die(); return; } } else { - if ($coin_num < $s['price'] * pow($s['parameter'], ($row['box_num'] - 1))) { - phpcommon\sendError(ERR_USER_BASE + 3, '金币不足'); - return; + if (phpcommon\getdayseconds(time()) - phpcommon\getdayseconds($row['time']) > 0) { + $ret = $conn->execScript('UPDATE supplybox SET buy_times=:buy_times, last_buy_time=:time ' . + ' WHERE accountid=:accountid AND box_id=:box_id;', + array( + ':accountid' => $account_id, + ':box_id' => $box_id, + ':buy_times' => 0, + ':time' => time() + )); + if (!$ret) { + die(); + return; + } + if ($coin_num < $s['price']) { + phpcommon\sendError(ERR_USER_BASE + 3, '金币不足'); + return; + } + } else { + if ($coin_num < $s['price'] * pow($s['parameter'], ($row['box_num'] - 1))) { + phpcommon\sendError(ERR_USER_BASE + 3, '金币不足'); + return; + } } $box_num = $row['box_num'] + 1; $buy_times = $row['buy_times'] + 1; - $ret = $conn->execScript('UPDATE supplybox SET box_num=:box_num, buy_times=:buy_times ' . + $ret = $conn->execScript('UPDATE supplybox SET box_num=:box_num, buy_times=:buy_times, last_buy_time=:time ' . ' WHERE accountid=:accountid AND box_id=:box_id;', array( ':accountid' => $account_id, ':box_id' => $box_id, ':box_num' => $box_num, - ':buy_times' => $buy_times + ':buy_times' => $buy_times, + ':time' => time() )); if (!$ret) { die();