From c47a19fd510b167cb07c6a6d7ab31bb1896cf547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 5 Nov 2025 11:40:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=AD=E4=B9=B0=E7=88=B5=E4=BD=8D=20?= =?UTF-8?q?=E5=85=85=E5=80=BC=E5=92=8C=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Payment.php | 2 + application/common.php | 152 ++++++++++++++----------- 2 files changed, 85 insertions(+), 69 deletions(-) diff --git a/application/api/controller/Payment.php b/application/api/controller/Payment.php index 3820e04..648d2d5 100644 --- a/application/api/controller/Payment.php +++ b/application/api/controller/Payment.php @@ -28,6 +28,7 @@ class Payment extends Controller $coin = input('coin', 0); $type_params = input('type_params', 0); $type_id = input('type_id', 0); + $nobility_id = input('nobility_id', 0);//'0-购买金币(充值),其他是爵位id' if(!$coin){ $coin = $money * get_system_config_value('rmb_coin_ratio'); @@ -66,6 +67,7 @@ class Payment extends Controller $data['remarke'] = '充值到app用户'.($user_code ?? "") ."余额!"; $data['type_params'] = $type_params; $data['type_id'] = $type_id; + $data['nobility_id'] = $nobility_id; $re = db::name('vs_user_recharge')->insert($data); if (!$re) { diff --git a/application/common.php b/application/common.php index 85cc18e..a62c903 100644 --- a/application/common.php +++ b/application/common.php @@ -1138,26 +1138,7 @@ function handelCharge($where,$data){ if(!$orderModel){ return 0; } - - db::startTrans(); - try{ - $userModel = db::name('user_wallet')->where('user_id',$orderModel['user_id'])->find(); - if(!$userModel){ - return 0; - } - - //每天任意充值金额 - model('DailyTasks')->tasks_complete($orderModel['user_id'],4); - - //增加余额 - $res = db::name('user_wallet')->where('user_id',$orderModel['user_id'])->update([ - 'coin' => $userModel['coin'] + $orderModel['coin'], - 'updatetime' => time() - ]); - if(!$res){ - db::rollback(); - return 0; - } + if($orderModel['recharge_type'] == 1){//购买爵位 //修改订单状态 $res1 = db::name('vs_user_recharge')->where($where)->update([ 'pay_status' => 2, @@ -1166,63 +1147,96 @@ function handelCharge($where,$data){ 'updatetime' => time() ]); if(!$res1){ - db::rollback(); - return 0; - } - //查询是否首充 - $is_first_charge = db::name('vs_user_money_log')->where('user_id',$orderModel['user_id'])->where('change_type',2)->where('money_type',1)->where(['createtime'=>['>=',"1760666400"]])->count(); - //添加充值记录 - $res2 = db::name('vs_user_money_log')->insert([ - 'user_id' => $orderModel['user_id'], - 'change_type' => 2, - 'money_type' => 1, - 'change_value' => $orderModel['coin'], - 'from_id' => $orderModel['rid'], - 'remarks' => '充值', - 'createtime' => time() - ]); - if(!$res2){ - db::rollback(); return 0; } + model('Nobility')->buyNobility($orderModel['user_id'],$orderModel['recharge_type']); + return 1; + }else{//充值 + db::startTrans(); + try{ + $userModel = db::name('user_wallet')->where('user_id',$orderModel['user_id'])->find(); + if(!$userModel){ + return 0; + } - //给上级返佣 - //获取上级 - $invited_user_id = db::name('vs_user_invited')->where('sub_user_id', $orderModel['user_id'])->value('user_id'); - if($invited_user_id){ - $re3 = model('Invited')->invited_reward($orderModel['user_id'],$orderModel['coin']); - if($re3['code'] != 1){ + //每天任意充值金额 + model('DailyTasks')->tasks_complete($orderModel['user_id'],4); + + //增加余额 + $res = db::name('user_wallet')->where('user_id',$orderModel['user_id'])->update([ + 'coin' => $userModel['coin'] + $orderModel['coin'], + 'updatetime' => time() + ]); + if(!$res){ + db::rollback(); + return 0; + } + //修改订单状态 + $res1 = db::name('vs_user_recharge')->where($where)->update([ + 'pay_status' => 2, + 'pay_time' => time(), + 'trade_no' => $data['trade_no'], + 'updatetime' => time() + ]); + if(!$res1){ + db::rollback(); + return 0; + } + //查询是否首充 + $is_first_charge = db::name('vs_user_money_log')->where('user_id',$orderModel['user_id'])->where('change_type',2)->where('money_type',1)->where(['createtime'=>['>=',"1760666400"]])->count(); + //添加充值记录 + $res2 = db::name('vs_user_money_log')->insert([ + 'user_id' => $orderModel['user_id'], + 'change_type' => 2, + 'money_type' => 1, + 'change_value' => $orderModel['coin'], + 'from_id' => $orderModel['rid'], + 'remarks' => '充值', + 'createtime' => time() + ]); + if(!$res2){ db::rollback(); return 0; } - } - db::commit(); - //活动 - //首充 - if($is_first_charge == 0){ - model('Activities')->first_charge_gift_send($orderModel['user_id'],$orderModel['money']); - } - //活动 - if($orderModel['type_id'] == 6){ - $orderModel['type_params'] = 2; - }elseif(in_array($orderModel['type_id'],[14,15,16])){ - $orderModel['type_params'] = 3; - } - switch ($orderModel['type_params']){ - case 2: - //天降好礼 - model('Activities')->drop_gift_send($orderModel['user_id'],$orderModel['money']); - break; - case 3: - //新人好礼 - model('Activities')->new_charge_gift_send($orderModel['user_id'],$orderModel['money']); - } + //给上级返佣 + //获取上级 + $invited_user_id = db::name('vs_user_invited')->where('sub_user_id', $orderModel['user_id'])->value('user_id'); + if($invited_user_id){ + $re3 = model('Invited')->invited_reward($orderModel['user_id'],$orderModel['coin']); + if($re3['code'] != 1){ + db::rollback(); + return 0; + } + } + db::commit(); - return 1; - } catch (\Exception $e){ - db::rollback(); - return 0; + //活动 + //首充 + if($is_first_charge == 0){ + model('Activities')->first_charge_gift_send($orderModel['user_id'],$orderModel['money']); + } + //活动 + if($orderModel['type_id'] == 6){ + $orderModel['type_params'] = 2; + }elseif(in_array($orderModel['type_id'],[14,15,16])){ + $orderModel['type_params'] = 3; + } + switch ($orderModel['type_params']){ + case 2: + //天降好礼 + model('Activities')->drop_gift_send($orderModel['user_id'],$orderModel['money']); + break; + case 3: + //新人好礼 + model('Activities')->new_charge_gift_send($orderModel['user_id'],$orderModel['money']); + } + + return 1; + } catch (\Exception $e){ + db::rollback(); + return 0; + } } }