283 lines
11 KiB
PHP
283 lines
11 KiB
PHP
<?php
|
|
|
|
require 'classes/Quest.php';
|
|
require 'classes/AddReward.php';
|
|
|
|
class EmojiController{
|
|
|
|
protected function getMysql($account_id)
|
|
{
|
|
$mysql_conf = getMysqlConfig(crc32($account_id));
|
|
$conn = new phpcommon\Mysql(array(
|
|
'host' => $mysql_conf['host'],
|
|
'port' => $mysql_conf['port'],
|
|
'user' => $mysql_conf['user'],
|
|
'passwd' => $mysql_conf['passwd'],
|
|
'dbname' => 'gamedb2004_' . $mysql_conf['instance_id']
|
|
));
|
|
return $conn;
|
|
}
|
|
|
|
protected function getEmoji($emoji_id)
|
|
{
|
|
$emoji_meta_table = require('../res/emoji@emoji.php');
|
|
$emoji_meta = getEmojiConfig($emoji_meta_table, $emoji_id);
|
|
$emoji = array(
|
|
'id' => $emoji_meta['id'],
|
|
'name' => $emoji_meta['emoji_name'],
|
|
'title' => $emoji_meta['emoji_title'],
|
|
'icon' => $emoji_meta['emoji_icon'],
|
|
'type' => $emoji_meta['emoji_type'],
|
|
'get_type' => $emoji_meta['get_type'],
|
|
'number' => $emoji_meta['number'],
|
|
'order_weight' => $emoji_meta['order_weight'],
|
|
);
|
|
return $emoji;
|
|
}
|
|
|
|
|
|
public function emojiInfo()
|
|
{
|
|
$account_id = $_REQUEST['account_id'];
|
|
//登录校验
|
|
$login = loginVerify($account_id, $_REQUEST['session_id']);
|
|
if (!$login) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, 'session无效');
|
|
return;
|
|
}
|
|
$conn = $this->getMysql($account_id);
|
|
if (!$conn) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
|
return;
|
|
}
|
|
|
|
$emoji_list = array();
|
|
$emoji_meta_table = require('../res/emoji@emoji.php');
|
|
foreach ($emoji_meta_table as $emoji_info) {
|
|
$id = $emoji_info['id'];
|
|
$emoji = $this->getEmoji($id);
|
|
if (!$emoji) {
|
|
continue;
|
|
}
|
|
$status = 2;
|
|
$row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;',
|
|
array(
|
|
':accountid' => $account_id,
|
|
'emojiid' => $emoji['id']
|
|
));
|
|
if (!$row && $emoji['get_type'] == 1) {
|
|
//插入默认上阵的表情
|
|
$ret = $conn->execScript('INSERT INTO emoji(accountid, emojiid, status, create_time, modify_time) ' .
|
|
' VALUES(:account_id, :emojiid, 0, :create_time, :modify_time) ' .
|
|
' ON DUPLICATE KEY UPDATE accountid=:account_id, emojiid=:emojiid, status=0, modify_time=:modify_time;',
|
|
array(
|
|
':account_id' => $account_id,
|
|
':emojiid' => $id,
|
|
':create_time' => time(),
|
|
':modify_time' => time(),
|
|
//':type' => $emoji['type']
|
|
));
|
|
if(!$ret){
|
|
die();
|
|
}
|
|
$status = 0;
|
|
}
|
|
if ($row) {
|
|
$status = $row['status'];
|
|
}
|
|
array_push($emoji_list, array(
|
|
'emoji_id' => $emoji['id'],
|
|
'emoji_status' => $status,
|
|
'emoji_icon' => $emoji['icon'],
|
|
'title_icon' => $emoji['title'],
|
|
'emoji_type' => $emoji['type'],
|
|
'get_type' => $emoji['get_type'],
|
|
'coin_num' => $emoji['number'],
|
|
'order' => $emoji['order_weight'],
|
|
));
|
|
}
|
|
echo json_encode(array(
|
|
'errcode' => 0,
|
|
'errmsg' => '',
|
|
'emoji_list' => $emoji_list
|
|
));
|
|
}
|
|
|
|
|
|
public function exchageEmoji()
|
|
{
|
|
$account_id = $_REQUEST['account_id'];
|
|
//登录校验
|
|
$login = loginVerify($account_id, $_REQUEST['session_id']);
|
|
if (!$login) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, 'session无效');
|
|
return;
|
|
}
|
|
$conn = $this->getMysql($account_id);
|
|
if (!$conn) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
|
return;
|
|
}
|
|
$emoji_list = array();
|
|
//$usingemoji_id = $_REQUEST['usingemoji_id'];
|
|
$exchangeemoji_id = $_REQUEST['exchangeemoji_id'];
|
|
$e = $this->getEmoji($exchangeemoji_id);
|
|
$emoji_meta_table = require('../res/emoji@emoji.php');
|
|
foreach ($emoji_meta_table as $emoji_info) {
|
|
$id = $emoji_info['id'];
|
|
$emoji = $this->getEmoji($id);
|
|
if ($emoji['type'] != $e['type']) {
|
|
continue;
|
|
}
|
|
$row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;',
|
|
array(
|
|
':accountid' => $account_id,
|
|
':emojiid' => $id,
|
|
));
|
|
if ($row['status'] != 0 || !$row) {
|
|
continue;
|
|
}
|
|
$using_ret = $conn->execScript('UPDATE emoji SET status=1, modify_time=:modify_time ' .
|
|
' WHERE accountid = :account_id AND emojiid = :emojiid;',
|
|
array(
|
|
':account_id' => $account_id,
|
|
':emojiid' => $id,
|
|
':modify_time' => time()
|
|
));
|
|
array_push($emoji_list, array(
|
|
'emoji_id' => $usingemoji_id,
|
|
'emoji_status' => 1
|
|
));
|
|
}
|
|
/*$row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;',
|
|
array(
|
|
':accountid' => $account_id,
|
|
':emojiid' => $usingemoji_id,
|
|
));
|
|
if (!$row) {
|
|
phpcommon\sendError(ERR_USER_BASE + 2, '没有这个表情');
|
|
return;
|
|
}
|
|
if ($row['status'] != 0) {
|
|
phpcommon\sendError(ERR_USER_BASE + 3, '该表情未上阵');
|
|
return;
|
|
}
|
|
$using_ret = $conn->execScript('UPDATE emoji SET status=1, modify_time=:modify_time ' .
|
|
' WHERE accountid = :account_id AND emojiid = :emojiid;',
|
|
array(
|
|
':account_id' => $account_id,
|
|
':emojiid' => $usingemoji_id,
|
|
':modify_time' => time()
|
|
));
|
|
|
|
if(!$using_ret){
|
|
die();
|
|
return;
|
|
}
|
|
array_push($emoji_list, array(
|
|
'emoji_id' => $usingemoji_id,
|
|
'emoji_status' => 1
|
|
));*/
|
|
$row = $conn->execQueryOne('SELECT status FROM emoji WHERE accountid=:accountid AND emojiid=:emojiid;',
|
|
array(
|
|
':accountid' => $account_id,
|
|
':emojiid' => $exchangeemoji_id,
|
|
));
|
|
if (!$row) {
|
|
phpcommon\sendError(ERR_USER_BASE + 2, '没有这个表情');
|
|
return;
|
|
}
|
|
$exchange_ret = $conn->execScript('UPDATE emoji SET status=0, modify_time=:modify_time ' .
|
|
' WHERE accountid = :account_id AND emojiid = :emojiid;',
|
|
array(
|
|
':account_id' => $account_id,
|
|
':emojiid' => $exchangeemoji_id,
|
|
':modify_time' => time()
|
|
));
|
|
if(!$exchange_ret){
|
|
die();
|
|
return;
|
|
}
|
|
array_push($emoji_list, array(
|
|
'emoji_id' => $exchangeemoji_id,
|
|
'emoji_status' => 0
|
|
));
|
|
echo json_encode(array(
|
|
'errcode' => 0,
|
|
'errmsg' => '',
|
|
'emoji_list' => $emoji_list
|
|
));
|
|
}
|
|
|
|
public function buyEmoji()
|
|
{
|
|
$account_id = $_REQUEST['account_id'];
|
|
//登录校验
|
|
$login = loginVerify($account_id, $_REQUEST['session_id']);
|
|
if (!$login) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, 'session无效');
|
|
return;
|
|
}
|
|
$conn = $this->getMysql($account_id);
|
|
if (!$conn) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
|
return;
|
|
}
|
|
$id = $_REQUEST['emoji_id'];
|
|
$emoji = $this->getEmoji($id);
|
|
if (!$emoji) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个表情');
|
|
return;
|
|
}
|
|
if ($emoji['get_type'] != 2) {
|
|
phpcommon\sendError(ERR_USER_BASE + 1, '不能用钻石购买');
|
|
return;
|
|
}
|
|
|
|
//扣除钻石
|
|
$row = $conn->execQueryOne('SELECT diamond_num FROM user WHERE accountid=:accountid;',
|
|
array(
|
|
':accountid' => $account_id
|
|
));
|
|
if (!$row) {
|
|
phpcommon\sendError(ERR_USER_BASE + 2, '没有这个玩家');
|
|
return;
|
|
}
|
|
if ($row['diamond_num'] < $emoji['number']) {
|
|
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' => $row['diamond_num'] - $emoji['number'],
|
|
':modify_time' => time()
|
|
));
|
|
if (!$ret) {
|
|
die();
|
|
return;
|
|
}
|
|
|
|
//修改状态
|
|
$addreward = new classes\AddReward();
|
|
$addreward->addReward($id, 1, $account_id);
|
|
$coin_num = $addreward->getCoinNum($account_id);
|
|
$diamond_num = $addreward->getDiamondNum($account_id);
|
|
$item_list = array();
|
|
array_push($item_list,array(
|
|
'item_id' => $id,
|
|
'item_num' => 1,
|
|
));
|
|
echo json_encode(array(
|
|
'errcode' => 0,
|
|
'errmsg'=> '',
|
|
'emoji_status' => 1,
|
|
'coin_nums' => $coin_num,
|
|
'diamond_nums' => $diamond_num,
|
|
'item_list' => $item_list
|
|
));
|
|
}
|
|
}
|
|
?>
|