购买爵位 充值和回调

This commit is contained in:
2025-11-05 11:40:51 +08:00
parent d96985b712
commit c47a19fd51
2 changed files with 85 additions and 69 deletions

View File

@@ -28,6 +28,7 @@ class Payment extends Controller
$coin = input('coin', 0); $coin = input('coin', 0);
$type_params = input('type_params', 0); $type_params = input('type_params', 0);
$type_id = input('type_id', 0); $type_id = input('type_id', 0);
$nobility_id = input('nobility_id', 0);//'0-购买金币充值其他是爵位id'
if(!$coin){ if(!$coin){
$coin = $money * get_system_config_value('rmb_coin_ratio'); $coin = $money * get_system_config_value('rmb_coin_ratio');
@@ -66,6 +67,7 @@ class Payment extends Controller
$data['remarke'] = '充值到app用户'.($user_code ?? "") ."余额!"; $data['remarke'] = '充值到app用户'.($user_code ?? "") ."余额!";
$data['type_params'] = $type_params; $data['type_params'] = $type_params;
$data['type_id'] = $type_id; $data['type_id'] = $type_id;
$data['nobility_id'] = $nobility_id;
$re = db::name('vs_user_recharge')->insert($data); $re = db::name('vs_user_recharge')->insert($data);
if (!$re) { if (!$re) {

View File

@@ -1138,26 +1138,7 @@ function handelCharge($where,$data){
if(!$orderModel){ if(!$orderModel){
return 0; return 0;
} }
if($orderModel['recharge_type'] == 1){//购买爵位
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;
}
//修改订单状态 //修改订单状态
$res1 = db::name('vs_user_recharge')->where($where)->update([ $res1 = db::name('vs_user_recharge')->where($where)->update([
'pay_status' => 2, 'pay_status' => 2,
@@ -1166,63 +1147,96 @@ function handelCharge($where,$data){
'updatetime' => time() 'updatetime' => time()
]); ]);
if(!$res1){ 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; 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;
}
//给上级返佣 //每天任意充值金额
//获取上级 model('DailyTasks')->tasks_complete($orderModel['user_id'],4);
$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']); $res = db::name('user_wallet')->where('user_id',$orderModel['user_id'])->update([
if($re3['code'] != 1){ '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(); db::rollback();
return 0; return 0;
} }
}
db::commit();
//活动 //给上级返佣
//首充 //获取上级
if($is_first_charge == 0){ $invited_user_id = db::name('vs_user_invited')->where('sub_user_id', $orderModel['user_id'])->value('user_id');
model('Activities')->first_charge_gift_send($orderModel['user_id'],$orderModel['money']); if($invited_user_id){
} $re3 = model('Invited')->invited_reward($orderModel['user_id'],$orderModel['coin']);
//活动 if($re3['code'] != 1){
if($orderModel['type_id'] == 6){ db::rollback();
$orderModel['type_params'] = 2; return 0;
}elseif(in_array($orderModel['type_id'],[14,15,16])){ }
$orderModel['type_params'] = 3; }
} db::commit();
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(); if($is_first_charge == 0){
return 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;
}
} }
} }