diff --git a/application/adminapi/controller/Room.php b/application/adminapi/controller/Room.php index 2e5c234e..25f9a206 100644 --- a/application/adminapi/controller/Room.php +++ b/application/adminapi/controller/Room.php @@ -988,6 +988,9 @@ class Room extends adminApi ]; model('api/Chat')->sendMsg(1012,$room_id,$text); } + if($type_id == 9){ + $data['label_id'] = 6; + } $data['updatetime'] = time(); $res = db::name('vs_room')->where('id',$room_id)->update($data); if($res){ diff --git a/application/adminapi/controller/Statistical.php b/application/adminapi/controller/Statistical.php index d0736d7d..0613313e 100644 --- a/application/adminapi/controller/Statistical.php +++ b/application/adminapi/controller/Statistical.php @@ -711,33 +711,45 @@ class Statistical extends adminApi if($search_gift_bag_id > 0){ $where['a.gift_bag_id'] = $search_gift_bag_id; } - if(!empty($etime) && $etime<="1767038400"){//2025-12-30 04:00:00 + if(!empty($etime) && strtotime($etime)<="1767038400"){//2025-12-30 04:00:00 $tasks_bag_details = db::name('vs_gift_bag_receive_log') ->alias('a') - ->join('vs_gift_bag_detail b', 'a.parent_id=b.id') + ->join('vs_gift_bag_detail b', 'a.parent_id=b.id', 'INNER') ->field('a.createtime,b.type,b.foreign_id,b.quantity,b.gold') ->where(['b.type'=>['in', [1,2]]]) - ->where('a.gift_bag_id','>=',18) - ->where('a.gift_bag_id','<=',51) + ->whereBetween('a.gift_bag_id', [18, 51]) ->where($where) ->select(); }else{ $tasks_bag_details = db::name('vs_gift_bag_receive_tasks_log') ->alias('a') - ->join('vs_gift_bag_detail b', 'a.parent_id=b.id') + ->join('vs_gift_bag_detail b', 'a.parent_id=b.id', 'INNER') ->field('a.createtime,b.type,b.foreign_id,b.quantity,b.gold') ->where(['b.type'=>['in', [1,2]]]) - ->where('a.gift_bag_id','>=',18) - ->where('a.gift_bag_id','<=',51) + ->whereBetween('a.gift_bag_id', [18, 51]) ->where($where) ->select(); } $total_reward_price = 0; + // 批量获取礼物价格以减少数据库查询 + $gift_ids = []; + foreach ($tasks_bag_details as $detail) { + if($detail['type'] == 2) { + $gift_ids[] = $detail['foreign_id']; + } + } + + $gift_prices = []; + if (!empty($gift_ids)) { + $gifts = db::name('vs_gift')->where('gid', 'in', array_unique($gift_ids))->column('gift_price', 'gid'); + $gift_prices = $gifts ?: []; + } + foreach ($tasks_bag_details as $detail){ if($detail['type'] == 1){ $total_reward_price += $detail['gold'] * $detail['quantity']; }else{ - $gift_price = db::name('vs_gift')->where('gid',$detail['foreign_id'])->value('gift_price'); + $gift_price = isset($gift_prices[$detail['foreign_id']]) ? $gift_prices[$detail['foreign_id']] : 0; $total_reward_price += $gift_price * $detail['quantity']; } } diff --git a/application/api/model/GiftNew.php b/application/api/model/GiftNew.php index 8c25b6a8..66b704e5 100644 --- a/application/api/model/GiftNew.php +++ b/application/api/model/GiftNew.php @@ -105,6 +105,9 @@ class GiftNew extends Model }else{ foreach ($list as $key =>&$v) { $v['is_lock'] = $is_lock; + if($label==14){ //酒吧房自定义礼物 自定义 + $v['new_gift_name'] = db::name('vs_user_custom_gift')->where(['user_id' => $user_id,'gift_id'=>$v['gift_id'],'delete_time'=>0])->value('new_gift_name'); + } } } diff --git a/application/cron/controller/Test.php b/application/cron/controller/Test.php index 0fb5db33..ab605e64 100644 --- a/application/cron/controller/Test.php +++ b/application/cron/controller/Test.php @@ -29,6 +29,7 @@ class Test // $this->giftSend(); // $this->createGuildSubsidyDataNewNew(); +// $this->task_coin_count(); } @@ -964,4 +965,53 @@ class Test // $re = model('api/Decorate')->pay_decorate(20150,46,30,9); // print_r($re);die; } + + //任务金币统计 + public function task_coin_count(){ + $stime = "1766937600"; + $etime = "1767542400"; + //获取所有已领取的任务奖励礼包 + $where = []; + if(!empty($stime)){ + $where['a.createtime'] = ['>=', strtotime($stime)]; + } + if(!empty($etime)){ + $where['a.createtime'] = ['<=', strtotime($etime)]; + } + if(!empty($stime) && !empty($etime)){ + $where['a.createtime'] = ['between', [strtotime($stime), strtotime($etime)]]; + } + if(!empty($stime) && !empty($etime) && $etime<="1767038400"){//2025-12-30 04:00:00 + $tasks_bag_details = db::name('vs_gift_bag_receive_log') + ->alias('a') + ->join('vs_gift_bag_detail b', 'a.parent_id=b.id') + ->field('a.createtime,b.type,b.foreign_id,b.quantity,b.gold') + ->where(['b.type'=>['in', [1,2]]]) + ->where('a.gift_bag_id','>=',18) + ->where('a.gift_bag_id','<=',51) + ->where($where) + ->select(); + }else{ + $tasks_bag_details = db::name('vs_gift_bag_receive_tasks_log') + ->alias('a') + ->join('vs_gift_bag_detail b', 'a.parent_id=b.id') + ->field('a.createtime,b.type,b.foreign_id,b.quantity,b.gold') + ->where(['b.type'=>['in', [1,2]]]) + // ->where(['b.type'=>1]) + ->where('a.gift_bag_id','>=',18) + ->where('a.gift_bag_id','<=',51) + ->where($where) + ->select(); + } + $total_reward_price = 0; + foreach ($tasks_bag_details as $detail){ + if($detail['type'] == 1){ + $total_reward_price += $detail['gold'] * $detail['quantity']; + }else{ + $gift_price = db::name('vs_gift')->where('gid',$detail['foreign_id'])->value('gift_price'); + $total_reward_price += $gift_price * $detail['quantity']; + } + } + echo $total_reward_price; + } } \ No newline at end of file