优化:Give_Gift 表查询处理

This commit is contained in:
2026-01-13 14:01:57 +08:00
parent 74db686f47
commit 4eaa1efdbf
2 changed files with 56 additions and 36 deletions

View File

@@ -115,13 +115,19 @@ class Lottery extends adminApi
->sum('amount') ?: 0; ->sum('amount') ?: 0;
//最近中奖用户 //最近中奖用户
$last_winner_user_id = db::name('bb_lottery_winner_record')->where(['status'=>1])->order('id desc')->find(); $last_winner_user_id = db::name('bb_lottery_winner_record')->where(['status'=>1])->order('id desc')->find();
$last_winner_user_info = db::name('user')->where(['id'=>$last_winner_user_id['uid']])->find(); if($last_winner_user_id){
$last_winner_user_info = db::name('user')->where(['id'=>$last_winner_user_id['uid']])->find();
$last_winner_user_text = "用户ID:".$last_winner_user_info['user_code']." 获得 ".$last_winner_user_id['prize_amount']." 金币 ".$last_winner_user_id['ratio']."%)";
}else{
$last_winner_user_text = "";
}
//平台累计收入 //平台累计收入
$platform_total_income = db::name('bb_lottery_pool_flow')->where(['type'=>4])->sum('amount'); $platform_total_income = db::name('bb_lottery_pool_flow')->where(['type'=>4])->sum('amount');
$return_data=[ $return_data=[
'pool_progress' => $pool_progress_str, 'pool_progress' => $pool_progress_str,
'pool_amount_now' => ($bigAddGold)."金币 ".(($bigAddGold)/$bb_config['big_pool_threshold']['value'])."%)", 'pool_amount_now' => ($bigAddGold)."金币 ".(($bigAddGold)/$bb_config['big_pool_threshold']['value'])."%)",
'last_winner_user' => "用户ID:".$last_winner_user_info['user_code']." 获得 ".$last_winner_user_id['prize_amount']." 金币 ".$last_winner_user_id['ratio']."%)", 'last_winner_user' => $last_winner_user_text,
'platform_total_income' => $platform_total_income." 金币", 'platform_total_income' => $platform_total_income." 金币",
]; ];
return V(1,"成功", $return_data); return V(1,"成功", $return_data);

View File

@@ -4,6 +4,7 @@ namespace app\adminapi\controller;
use app\admin\model\AdminLog; use app\admin\model\AdminLog;
use app\common\controller\adminApi; use app\common\controller\adminApi;
use app\common\library\GiftTableManager;
use think\Cache; use think\Cache;
use think\Config; use think\Config;
use think\Db; use think\Db;
@@ -719,45 +720,58 @@ class Room extends adminApi
$type = input('type', 1);//1:全部流水 2:日流水 3:周流水 4:月流水 $type = input('type', 1);//1:全部流水 2:日流水 3:周流水 4:月流水
$stime = input('stime', ''); $stime = input('stime', '');
$etime = input('etime', ''); $etime = input('etime', '');
$firstDay = date('Y-m-01');
$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 == ''){ if($room_id == ''){
return V(0,"参数错误"); return V(0,"参数错误");
} }
if($type == 1){ // if($type == 1){
$begin_time = 1748676768;//2025-06-00 15:32:48 // $begin_time = 1748676768;//2025-06-00 15:32:48
$end_time = time(); // $end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]]; // $where['a.createtime'] = ['between', [$begin_time, $end_time]];
}elseif ($type == 2){ // }elseif ($type == 2){
//日流水 // //日流水
$begin_time = strtotime(date('Y-m-d 00:00:00',time())); // $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(); $end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_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];
} }
elseif ($type == 3){ $tables = GiftTableManager::getTablesByTimeRange(
//周流水 strtotime($begin_time_table),
//本周一 strtotime($end_time_table)
$begin_time = strtotime(date('Y-m-d 00:00:00', strtotime('this week'))); );
$end_time = time(); if(empty($tables)){
$where['a.createtime'] = ['between', [$begin_time, $end_time]]; $tables[0] = "fa_vs_give_gift";
} }
elseif ($type == 4){ $table_name = substr($tables[0], 3);//截取可查询的表名
$begin_time = strtotime(date('Y-m-01')); $count = db::name($table_name)->alias('a')
$end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}
if($stime != '' && $etime != ''){
$begin_time = strtotime($stime);
$end_time = strtotime($etime);
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}elseif($stime != '' && $etime == ''){
$begin_time = strtotime($stime);
$end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}elseif($etime != '' && $stime == ''){
$end_time = strtotime($etime);
$where['a.createtime'] = ['<=', $etime];
}
$count = db::name('vs_give_gift')->alias('a')
->field('a.id') ->field('a.id')
->join('user b', 'a.user_id = b.id', 'left') ->join('user b', 'a.user_id = b.id', 'left')
->join('user c', 'a.gift_user = c.id', 'left') ->join('user c', 'a.gift_user = c.id', 'left')
@@ -766,7 +780,7 @@ class Room extends adminApi
->where('a.from_id',$room_id) ->where('a.from_id',$room_id)
->where($where) ->where($where)
->count(); ->count();
$list = db::name('vs_give_gift')->alias('a') $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') ->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 b', 'a.user_id = b.id', 'left')
->join('user c', 'a.gift_user = c.id', 'left') ->join('user c', 'a.gift_user = c.id', 'left')
@@ -794,7 +808,7 @@ class Room extends adminApi
'count' => $count, 'count' => $count,
'lists' => $list, 'lists' => $list,
'total' =>[ 'total' =>[
'total_price' => db::name('vs_give_gift')->alias('a') 'total_price' => db::name($table_name)->alias('a')
->join('user b', 'a.user_id = b.id', 'left') ->join('user b', 'a.user_id = b.id', 'left')
->where('a.from',2) ->where('a.from',2)
->where('a.from_id',$room_id) ->where('a.from_id',$room_id)