From a3f63277390c870913d4b8bccba62c1396d880b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=92=8A?= Date: Mon, 5 Jan 2026 20:44:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=92=E5=90=A7=E6=88=BF=EF=BC=9A->=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3=E6=8F=90=E4=BA=A4-bug=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/GiftNew.php | 2 +- application/cron/controller/Subsidy.php | 126 +++++++++++++++++------- 2 files changed, 93 insertions(+), 35 deletions(-) diff --git a/application/api/model/GiftNew.php b/application/api/model/GiftNew.php index ca440d5c..0c3a5aca 100644 --- a/application/api/model/GiftNew.php +++ b/application/api/model/GiftNew.php @@ -144,7 +144,7 @@ class GiftNew extends Model ->alias('a') ->join('vs_gift b','a.gift_id = b.gid') ->field('a.id,b.gid as gift_id,a.new_gift_name,b.gift_name,b.base_image,b.gift_price,b.icon') - ->where(['a.user_id' => $user_id,'a.delete_time'=>0]) + ->where(['a.user_id' => $user_id,'a.delete_time'=>0,'a.new_gift_name'=>['<>','']]) ->order('a.sort desc ,a.updatetime desc') ->select(); return ['code' => 1, 'msg' => '获取成功','data' =>$list]; diff --git a/application/cron/controller/Subsidy.php b/application/cron/controller/Subsidy.php index 329a53e2..f02dd596 100644 --- a/application/cron/controller/Subsidy.php +++ b/application/cron/controller/Subsidy.php @@ -31,13 +31,92 @@ class Subsidy * 配置:定时脚本每周一 执行 * 配置:/cron/Subsidy/createGuildSubsidyData */ +// public function createGuildSubsidyData(){ +// //获取上周第一天时间 +// $week_start_time = strtotime('last week Monday'); +// $week_end_time = strtotime(date('Y-m-d 23:59:59',strtotime('last week Sunday'))); +//// $week_start_time = strtotime('2025-09-29'); +//// $week_end_time = strtotime('2025-09-29 23:59:59'); +// +// //获取上周时间 +// $time_value = date('o-W', $week_start_time); +// echo $time_value . "工会周补贴数据生成开始\n"; +// //查询所有工会 +// $guild_list = db::name('vs_guild')->where(['delete_time'=>0])->field('id')->select(); +// $data_count = 0; +// foreach ($guild_list as $key => $value) { +// //获取所有工会房间ID +// $guild_user_data = db::name('vs_guild_user')->where('guild_id', $value['id'])->where(['apply_time'=>['>',0],'status'=>1,'room_id'=>['>',0]])->field('room_id,apply_time,quit_time')->select(); +// $transaction = 0; +// foreach ($guild_user_data as $k => $v) { +// $week_start_time_seach = $week_start_time; +// $week_end_time_seach = $week_end_time; +// if($v['apply_time'] && $week_end_time_seach < $v['apply_time']){ +// continue; +// } +// if($v['quit_time'] && $v['quit_time'] < $week_start_time_seach){ +// continue; +// } +// if($v['apply_time'] && $week_start_time_seach < $v['apply_time']){ +// $week_start_time_seach = $v['apply_time']; +// } +// if($v['quit_time'] && ($week_end_time_seach > $v['quit_time'])){ +// $week_end_time_seach = $v['quit_time']; +// } +// $transaction_one = db::name('vs_give_gift') +// ->whereIn('from_id',$v['room_id']) +// ->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$week_start_time_seach, $week_end_time_seach]]]) +// ->sum('total_price'); +// $transaction += $transaction_one; +// } +// +// if($transaction > 0){ +// //判断是否已经生成过 +// if (db::name('vs_guild_subsidy')->where(['guild_id'=>$value['id'],'week'=>$time_value])->find()) { +// continue; +// } +// //获取补贴配置 +// $config = db::name('vs_guild_subsidy_config')->where(['status' => 1])->order('end_amount desc')->select(); //配置查询 +// if (!$config) { +// echo '补贴配置为空\n'; +// die; +// } +// $subsidy_ratio = 0; +// $subsidy_amount = 0; +// foreach ($config as $k => $v) { +// if ($transaction >= $v['end_amount']) { +// $subsidy_ratio = $v['subsidy_ratio']; +// $subsidy_amount = ($transaction * ($subsidy_ratio / 100)) / get_system_config_value('rmb_coin_ratio');//转为钻石 +// break; // 找到匹配项后提前退出循环 +// } +// } +// //生成补贴数据 +// $data = [ +// 'guild_id' => $value['id'], +// 'week' => $time_value, +// 'start_time' => date('Y-m-d H:i:s', $week_start_time), +// 'end_time' =>date('Y-m-d H:i:s', $week_end_time), +// 'total_transaction' => $transaction, +// 'subsidy_amount' => $subsidy_amount, +// 'subsidy_ratio' => $subsidy_ratio, +// 'status' => 0, +// 'createtime' => time(), +// ]; +// // echo "工会".$value['id']."生成数据:流水金额:{$transaction} 补贴比例:{$subsidy_ratio}% 补贴金额:{$subsidy_amount}\n"; +// $subsidy_id = Db::name('vs_guild_subsidy')->insertGetId($data); +// if ($subsidy_id) { +// echo "工会".$value['id']."生成成功(补贴ID:".$subsidy_id." 补贴金额:".$subsidy_amount.")\n"; +// $data_count++; +// } +// } +// } +// echo $time_value . "工会周补贴数据生成完成-共" . $data_count . "条数据\n"; +// } + public function createGuildSubsidyData(){ //获取上周第一天时间 $week_start_time = strtotime('last week Monday'); $week_end_time = strtotime(date('Y-m-d 23:59:59',strtotime('last week Sunday'))); -// $week_start_time = strtotime('2025-09-29'); -// $week_end_time = strtotime('2025-09-29 23:59:59'); - //获取上周时间 $time_value = date('o-W', $week_start_time); echo $time_value . "工会周补贴数据生成开始\n"; @@ -45,31 +124,10 @@ class Subsidy $guild_list = db::name('vs_guild')->where(['delete_time'=>0])->field('id')->select(); $data_count = 0; foreach ($guild_list as $key => $value) { - //获取所有工会房间ID - $guild_user_data = db::name('vs_guild_user')->where('guild_id', $value['id'])->where(['apply_time'=>['>',0],'status'=>1,'room_id'=>['>',0]])->field('room_id,apply_time,quit_time')->select(); - $transaction = 0; - foreach ($guild_user_data as $k => $v) { - $week_start_time_seach = $week_start_time; - $week_end_time_seach = $week_end_time; - if($v['apply_time'] && $week_end_time_seach < $v['apply_time']){ - continue; - } - if($v['quit_time'] && $v['quit_time'] < $week_start_time_seach){ - continue; - } - if($v['apply_time'] && $week_start_time_seach < $v['apply_time']){ - $week_start_time_seach = $v['apply_time']; - } - if($v['quit_time'] && ($week_end_time_seach > $v['quit_time'])){ - $week_end_time_seach = $v['quit_time']; - } - $transaction_one = db::name('vs_give_gift') - ->whereIn('from_id',$v['room_id']) - ->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$week_start_time_seach, $week_end_time_seach]]]) - ->sum('total_price'); - $transaction += $transaction_one; - } - + $transaction = Db::name('vs_guild_flow') + ->where(['guild_id' => $value['id']]) + ->where(['createtime' => ['between', [$week_start_time, $week_end_time]]]) + ->sum('flow_price'); if($transaction > 0){ //判断是否已经生成过 if (db::name('vs_guild_subsidy')->where(['guild_id'=>$value['id'],'week'=>$time_value])->find()) { @@ -102,12 +160,12 @@ class Subsidy 'status' => 0, 'createtime' => time(), ]; - // echo "工会".$value['id']."生成数据:流水金额:{$transaction} 补贴比例:{$subsidy_ratio}% 补贴金额:{$subsidy_amount}\n"; - $subsidy_id = Db::name('vs_guild_subsidy')->insertGetId($data); - if ($subsidy_id) { - echo "工会".$value['id']."生成成功(补贴ID:".$subsidy_id." 补贴金额:".$subsidy_amount.")\n"; - $data_count++; - } +// echo "工会".$value['id']."生成数据:流水金额:{$transaction} 补贴比例:{$subsidy_ratio}% 补贴金额:{$subsidy_amount}\n"; + $subsidy_id = Db::name('vs_guild_subsidy_1')->insertGetId($data); + if ($subsidy_id) { + echo "工会".$value['id']."生成成功(补贴ID:".$subsidy_id." 补贴金额:".$subsidy_amount.")\n"; + $data_count++; + } } } echo $time_value . "工会周补贴数据生成完成-共" . $data_count . "条数据\n";