game2006api/webapp/controller/FirstTopupController.class.php
aozhiwei eb3ab5d87d 1
2023-08-02 18:50:20 +08:00

109 lines
3.0 KiB
PHP

<?php
require_once('mt/FirstTopup.php');
require_once("models/FirstTopup.php");
require_once('services/PropertyChgService.php');
use phpcommon\SqlHelper;
use models\FirstTopup;
class FirstTopupController extends BaseAuthedController {
public function info()
{
$dbInfo = FirstTopup::get();
$status = array(0, 0, 0);
if (!$dbInfo) {
$this->_rspData(array(
'complete' => 0,
'firstTopupList' => mt\FirstTopup::getGroups(),
'status' => $status,
)
);
return;
}
FirstTopup::adjustStatus($dbInfo);
$complete = 1;
for ($i = 1; $i <= 3; ++$i) {
if ($dbInfo['status' . $i] != 2) {
$complete = 0;
break;
}
}
if ($complete == 1 && myself()->_getV(TN_FIRST_TUPOP_STATUS, 0) == 0) {
myself()->_setV(TN_FIRST_TUPOP_STATUS, 0, 1);
}
$this->_rspData(
array(
'complete' => $complete,
'firstTopupList' => mt\FirstTopup::getGroups(),
'status' => $status,
)
);
}
public function get()
{
$group = getReqVal('group', 1);
$conn = myself()->_getMysql('');
$address = myself()->_getAddress();
if (!$address) {
$this->_rspErr(1, 'you have not a web3 address');
return;
}
$status = $this->getStatusFromDB($conn);
$test = $status[$group - 1];
if ($test == 1) {
$status[$group - 1] = 2;
$chk = SqlHelper::update(
$conn,
't_first_topup',
array(
'address' => myself()->_getAddress(),
),
array(
'status' . $group => 2,
)
);
// 发放奖励
$reward = mt\FirstTopup::getByGroup($group);
$propertyChgService = new services\PropertyChgService();
for ($i = 0; $i < count($reward); $i++) {
$item = $reward[$i];
$itemMeta = mt\Item::get($item['goods_id']);
for ($j = 0; $j < $item['goods_num']; $j++) {
$this->internalAddItem($propertyChgService, $itemMeta, 1);
}
}
$complete = ($status[0] == 2 && $status[1] == 2 && $status[2] == 2) ? 1 : 0;
if ($complete == 1) {
$this->_setV(TN_FIRST_TUPOP_STATUS, 0, 1);
}
$this->_rspData(
array(
'group' => $group,
'status' => $status,
'reward' => $reward,
)
);
} else if ($test >= 2) {
$this->_rspErr(2, "already received the reward, group: $group");
} else if ($test < 1) {
$this->_rspErr(1, "not yet to receive the reward, group: $group");
}
}
}