From 62fa1b635251ef5fe5f37786e929b3fa7d48b17f Mon Sep 17 00:00:00 2001 From: hujiabin <519660157@qq.com> Date: Tue, 6 Aug 2024 17:39:55 +0800 Subject: [PATCH] 1 --- webapp/controller/BagController.class.php | 32 ++++++++++++++++++---- webapp/events/Diamond.php | 14 ++++++++++ webapp/models/DiamondConsumeProduct.php | 33 +++++++++++++++++++++++ webapp/services/HashRateService.php | 2 +- 4 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 webapp/events/Diamond.php create mode 100644 webapp/models/DiamondConsumeProduct.php diff --git a/webapp/controller/BagController.class.php b/webapp/controller/BagController.class.php index b60d772e..b7a0f482 100644 --- a/webapp/controller/BagController.class.php +++ b/webapp/controller/BagController.class.php @@ -9,6 +9,7 @@ require_once('mt/LootConfig.php'); require_once('models/Bag.php'); require_once('models/Hero.php'); require_once('models/User.php'); +require_once('models/DiamondConsumeProduct.php'); require_once('services/AwardService.php'); @@ -21,6 +22,7 @@ use phpcommon\SqlHelper; use models\Bag; use models\Hero; use models\User; +use models\DiamondConsumeProduct; use services\LogService; class BagController extends BaseAuthedController { @@ -483,24 +485,44 @@ class BagController extends BaseAuthedController { $this->_rspErr(1, "only supported property"); return; } - $costItems= array( - array( + $costItems= array(); + if ($itemMeta['gold'] > 0){ + array_push($costItems,array( 'item_id' => V_ITEM_GOLD, 'item_num' => $itemMeta['gold'] * $itemNum - ) - ); + )); + } + $diamondTrue = 0; + if ($itemMeta['diamond'] > 0){ + $diamondTrue = 1; + array_push($costItems,array( + 'item_id' => V_ITEM_DIAMOND, + 'item_num' => $itemMeta['diamond'] * $itemNum + )); + } $lackItem = null; if (!$this->_hasEnoughItems($costItems, $lackItem)) { $this->_rspErr(3, $this->_getLackItemErrMsg($lackItem)); return; } + + $this->_decItems($costItems); + if ($diamondTrue > 0){ + $params = array( + 'type' => DiamondConsumeProduct::CONSUME_TYPE, + 'amount' => $itemMeta['diamond'] * $itemNum, + 'source' => DiamondConsumeProduct::GAME_STATE, + ); + myself()->_fireEvent('Diamond','onConsume',$params); + } + $items = array( array( 'item_id' => $itemId, 'item_num' => $itemNum ) ); - $this->_decItems($costItems); + $this->_addItems($items, $this->awardService, $this->propertyChgService); $this->propertyChgService->addUserChg(); $this->propertyChgService->addBagChg(); diff --git a/webapp/events/Diamond.php b/webapp/events/Diamond.php new file mode 100644 index 00000000..4bb34c5c --- /dev/null +++ b/webapp/events/Diamond.php @@ -0,0 +1,14 @@ +_callModelStatic('DiamondConsumeProduct', 'addRecord', $params); + } + +} \ No newline at end of file diff --git a/webapp/models/DiamondConsumeProduct.php b/webapp/models/DiamondConsumeProduct.php new file mode 100644 index 00000000..fde0aab8 --- /dev/null +++ b/webapp/models/DiamondConsumeProduct.php @@ -0,0 +1,33 @@ +_getSelfMysql(), + 't_user_currency', + array( + 'account_id' => myself()->_getAccountId(), + 'passport_address' => myself()->_getAddress(), + 'type' => $params['type'], + 'amount' => $params['amount'], + 'source' => $params['source'], + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime(), + + ) + ); + } + +} \ No newline at end of file diff --git a/webapp/services/HashRateService.php b/webapp/services/HashRateService.php index 80d2e024..e2360adc 100644 --- a/webapp/services/HashRateService.php +++ b/webapp/services/HashRateService.php @@ -234,7 +234,7 @@ class HashRateService extends BaseService 'SELECT SUM(amount) FROM t_diamond_consume_product WHERE (account_id=:account_id OR passport_address=:address) AND type=:type AND createtime > :star_time', array( ':account' => myself()->_getAccountId(), - ':address' => 1, + ':address' => myself()->_getAddress(), ':type' => 0, ':star_time' => $task['createtime'], )