From 054f084542d725304dfe0c5b9f4ae141ef7fac12 Mon Sep 17 00:00:00 2001 From: yangduo Date: Mon, 30 Dec 2024 11:31:02 +0800 Subject: [PATCH] activity cost diamond --- .../FesActivityController.class.php | 36 +++++++++++++++++++ webapp/metatable/activity.php | 3 +- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/webapp/controller/FesActivityController.class.php b/webapp/controller/FesActivityController.class.php index 5e518c8..75fa962 100644 --- a/webapp/controller/FesActivityController.class.php +++ b/webapp/controller/FesActivityController.class.php @@ -200,6 +200,38 @@ class FesActivityController{ phpcommon\sendError(ERR_USER_BASE + 4, '奖励不可领'); return; } + + if ($us['type'] == '2') { + //扣除钻石 + $userrow = $conn->execQueryOne( + 'SELECT diamond_num FROM user WHERE accountid=:accountid;', + array( + ':accountid' => $account_id + ) + ); + if (!$userrow) { + phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); + return; + } + + if ($userrow['diamond_num'] < $us['condition']) { + phpcommon\sendError(ERR_USER_BASE + 3, '钻石不足'); + return; + } + $ret = $conn->execScript( + 'UPDATE user SET diamond_num=:diamond_num, modify_time=:modify_time ' . + ' WHERE accountid=:accountid;', + array( + ':accountid' => $account_id, + ':diamond_num' => $userrow['diamond_num'] - $us['condition'], + ':modify_time' => time() + ) + ); + if (!$ret) { + die(); + return; + } + } $us['status'] = 2; $status = 2; $reward = metatable\getRewardInfo($user_db['act_id'], $id, 0); @@ -275,6 +307,10 @@ class FesActivityController{ $times = 0; foreach ($user_db['info_list'] as &$us) { if ($us['id'] == $id) { + if ($us['type'] != '1') { + phpcommon\sendError(ERR_USER_BASE + 4, '奖励不可领'); + return; + } if ($us['status'] != 0) { phpcommon\sendError(ERR_USER_BASE + 4, '奖励不可领'); return; diff --git a/webapp/metatable/activity.php b/webapp/metatable/activity.php index 6467413..153898a 100644 --- a/webapp/metatable/activity.php +++ b/webapp/metatable/activity.php @@ -67,9 +67,10 @@ function getActInfo($act_conf) $info_list = array(); $conditions = getExplode($act_conf['condition']); for ($i = 0; $i < count($conditions); $i++) { + $status = $conditions[$i][0] == '1' ? 0: 1; // contition 1:video; 2: cost diamond array_push($info_list,array( 'id' => $i, - 'status' => 0, + 'status' => $status, 'times' => 0, 'type' => $conditions[$i][0], 'condition' => $conditions[$i][1],