diff --git a/webapp/controller/RechargeController.class.php b/webapp/controller/RechargeController.class.php index b9f33b1..94050fa 100644 --- a/webapp/controller/RechargeController.class.php +++ b/webapp/controller/RechargeController.class.php @@ -511,53 +511,73 @@ class RechargeController $activityconf = metatable\getRechargeActivityConf(); $recharge_activity = array(); + $activity = array(); if ($rechargerow['activity'] != null && $rechargerow['activity'] != '') { $activity = json_decode($rechargerow['activity']); - $needupdate = false; - foreach ($activity as $key => $item) { - $itemconf = $activityconf[$item['id']]; - if (time() < strtotime($itemconf['time1']) || time() > strtotime($itemconf['time2'])) { - continue; + } + $needupdate = false; + foreach ($activityconf as $key => $itemconf) { + if (time() < strtotime($itemconf['time1']) || time() > strtotime($itemconf['time2'])) { + continue; + } + + $found = false; + $itemarray = array(); + foreach ($activity as $itemkey => $item) { + if ($itemconf['shop_id'] == $item['id']) { + $found = true; + + switch ($itemconf['type']) { + case 1: //累积充值 + case 2: //累计消耗 + $itemarray = array( + 'id' => $item['id'], + 'cur' => $item['cur'], + 'target' => $item['target'], + 'award' => $item['time'] > 0 ? 1 : 0, + ); + break; + case 3: //每日累积充值 + $daysecs = phpcommon\getdayseconds(time()); + $itemarray['id'] = $item['id']; + $itemarray['target'] = $item['target']; + if ($item['time'] < $daysecs) { + $itemarray['cur'] = 0; + $itemarray['award'] = 0; + $needupdate = true; + $activity[$itemkey]['cur'] = 0; + $activity[$itemkey]['award'] = 0; + } else { + $itemarray['cur'] = $item['cur']; + $itemarray['award'] = $item['award']; + } + array_push($recharge_activity, $itemarray); + break; + } } + } + + if (!$found) { $itemarray = array( - 'id' => $item['id'], - 'cur' => $item['cur'], - 'target' => $item['target'], - 'award' => ($item['time'] > 0 ? 1 : 0), - ); - - switch ($itemconf['type']) { - case 1: //累积充值 - case 2: //累计消耗 - array_push($recharge_activity, $itemarray); - break; - case 3: //每日累积充值 - $daysecs = phpcommon\getdayseconds(time()); - if ($item['time'] < $daysecs) { - $itemarray['cur'] = 0; - $itemarray['award'] = 0; - $needupdate = true; - $activity[$key]['cur'] = 0; - $activity[$key]['award'] = 0; - } else { - $itemarray['award'] = $item['award']; - } - array_push($recharge_activity, $itemarray); - break; - } - } - - if ($needupdate) { - $conn->execScript( - 'UPDATE recharge SET activity=:activity, modify_time=:modify_time' . - ' WHERE accountid=:accountid;', - array( - ':accountid' => $account_id, - ':activity' => json_encode($activity), - ':modify_time' => time(), - ) + 'id' => $itemconf['shop_id'], + 'cur' => 0, + 'target' => $itemconf['target'], + 'award' => 0, ); } + array_push($recharge_activity, $itemarray); + } + + if ($needupdate) { + $conn->execScript( + 'UPDATE recharge SET activity=:activity, modify_time=:modify_time' . + ' WHERE accountid=:accountid;', + array( + ':accountid' => $account_id, + ':activity' => json_encode($activity), + ':modify_time' => time(), + ) + ); } echo json_encode(array( @@ -641,7 +661,7 @@ class RechargeController 'errmsg' => 'privilege card error 3' )); die(); - } + } $vipinfo[$key]['daily_time'] = $nowTime; $ret = $conn->execScript( @@ -673,7 +693,7 @@ class RechargeController )); $addreward->addReward($itemid, $itemnumlist[$key], $account_id, 0, 0); } - + $found = true; } } @@ -753,11 +773,11 @@ class RechargeController return; } $activity[$key]['time'] = $nowTime; - } + } $ret = $conn->execScript( 'UPDATE recharge SET activity=:activity, modify_time=:modify_time' . - ' WHERE accountid=:accountid;', + ' WHERE accountid=:accountid;', array( ':accountid' => $account_id, ':activity' => json_encode($activity), @@ -784,7 +804,7 @@ class RechargeController )); $addreward->addReward($itemid, $itemnumlist[$key], $account_id, 0, 0); } - + $found = true; } }