diff --git a/sql/gamedb.sql b/sql/gamedb.sql index 8db02e8..26c4208 100644 --- a/sql/gamedb.sql +++ b/sql/gamedb.sql @@ -70,7 +70,8 @@ CREATE TABLE `skin` ( `accountid` varchar(60) DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)', `skin_id` int(11) NOT NULL COMMENT '皮肤id', `skin_status` int(11) NOT NULL COMMENT '皮肤状态', - `frgment_num` int(11) NOT NULL COMMENT '碎片数量', + `fragment_id` int(11) NOT NULL COMMENT '碎片id', + `fragment_num` int(11) NOT NULL COMMENT '碎片数量', `active_time` varchar(50) NOT NULL DEFAULT '有效时间', PRIMARY KEY (`idx`), KEY `accountid` (`accountid`) diff --git a/webapp/bootstrap/config_loader.php b/webapp/bootstrap/config_loader.php index f5d4685..c86dabf 100644 --- a/webapp/bootstrap/config_loader.php +++ b/webapp/bootstrap/config_loader.php @@ -54,36 +54,43 @@ function getRedisConfig($hash_value) function getSkinConfig($skin_table ,$item_id) { + $item_id = (int)$item_id; return array_key_exists($item_id, $skin_table) ? $skin_table[$item_id] : null; } function getEquipConfig($equip_table, $item_id) { + $item_id = (int)$item_id; return array_key_exists($item_id, $equip_table) ? $equip_table[$item_id] : null; } function getSupplyConfig($supply_table, $box_id) { + $box_id = (int)$box_id; return array_key_exists($box_id, $supply_table) ? $supply_table[$box_id] : null; } function getDropConfig($drop_table, $drop_id) { + $drop_id = (int)$drop_id; return array_key_exists($drop_id, $drop_table) ? $drop_table[$drop_id] : null; } function getSignConfig($sign_table, $sign_id) { + $sign_id = (int)$sign_id; return array_key_exists($sign_id, $sign_table) ? $sign_table[$sign_id] : null; } function getQuestConfig($quest_table, $quest_id) { + $quest_id = (int)$quest_id; return array_key_exists($quest_id, $quest_table) ? $quest_table[$quest_id] : null; } function getTaskRewardConfig($taskReward_table, $taskReward_id) { + $taskReward_id = (int)$taskReward_id; return array_key_exists($taskReward_id, $taskReward_table) ? $taskReward_table[$taskReward_id] : null; } checkMysqlConfig(); diff --git a/webapp/controller/SkinController.class.php b/webapp/controller/SkinController.class.php index 0e4efda..0c691aa 100644 --- a/webapp/controller/SkinController.class.php +++ b/webapp/controller/SkinController.class.php @@ -40,8 +40,7 @@ class SkinController{ phpcommon\sendError(ERR_USER_BASE + 1,'没有这个玩家'); return; } - $rowCount = $conn->execQueryRowCount('SELECT accountid, skin_id, skin_status, frgment_num, active_time ' . - ' FROM skin WHERE accountid = :account_id;', + $rowCount = $conn->execQueryRowCount('SELECT * FROM skin WHERE accountid = :account_id;', array( ':account_id' => $account_id )); @@ -52,12 +51,13 @@ class SkinController{ } else { $skin_status = 2; } - $ret = $conn->execScript('INSERT INTO skin(accountid, skin_id, skin_status, frgment_num, active_time) ' . - ' VALUES(:account_id, :skin_id, :skin_status, :fragment_num, :active_time);', + $ret = $conn->execScript('INSERT INTO skin(accountid, skin_id, skin_status, fragment_id, fragment_num, active_time) ' . + ' VALUES(:account_id, :skin_id, :skin_status, :fragment_id, :fragment_num, :active_time);', array( ':account_id' => $account_id, ':skin_id' => $i, ':skin_status' => $skin_status, + ':fragment_id' => $i - 1000, ':fragment_num' => 0, ':active_time' => 0, )); @@ -68,8 +68,7 @@ class SkinController{ } } $time = 0; - $rows = $conn->execQuery('SELECT accountid, skin_id, skin_status, frgment_num, active_time ' . - ' FROM skin WHERE accountid = :account_id;', + $rows = $conn->execQuery('SELECT * FROM skin WHERE accountid = :account_id;', array( ':account_id' => $account_id, )); @@ -111,7 +110,7 @@ class SkinController{ array_push($skin_list, array( 'skin_id' => $row['skin_id'], 'skin_status' => $row['skin_status'], - 'fragment_num' => $row['frgment_num'], + 'fragment_num' => $row['fragment_num'], 'active_time' => $time, )); } @@ -138,7 +137,7 @@ class SkinController{ phpcommon\sendError(ERR_USER_BASE + 1,'没有这个皮肤1'); return; } - $row = $conn->execQueryOne('SELECT accountid, skin_id, skin_status, frgment_num, active_time ' . + $row = $conn->execQueryOne('SELECT accountid, skin_id, skin_status, fragment_num, active_time ' . ' FROM skin WHERE accountid = :account_id AND skin_id = :skin_id;', array( ':account_id' => $account_id, @@ -149,10 +148,10 @@ class SkinController{ return; } $fragment_num = 0; - if($row['frgment_num'] >= $s['skin_compose']){ - $fragment_num = $row['frgment_num'] - $s['skin_compose']; + if($row['fragment_num'] >= $s['skin_compose']){ + $fragment_num = $row['fragment_num'] - $s['skin_compose']; }else{ - $coin = $s['skin_price'] * 1.0 / $s['skin_compose'] * ($s['skin_compose'] - $row['frgment_num']); + $coin = $s['skin_price'] * 1.0 / $s['skin_compose'] * ($s['skin_compose'] - $row['fragment_num']); $row = $conn->execQueryOne('SELECT * FROM user WHERE accountid=:accountid;', array( ':accountid' => $account_id @@ -170,12 +169,12 @@ class SkinController{ $fragment_num = 0; } - $ret = $conn->execScript('UPDATE skin SET frgment_num=:frgment_num ,skin_status=1 ' . + $ret = $conn->execScript('UPDATE skin SET fragment_num=:fragment_num ,skin_status=1 ' . ' WHERE accountid = :account_id AND skin_id = :skin_id;', array( ':account_id' => $account_id, ':skin_id' => $skin_id, - ':frgment_num' => $fragment_num + ':fragment_num' => $fragment_num )); if(!$ret){ die(); diff --git a/webapp/controller/SupplyBoxController.class.php b/webapp/controller/SupplyBoxController.class.php index e7fbbdc..1749192 100644 --- a/webapp/controller/SupplyBoxController.class.php +++ b/webapp/controller/SupplyBoxController.class.php @@ -69,7 +69,7 @@ class SupplyBoxController{ phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } - $rowCount = $conn->execQueryRowCount('SELECT * FROM supplybox WHERE accountid = :account_id;', + $rowCount = $conn->execQueryRowCount('SELECT * FROM supplybox WHERE accountid=:account_id;', array( ':account_id' => $account_id )); @@ -134,7 +134,6 @@ class SupplyBoxController{ phpcommon\sendError(ERR_USER_BASE + 3, '没有这个奖励'); return; } - $item_list = array(); $row = $conn->execQueryOne('SELECT * FROM supplybox WHERE accountid=:accountid AND box_id=:box_id;', array( @@ -192,7 +191,9 @@ class SupplyBoxController{ break; } } + $item_id_array = $this->getExplode($d['item_id']); + $num_array = $this->getExplode($d['num']); $item_id = $item_id_array[$key][0]; $item_num = $num_array[$key][0] * $mul; @@ -211,6 +212,8 @@ class SupplyBoxController{ ':accountid' => $account_id, ':coin_num' => $item_num + $row1['coin_num'] )); + } else { + $this->addReward($item_id, $item_num, $account_id); } $quest = new classes\Quest(); $quest->triggerQuest(71004, 1, 1, $account_id); @@ -306,5 +309,26 @@ class SupplyBoxController{ 'errmsg' => '', )); } + + public function addReward($item_id, $item_num, $account_id) + { + $conn = $this->getMysql($account_id); + if (!$conn) { + phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); + return; + } + $rowSkin = $conn->execQueryOne('SELECT * FROM skin WHERE accountid=:accountid AND fragment_id=:fragment_id;', + array( + ':accountid' => $account_id, + ':fragment_id' => $item_id + )); + $ret = $conn->execScript('UPDATE skin SET fragment_num=:fragment_num ' . + ' WHERE accountid=:accountid AND fragment_id=:fragment_id;', + array( + ':accountid' => $account_id, + ':fragment_id' => $item_id, + ':fragment_num' => $item_num + $rowSkin['fragment_num'] + )); + } } ?>