优化: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

@@ -4,6 +4,7 @@ namespace app\adminapi\controller;
use app\admin\model\AdminLog;
use app\common\controller\adminApi;
use app\common\library\GiftTableManager;
use think\Cache;
use think\Config;
use think\Db;
@@ -719,45 +720,58 @@ class Room extends adminApi
$type = input('type', 1);//1:全部流水 2:日流水 3:周流水 4:月流水
$stime = input('stime', '');
$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 == ''){
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()));
// 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];
}
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]];
$tables = GiftTableManager::getTablesByTimeRange(
strtotime($begin_time_table),
strtotime($end_time_table)
);
if(empty($tables)){
$tables[0] = "fa_vs_give_gift";
}
elseif ($type == 4){
$begin_time = strtotime(date('Y-m-01'));
$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')
$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')
@@ -766,7 +780,7 @@ class Room extends adminApi
->where('a.from_id',$room_id)
->where($where)
->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')
->join('user b', 'a.user_id = b.id', 'left')
->join('user c', 'a.gift_user = c.id', 'left')
@@ -794,7 +808,7 @@ class Room extends adminApi
'count' => $count,
'lists' => $list,
'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')
->where('a.from',2)
->where('a.from_id',$room_id)