diff --git a/application/common/model/GiveGiftBase.php b/application/common/model/GiveGiftBase.php index 396dabb7..20ff06dd 100644 --- a/application/common/model/GiveGiftBase.php +++ b/application/common/model/GiveGiftBase.php @@ -555,8 +555,8 @@ class GiveGiftBase extends Model return []; } } - - + + /** * 统计收礼用户 的送礼用户的分组和 * @param array $where 查询条件 @@ -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"; diff --git a/application/common/model/Redpacket.php b/application/common/model/Redpacket.php index b5120ece..01992f7c 100644 --- a/application/common/model/Redpacket.php +++ b/application/common/model/Redpacket.php @@ -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(); diff --git a/application/common/service/RedpacketService.php b/application/common/service/RedpacketService.php index f497f155..dea1189f 100644 --- a/application/common/service/RedpacketService.php +++ b/application/common/service/RedpacketService.php @@ -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(); } diff --git a/application/cron/controller/PerformPerSecond.php b/application/cron/controller/PerformPerSecond.php index 74e55219..20c77f4d 100644 --- a/application/cron/controller/PerformPerSecond.php +++ b/application/cron/controller/PerformPerSecond.php @@ -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(); + } } } diff --git a/application/cron/controller/RoomHourRanking.php b/application/cron/controller/RoomHourRanking.php index 69aeb702..907355f7 100644 --- a/application/cron/controller/RoomHourRanking.php +++ b/application/cron/controller/RoomHourRanking.php @@ -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;