소스 검색

vip分等级

lizhen_gitee 2 년 전
부모
커밋
6bf01c2fae

+ 10 - 1
application/api/controller/Pay.php

@@ -46,6 +46,15 @@ class Pay extends Api
             $this->error('支付金额太大');
         }
 
+
+        //会员等级冲突
+        //当前是会员,但是却要向下级续费,直接提示报错
+        //修改等级,向上立刻改,向下不允许
+        $wallet_info = model('wallet')->getWallet($this->auth->id);
+        if($wallet_info['vip_endtime'] > time() && $recharge_config['vip_level'] < $wallet_info['vip_level']){
+            $this->error('当前会员没有过期,不能续费');
+        }
+
         //创建订单
         $data = [];
         $data['status'] = 0;
@@ -66,7 +75,7 @@ class Pay extends Api
         $even_data['event'] = 'success';
         $even_data['class'] = 'app\common\model\Recharge';
         $even_data['method'] = 'vippaysucc';
-        $even_data['args'] = json_encode(['user_id'=>$uid,'days'=>$recharge_config['days']]);
+        $even_data['args'] = json_encode(['user_id'=>$uid,'days'=>$recharge_config['days'],'vip_level'=>$recharge_config['vip_level']]);
         $even_data['pay_no'] = $pay_no;
         Db::name('pay_event')->insertGetId($even_data);
 

+ 1 - 1
application/api/controller/Unlockorder.php

@@ -114,7 +114,7 @@ class Unlockorder extends Api
 
         //年费vip,且今天没使用过权限,优先使用vip权限
         $wallet = model('wallet')->getwallet($this->auth->id);
-        if($wallet['vip_endtime'] > time() && $wallet['vip_level'] == 30 && $check_free == 0 ){
+        if($wallet['vip_endtime'] > time() && $wallet['vip_level'] == 40 && $check_free == 0 ){
             $data['price'] = 0;
             $data['type'] = 2;         //2 年vip免费
             $data['endtime'] = time(); //立即过期,就看一下

+ 2 - 6
application/common/model/Paymentdo.php

@@ -9,11 +9,10 @@ class Paymentdo
 
 
     //接受服务器的通知
-    public function receive($orderId,$payamount = 0)
+    public function receive($orderId)
     {
 
         filePut('[payment][receive]异步回调开始'.$orderId);
-        //$orderId = Pay::getOrderId();
         if (!$orderId)
         {
             filePut('[payment][receive]支付号未匹配');
@@ -34,10 +33,7 @@ class Paymentdo
             {
                 filePut('[payment][receive]开始支付 '.$orderId);
             }
-            //获取到它使用的支付接口
-            //$pay = new Pay($info['payment_class']);
-
-            //if ($rs = $pay->receive())
+            
             if (1 === 1)
             {
                 $this->touchEvent('success', $orderId);

+ 8 - 12
application/common/model/Recharge.php

@@ -11,6 +11,7 @@ class Recharge
     /**
      * 支付回调
      */
+    //pc端充值金币
     public function rechargepaysucc($orderId,$args){
         $order = Db::name('pay_order')->where(array('pay_no'=>$orderId,'status'=>2))->find();
 
@@ -46,6 +47,7 @@ class Recharge
         }
     }
 
+    //app充值金币
     public function goldpaysucc($orderId,$args){
         $order = Db::name('pay_order')->where(array('pay_no'=>$orderId,'status'=>2))->find();
 
@@ -126,6 +128,7 @@ class Recharge
             return false;
         }
     }
+    //app充值vip
     public function vippaysucc($orderId,$args){
         $order = Db::name('pay_order')->where(array('pay_no'=>$orderId,'status'=>2))->find();
 
@@ -150,7 +153,11 @@ class Recharge
                 //追加vip
                 $vip_endtime = $user_info['vip_endtime'] + (intval($args['days']) * 86400);
             }
-            $result = Db::name('user_wallet')->where('user_id',$args['user_id'])->update(['vip_endtime'=>$vip_endtime]);
+            $update_data = [
+                'vip_endtime'=>$vip_endtime,
+                'vip_level'  =>$args['vip_level'], //修改等级,同级不影响,向上立刻改,向下不允许
+            ];
+            $result = Db::name('user_wallet')->where('user_id',$args['user_id'])->update($update_data);
             if($result === false)
             {
                 Db::rollback();
@@ -169,17 +176,6 @@ class Recharge
 
             Db::commit();
 
-            //再扣款
-            /* Db::startTrans();
-             //需要更新某个支付表
-             if(isset($args['payids']) && $args['payids'])
-             {
-                 logic('Cashier')->paySuccess($args,true);
-                 filePut('[wallet][paySucc] end success '.$orderId);
-            }
-            Db::commit();*/
-
-
             return true;
         }else{
             filePut('[wallet][paySucc]在线支付订单有误 '.$orderId);

+ 5 - 1
二期修改数据库.txt

@@ -1,3 +1,4 @@
+二期前期=============================================================================
 mt_keyworldfilter 新增全表      已同步到线上
 mt_user 新增字段 register_from  已同步到线上
 mt_user 新增字段 is_active      已同步到线上
@@ -14,4 +15,7 @@ mt_user 新增字段  secretvideo_status  默认值 -1
 mt_user_secretvideo 新增全表
 
 mt_basedata 新增一行  聊天规范
-网站配置新增  解锁微信号,解锁私密视频
+网站配置新增  解锁微信号,解锁私密视频
+
+mt_user_wallet   新增字段 vip_level
+mt_payvip_config 新增字段 vip_level