钱包相关
This commit is contained in:
@@ -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";
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user