This commit is contained in:
2026-01-08 16:27:34 +08:00
parent ae30b71aed
commit f392b8c2ae
4 changed files with 28 additions and 64 deletions

View File

@@ -57,7 +57,7 @@ class Invited extends Model
}
//下级充值推荐人收益计算
public function invited_reward($sub_user_id,$money){
public function invited_reward($sub_user_id,$money,$invited_user_id){
//查询下级用户充值总金额
$sub_user_all_money = db::name('vs_user_recharge')
->where('user_id', $sub_user_id)
@@ -65,34 +65,17 @@ class Invited extends Model
if($sub_user_all_money > 1000){
return ['code' => 1, 'msg' => "下级充值金额大于1000元不需返利", 'data' => null];
}
//查询上级
$invited_user_id = $this->where('sub_user_id', $sub_user_id)->value('user_id');
if(!$invited_user_id){
return ['code' => 0, 'msg' => "未绑定上级用户", 'data' => null];
}
$invited_draw_conf = get_system_config_value('invited_draw');//分成比例
$invited_draw = $invited_draw_conf / 100;
$invited_draw_money = $money * $invited_draw;
$invited_draw_money = $invited_draw_money / intval(get_system_config_value('rmb_coin_ratio')); //金币换算成钻石
//修改用户资金
$reslut = model('common/UserWallet')->change_user_money($invited_user_id, $invited_draw_money, model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::OPERATION_INVITE_REBATE, '邀请用户充值返利');
if($reslut['code'] == 1){
//记录日志
$data = [];
$data['user_id'] = $invited_user_id;
$data['sub_user_id'] = $sub_user_id;
$data['coin'] = $money;
$data['earnings'] = $invited_draw_money;
$data['proportion'] = $invited_draw_conf;
$data['createtime'] = time();
$data['updatetime'] = time();
$res = Db::name('vs_user_invited_income_log')->insert($data);
if ($res) {
return ['code' => 1, 'msg' => "操作成功", 'data' => null];
}
}else{
return ['code' => $reslut['code'], 'msg' => $reslut['code'], 'data' => null];
//增加余额并记录日志
$wallet_update = model('api/UserWallet')->change_user_cion_log($invited_user_id,$invited_draw_money,0,6,'邀请用户充值返利');
if(!$wallet_update){
return ['code' => 0, 'msg' => "邀请给上级返利失败", 'data' => null];
}
return ['code' => 1, 'msg' => "操作成功", 'data' => null];
}
//账单明细

View File

@@ -1156,23 +1156,19 @@ function handelCharge($where,$data){
}else{//充值
db::startTrans();
try{
$userModel = db::name('user_wallet')->where('user_id',$orderModel['user_id'])->find();
$userModel = db::name('user_wallet_coin')->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;
}
//增加余额并记录日志
$wallet_update = model('api/UserWallet')->change_user_cion_log($orderModel['user_id'],$orderModel['coin'],0,2,'充值');
if(!$wallet_update){
Db::rollback();
return 0;
}
//修改订单状态
$res1 = db::name('vs_user_recharge')->where($where)->update([
'pay_status' => 2,
@@ -1184,38 +1180,23 @@ function handelCharge($where,$data){
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;
}
//给上级返佣
//获取上级
//给上级返佣 //获取上级
$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']);
$re3 = model('api/Invited')->invited_reward($orderModel['user_id'],$orderModel['coin'],$invited_user_id);
if($re3['code'] != 1){
db::rollback();
return 0;
}
}
db::commit();
//充值任务
model('api/Tasks')->tasks_complete($orderModel['user_id'],12);
db::commit();
//活动
//查询是否首充
$is_first_charge = db::name('vs_user_recharge')
->where(['user_id' => $orderModel['user_id'],'pay_status' => 2])
->count();
//首充
if($is_first_charge == 0){
model('Activities')->first_charge_gift_send($orderModel['user_id'],$orderModel['money']);
@@ -1235,12 +1216,12 @@ function handelCharge($where,$data){
//新人好礼
model('Activities')->new_charge_gift_send($orderModel['user_id'],$orderModel['money']);
}
return 1;
} catch (\Exception $e){
db::rollback();
return 0;
}
}
}

View File

@@ -31,8 +31,8 @@ class AliPay
$this->appId = $configs['alipay_app_id'];
$this->rsaPrivateKey = $configs['alipay_private_key'];
$this->alipayPublicKey = $configs['alipay_public_key'];
// $this->notifyUrl = $configs['web_site']."/api/Payment/notify_ali";
$this->notifyUrl = "http://vespa.qxyushen.top/api/Payment/notify_ali";
$this->notifyUrl = $configs['web_site']."/api/Payment/notify_ali";
// $this->notifyUrl = "http://vespa.qxyushen.top/api/Payment/notify_ali";
$aliPayPath = EXTEND_PATH.'/AliPayV2/alipay-sdk/aopV2/';
require_once $aliPayPath . 'AopCertClient.php';

View File

@@ -41,8 +41,8 @@ class WxPay
$data ["out_trade_no"] = $d['order_sn'];
$data ["total_fee"] = $total_fee;
$data ["spbill_create_ip"] = $ip;
// $data ["notify_url"] = get_system_config_value("web_site")."/api/Payment/notify_wx";
$data ["notify_url"] = "http://vespa.qxyushen.top/api/Payment/notify_wx";
$data ["notify_url"] = get_system_config_value("web_site")."/api/Payment/notify_wx";
// $data ["notify_url"] = "http://vespa.qxyushen.top/api/Payment/notify_wx";
$data ["trade_type"] = "APP";
$s = $this->getSign($data);