From 3a120b55cbef69e65ce3f2ece40b772fa25add98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=92=8A?= Date: Sat, 17 Jan 2026 15:54:51 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/adminapi/controller/BlindBox.php | 8 +- application/adminapi/controller/Room.php | 112 +++++++------------ application/api/model/UserData.php | 15 +-- application/guildadmin/controller/Room.php | 94 ++++++++-------- 4 files changed, 104 insertions(+), 125 deletions(-) diff --git a/application/adminapi/controller/BlindBox.php b/application/adminapi/controller/BlindBox.php index 06f155fd..f51485b4 100644 --- a/application/adminapi/controller/BlindBox.php +++ b/application/adminapi/controller/BlindBox.php @@ -372,6 +372,8 @@ class BlindBox extends adminApi } $gift_id = input('gift_id', ''); $description = input('description', ''); + $status = input('status', 1); + $introd =$_POST['introd']??""; if(empty($gift_id)){ return V(0,"请配置礼物"); @@ -386,7 +388,10 @@ class BlindBox extends adminApi 'introd' => $introd, ]; $ext = json_encode($ext); - $res = db::name('vs_gift_bag')->where(['id'=>$gift_bag_id])->update(['ext'=>$ext]); + $res = db::name('vs_gift_bag')->where(['id'=>$gift_bag_id])->update([ + 'ext'=>$ext, + 'status' => $status, + ]); if($res){ return V(1,"成功"); }else{ @@ -406,6 +411,7 @@ class BlindBox extends adminApi 'gift_id' => $ext_data['gift_id'], 'description' => $ext_data['description'], 'introd' => stripcslashes($ext_data['introd']), + 'status' => $gift_bag['status'], ]; if($gift_bag){ return V(1,"成功",$ext); diff --git a/application/adminapi/controller/Room.php b/application/adminapi/controller/Room.php index c70f1dae..e0582908 100644 --- a/application/adminapi/controller/Room.php +++ b/application/adminapi/controller/Room.php @@ -725,94 +725,64 @@ class Room extends adminApi $lastDay = date('Y-m-t 23:59:59'); $begin_time_table = empty($stime) ? $firstDay : $stime; $end_time_table = empty($etime) ? $lastDay : $etime; - if($room_id == ''){ return V(0,"参数错误"); } -// if($type == 1){ -// $begin_time = 1748676768;//2025-06-00 15:32:48 -// $end_time = time(); -// $where['a.createtime'] = ['between', [$begin_time, $end_time]]; -// }elseif ($type == 2){ -// //日流水 -// $begin_time = strtotime(date('Y-m-d 00:00:00',time())); -// $end_time = time(); -// $where['a.createtime'] = ['between', [$begin_time, $end_time]]; -// } -// elseif ($type == 3){ -// //周流水 -// //本周一 -// $begin_time = strtotime(date('Y-m-d 00:00:00', strtotime('this week'))); -// $end_time = time(); -// $where['a.createtime'] = ['between', [$begin_time, $end_time]]; -// } -// elseif ($type == 4){ -// $begin_time = strtotime(date('Y-m-01')); -// $end_time = time(); -// $where['a.createtime'] = ['between', [$begin_time, $end_time]]; -// } - if($begin_time_table != '' && $end_time_table != ''){ - $begin_time = strtotime($begin_time_table); - $end_time = strtotime($end_time_table); - $where['a.createtime'] = ['between', [$begin_time, $end_time]]; - }elseif($begin_time_table != '' && $end_time_table == ''){ - $begin_time = strtotime($begin_time_table); - $end_time = time(); - $where['a.createtime'] = ['between', [$begin_time, $end_time]]; - }elseif($begin_time_table != '' && $end_time_table == ''){ - $end_time = strtotime($end_time_table); - $where['a.createtime'] = ['<=', $end_time]; + + $params['from_id'] = $room_id; + $ext_params['start_time'] = strtotime($begin_time_table); + $ext_params['end_time'] = strtotime($end_time_table); + $params['page'] = $page; + $params['limit'] = $page_limit; + $res = model('api/GiveGiftBases')->getGiftRecords($params,$ext_params); + $list = $res['data']; + $count = $res['total']; + $list_data = []; + foreach ($list as &$value) { + $value['time'] = date('Y-m-d', $value['createtime']); + $value['sender_nickname'] = db::name('user')->where('id', $value['user_id'])->value('nickname'); + $value['sender_avatar'] = db::name('user')->where('id', $value['user_id'])->value('avatar'); + $value['receive_nickname'] = db::name('user')->where('id', $value['gift_user'])->value('nickname'); + $value['receive_avatar'] = db::name('user')->where('id', $value['gift_user'])->value('avatar'); + $value['gift_name'] = db::name('vs_gift')->where('gid', $value['gift_id'])->value('gift_name'); + } + if($list){ + foreach ($list as &$v){ + $v['createtime'] = date('Y-m-d H:i:s',$v['createtime']); + $v['content'] = $v['sender_nickname'].' 给 '.$v['receive_nickname'].' 送了 '.$v['gift_name'].' x '.$v['number']; + // 来源:1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 + $v['from_str'] = model('adminapi/Gift')->GiveGiftFromStr[$v['from']]; + } + } + $where =[]; + $where['createtime'] = ['between', [strtotime($begin_time_table), strtotime($end_time_table)]]; + $all_total_price = 0; $tables = GiftTableManager::getTablesByTimeRange( strtotime($begin_time_table), strtotime($end_time_table) ); - if(empty($tables)){ - $tables[0] = "fa_vs_give_gift"; - } - $table_name = substr($tables[0], 3);//截取可查询的表名 - $count = db::name($table_name)->alias('a') - ->field('a.id') - ->join('user b', 'a.user_id = b.id', 'left') - ->join('user c', 'a.gift_user = c.id', 'left') - ->join('vs_gift d', 'a.gift_id = d.gid', 'left') - ->where('a.from',2) - ->where('a.from_id',$room_id) - ->where($where) - ->count(); - $list = db::name($table_name)->alias('a') - ->field('a.number,a.createtime,a.total_price,a.type,b.nickname,b.avatar,c.nickname as gift_nickname,c.avatar as gift_avatar,d.gift_name,a.from,a.from_id') - ->join('user b', 'a.user_id = b.id', 'left') - ->join('user c', 'a.gift_user = c.id', 'left') - ->join('vs_gift d', 'a.gift_id = d.gid', 'left') - ->where('a.from',2) - ->where('a.from_id',$room_id) - ->where($where) - ->order('a.id desc') - ->page($page, $page_limit) - ->select(); - if($list){ - foreach ($list as &$v){ - $v['createtime'] = date('Y-m-d H:i:s',$v['createtime']); - $v['content'] = $v['nickname'].' 给 '.$v['gift_nickname'].' 送了 '.$v['gift_name'].' x '.$v['number']; - // 来源:1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 - $v['from_str'] = model('Gift')->GiveGiftFromStr[$v['from']]; - + if($tables){ + foreach ($tables as $table_name){ + //表前缀 + $table_prefix = config('database.prefix'); + $table_name = str_replace($table_prefix, '', $table_name); + $total_price = db::name($table_name) + ->where('from',2) + ->where('from_id',$room_id) + ->where($where)->sum('total_price'); + $all_total_price += $total_price; } } //幸运流水总计 - $total_lucky_coin = db::name('vs_room_luck_value')->alias('a')->where('room_id',$room_id)->where($where)->sum('luck_value'); + $total_lucky_coin = db::name('vs_room_luck_value')->where('room_id',$room_id)->where($where)->sum('luck_value'); $return_data = [ 'page' =>$page, 'page_limit' => $page_limit, 'count' => $count, 'lists' => $list, 'total' =>[ - 'total_price' => db::name($table_name)->alias('a') - ->join('user b', 'a.user_id = b.id', 'left') - ->where('a.from',2) - ->where('a.from_id',$room_id) - ->where($where)->sum('total_price'), + 'total_price' => $all_total_price, 'total_lucky_coin' => $total_lucky_coin, ] ]; diff --git a/application/api/model/UserData.php b/application/api/model/UserData.php index 66879061..18bce103 100644 --- a/application/api/model/UserData.php +++ b/application/api/model/UserData.php @@ -592,17 +592,18 @@ class UserData extends Model public function bind_xinxi($user_id,$type,$alipay_account,$bank_card_number,$bank_user_name,$bank_card,$open_bank) { //查询是否实名认证 - $is_real = model('UserData')->real_name_info($user_id); - if($is_real['code']==0){ + $mobile = db::name('user')->where(['id' => $user_id])->value('mobile'); + $is_real = db::name('user_auth')->where('mobile' , $mobile)->field('real_name,card_id,is_real,mobile')->find(); + if(empty($is_real)){ return ['code' => 0, 'msg' => '请先实名认证','data' => null]; - }else{ - if($is_real['data']['is_real'] !=1){ - return ['code' => 0, 'msg' => '请先实名认证','data' => null]; + }else { + if ($is_real['is_real'] != 1) { + return ['code' => 0, 'msg' => '请先实名认证', 'data' => null]; } } if($type == 2){ $data = [ - 'alipay_name' => $is_real['data']['real_name'],// 姓名 + 'alipay_name' => $is_real['real_name'],// 姓名 'alipay_account' => $alipay_account,// 支付宝账号 ]; $reslut = db::name('user_data')->where('user_id',$user_id)->update($data); @@ -626,7 +627,7 @@ class UserData extends Model } $data = [ 'bank_card_number' => $bank_card_number, - 'bank_user_name' => $bank_user_name ? $bank_user_name : $is_real['data']['real_name'], + 'bank_user_name' => $bank_user_name ? $bank_user_name : $is_real['real_name'], 'bank_card' => $bank_card, 'open_bank' => $open_bank, ]; diff --git a/application/guildadmin/controller/Room.php b/application/guildadmin/controller/Room.php index bb686934..7f19c8f9 100644 --- a/application/guildadmin/controller/Room.php +++ b/application/guildadmin/controller/Room.php @@ -3,6 +3,7 @@ namespace app\guildadmin\controller; use app\admin\command\Menu; +use app\common\library\GiftTableManager; use app\guildadmin\model\AuthGroup; use app\guildadmin\model\AuthGroupAccess; use app\guildadmin\model\AuthRule; @@ -323,75 +324,76 @@ class Room extends GuildAdmin //房间流水 public function room_flow() { + $guild_id = $this->guildId ?? 0; $room_id = input('room_id', ''); $page = input('page', 1); $page_limit = input('page_limit', 10); $type = input('type', 1);//1:全部流水 2:日流水 3:周流水 4:月流水 + $stime = input('stime', ''); + $etime = input('etime', ''); if($room_id == ''){ return V(0,"参数错误"); } - if($type == 1){ - $begin_time = 1748676768;//2025-06-00 15:32:48 - $end_time = time(); - $where['a.createtime'] = ['between', [$begin_time, $end_time]]; - }elseif ($type == 2){ - //日流水 - $begin_time = strtotime(date('Y-m-d 00:00:00',time())); - $end_time = time(); - $where['a.createtime'] = ['between', [$begin_time, $end_time]]; + $begin_time = $stime ? strtotime($stime) : ""; + $end_time = $etime ? strtotime($etime) : ""; + if($guild_id){ + $guild_user_data = db::name('vs_guild_user')->where('guild_id', $guild_id)->where(['apply_time'=>['>',0],'status'=>1,'room_id'=>$room_id])->field('room_id,apply_time,quit_time')->find(); + if($guild_user_data){ + if($guild_user_data['apply_time'] && $begin_time < $guild_user_data['apply_time']){ + $begin_time = $guild_user_data['apply_time']; + } + if($guild_user_data['quit_time'] && ($end_time > $guild_user_data['quit_time'])){ + $end_time = $guild_user_data['quit_time']; + } + } } - elseif ($type == 3){ - //周流水 - //本周一 - $begin_time = strtotime(date('Y-m-d 00:00:00', strtotime('this week'))); - $end_time = time(); - $where['a.createtime'] = ['between', [$begin_time, $end_time]]; + $params['from_id'] = $room_id; + $ext_params['start_time'] = $begin_time; + $ext_params['end_time'] = $end_time; + $params['page'] = $page; + $params['limit'] = $page_limit; + $res = model('api/GiveGiftBases')->getGiftRecords($params,$ext_params); + $list = $res['data']; + $count = $res['total']; + $list_data = []; + foreach ($list as &$value) { + $value['time'] = date('Y-m-d', $value['createtime']); + $value['sender_nickname'] = db::name('user')->where('id', $value['user_id'])->value('nickname'); + $value['sender_avatar'] = db::name('user')->where('id', $value['user_id'])->value('avatar'); + $value['receive_nickname'] = db::name('user')->where('id', $value['gift_user'])->value('nickname'); + $value['receive_avatar'] = db::name('user')->where('id', $value['gift_user'])->value('avatar'); + $value['gift_name'] = db::name('vs_gift')->where('gid', $value['gift_id'])->value('gift_name'); + } - elseif ($type == 4){ - $begin_time = strtotime(date('Y-m-01')); - $end_time = time(); - $where['a.createtime'] = ['between', [$begin_time, $end_time]]; - } - $count = db::name('vs_give_gift')->alias('a') - ->field('a.id') - ->join('user b', 'a.user_id = b.id', 'left') - ->join('user c', 'a.gift_user = c.id', 'left') - ->join('vs_gift d', 'a.gift_id = d.gid', 'left') - ->where('a.from',2) - ->where('a.from_id',$room_id) - ->where($where) - ->count(); - $list = db::name('vs_give_gift')->alias('a') - ->field('a.number,a.createtime,a.total_price,a.type,b.nickname,b.avatar,c.nickname as gift_nickname,c.avatar as gift_avatar,d.gift_name,a.from,a.from_id') - ->join('user b', 'a.user_id = b.id', 'left') - ->join('user c', 'a.gift_user = c.id', 'left') - ->join('vs_gift d', 'a.gift_id = d.gid', 'left') - ->where('a.from',2) - ->where('a.from_id',$room_id) - ->where($where) - ->order('a.id desc') - ->page($page, $page_limit) - ->select(); if($list){ foreach ($list as &$v){ $v['createtime'] = date('Y-m-d H:i:s',$v['createtime']); - $v['content'] = $v['nickname'].' 给 '.$v['gift_nickname'].' 送了 '.$v['gift_name'].' x '.$v['number']; + $v['content'] = $v['sender_nickname'].' 给 '.$v['receive_nickname'].' 送了 '.$v['gift_name'].' x '.$v['number']; // 来源:1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 $v['from_str'] = model('adminapi/Gift')->GiveGiftFromStr[$v['from']]; } } + $where =[]; + $where_luck = []; + $where['room_id'] = $room_id; + if($guild_id){ + $where['guild_id'] = $guild_id; + } + if($begin_time && $end_time){ + $where['createtime'] = ['between', [$begin_time, $end_time]]; + $where_luck['createtime'] = ['between', [$begin_time, $end_time]]; + } + $gift_total_price = db::name('vs_guild_flow')->where($where)->sum('flow_price'); + $total_lucky_coin = db::name('vs_room_luck_value')->where('room_id',$room_id)->where($where_luck)->sum('luck_value'); $return_data = [ 'page' =>$page, 'page_limit' => $page_limit, 'count' => $count, 'lists' => $list, 'total' =>[ - 'total_price' => db::name('vs_give_gift')->alias('a') - ->join('user b', 'a.user_id = b.id', 'left') - ->where('a.from',2) - ->where('a.from_id',$room_id) - ->where($where)->sum('total_price') + 'total_price' => $gift_total_price, + 'total_lucky_coin' => $total_lucky_coin ] ]; return V(1,"成功", $return_data);