first purchase
This commit is contained in:
parent
fdc7b7f814
commit
40d4bfb057
@ -349,6 +349,7 @@ CREATE TABLE `recharge` (
|
|||||||
`adfree` int(11) NOT NULL DEFAULT '0' COMMENT '免广告券',
|
`adfree` int(11) NOT NULL DEFAULT '0' COMMENT '免广告券',
|
||||||
`recharge_diamond` int(11) NOT NULL DEFAULT '0' COMMENT '累计充值钻石',
|
`recharge_diamond` int(11) NOT NULL DEFAULT '0' COMMENT '累计充值钻石',
|
||||||
`present_diamond` int(11) NOT NULL DEFAULT '0' COMMENT '充值赠送钻石总量',
|
`present_diamond` int(11) NOT NULL DEFAULT '0' COMMENT '充值赠送钻石总量',
|
||||||
|
`first_purchase` mediumblob COMMENT '首充活动信息',
|
||||||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
`modify_time` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
`modify_time` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||||
PRIMARY KEY (`idx`),
|
PRIMARY KEY (`idx`),
|
||||||
|
@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
trait RechargeActivity
|
trait RechargeActivity
|
||||||
{
|
{
|
||||||
|
protected function getFirstPurchaseActivity($shopid)
|
||||||
|
{
|
||||||
|
$conf = require('../res/firstchargeactivity@firstchargeactivity.php');
|
||||||
|
return array_key_exists($level, $conf) ? $conf[$level] : null;
|
||||||
|
}
|
||||||
public function activityInfo()
|
public function activityInfo()
|
||||||
{
|
{
|
||||||
$account_id = $_REQUEST['account_id'];
|
$account_id = $_REQUEST['account_id'];
|
||||||
@ -28,11 +33,12 @@ trait RechargeActivity
|
|||||||
$vipinfo = array();
|
$vipinfo = array();
|
||||||
$dailypurchase = array();
|
$dailypurchase = array();
|
||||||
$daysecs = phpcommon\getdayseconds(time());
|
$daysecs = phpcommon\getdayseconds(time());
|
||||||
|
$firstpurchase = array();
|
||||||
if ($rechargerow) {
|
if ($rechargerow) {
|
||||||
if ($rechargerow['first_data'] != null) {
|
if (!is_null($rechargerow['first_data'])) {
|
||||||
$firstrecharge = $rechargerow['first_data'];
|
$firstrecharge = $rechargerow['first_data'];
|
||||||
}
|
}
|
||||||
if ($rechargerow['vip_info'] != null && $rechargerow['vip_info'] != '') {
|
if (!is_null($rechargerow['vip_info']) && !empty($rechargerow['vip_info'])) {
|
||||||
$vipinfo = json_decode($rechargerow['vip_info'], true);
|
$vipinfo = json_decode($rechargerow['vip_info'], true);
|
||||||
foreach ($vipinfo as $key => $val) {
|
foreach ($vipinfo as $key => $val) {
|
||||||
$vipinfo[$key]['award'] = $val['daily_time'] < $daysecs ? 0 : 1;
|
$vipinfo[$key]['award'] = $val['daily_time'] < $daysecs ? 0 : 1;
|
||||||
@ -40,7 +46,7 @@ trait RechargeActivity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($rechargerow['daily_purchase'] != null && $rechargerow['daily_purchase'] != '') {
|
if (!is_null($rechargerow['daily_purchase']) && !empty($rechargerow['daily_purchase'])) {
|
||||||
$dailypurchase = json_decode($rechargerow['daily_purchase'], true);
|
$dailypurchase = json_decode($rechargerow['daily_purchase'], true);
|
||||||
$packtime = 0;
|
$packtime = 0;
|
||||||
foreach ($dailypurchase as $key => $val) {
|
foreach ($dailypurchase as $key => $val) {
|
||||||
@ -89,12 +95,16 @@ trait RechargeActivity
|
|||||||
}
|
}
|
||||||
$dailypurchase = $daily;
|
$dailypurchase = $daily;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!is_null($rechargerow['first_purchase']) && !empty($rechargerow['first_purchase'])) {
|
||||||
|
$firstpurchase = json_decode($rechargerow['first_purchase']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$activityconf = metatable\getRechargeActivityConf();
|
$activityconf = metatable\getRechargeActivityConf();
|
||||||
$recharge_activity = array();
|
$recharge_activity = array();
|
||||||
$activity = array();
|
$activity = array();
|
||||||
if ($rechargerow['activity'] != null && $rechargerow['activity'] != '') {
|
if (!is_null($rechargerow['activity']) && $rechargerow['activity'] != '') {
|
||||||
$activity = json_decode($rechargerow['activity'], true);
|
$activity = json_decode($rechargerow['activity'], true);
|
||||||
}
|
}
|
||||||
$needupdate = false;
|
$needupdate = false;
|
||||||
@ -180,6 +190,7 @@ trait RechargeActivity
|
|||||||
'recharge_activity' => $recharge_activity,
|
'recharge_activity' => $recharge_activity,
|
||||||
'time1' => $time1,
|
'time1' => $time1,
|
||||||
'time2' => $time2,
|
'time2' => $time2,
|
||||||
|
'first_purchase' => $firstpurchase,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -449,4 +460,114 @@ trait RechargeActivity
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getFirstPurchaseAward()
|
||||||
|
{
|
||||||
|
$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;
|
||||||
|
}
|
||||||
|
|
||||||
|
$rechargerow = $conn->execQueryOne(
|
||||||
|
'SELECT first_purchase FROM recharge WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (is_null($rechargerow['first_purchase']) || empty($rechargerow['first_purchase'])) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '没购买');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$activitycfg = $this->getFirstPurchaseActivity($_REQUEST['id']);
|
||||||
|
if (!$activitycfg) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '没购买 1');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$firstpurchaseinfo = json_decode($rechargerow['first_purchase'], true);
|
||||||
|
$infokey = 'shop_' . $_REQUEST['id'];
|
||||||
|
if (!array_key_exists($infokey, $firstpurchaseinfo)) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '没购买 2');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$getcount = $firstpurchaseinfo[$infokey]['count'] + 1;
|
||||||
|
$awardkey = 'item_' . $getcount;
|
||||||
|
if (!array_key_exists($awardkey, $activitycfg)) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '已领完');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$nowtime = time();
|
||||||
|
if (phpcommon\getdayseconds($nowtime) == phpcommon\getdayseconds($firstpurchaseinfo[$infokey]['time'])) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '今日已领');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$firstpurchaseinfo[$infokey]['time'] = $nowtime;
|
||||||
|
$firstpurchaseinfo[$infokey]['count'] = $getcount;
|
||||||
|
$ret = $conn->execScript(
|
||||||
|
'UPDATE recharge SET first_purchase=:first_purchase, modify_time=:modify_time' .
|
||||||
|
' WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
':first_purchase' => json_encode($firstpurchaseinfo),
|
||||||
|
':modify_time' => $nowtime
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!$ret) {
|
||||||
|
phpcommon\sendError(ERR_RETRY + 1, '系统繁忙');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item_list = array();
|
||||||
|
$all_item_list = array();
|
||||||
|
$firstpurchaseawards = explode($activitycfg[$awardkey], '|');
|
||||||
|
$addreward = new classes\AddReward();
|
||||||
|
foreach ($firstpurchaseawards as $awarditem) {
|
||||||
|
$itemstrs = explode($awarditem, ':');
|
||||||
|
if (count($itemstrs) < 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$item_list[] = array(
|
||||||
|
"item_id" => $itemstrs[0],
|
||||||
|
"item_num" => $itemstrs[1],
|
||||||
|
"time" => 0,
|
||||||
|
);
|
||||||
|
$items = $addreward->addReward($itemstrs[0], $itemstrs[1], $account_id, 0, 0);
|
||||||
|
foreach ($items as $i) {
|
||||||
|
array_push($all_item_list, array(
|
||||||
|
'item_id' => $i['item_id'],
|
||||||
|
'item_num' => $i['item_num'],
|
||||||
|
'time' => $i['time'],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$coin_num = $addreward->getCoinNum($account_id);
|
||||||
|
$diamond_num = $addreward->getDiamondNum($account_id);
|
||||||
|
$adfree = $addreward->getAdfree($account_id);
|
||||||
|
echo json_encode(array(
|
||||||
|
'errcode' => 0,
|
||||||
|
'errmsg' => '',
|
||||||
|
'coin_nums' => $coin_num,
|
||||||
|
'diamond_nums' => $diamond_num,
|
||||||
|
'adfree' => $adfree,
|
||||||
|
'id' => $_REQUEST['id'],
|
||||||
|
'item_list' => $item_list,
|
||||||
|
'all_item_list' => $all_item_list,
|
||||||
|
'first_purchase' => json_encode($firstpurchaseinfo),
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
@ -253,11 +253,13 @@ class RechargeController
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function preparePay() {
|
public function preparePay()
|
||||||
|
{
|
||||||
$this->prePay();
|
$this->prePay();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function preparePayDone() {
|
public function preparePayDone()
|
||||||
|
{
|
||||||
$this->purchaseDone();
|
$this->purchaseDone();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,7 +496,11 @@ class RechargeController
|
|||||||
if (
|
if (
|
||||||
$shopgoods['type'] != 1 && //钻石
|
$shopgoods['type'] != 1 && //钻石
|
||||||
$shopgoods['type'] != 2 && //特惠礼包
|
$shopgoods['type'] != 2 && //特惠礼包
|
||||||
$shopgoods['type'] != 3 //月卡
|
$shopgoods['type'] != 3 && //月卡
|
||||||
|
$shopgoods['type'] != 5 && //等级基金
|
||||||
|
$shopgoods['type'] != 6 && //首充
|
||||||
|
$shopgoods['type'] != 7 && //关卡基金
|
||||||
|
$shopgoods['type'] != 8 //体力基金
|
||||||
) {
|
) {
|
||||||
error_log('game2004api payNotify goods type error:' + json_encode($_REQUEST));
|
error_log('game2004api payNotify goods type error:' + json_encode($_REQUEST));
|
||||||
echo json_encode(array(
|
echo json_encode(array(
|
||||||
@ -563,7 +569,7 @@ class RechargeController
|
|||||||
|
|
||||||
$rechargeactivity = new classes\RechargeActivity();
|
$rechargeactivity = new classes\RechargeActivity();
|
||||||
$activity = array();
|
$activity = array();
|
||||||
if ($rechargerow && $rechargerow['activity'] != null && $rechargerow['activity'] != '') {
|
if ($rechargerow && !is_null($rechargerow['activity']) && !empty($rechargerow['activity'])) {
|
||||||
$activity = json_decode($rechargerow['activity'], true);
|
$activity = json_decode($rechargerow['activity'], true);
|
||||||
}
|
}
|
||||||
$rechargeactivity->updateActivityCur($activity, $shopgoods['price'] * 10, true);
|
$rechargeactivity->updateActivityCur($activity, $shopgoods['price'] * 10, true);
|
||||||
@ -716,7 +722,7 @@ class RechargeController
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else if ($shopgoods['type'] == 2) {
|
||||||
$itemconf = metatable\getItemById($shopgoods['item_id']);
|
$itemconf = metatable\getItemById($shopgoods['item_id']);
|
||||||
if (!$itemconf) {
|
if (!$itemconf) {
|
||||||
error_log('game2004api purchaseNotify daily goods config error:' . json_encode($_REQUEST));
|
error_log('game2004api purchaseNotify daily goods config error:' . json_encode($_REQUEST));
|
||||||
@ -807,6 +813,45 @@ class RechargeController
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
} else if ($shopgoods['type'] == 6) {
|
||||||
|
$purchasekey = 'shop_' . $goodsid;
|
||||||
|
$purchaseinfo = array(
|
||||||
|
'count' => 0,
|
||||||
|
'time' => 0,
|
||||||
|
);
|
||||||
|
if (!$rechargerow) {
|
||||||
|
$first_purchase = array(
|
||||||
|
$purchasekey => $purchaseinfo,
|
||||||
|
);
|
||||||
|
$conn->execScript(
|
||||||
|
'INSERT INTO recharge(accountid, first_purchase, activity, create_time, modify_time) ' .
|
||||||
|
' VALUES(:account_id, :first_purchase, :activity, :create_time, :modify_time) ' .
|
||||||
|
' ON DUPLICATE KEY UPDATE accountid=:account_id, first_purchase=:first_purchase, activity=:activity, modify_time=:modify_time;',
|
||||||
|
array(
|
||||||
|
':account_id' => $account_id,
|
||||||
|
':first_purchase' => json_encode($first_purchase),
|
||||||
|
':activity' => json_encode($activity),
|
||||||
|
':create_time' => time(),
|
||||||
|
':modify_time' => time()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$first_purchase = array();
|
||||||
|
if (!is_null($rechargerow['first_purchase']) && !empty($rechargerow['first_purchase'])) {
|
||||||
|
$first_purchase = json_decode($rechargerow['first_purchase'], true);
|
||||||
|
}
|
||||||
|
$first_purchase[$purchasekey] = $purchaseinfo;
|
||||||
|
$conn->execScript(
|
||||||
|
'UPDATE recharge SET first_purchase=:first_purchase, activity=:activity, modify_time=:modify_time' .
|
||||||
|
' WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
':first_purchase' => json_encode($first_purchase),
|
||||||
|
':activity' => json_encode($activity),
|
||||||
|
':modify_time' => time()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode(array(
|
echo json_encode(array(
|
||||||
|
@ -535,7 +535,7 @@ class SoloController
|
|||||||
if ($reqfinished) {
|
if ($reqfinished) {
|
||||||
$finishedawards = explode($reqlevelcfg['winreward'], '|');
|
$finishedawards = explode($reqlevelcfg['winreward'], '|');
|
||||||
foreach ($finishedawards as $finishitem) {
|
foreach ($finishedawards as $finishitem) {
|
||||||
$itemstrs = explode($finishitem, '|');
|
$itemstrs = explode($finishitem, ':');
|
||||||
if (count($itemstrs) < 2) {
|
if (count($itemstrs) < 2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -588,7 +588,7 @@ class SoloController
|
|||||||
if ($curlvcfg) {
|
if ($curlvcfg) {
|
||||||
$uplvawards = explode($curlvcfg['level_reward'], '|');
|
$uplvawards = explode($curlvcfg['level_reward'], '|');
|
||||||
foreach ($uplvawards as $uplvitem) {
|
foreach ($uplvawards as $uplvitem) {
|
||||||
$itemstrs = explode($uplvitem, '|');
|
$itemstrs = explode($uplvitem, ':');
|
||||||
if (count($itemstrs) < 2) {
|
if (count($itemstrs) < 2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user