103 lines
3.5 KiB
PHP
103 lines
3.5 KiB
PHP
<?php
|
|
|
|
require_once('models/ExchangeCode.php');
|
|
require_once('models/Map.php');
|
|
require_once('mt/Item.php');
|
|
require_once('services/AwardService.php');
|
|
require_once('services/PropertyChgService.php');
|
|
|
|
use models\ExchangeCode;
|
|
use models\Map;
|
|
class ActivityController extends BaseAuthedController {
|
|
|
|
public function exchangeCode(){
|
|
$code = trim(getReqVal('code', 0));
|
|
$result = ExchangeCode::find($code);
|
|
if (!$result){
|
|
myself()->_rspErr(1, 'invalid code');
|
|
return;
|
|
}
|
|
if ($result['begindate'] > myself()->_getNowTime() || $result['enddate'] < myself()->_getNowTime()){
|
|
myself()->_rspErr(1, 'invalid code');
|
|
return;
|
|
}
|
|
switch ($result['codetype']){
|
|
//一对一(一码只能兑换一次,并且该类道具一人也只能兑换一次)
|
|
case 1 :{
|
|
$recordDb = ExchangeCode::getRecordByCode($code);
|
|
if ($recordDb){
|
|
myself()->_rspErr(1, 'been used code');
|
|
return;
|
|
}
|
|
$recordDb2 = ExchangeCode::findRecordByPackage($result['packageno']);
|
|
if ($recordDb2){
|
|
myself()->_rspErr(1, 'In exchange for rewards');
|
|
return;
|
|
}
|
|
}
|
|
break;
|
|
//一对多(一码可被多人使用,仅一人一次,并且该类道具一人也只能兑换一次)
|
|
case 2 :{
|
|
$recordDb = ExchangeCode::findRecordByCode($code);
|
|
if ($recordDb){
|
|
myself()->_rspErr(1, 'been used code');
|
|
return;
|
|
}
|
|
$recordDb2 = ExchangeCode::findRecordByPackage($result['packageno']);
|
|
if ($recordDb2){
|
|
myself()->_rspErr(1, 'In exchange for rewards');
|
|
return;
|
|
}
|
|
}
|
|
break;
|
|
//多对一
|
|
case 3:{
|
|
$recordDb = ExchangeCode::getRecordByCode($code);
|
|
if ($recordDb){
|
|
myself()->_rspErr(1, 'been used code');
|
|
return;
|
|
}
|
|
}
|
|
break;
|
|
default :{
|
|
myself()->_rspErr(1, 'invalid');
|
|
return;
|
|
}
|
|
}
|
|
|
|
$itemMt = \mt\Item::get($result['packageno']);
|
|
if (!$itemMt){
|
|
myself()->_rspErr(1, "Props that don't exist");
|
|
return;
|
|
}
|
|
$items = array(
|
|
array(
|
|
'item_id' => $itemMt['id'],
|
|
'item_num' => 1
|
|
)
|
|
);
|
|
$propertyChgService = new services\PropertyChgService();
|
|
$awardService = new services\AwardService();
|
|
$this->_addItems($items, $awardService, $propertyChgService);
|
|
$fieldKv = array(
|
|
'account_id' => myself()->_getAccountId(),
|
|
'exchangecode' => $code,
|
|
'packageno' => $itemMt['id'],
|
|
'codetype' => $result['codetype'],
|
|
'createtime' => myself()->_getNowTime(),
|
|
'modifytime' => myself()->_getNowTime(),
|
|
);
|
|
ExchangeCode::insetRecord($fieldKv);
|
|
ExchangeCode::updateExchangeCode($code);
|
|
$this->_rspOk();
|
|
}
|
|
|
|
public function getMap(){
|
|
$mapDb = Map::findMap();
|
|
$this->_rspData(array("data"=>$mapDb));
|
|
}
|
|
|
|
|
|
}
|
|
|