diff --git a/webapp/controller/SkinController.class.php b/webapp/controller/SkinController.class.php index 949b66e..d3ddd36 100644 --- a/webapp/controller/SkinController.class.php +++ b/webapp/controller/SkinController.class.php @@ -22,7 +22,7 @@ class SkinController{ $s = array( 'id' => $skin_meta['id'], 'name' => $skin_meta['name'], - 'price' => $skin_meta['pirce'], + 'price' => $skin_meta['price'], ); return $s; } @@ -40,6 +40,23 @@ class SkinController{ return $arr; } + protected function getTank($tank_id) + { + $tank_meta_table = require('../res/tank@tank.php'); + $tank_meta = getTankConfig($tank_meta_table, $tank_id); + $t = array( + 'id' => $tank_meta['id'], + 'name' => $tank_meta['name'], + 'cost' => $tank_meta['cost'], + 'cost_int' => $tank_meta['cost_int'], + 'max_lv' => $tank_meta['max_lv'], + 'compose' => $tank_meta['compose'], + 'debris' => $tank_meta['debris'], + 'origin_skin' => $tank_meta['origin_skin'] + ); + return $t; + } + protected function getParameter($para_id) { $parameter_meta_cluster = require('../res/parameter@parameter.php'); @@ -67,36 +84,28 @@ class SkinController{ phpcommon\sendError(ERR_USER_BASE + 1,'没有这个玩家'); return; } - $skin_meta_table = require('../res/tankSkin@tankSkin.php'); - $s = $this->getSkin(30001); - if (!$s) { - phpcommon\sendError(ERR_USER_BASE + 1,'没有这个皮肤'); - return; - } $rowCount = $conn->execQueryRowCount('SELECT skin_id FROM skin WHERE accountid = :account_id;', array( ':account_id' => $account_id )); $status = 0; + $tank_meta_table = require('../res/tank@tank.php'); if ($rowCount == 0) { - for ($i = 30001; $i <= count($commander_meta_table) + 30000; $i++) { - $s = $this->getSkin($i); - if (!$s) { + for ($i = 15001; $i <= count($tank_meta_table) + 15000; $i++) { + $t = $this->getTank($i); + if (!$t) { phpcommon\sendError(ERR_USER_BASE + 1,'没有这个皮肤'); return; } - if ($s['price'] == 0) { - $status = 0; - } else { - $status = 2; - } - $ret = $conn->execScript('INSERT INTO skin(accountid, skin_id, status, create_time, modify_time) ' . - ' VALUES(:account_id, :skin_id, :status, :create_time, :modify_time) ' . - ' ON DUPLICATE KEY UPDATE accountid=:account_id, skin_id=:skin_id, status=:status, modify_time=:modify_time;', + $s = $this->getTankSkin($t['origin_skin']); + $status = 0; + $ret = $conn->execScript('INSERT INTO skin(accountid, skin_id, skin_status, create_time, modify_time) ' . + ' VALUES(:account_id, :skin_id, :skin_status, :create_time, :modify_time) ' . + ' ON DUPLICATE KEY UPDATE accountid=:account_id, skin_id=:skin_id, skin_status=:skin_status, modify_time=:modify_time;', array( ':account_id' => $account_id, - ':skin_id' => $i, - ':status' => $status, + ':skin_id' => $t['origin_skin'], + ':skin_status' => $status, ':create_time' => time(), ':modify_time' => time() )); @@ -106,7 +115,7 @@ class SkinController{ } } } - $rows = $conn->execQuery('SELECT skin_id, status FROM skin WHERE accountid = :account_id;', + $rows = $conn->execQuery('SELECT skin_id, skin_status FROM skin WHERE accountid = :account_id;', array( ':account_id' => $account_id, )); @@ -118,7 +127,7 @@ class SkinController{ $skin_id = $row['skin_id']; array_push($skin_list, array( 'skin_id' => $skin_id, - 'skin_status' => $row['status'], + 'skin_status' => $row['skin_status'], )); } echo json_encode(array( @@ -144,24 +153,11 @@ class SkinController{ phpcommon\sendError(ERR_USER_BASE + 1,'没有这个玩家'); return; } - $s = $this->getSkin($skin_id); + $s = $this->getTankSkin($skin_id); if(!$s){ phpcommon\sendError(ERR_USER_BASE + 2,'没有这个皮肤'); return; } - $row = $conn->execQueryOne('SELECT status FROM skin WHERE accountid=:account_id AND skin_id=:skin_id;', - array( - ':account_id' => $account_id, - ':skin_id' => $skin_id - )); - if(!$row){ - phpcommon\sendError(ERR_USER_BASE + 2,'没有这个皮肤'); - return; - } - if ($row['status'] == 1) { - phpcommon\sendError(ERR_USER_BASE + 3,'皮肤已解锁'); - return; - } $num = $s['price']; $rowDiamond = $conn->execQueryOne('SELECT diamond_num FROM user WHERE accountid=:account_id;', array( @@ -175,6 +171,44 @@ class SkinController{ phpcommon\sendError(ERR_USER_BASE + 6, '钻石不足'); return; } + $row = $conn->execQueryOne('SELECT skin_status FROM skin WHERE accountid=:account_id AND skin_id=:skin_id;', + array( + ':account_id' => $account_id, + ':skin_id' => $skin_id + )); + if (!$row) { + $ret = $conn->execScript('INSERT INTO skin(accountid, skin_id, skin_status, create_time, modify_time) ' . + ' VALUES(:account_id, :skin_id, :skin_status, :create_time, :modify_time) ' . + ' ON DUPLICATE KEY UPDATE accountid=:account_id, skin_id=:skin_id, skin_status=:skin_status, modify_time=:modify_time;', + array( + ':account_id' => $account_id, + ':skin_id' => $skin_id, + ':skin_status' => 1, + ':create_time' => time(), + ':modify_time' => time() + )); + if(!$ret){ + die(); + return; + } + } else { + if ($row['skin_status'] == 1) { + phpcommon\sendError(ERR_USER_BASE + 3,'皮肤已解锁'); + return; + } + + $ret = $conn->execScript('UPDATE skin SET skin_status=1, modify_time=:modify_time ' . + ' WHERE accountid = :account_id AND skin_id = :skin_id;', + array( + ':account_id' => $account_id, + ':skin_id' => $skin_id, + ':modify_time' => time() + )); + if (!$ret) { + die(); + return; + } + } $retDiamond = $conn->execScript('UPDATE user SET diamond_num=:diamond_num, modify_time=:modify_time ' . ' WHERE accountid=:account_id;', array( @@ -186,17 +220,7 @@ class SkinController{ die(); return; } - $ret = $conn->execScript('UPDATE skin SET status=1, modify_time=:modify_time ' . - ' WHERE accountid = :account_id AND skin_id = :skin_id;', - array( - ':account_id' => $account_id, - ':skin_id' => $skin_id, - ':modify_time' => time() - )); - if (!$ret) { - die(); - return; - } + echo json_encode(array( 'errcode' => 0, 'errmsg' => '', @@ -222,7 +246,7 @@ class SkinController{ return; } //正在上阵的皮肤 - $row = $conn->execQueryOne('SELECT status FROM skin WHERE accountid=:accountid AND skin_id=:skin_id;', + $row = $conn->execQueryOne('SELECT skin_status FROM skin WHERE accountid=:accountid AND skin_id=:skin_id;', array( ':accountid' => $account_id, ':skin_id' => $usingskin_id, @@ -232,7 +256,7 @@ class SkinController{ return; } $status = 1; - $using_ret = $conn->execScript('UPDATE skin SET status=:1, modify_time=:modify_time ' . + $using_ret = $conn->execScript('UPDATE skin SET skin_status=:1, modify_time=:modify_time ' . ' WHERE accountid = :account_id AND skin_id = :skin_id;', array( ':account_id' => $account_id, @@ -250,12 +274,12 @@ class SkinController{ 'skin_status' => 1, )); //准备上阵的皮肤 - $row_exchange = $conn->execQueryOne('SELECT status FROM commander WHERE accountid=:accountid AND skin_id=:skin_id;', + $row_exchange = $conn->execQueryOne('SELECT skin_status FROM commander WHERE accountid=:accountid AND skin_id=:skin_id;', array( ':accountid' => $account_id, ':skin_id' => $exchangeskin_id, )); - $exchange_ret = $conn->execScript('UPDATE skin SET status=0, modify_time=:modify_time ' . + $exchange_ret = $conn->execScript('UPDATE skin SET skin_status=0, modify_time=:modify_time ' . ' WHERE accountid = :account_id AND skin_id = :skin_id;', array( ':account_id' => $account_id,