优化: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;
//最近中奖用户
$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');
$return_data=[
'pool_progress' => $pool_progress_str,
'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." 金币",
];
return V(1,"成功", $return_data);

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)