钱包相关

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']) {
$finalSql = "SELECT {$options['group_by']},
SUM(total_price) * 10 as total
SUM(total_price) as total
FROM ({$unionSql}) as tmp
GROUP BY {$options['group_by']}
ORDER BY total desc";

View File

@@ -54,7 +54,7 @@ class Redpacket extends Model
$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';
if($data['total_amount'] < $minAmount){
@@ -64,36 +64,40 @@ class Redpacket extends Model
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')
->where('user_id', $data['user_id'])
->dec($coinField, $data['total_amount']+$fee)
->update();
//记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包(钻石)
//记录用户金币日志
$data_log = [
'user_id' => $data['user_id'],
'change_value' => $data['total_amount'],
'room_id' => $data['room_id'],
'money_type' => $data['coin_type'],
'change_type' => $data['coin_type'] == self::COIN_GOLD ? 32 : 29,
'from_id' => $data['room_id'],
'remarks' => $data['coin_type'] == self::COIN_GOLD ? '金币(发红包)' : '钻石(发红包)',
'createtime' => time()
];
$res = Db::name('vs_user_money_log')->insert($data_log);
// $delres = Db::name('user_wallet')
// ->where('user_id', $data['user_id'])
// ->dec($coinField, $data['total_amount']+$fee)
// ->update();
// //记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包(钻石)
// //记录用户金币日志
// $data_log = [
// 'user_id' => $data['user_id'],
// 'change_value' => $data['total_amount'],
// 'room_id' => $data['room_id'],
// 'money_type' => $data['coin_type'],
// 'change_type' => $data['coin_type'] == self::COIN_GOLD ? 32 : 29,
// 'from_id' => $data['room_id'],
// 'remarks' => $data['coin_type'] == self::COIN_GOLD ? '金币(发红包)' : '钻石(发红包)',
// 'createtime' => time()
// ];
// $res = Db::name('vs_user_money_log')->insert($data_log);
//记录手续费日志
$data_log = [
'user_id' => $data['user_id'],
'change_value' => $fee,
'room_id' => $data['room_id'],
'money_type' => $data['coin_type'],
'change_type' => model('common/UserWallet')::RED_PACKET_FEE ,
'from_id' => $data['room_id'],
'remarks' => model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::RED_PACKET_FEE),
'createtime' => time()
];
$res = Db::name('vs_user_money_log')->insert($data_log);
// $data_log = [
// 'user_id' => $data['user_id'],
// 'change_value' => $fee,
// 'room_id' => $data['room_id'],
// 'money_type' => $data['coin_type'],
// 'change_type' => model('common/UserWallet')::RED_PACKET_FEE ,
// 'from_id' => $data['room_id'],
// 'remarks' => model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::RED_PACKET_FEE),
// 'createtime' => time()
// ];
// $res = Db::name('vs_user_money_log')->insert($data_log);
if(!$res || !$delres){
Db::rollback();

View File

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

View File

@@ -305,27 +305,18 @@ class PerformPerSecond
if ($redpacket['left_amount'] > 0) {
// 更新用户钱包
$coinField = $redpacket['coin_type'] == 1 ? 'coin' : 'earnings';
//增加余额
$addres = Db::name('user_wallet')
->where('user_id', $redpacket['user_id'])
->inc($coinField, $redpacket['left_amount'])
->update();
//记录用户金币日志
$data = [
'user_id' => $redpacket['user_id'],
'change_value' => $redpacket['left_amount'],
'room_id' => $redpacket['room_id'],
'money_type' => $redpacket['coin_type'],
//记录日志 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();
if($coinField == 'coin'){
// //增加户金币并记录日志
$wallet_update = model('api/UserWallet')->change_user_cion_log($redpacket['user_id'],$redpacket['left_amount'],$redpacket['room_id'],33,'红包剩余退回');
if(!$wallet_update){
Db::rollback();
}
}else{
//增加收益并记录日志
$receiver = model('api/UserWallet')->change_user_earnings_log($redpacket['user_id'],$redpacket['left_amount'],$redpacket['room_id'],34,'红包剩余退回');
if(!$receiver){
Db::rollback();
}
}
}

View File

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