This commit is contained in:
aozhiwei 2020-03-27 10:09:57 +08:00
parent 1fa87e437b
commit 82bdfb1c88
9 changed files with 142 additions and 29 deletions

View File

@ -77,6 +77,8 @@ define('RAND_DIAMONDSHOP_TIME', 60); //钻石商店刷新次数
define('DIAMONDBOX', 61); //钻石宝箱花费钻石数
define('DIAMONDBOX10', 62); //钻石视频宝箱花费钻石数
define('REDLIMIT', 68); //红包上限
define('RECOMMEND_FOREVER_WEIGHT',85); //精选道具概率
define('RECOMMEND_TIME', 84); //道具精选时间
require 'config_loader.php';

View File

@ -56,7 +56,7 @@ class AddReward {
return $arr;
}
public function addReward($item_id, $item_num, $account_id, $time)
public function addReward($item_id, $item_num, $account_id, $time, $t)
{
$conn = $this->getMysql($account_id);
if (!$conn) {
@ -75,7 +75,6 @@ class AddReward {
'time' => $time
));
foreach ($item_list as $item) {
$i = $this->getItem($item['item_id']);
if ($i['type'] == 1){
@ -87,7 +86,11 @@ class AddReward {
if ($time != 0) {
$price = $i['diamond_hour'] * $time;
}
$item_list = $this->addItem($item['item_id'], $item['time'], $account_id, $price);
if ($t) {
$item_list = $this->addItem($item['item_id'], $item['time'], $account_id, $price, $t);
} else {
$item_list = $this->addItem($item['item_id'], $item['time'], $account_id, $price, 0);
}
}
}
return $item_list;
@ -169,7 +172,7 @@ class AddReward {
}
//添加道具
protected function addItem($item_id, $time, $accountid, $price)
protected function addItem($item_id, $time, $accountid, $price, $t)
{
$item_list = array();
$item_num = 1;
@ -192,7 +195,13 @@ class AddReward {
$status = 1;
$active_time = 0;
}
$status = $this->getStatus($item_id, $status, $accountid);
if ($t == 0) {
$status = $this->getStatus($item_id, $status,$accountid);
} else if ($t == 1){
$status = 0;
error_log(11111111111111);
$this->updateStatus($item_id, $accountid);
}
$ret = $conn->execScript('INSERT INTO bag(accountid, id, color_id, status, active_time, create_time, modify_time) ' .
' VALUES(:account_id, :id, 0, :status, :active_time, :create_time, :modify_time) ' .
' ON DUPLICATE KEY UPDATE accountid=:account_id, id=:id, color_id=0, status=:status, active_time=:active_time, modify_time=:modify_time;',
@ -213,6 +222,7 @@ class AddReward {
$item_id = 10003;
$item_num = $price;
$time = 0;
error_log(3333333333);
$this->addDiamond($item_id, $item_num, $accountid);
} else {
$nowTime = $row['active_time'];
@ -227,7 +237,13 @@ class AddReward {
$nowTime = time() + $time * 3600;
}
}
$status = $this->getStatus($item_id, $status,$accountid);
if ($t == 0) {
$status = $this->getStatus($item_id, $status,$accountid);
} else if ($t == 1){
$status = 0;
error_log(2222222222);
$this->updateStatus($item_id, $accountid);
}
$ret = $conn->execScript('UPDATE bag SET active_time=:active_time, status=:status, modify_time=:modify_time ' .
' WHERE accountid=:account_id AND id=:id;',
array(
@ -290,5 +306,50 @@ class AddReward {
}
return $s;
}
public function updateStatus($item_id, $accountid)
{
$conn = $this->getMysql($accountid);
if(!$conn){
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
return;
}
$b = $this->getBag($item_id);
$bag_meta_table = require('../res/bag@bag.php');
//正在装备的道具
if ($b['fuction'] != 5) {
foreach ($bag_meta_table as $bag_info) {
$id = $bag_info['id'];
$bag = $this->getBag($id);
if ($bag['fuction'] != $b['fuction']) {
continue;
}
$row = $conn->execQueryOne('SELECT status, active_time FROM bag WHERE accountid=:accountid AND id=:id;',
array(
':accountid' => $accountid,
':id' => $id,
));
if ($row['status'] != 0 || !$row) {
continue;
}
$status = 2;
if ($row['active_time'] == 0) {
$status = 1;
}
$using_ret = $conn->execScript('UPDATE bag SET status=:status, color_id=0, modify_time=:modify_time ' .
' WHERE accountid = :account_id AND id = :id;',
array(
':account_id' => $accountid,
':id' => $id,
':status' => $status,
':modify_time' => time()
));
if(!$using_ret){
die();
return;
}
}
}
}
}
?>

View File

@ -367,7 +367,7 @@ class ActivityController{
}
//增加奖励
$addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time);
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time,0);
$coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id);
$item_list = array();
@ -497,7 +497,7 @@ class ActivityController{
}
//增加奖励
$addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time);
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time, 0);
$coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id);
$item_list = array();
@ -545,7 +545,7 @@ class ActivityController{
$p = $this->getParameter(REWARD_TIMES);
$times = $p['value'] - 1;
$addreward = new classes\AddReward();
$addreward->addReward($row['item_id'], $row['item_num'] * $times, $account_id);
$addreward->addReward($row['item_id'], $row['item_num'] * $times, $account_id,0,0);
$coin_num = $addreward->getCoinNum($account_id);
echo json_encode(array(
'errcode' => 0,

View File

@ -319,14 +319,14 @@ class BagController{
return;
}
$item_id = $_REQUEST['item_id'];
error_log($item_id);
$conn = $this->getMysql($account_id);
if(!$conn){
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
return;
}
$addreward = new classes\AddReward();
$addreward->addReward($item_id, 1, $account_id, 1);
$ptime = $this->getParameter(RECOMMEND_TIME);
$addreward->addReward($item_id, 1, $account_id, $ptime['param_value'], 0);
echo json_encode(array(
'errcode' => 0,
'errmsg' => '',
@ -334,5 +334,55 @@ class BagController{
'color_id' => 0
));
}
public function freeGetItem()
{
$account_id = $_REQUEST['account_id'];
//登录校验
$login = loginVerify($account_id, $_REQUEST['session_id']);
if (!$login) {
phpcommon\sendError(ERR_USER_BASE + 1, 'session无效');
return;
}
$arr = $_REQUEST['arr'];
$delim = ',';
$item_multiply = explode($delim, $arr);
$all_item_list = array();
$item_list = array();
$addreward = new classes\AddReward();
$random = Rand(0, 10000);
$time = 1;
$p = $this->getParameter(RECOMMEND_FOREVER_WEIGHT);
$ptime = $this->getParameter(RECOMMEND_TIME);
if ($random < $p['param_value']) {
$time = 0;
} else {
$time = $ptime['param_value'];
}
error_log(json_encode($item_multiply));
foreach ($item_multiply as $i) {
array_push($item_list, array(
'item_id' => $i,
'item_num' => 1,
'time' => 1,
));
$items = $addreward->addReward($i, 1, $account_id, $time, 1);
foreach($items as $it) {
array_push($all_item_list, array(
'item_id' => $it['item_id'],
'item_num' => $it['item_num'],
'time' => $it['time'],
));
}
}
$num = $addreward->getDiamondNum($account_id);
echo json_encode(array(
'errcode' => 0,
'errmsg' => '',
'item_list' => $item_list,
'diamond_nums' => $num,
'all_item_list' => $all_item_list
));
}
}
?>

View File

@ -251,7 +251,7 @@ class PassController{
'time' => $drop_multiply[2],
));
$addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($drop_multiply[0], $drop_multiply[1], $account_id, $drop_multiply[2]);
$all_item_list = $addreward->addReward($drop_multiply[0], $drop_multiply[1], $account_id, $drop_multiply[2],0);
$coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id);
@ -340,7 +340,7 @@ class PassController{
$addreward = new classes\AddReward();
$all_item_list = array();
foreach ($reward as $r) {
$items = $addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time']);
$items = $addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time'], 0);
foreach($items as $i) {
array_push($all_item_list, array(
'item_id' => $i['item_id'],
@ -420,7 +420,7 @@ class PassController{
}
$addreward = new classes\AddReward();
foreach ($reward as $r) {
$addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time']);
$addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time'], 0);
}
$ret = $conn->execScript('UPDATE user SET pass_status=1, modify_time=:modify_time ' .
' WHERE accountid=:accountid;',

View File

@ -167,7 +167,7 @@ class QuestController{
$item_id = $item_id_array[$key][0];
$item_num = $num_array[$key][0] * $times;
$addreward = new classes\AddReward();
$addreward->addReward($item_id, $item_num, $account_id, 0);
$addreward->addReward($item_id, $item_num, $account_id, 0, 0);
} else {
$q = $this->getQuest($quest_id);
if (!$q) {
@ -178,7 +178,7 @@ class QuestController{
$reward_id = $array[0][0];
$reward_num = $array[0][1] * $times;
$addreward = new classes\AddReward();
$addreward->addReward($reward_id, $reward_num, $account_id, 0);
$addreward->addReward($reward_id, $reward_num, $account_id, 0, 0);
}
$addreward = new classes\AddReward();
$coin_num = $addreward->getCoinNum($account_id);
@ -243,7 +243,7 @@ class QuestController{
$array = $this->getExplode($q['reward']);
$reward_id = $array[0][0];
$reward_num = $array[0][1];
$addreward->addReward($reward_id, $reward_num, $account_id, 0);
$addreward->addReward($reward_id, $reward_num, $account_id, 0, 0);
array_push($item_list, array(
'item_id' => $reward_id,
'item_num' => $reward_num,

View File

@ -128,7 +128,6 @@ class ShareController{
$b = $this->getbox($drop_id);
$item_id_array = $this->getExplode($b['item_id']);
$times = count($item_id_array);
error_log($times);
}
for ($j = 0; $j < $times; $j++) {
$b = $this->getbox($drop_id);
@ -249,7 +248,7 @@ class ShareController{
$quest->triggerQuest(71004, 1, 1, $account_id);
foreach ($item_list as $item) {
$addreward = new classes\AddReward();
$items = $addreward->addReward($item['item_id'], $item['item_num'], $account_id, $item['time']);
$items = $addreward->addReward($item['item_id'], $item['item_num'], $account_id, $item['time'], 0);
foreach($items as $i) {
array_push($all_item_list, array(
'item_id' => $i['item_id'],
@ -449,14 +448,14 @@ class ShareController{
'item_num' => $array[0][1],
'time' => $array[0][2],
));
$all_item_list = $addreward->addReward($array[0][0], $array[0][1], $account_id, $array[0][2]);
$all_item_list = $addreward->addReward($array[0][0], $array[0][1], $account_id, $array[0][2], 0);
} else if ($ach_id == 6) {
array_push($item_list, array(
'item_id' => 10003,
'item_num' => 50,
'time' => 0,
));
$addreward->addReward(10003, 50, $account_id);
$addreward->addReward(10003, 50, $account_id, 0, 0);
}
//更新状态
$ret = $conn->execScript('UPDATE share_achievement SET status=1, modify_time=:modify_time ' .
@ -529,9 +528,9 @@ class ShareController{
$addreward = new classes\AddReward();
if ($ach_id != 6) {
$array = $this->getExplode($sh['rewards']);
$addreward->addReward($array[0][0], $array[0][1] * $times, $account_id, $array[0][2]);
$addreward->addReward($array[0][0], $array[0][1] * $times, $account_id, $array[0][2], 0);
} else if ($ach_id == 6) {
$addreward->addReward(10003, 50 * $times, $account_id, 0);
$addreward->addReward(10003, 50 * $times, $account_id, 0, 0);
}
$coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id);
@ -600,7 +599,7 @@ class ShareController{
$item_num = $kefu['itemnum'];
}
$addreward = new classes\AddReward();
$addreward->addReward($item_id, $item_num, $account_id,0);
$addreward->addReward($item_id, $item_num, $account_id,0,0);
array_push($item_list, array(
'item_id' => $item_id,
'item_num' => $item_num,
@ -688,7 +687,7 @@ class ShareController{
foreach ($user_db['kefureward_list'] as $kefureward) {
//增加奖励
$addreward = new classes\AddReward();
$addreward->addReward($kefureward['item_id'], $kefureward['item_num'] * $times, $account_id, 0);
$addreward->addReward($kefureward['item_id'], $kefureward['item_num'] * $times, $account_id, 0,0);
}
$r->del($kefureward_uuid, json_encode($user_db));
$addreward = new classes\AddReward();

View File

@ -226,7 +226,7 @@ class ShopController{
$r -> pexpire($shop_uuid, 1000 * 3600 * 24);
//增加奖励
$addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time);
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time, 0);
$coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id);
$item_list = array();
@ -282,6 +282,7 @@ class ShopController{
$item_num = $shop['item_num'];
$price = $shop['price'];
$status = $shop['status'];
$time = $shop['time'];
$flag = 1;
break;
}
@ -294,7 +295,7 @@ class ShopController{
$p = $this->getParameter(REWARD_TIMES);
$times = $p['param_value'] - 1;
$addreward = new classes\AddReward();
$addreward->addReward($item_id, $item_num * $times, $account_id);
$addreward->addReward($item_id, $item_num * $times, $account_id, $time, 0);
$coin_num = $addreward->getCoinNum($account_id);
echo json_encode(array(
'errcode' => 0,

View File

@ -284,7 +284,7 @@ class SignController{
'item_num' => $num,
'time' => $time,
));
$items = $addreward->addReward($item_id, $num, $account_id, $time);
$items = $addreward->addReward($item_id, $num, $account_id, $time,0);
foreach($items as $j) {
array_push($all_item_list, array(
@ -340,7 +340,7 @@ class SignController{
$item_id = $item_id_array[$i][0];
$num = $num_array[$i][0];
$time = $time_array[$i][0];
$addreward->addReward($item_id, $num, $account_id, $time);
$addreward->addReward($item_id, $num, $account_id, $time,0);
}
$coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id);