钱包相关

This commit is contained in:
2026-01-22 11:35:02 +08:00
parent 029c3b2fc2
commit 08df1b687a
5 changed files with 93 additions and 93 deletions

View File

@@ -631,7 +631,7 @@ class GiveGiftBase extends Model
// 最终统计 // 最终统计
if ($options['group_by']) { if ($options['group_by']) {
$finalSql = "SELECT {$options['group_by']}, $finalSql = "SELECT {$options['group_by']},
SUM(total_price) * 10 as total SUM(total_price) as total
FROM ({$unionSql}) as tmp FROM ({$unionSql}) as tmp
GROUP BY {$options['group_by']} GROUP BY {$options['group_by']}
ORDER BY total desc"; ORDER BY total desc";

View File

@@ -54,7 +54,7 @@ class Redpacket extends Model
$fee = get_system_config_value('red_packet_fee') ?? 0; $fee = get_system_config_value('red_packet_fee') ?? 0;
// 验证用户余额 // 验证用户余额
$wallet = Db::name('user_wallet')->where('user_id', $data['user_id'])->find(); $wallet = Db::name('user_wallet_coin')->where('user_id', $data['user_id'])->find();
$coinField = $data['coin_type'] == self::COIN_GOLD ? 'coin' : 'earnings'; $coinField = $data['coin_type'] == self::COIN_GOLD ? 'coin' : 'earnings';
if($data['total_amount'] < $minAmount){ if($data['total_amount'] < $minAmount){
@@ -64,36 +64,40 @@ class Redpacket extends Model
return ['code' => 0, 'msg' => '余额不足', 'data' => null]; return ['code' => 0, 'msg' => '余额不足', 'data' => null];
} }
$res = model('api/UserWallet')->change_user_cion_log($data['user_id'],$data['total_amount'],$data['room_id'],32,'金币(发红包)');
$delres = model('api/UserWallet')->change_user_cion_log($data['user_id'],$fee,$data['room_id'],59,'红包手续费');
// 扣除余额 // 扣除余额
$delres = Db::name('user_wallet') // $delres = Db::name('user_wallet')
->where('user_id', $data['user_id']) // ->where('user_id', $data['user_id'])
->dec($coinField, $data['total_amount']+$fee) // ->dec($coinField, $data['total_amount']+$fee)
->update(); // ->update();
//记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包(钻石) // //记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包(钻石)
//记录用户金币日志 // //记录用户金币日志
$data_log = [ // $data_log = [
'user_id' => $data['user_id'], // 'user_id' => $data['user_id'],
'change_value' => $data['total_amount'], // 'change_value' => $data['total_amount'],
'room_id' => $data['room_id'], // 'room_id' => $data['room_id'],
'money_type' => $data['coin_type'], // 'money_type' => $data['coin_type'],
'change_type' => $data['coin_type'] == self::COIN_GOLD ? 32 : 29, // 'change_type' => $data['coin_type'] == self::COIN_GOLD ? 32 : 29,
'from_id' => $data['room_id'], // 'from_id' => $data['room_id'],
'remarks' => $data['coin_type'] == self::COIN_GOLD ? '金币(发红包)' : '钻石(发红包)', // 'remarks' => $data['coin_type'] == self::COIN_GOLD ? '金币(发红包)' : '钻石(发红包)',
'createtime' => time() // 'createtime' => time()
]; // ];
$res = Db::name('vs_user_money_log')->insert($data_log); // $res = Db::name('vs_user_money_log')->insert($data_log);
//记录手续费日志 //记录手续费日志
$data_log = [ // $data_log = [
'user_id' => $data['user_id'], // 'user_id' => $data['user_id'],
'change_value' => $fee, // 'change_value' => $fee,
'room_id' => $data['room_id'], // 'room_id' => $data['room_id'],
'money_type' => $data['coin_type'], // 'money_type' => $data['coin_type'],
'change_type' => model('common/UserWallet')::RED_PACKET_FEE , // 'change_type' => model('common/UserWallet')::RED_PACKET_FEE ,
'from_id' => $data['room_id'], // 'from_id' => $data['room_id'],
'remarks' => model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::RED_PACKET_FEE), // 'remarks' => model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::RED_PACKET_FEE),
'createtime' => time() // 'createtime' => time()
]; // ];
$res = Db::name('vs_user_money_log')->insert($data_log); // $res = Db::name('vs_user_money_log')->insert($data_log);
if(!$res || !$delres){ if(!$res || !$delres){
Db::rollback(); Db::rollback();

View File

@@ -139,27 +139,28 @@ class RedpacketService
$recordModel->save($recordData); $recordModel->save($recordData);
// 更新用户钱包 // 更新用户钱包
$coinField = $redpacket['coin_type'] == 1 ? 'coin' : 'earnings'; // $coinField = $redpacket['coin_type'] == 1 ? 'coin' : 'earnings';
//增加余额 // //增加余额
$addres = Db::name('user_wallet') // $addres = Db::name('user_wallet')
->where('user_id', $userId) // ->where('user_id', $userId)
->inc($coinField, $amount) // ->inc($coinField, $amount)
->update(); // ->update();
//记录用户金币日志 // //记录用户金币日志
$data = [ // $data = [
'user_id' => $userId, // 'user_id' => $userId,
'change_value' => $amount, // 'change_value' => $amount,
'room_id' => $redpacket['room_id'], // 'room_id' => $redpacket['room_id'],
'money_type' => $redpacket['coin_type'], // 'money_type' => $redpacket['coin_type'],
//记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包(钻石) // //记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包(钻石)
'change_type' => $redpacket['coin_type'] == 1 ? 30 : 31, // 'change_type' => $redpacket['coin_type'] == 1 ? 30 : 31,
'from_id' => $redpacket['room_id'], // 'from_id' => $redpacket['room_id'],
'remarks' => '抢红包收入', // 'remarks' => '抢红包收入',
'createtime' => time() // 'createtime' => time()
]; // ];
$res = Db::name('vs_user_money_log')->insert($data); // $res = Db::name('vs_user_money_log')->insert($data);
if(!$res || !$addres){ $res = model('api/UserWallet')->change_user_cion_log($userId,$amount,$redpacket['room_id'],30,'30-抢红包(金币');
if(!$res){
Db::rollback(); Db::rollback();
} }

View File

@@ -305,27 +305,18 @@ class PerformPerSecond
if ($redpacket['left_amount'] > 0) { if ($redpacket['left_amount'] > 0) {
// 更新用户钱包 // 更新用户钱包
$coinField = $redpacket['coin_type'] == 1 ? 'coin' : 'earnings'; $coinField = $redpacket['coin_type'] == 1 ? 'coin' : 'earnings';
//增加余额 if($coinField == 'coin'){
$addres = Db::name('user_wallet') // //增加户金币并记录日志
->where('user_id', $redpacket['user_id']) $wallet_update = model('api/UserWallet')->change_user_cion_log($redpacket['user_id'],$redpacket['left_amount'],$redpacket['room_id'],33,'红包剩余退回');
->inc($coinField, $redpacket['left_amount']) if(!$wallet_update){
->update(); Db::rollback();
//记录用户金币日志 }
$data = [ }else{
'user_id' => $redpacket['user_id'], //增加收益并记录日志
'change_value' => $redpacket['left_amount'], $receiver = model('api/UserWallet')->change_user_earnings_log($redpacket['user_id'],$redpacket['left_amount'],$redpacket['room_id'],34,'红包剩余退回');
'room_id' => $redpacket['room_id'], if(!$receiver){
'money_type' => $redpacket['coin_type'], Db::rollback();
//记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包钻石33-红包剩余退回金币34-红包剩余退回(钻石) }
'change_type' => $redpacket['coin_type'] == 1 ? 33 : 34,
'from_id' => $redpacket['room_id'],
'remarks' => '红包剩余退回',
'createtime' => time()
];
$res = Db::name('vs_user_money_log')->insert($data);
if(!$res || !$addres){
Db::rollback();
} }
} }

View File

@@ -187,30 +187,34 @@ class RoomHourRanking
//添加金币到钱包 //添加金币到钱包
public function add_coin($coin,$user_id,$ranking,$room_id,$total_price,$is_piao){ public function add_coin($coin,$user_id,$ranking,$room_id,$total_price,$is_piao){
if($coin > 0){ if($coin > 0){
$data = [ // $data = [
'user_id' => $user_id, // 'user_id' => $user_id,
'change_value' => $coin, // 'change_value' => $coin,
// 'room_id' => $room_ids, //// 'room_id' => $room_ids,
'money_type' => 1, // 'money_type' => 1,
'change_type' => 27, // 'change_type' => 27,
'from_id' => 0, // 'from_id' => 0,
'remarks' => '小时榜获得', // 'remarks' => '小时榜获得',
'createtime' => time() // 'createtime' => time()
]; // ];
//
// //开启事务
// Db::startTrans();
// $res = Db::name('vs_user_money_log')->insert($data);
// if(!$res){
// Db::rollback();
// }
//
// //增加用户金币
// $res1 = Db::name('user_wallet')->where(['user_id'=>$user_id])->setInc('coin',$coin);
// if(!$res1){
// Db::rollback();
// }
//开启事务 $res = model('api/UserWallet')->change_user_cion_log($user_id,$coin,0,27,'小时榜获得');
Db::startTrans();
$res = Db::name('vs_user_money_log')->insert($data);
if(!$res){ if(!$res){
Db::rollback(); Db::rollback();
} }
//增加用户金币
$res1 = Db::name('user_wallet')->where(['user_id'=>$user_id])->setInc('coin',$coin);
if(!$res1){
Db::rollback();
}
//添加到排行表 //添加到排行表
$start_time = strtotime(date('Y-m-d H:00:00', strtotime('-1 hour'))); $start_time = strtotime(date('Y-m-d H:00:00', strtotime('-1 hour')));
$end_time = strtotime(date('Y-m-d H:00:00')) - 1; $end_time = strtotime(date('Y-m-d H:00:00')) - 1;