recharge & consume activity
This commit is contained in:
parent
8d795e1b6a
commit
75ccb7a4f3
142
webapp/classes/RechargeActivity.php
Normal file
142
webapp/classes/RechargeActivity.php
Normal file
@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
namespace classes;
|
||||
|
||||
use phpcommon;
|
||||
use metatable;
|
||||
|
||||
require_once 'metatable/rechargeActivity.php';
|
||||
class RechargeActivity
|
||||
{
|
||||
|
||||
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' => DBNAME_PREFIX . $mysql_conf['instance_id']
|
||||
));
|
||||
return $conn;
|
||||
}
|
||||
|
||||
public function triggerConsume($account_id, $num)
|
||||
{
|
||||
$conn = $this->getMysql($account_id);
|
||||
if (!$conn) {
|
||||
return;
|
||||
}
|
||||
|
||||
$row = $conn->execQueryOne(
|
||||
'SELECT activity FROM recharge WHERE accountid=:accountid;',
|
||||
array(
|
||||
':accountid' => $account_id,
|
||||
)
|
||||
);
|
||||
|
||||
$activity = array();
|
||||
if ($row && $row['activity'] != null && $row['activity'] != '') {
|
||||
$activity = json_decode($row['activity']);
|
||||
}
|
||||
|
||||
if ($this->updateActivityCur($activity, $num, false)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$nowTime = time();
|
||||
if ($row) {
|
||||
$conn->execScript(
|
||||
'UPDATE recharge SET activity=:activity, modify_time=:modify_time' .
|
||||
' WHERE accountid=:accountid;',
|
||||
array(
|
||||
':accountid' => $account_id,
|
||||
':activity' => json_encode($activity),
|
||||
':modify_time' => $nowTime,
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$conn->execScript(
|
||||
'INSERT recharge(accountid,activity,create_time,modify_time) VALUES(:accountid,:activity, :create_time, :modify_time) ' .
|
||||
' WHERE accountid=:accountid;',
|
||||
array(
|
||||
':accountid' => $account_id,
|
||||
':activity' => json_encode($activity),
|
||||
':create_time' => $nowTime,
|
||||
':modify_time' => $nowTime,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateActivityCur(&$activity, $num, $isrecharge)
|
||||
{
|
||||
$activityconf = metatable\getRechargeActivityConf();
|
||||
if (!$activityconf) {
|
||||
return;
|
||||
}
|
||||
$nowTime = time();
|
||||
foreach ($activityconf as $itemconf) {
|
||||
if ($nowTime < strtotime($itemconf['time1']) || $nowTime > strtotime($itemconf['time2'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($isrecharge == ($itemconf['type'] == 2)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$found = false;
|
||||
foreach ($activity as $key => $item) {
|
||||
if ($itemconf['shop_id'] != $item['id']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$found = true;
|
||||
if ($itemconf['type'] == 3) {
|
||||
if ($item['time'] < phpcommon\getdayseconds($nowTime)) {
|
||||
$activity[$key]['cur'] = $num;
|
||||
$activity[$key]['award'] = 0;
|
||||
} else {
|
||||
if ($item['cur'] >= $item['target']) {
|
||||
break;
|
||||
}
|
||||
|
||||
$activity[$key]['cur'] += $num;
|
||||
}
|
||||
$activity[$key]['time'] = $nowTime;
|
||||
} else {
|
||||
if ($item['cur'] >= $item['target']) {
|
||||
break;
|
||||
}
|
||||
|
||||
$activity[$key]['cur'] += $num;
|
||||
}
|
||||
if ($activity[$key]['cur'] > $activity[$key]['target']) {
|
||||
$activity[$key]['cur'] = $activity[$key]['target'];
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
$item = array(
|
||||
'id' => $itemconf['shop_id'],
|
||||
'cur' => $num,
|
||||
'target' => $itemconf['target'],
|
||||
'award' => 0,
|
||||
);
|
||||
|
||||
if ($num > $itemconf['target']) {
|
||||
$item['cur'] = $itemconf['target'];
|
||||
}
|
||||
|
||||
if ($itemconf['type'] == 3) {
|
||||
$item['time'] = $nowTime;
|
||||
}
|
||||
|
||||
array_push($activity, $item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
|
||||
require 'classes/Quest.php';
|
||||
require 'classes/AddReward.php';
|
||||
require 'classes/RechargeActivity.php';
|
||||
require_once 'metatable/draw.php';
|
||||
require_once 'metatable/parameter.php';
|
||||
require_once 'metatable/drop.php';
|
||||
@ -534,6 +535,9 @@ class ActivityController
|
||||
return;
|
||||
}
|
||||
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $cur_cost);
|
||||
|
||||
$p_flush = $this->getParameter(DIAMONDLOTTERY_TIME);
|
||||
$now_days = $row['now_days'];
|
||||
if ($p_flush['value'] <= $row['diamond_times']) {
|
||||
@ -1847,6 +1851,9 @@ class ActivityController
|
||||
die();
|
||||
return;
|
||||
}
|
||||
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $count);
|
||||
} else {
|
||||
phpcommon\sendError(ERR_USER_BASE + 3, '货币不足');
|
||||
return;
|
||||
@ -1970,6 +1977,11 @@ class ActivityController
|
||||
die();
|
||||
return;
|
||||
}
|
||||
|
||||
if ($costid == 10003) {
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $cost);
|
||||
}
|
||||
}
|
||||
$rows = $conn->execQuery(
|
||||
'SELECT id, cd_time FROM draw WHERE accountid=:accountid;',
|
||||
|
@ -240,6 +240,8 @@ class AdditemController{
|
||||
die();
|
||||
return;
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($accountid, $num);
|
||||
echo json_encode(array(
|
||||
'errcode' => 0,
|
||||
'errmsg' => '',
|
||||
|
@ -584,6 +584,8 @@ class EquipController{
|
||||
die();
|
||||
return;
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $diamond_cost);
|
||||
}
|
||||
$active_time = $row['active_time'];
|
||||
if ($active_time + $sub_time <= time() ||
|
||||
@ -904,6 +906,8 @@ class EquipController{
|
||||
die();
|
||||
return;
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $item_num);
|
||||
} else if ($it['type'] == 11) {
|
||||
$rowbag = $conn->execQueryOne('SELECT num FROM bag WHERE accountid=:accountid AND id=:id;',
|
||||
array(
|
||||
|
@ -227,6 +227,8 @@ class FesActivityController{
|
||||
die();
|
||||
return;
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $us['condition']);
|
||||
} else {
|
||||
phpcommon\sendError(ERR_USER_BASE + 4, '奖励不可领');
|
||||
return;
|
||||
|
@ -543,6 +543,10 @@ class GameOverController
|
||||
}
|
||||
$addreward = new classes\AddReward();
|
||||
$items = $addreward->addReward(10003, -$par, $account_id, 0, 0);
|
||||
if ($par > 0) {
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $par);
|
||||
}
|
||||
$diamond_num = $addreward->getDiamondNum($account_id);
|
||||
echo json_encode(array(
|
||||
'errcode' => 0,
|
||||
|
@ -599,6 +599,8 @@ class PayController{
|
||||
die();
|
||||
return;
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $diamond['coin_num']);
|
||||
}
|
||||
//首充礼包奖励
|
||||
if ($diamond['shop_type'] == 4) {
|
||||
@ -833,6 +835,8 @@ class PayController{
|
||||
die();
|
||||
return;
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $item['dprice']);
|
||||
//添加通行证
|
||||
$addreward = new classes\AddReward();
|
||||
$addreward->addReward(10005, 1, $account_id);
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
require 'classes/Quest.php';
|
||||
require 'classes/AddReward.php';
|
||||
require 'classes/RechargeActivity.php';
|
||||
require_once 'metatable/shopGoods.php';
|
||||
require_once 'metatable/privilegecard.php';
|
||||
require_once 'metatable/rechargeActivity.php';
|
||||
@ -151,16 +152,23 @@ class RechargeController
|
||||
)
|
||||
);
|
||||
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$activity = array();
|
||||
if ($rechargerow && $rechargerow['activity'] != null && $rechargerow['activity'] != '') {
|
||||
$activity = json_decode($rechargerow['activity']);
|
||||
}
|
||||
$rechargeactivity->updateActivityCur($activity, $diamonds, true);
|
||||
if (!$rechargerow) {
|
||||
$ret = $conn->execScript(
|
||||
'INSERT INTO recharge(accountid, first_data, recharge_diamond, present_diamond, create_time, modify_time) ' .
|
||||
' VALUES(:account_id, :first_data, :recharge_diamond, :present_diamond, :create_time, :modify_time) ' .
|
||||
' ON DUPLICATE KEY UPDATE accountid=:account_id, first_data=:first_data, recharge_diamond=:recharge_diamond, present_diamond=:present_diamond, modify_time=:modify_time;',
|
||||
'INSERT INTO recharge(accountid, first_data, recharge_diamond, present_diamond, activity, create_time, modify_time) ' .
|
||||
' VALUES(:account_id, :first_data, :recharge_diamond, :present_diamond, :activity, :create_time, :modify_time) ' .
|
||||
' ON DUPLICATE KEY UPDATE accountid=:account_id, first_data=:first_data, recharge_diamond=:recharge_diamond, present_diamond=:present_diamond, activity=:activity, modify_time=:modify_time;',
|
||||
array(
|
||||
':account_id' => $account_id,
|
||||
':first_data' => $goodsid,
|
||||
':recharge_diamond' => $diamonds,
|
||||
':present_diamond' => $diamond_present,
|
||||
':activity' => json_encode($activity),
|
||||
':create_time' => time(),
|
||||
':modify_time' => time()
|
||||
)
|
||||
@ -182,13 +190,14 @@ class RechargeController
|
||||
}
|
||||
|
||||
$ret = $conn->execScript(
|
||||
'UPDATE recharge SET first_data=:first_data, recharge_diamond=:recharge_diamond, present_diamond=:present_diamond, modify_time=:modify_time' .
|
||||
'UPDATE recharge SET first_data=:first_data, recharge_diamond=:recharge_diamond, present_diamond=:present_diamond, activity=:activity, modify_time=:modify_time' .
|
||||
' WHERE accountid=:accountid;',
|
||||
array(
|
||||
':accountid' => $account_id,
|
||||
':first_data' => $firstdata,
|
||||
':recharge_diamond' => $rechargerow['recharge_diamond'] + $diamonds,
|
||||
':present_diamond' => $rechargerow['present_diamond'] + $diamond_present,
|
||||
':activity' => json_encode($activity),
|
||||
':modify_time' => time()
|
||||
)
|
||||
);
|
||||
@ -289,6 +298,13 @@ class RechargeController
|
||||
$addreward->addReward(10003, $shopgoods['first_present'], $account_id, 0, 0);
|
||||
}
|
||||
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$activity = array();
|
||||
if ($rechargerow && $rechargerow['activity'] != null && $rechargerow['activity'] != '') {
|
||||
$activity = json_decode($rechargerow['activity']);
|
||||
}
|
||||
$rechargeactivity->updateActivityCur($activity, $shopgoods['price'] * 10, true);
|
||||
|
||||
if ($shopgoods['type'] == 3) {
|
||||
$nowtime = time();
|
||||
// update vip_info
|
||||
@ -305,12 +321,13 @@ class RechargeController
|
||||
));
|
||||
|
||||
$ret = $conn->execScript(
|
||||
'INSERT INTO recharge(accountid, vip_info, create_time, modify_time) ' .
|
||||
' VALUES(:account_id, :vip_info, :create_time, :modify_time) ' .
|
||||
' ON DUPLICATE KEY UPDATE accountid=:account_id, vip_info=:vip_info, modify_time=:modify_time;',
|
||||
'INSERT INTO recharge(accountid, vip_info, activity, create_time, modify_time) ' .
|
||||
' VALUES(:account_id, :vip_info, :activity, :create_time, :modify_time) ' .
|
||||
' ON DUPLICATE KEY UPDATE accountid=:account_id, vip_info=:vip_info, activity=:activity, modify_time=:modify_time;',
|
||||
array(
|
||||
':account_id' => $account_id,
|
||||
':vip_info' => json_encode($vip_info),
|
||||
':activity' => json_encode($activity),
|
||||
':create_time' => $nowtime,
|
||||
':modify_time' => $nowtime,
|
||||
)
|
||||
@ -344,11 +361,12 @@ class RechargeController
|
||||
}
|
||||
|
||||
$ret = $conn->execScript(
|
||||
'UPDATE recharge SET vip_info=:vip_info, modify_time=:modify_time' .
|
||||
'UPDATE recharge SET vip_info=:vip_info, activity=:activity, modify_time=:modify_time' .
|
||||
' WHERE accountid=:accountid;',
|
||||
array(
|
||||
':accountid' => $account_id,
|
||||
':vip_info' => json_encode($vip_info),
|
||||
':activity' => json_encode($activity),
|
||||
':modify_time' => time(),
|
||||
)
|
||||
);
|
||||
@ -370,12 +388,13 @@ class RechargeController
|
||||
));
|
||||
|
||||
$ret = $conn->execScript(
|
||||
'INSERT INTO recharge(accountid, daily_purchase, create_time, modify_time) ' .
|
||||
' VALUES(:account_id, :daily_purchase, :create_time, :modify_time) ' .
|
||||
' ON DUPLICATE KEY UPDATE accountid=:account_id, daily_purchase=:daily_purchase, modify_time=:modify_time;',
|
||||
'INSERT INTO recharge(accountid, daily_purchase, activity, create_time, modify_time) ' .
|
||||
' VALUES(:account_id, :daily_purchase, :activity, :create_time, :modify_time) ' .
|
||||
' ON DUPLICATE KEY UPDATE accountid=:account_id, daily_purchase=:daily_purchase, activity=:activity, modify_time=:modify_time;',
|
||||
array(
|
||||
':account_id' => $account_id,
|
||||
':daily_purchase' => json_encode($daily_purchase),
|
||||
':activity' => json_encode($activity),
|
||||
':create_time' => time(),
|
||||
':modify_time' => time()
|
||||
)
|
||||
@ -398,11 +417,12 @@ class RechargeController
|
||||
}
|
||||
|
||||
$ret = $conn->execScript(
|
||||
'UPDATE recharge SET daily_purchase=:daily_purchase, modify_time=:modify_time' .
|
||||
'UPDATE recharge SET daily_purchase=:daily_purchase, activity=:activity, modify_time=:modify_time' .
|
||||
' WHERE accountid=:accountid;',
|
||||
array(
|
||||
':accountid' => $account_id,
|
||||
':daily_purchase' => json_encode($daily_purchase),
|
||||
':activity' => json_encode($activity),
|
||||
':modify_time' => time(),
|
||||
)
|
||||
);
|
||||
@ -695,6 +715,17 @@ class RechargeController
|
||||
}
|
||||
|
||||
$found = true;
|
||||
|
||||
$coin_num = $addreward->getCoinNum($account_id);
|
||||
$diamond_num = $addreward->getDiamondNum($account_id);
|
||||
echo json_encode(array(
|
||||
'errcode' => 0,
|
||||
'errmsg' => '',
|
||||
'coin_nums' => $coin_num,
|
||||
'diamond_nums' => $diamond_num,
|
||||
'item_list' => $item_list,
|
||||
'vip_info' => json_encode($vipinfo),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@ -702,15 +733,6 @@ class RechargeController
|
||||
phpcommon\sendError(ERR_USER_BASE + 1, '没月卡 2');
|
||||
return;
|
||||
}
|
||||
|
||||
echo json_encode(array(
|
||||
'errcode' => 0,
|
||||
'errmsg' => '',
|
||||
'coin_nums' => 0,
|
||||
'diamond_nums' => 0,
|
||||
'item_list' => $item_list,
|
||||
'vip_info' => json_encode($vipinfo),
|
||||
));
|
||||
}
|
||||
|
||||
public function getActivityAward()
|
||||
@ -806,6 +828,17 @@ class RechargeController
|
||||
}
|
||||
|
||||
$found = true;
|
||||
|
||||
$coin_num = $addreward->getCoinNum($account_id);
|
||||
$diamond_num = $addreward->getDiamondNum($account_id);
|
||||
echo json_encode(array(
|
||||
'errcode' => 0,
|
||||
'errmsg' => '',
|
||||
'coin_nums' => $coin_num,
|
||||
'diamond_nums' => $diamond_num,
|
||||
'item_list' => $item_list,
|
||||
'recharge_activity' => json_encode($activity),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@ -813,15 +846,6 @@ class RechargeController
|
||||
phpcommon\sendError(ERR_USER_BASE + 1, '没活动 2');
|
||||
return;
|
||||
}
|
||||
|
||||
echo json_encode(array(
|
||||
'errcode' => 0,
|
||||
'errmsg' => '',
|
||||
'coin_nums' => 0,
|
||||
'diamond_nums' => 0,
|
||||
'item_list' => $item_list,
|
||||
'recharge_activity' => json_encode($activity),
|
||||
));
|
||||
}
|
||||
|
||||
protected function getDrop($drop_id)
|
||||
|
@ -119,6 +119,8 @@ class ShareController{
|
||||
if (!$ret) {
|
||||
die();
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $num);
|
||||
}
|
||||
|
||||
protected function randBoxReward($drop_id, $times)
|
||||
|
@ -1301,6 +1301,8 @@ class ShopController{
|
||||
if (!$ret) {
|
||||
die();
|
||||
}
|
||||
$rechargeactivity = new classes\RechargeActivity();
|
||||
$rechargeactivity->triggerConsume($account_id, $coin_num);
|
||||
}
|
||||
|
||||
if ($tips == 3) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user