game2006api/webapp/controller/EmojiController.class.php
2024-07-23 15:21:48 +08:00

101 lines
3.0 KiB
PHP

<?php
require_once('models/Emoji.php');
use models\Emoji;
class EmojiController extends BaseAuthedController
{
public function getEmojiList(){
$emojiList = array();
Emoji::emojiList(function ($row) use (&$emojiList){
$tDo = Emoji::toDto($row);
if ($tDo['left_time'] > 0){
array_push($emojiList,Emoji::toDto($row));
}
});
$uses = Emoji::getUseEmoji();
$temp = array_map(function ($val){
return $val['item_id'];
},$uses);
$data = array();
foreach ($emojiList as $val){
if(in_array($val['item_id'], $temp)){
array_push($data,
array(
'item_id'=>$val['item_id'],
'state'=>1,
'left_time'=>$val['left_time'],
)
);
}else{
array_push($data,
array(
'item_id'=>$val['item_id'],
'state'=>0,
'left_time'=>$val['left_time'],
)
);
}
}
$this->_rspData(array(
'data' => $data,
'use_emoji' => $uses
));
}
public function setEmoji(){
$itemId = getReqVal('item_id', '');
$slotId = getReqVal('slot_id', 0);
$emojiList = array();
Emoji::emojiList(function ($row) use (&$emojiList){
$tDo = Emoji::toDto($row);
if ($tDo['left_time'] > 0){
array_push($emojiList,Emoji::toDto($row));
}
});
if(! in_array($itemId,array_map(function ($val){
return $val['item_id'];
},$emojiList))){
$this->_rspErr(1, 'item_id parameter error');
return;
}
if($slotId < 1 || $slotId > 6){
$this->_rspErr(1, 'slot_id parameter error');
return;
}
$uses = Emoji::getUseEmoji();
$temp = array_map(function ($val){
return $val['item_id'];
},$uses);
if(in_array($itemId,$temp)){
$this->_rspErr(1, 'The emoji has been used');
return;
}
foreach ($uses as &$val){
if ($val['slot_id'] == $slotId){
$val['item_id'] = $itemId;
}
}
Emoji::updateEmoji( json_encode($uses));
$this->_rspOk();
}
public function cancel(){
$slotId = getReqVal('slot_id', 0);
if($slotId < 1 || $slotId > 6){
$this->_rspErr(1, 'slot_id parameter error');
return;
}
$uses = Emoji::getUseEmoji();
foreach ($uses as &$val){
if ($val['slot_id'] == $slotId){
$val['item_id'] = 0;
}
}
Emoji::updateEmoji(json_encode($uses));
$this->_rspOk();
}
}