daily_statistics(); echo "每日12点统计用户数据结束 \n"; } /* * 每日12点统计用户数据 */ public function daily_statistics(){ echo date('Y-m-d')."每日统计开始:\n"; $time = strtotime(date('Y-m-d')); $stime = strtotime(date('Y-m-d')); $etime = strtotime(date('Y-m-d 23:59:59')); $user_list = Db::name('user_wallet')->select(); foreach ($user_list as $k=>$v){ $gift_pack = Db::name('vs_user_gift_pack')->field('gid,num')->where(['user_id'=>$v['user_id'],'is_tester'=>1])->select(); $gift_pack_price = 0; foreach ($gift_pack as $key=>$val){ $gift_pack_price += Db::name('vs_gift')->where(['gid'=>$val['gid'],])->value('gift_price')*$val['num']; } //用户房间今日总流水 //用户房间id $room_id = db::name('vs_room')->where('user_id', $v['user_id'])->value('id'); $transaction = 0; if($room_id){ $transaction = db::name('vs_give_gift') ->where('from_id',$room_id) ->where('from',2) ->whereBetween('createtime', [$stime, $etime]) ->sum('total_price'); } //公会流水 $guild_flow_price = 0; $guild_id = db::name('vs_guild')->where(['user_id'=>$v['user_id'],'status'=>1,'delete_time'=>0])->value('id'); if($guild_id){ $guild_flow_price= db::name('vs_guild_flow')->where('guild_id', $guild_id)->where('day', date('Y-m-d',$time))->sum('flow_price'); } //充值金额 $recharge_price = db::name('vs_user_recharge') ->where('user_id', $v['user_id']) ->where('pay_status',2) ->whereBetween('pay_time', [$stime, $etime]) ->sum('money'); //提现 $withdraw_price = db::name('vs_user_withdrawal') ->where('user_id', $v['user_id']) ->whereIn('status',[2,6]) ->whereBetween('createtime', [$stime, $etime]) ->sum('money'); $data = [ 'user_id'=>$v['user_id']??0, 'coin'=>$v['coin']??0, 'earnings'=>$v['earnings']??0, 'gift_pack_price'=>$gift_pack_price??0, 'room_flow_price'=>$transaction??0, 'guild_flow_price'=>$guild_flow_price??0, 'recharge_price'=>$recharge_price??0, 'withdraw_price'=>$withdraw_price??0, 'day'=>date('Y-m-d',$time), 'createtime'=>$time, ]; Db::name('vs_app_today_statistical')->insert($data); } echo date('Y-m-d')."每日统计结束 用户数量".count($user_list)." \n"; } }