diff --git a/src/admin/member_do.php b/src/admin/member_do.php index 0d4f7e34..cda9f990 100644 --- a/src/admin/member_do.php +++ b/src/admin/member_do.php @@ -200,11 +200,14 @@ else if ($dopost == "memberlogin") { $nid = explode(',', $nid); if (is_array($nid)) { foreach ($nid as $var) { - $query = "UPDATE `#@__member_operation` SET sta = '1' WHERE aid = '$var'"; - $dsql->ExecuteNoneQuery($query); - ShowMsg("设置成功", "member_operations.php"); - exit(); + $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE aid='$var'"); + if ($moRow['sta'] == 0) { + $query = "UPDATE `#@__member_operation` SET sta = '1' WHERE aid = '$var'"; + $dsql->ExecuteNoneQuery($query); + } } + ShowMsg("设置成功", "member_operations.php"); + exit(); } } else if ($dopost == "okoperations") { $nid = preg_replace('#[^0-9,]#', '', preg_replace('#`#', ',', $nid)); @@ -218,6 +221,27 @@ else if ($dopost == "memberlogin") { $proRow = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid={$moRow['pid']}"); $query = "UPDATE `#@__member` SET money = money+{$proRow['num']} WHERE mid = '{$moRow['mid']}'"; $dsql->ExecuteNoneQuery($query); + } else if ($moRow['product'] === "member"){ + $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$moRow['pid']}'"); + $rank = $row['rank']; + $exptime = $row['exptime']; + $rs = $dsql->GetOne("SELECT uptime,exptime FROM `#@__member` WHERE mid='".$moRow['mid']."'"); + if($rs['uptime']!=0 && $rs['exptime']!=0 ) + { + $nowtime = time(); + $mhasDay = $rs['exptime'] - ceil(($nowtime - $rs['uptime'])/3600/24) + 1; + $mhasDay=($mhasDay>0)? $mhasDay : 0; + } + $memrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE `rank`='$rank'"); + + //更新会员信息 + $sqlm = "UPDATE `#@__member` SET `rank`='$rank',`money`=`money`+'{$memrank['money']}',scores=scores+'{$memrank['scores']}',exptime='$exptime'+'$mhasDay',uptime='".time()."' WHERE mid='".$moRow['mid']."'"; + $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='{$moRow['pid']}' "; + if(!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) + { + ShowMsg("升级会员失败", "javascript:;"); + exit; + } } $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE aid = '$var'"; $dsql->ExecuteNoneQuery($query); diff --git a/src/apps/notify.php b/src/apps/notify.php index 5fe874de..d7992143 100644 --- a/src/apps/notify.php +++ b/src/apps/notify.php @@ -40,11 +40,34 @@ if ($dopost === 'alipay') { // $pay = \AliPay\Transfer::instance($config); $result = $pay->query($data['out_trade_no']); if ($result['trade_status']=== "TRADE_SUCCESS") { - $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); - $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; - $dsql->ExecuteNoneQuery($query); - $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '{$moRow['mid']}'"; - $dsql->ExecuteNoneQuery($query); + if ($moRow['product'] === "card") { + $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); + $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; + $dsql->ExecuteNoneQuery($query); + $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '{$moRow['mid']}'"; + $dsql->ExecuteNoneQuery($query); + } else if($moRow['product'] === "member"){ + $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$moRow['pid']}'"); + $rank = $row['rank']; + $exptime = $row['exptime']; + $rs = $dsql->GetOne("SELECT uptime,exptime FROM `#@__member` WHERE mid='".$moRow['mid']."'"); + if($rs['uptime']!=0 && $rs['exptime']!=0 ) + { + $nowtime = time(); + $mhasDay = $rs['exptime'] - ceil(($nowtime - $rs['uptime'])/3600/24) + 1; + $mhasDay=($mhasDay>0)? $mhasDay : 0; + } + $memrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE `rank`='$rank'"); + + //更新会员信息 + $sqlm = "UPDATE `#@__member` SET `rank`='$rank',`money`=`money`+'{$memrank['money']}',scores=scores+'{$memrank['scores']}',exptime='$exptime'+'$mhasDay',uptime='".time()."' WHERE mid='".$moRow['mid']."'"; + $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='{$moRow['pid']}' "; + if(!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) + { + ShowMsg("升级会员失败", "javascript:;"); + exit; + } + } ShowMsg("已经完成付款", $cfg_memberurl."/index.php"); exit; } @@ -73,11 +96,34 @@ if ($dopost === 'alipay') { ShowMsg("订单查询错误,请确保是您自己发起的订单", "javascript:;"); exit; } - $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); - $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; - $dsql->ExecuteNoneQuery($query); - $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '{$moRow['mid']}'"; - $dsql->ExecuteNoneQuery($query); + if ($moRow['product'] === "card") { + $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); + $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; + $dsql->ExecuteNoneQuery($query); + $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '{$moRow['mid']}'"; + $dsql->ExecuteNoneQuery($query); + } else if($moRow['product'] === "member"){ + $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$moRow['pid']}'"); + $rank = $row['rank']; + $exptime = $row['exptime']; + $rs = $dsql->GetOne("SELECT uptime,exptime FROM `#@__member` WHERE mid='".$moRow['mid']."'"); + if($rs['uptime']!=0 && $rs['exptime']!=0 ) + { + $nowtime = time(); + $mhasDay = $rs['exptime'] - ceil(($nowtime - $rs['uptime'])/3600/24) + 1; + $mhasDay=($mhasDay>0)? $mhasDay : 0; + } + $memrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE `rank`='$rank'"); + + //更新会员信息 + $sqlm = "UPDATE `#@__member` SET `rank`='$rank',`money`=`money`+'{$memrank['money']}',scores=scores+'{$memrank['scores']}',exptime='$exptime'+'$mhasDay',uptime='".time()."' WHERE mid='".$moRow['mid']."'"; + $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='{$moRow['pid']}' "; + if(!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) + { + ShowMsg("升级会员失败", "javascript:;"); + exit; + } + } echo "success"; exit; } else { diff --git a/src/apps/return.php b/src/apps/return.php index 6973d9a1..321b7475 100644 --- a/src/apps/return.php +++ b/src/apps/return.php @@ -40,11 +40,34 @@ if ($dopost === 'alipay') { // $pay = \AliPay\Transfer::instance($config); $result = $pay->query($data['out_trade_no']); if ($result['trade_status']=== "TRADE_SUCCESS") { - $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); - $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; - $dsql->ExecuteNoneQuery($query); - $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '{$moRow['mid']}'"; - $dsql->ExecuteNoneQuery($query); + if ($moRow['product'] === "card") { + $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); + $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; + $dsql->ExecuteNoneQuery($query); + $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '{$moRow['mid']}'"; + $dsql->ExecuteNoneQuery($query); + } else if($moRow['product'] === "member"){ + $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$moRow['pid']}'"); + $rank = $row['rank']; + $exptime = $row['exptime']; + $rs = $dsql->GetOne("SELECT uptime,exptime FROM `#@__member` WHERE mid='".$moRow['mid']."'"); + if($rs['uptime']!=0 && $rs['exptime']!=0 ) + { + $nowtime = time(); + $mhasDay = $rs['exptime'] - ceil(($nowtime - $rs['uptime'])/3600/24) + 1; + $mhasDay=($mhasDay>0)? $mhasDay : 0; + } + $memrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE `rank`='$rank'"); + + //更新会员信息 + $sqlm = "UPDATE `#@__member` SET `rank`='$rank',`money`=`money`+'{$memrank['money']}',scores=scores+'{$memrank['scores']}',exptime='$exptime'+'$mhasDay',uptime='".time()."' WHERE mid='".$moRow['mid']."'"; + $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='{$moRow['pid']}' "; + if(!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) + { + ShowMsg("升级会员失败", "javascript:;"); + exit; + } + } ShowMsg("已经完成付款", $cfg_memberurl."/index.php"); exit; } diff --git a/src/user/buy_action.php b/src/user/buy_action.php index c7ce84e6..1404fb49 100755 --- a/src/user/buy_action.php +++ b/src/user/buy_action.php @@ -58,11 +58,35 @@ if ($dopost === "bank_ok") { exit; } if ($result['return_code'] === "SUCCESS" && $result['trade_state'] === "SUCCESS") { - $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); - $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; - $dsql->ExecuteNoneQuery($query); - $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '$mid'"; - $dsql->ExecuteNoneQuery($query); + if ($moRow['product'] === "card") { + $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$moRow['pid']}'"); + $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; + $dsql->ExecuteNoneQuery($query); + $query = "UPDATE `#@__member` SET money = money+{$row['num']} WHERE mid = '$mid'"; + $dsql->ExecuteNoneQuery($query); + } else if($moRow['product'] === "member"){ + $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$moRow['pid']}'"); + $rank = $row['rank']; + $exptime = $row['exptime']; + $rs = $dsql->GetOne("SELECT uptime,exptime FROM `#@__member` WHERE mid='".$moRow['mid']."'"); + if($rs['uptime']!=0 && $rs['exptime']!=0 ) + { + $nowtime = time(); + $mhasDay = $rs['exptime'] - ceil(($nowtime - $rs['uptime'])/3600/24) + 1; + $mhasDay=($mhasDay>0)? $mhasDay : 0; + } + $memrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE `rank`='$rank'"); + + //更新会员信息 + $sqlm = "UPDATE `#@__member` SET `rank`='$rank',`money`=`money`+'{$memrank['money']}',scores=scores+'{$memrank['scores']}',exptime='$exptime'+'$mhasDay',uptime='".time()."' WHERE mid='".$moRow['mid']."'"; + $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='{$moRow['pid']}' "; + if(!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) + { + ShowMsg("升级会员失败", "javascript:;"); + exit; + } + } + ShowMsg("已经完成付款", "index.php"); exit; } else { @@ -261,7 +285,7 @@ if ($paytype === 0) { $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='$buyid' "; if(!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) { - ShowMsg("余额付款升级会员失败", "javascript:;"); + ShowMsg("升级会员失败", "javascript:;"); exit; } }