$key, 'account_id' => $accountId, 'date' => $date, 'new_user_recharge_total' => $new_user_recharge_total ?: 0, 'new_user_recharge_num' => $new_user_recharge_num ?: 0, 'new_user_num' => $new_user_num ?: 0, 'recharge_coin_num' => $recharge_coin_num ?: 0, 'recharge_vip_num' => $recharge_vip_num ?: 0, ]; if ($new_user_num > 0 && $new_user_recharge_num > 0) { $data['recharge_rate'] = sprintf('%.2f%', ($new_user_recharge_num / $new_user_num) * 100); } else { $data['recharge_rate'] = 0; $data['recharge_mean'] = 0; } if ($new_user_recharge_total > 0 || $new_user_recharge_num > 0) { $data['recharge_mean'] = sprintf('%.2f', ($new_user_recharge_total / $new_user_recharge_num)); } else { $data['recharge_mean'] = 0; } return $data; } // 获取redis值 protected static function getValue($key, $field) { return Redis::hget($key, $field); } // 保存redis的值 protected static function setValue($key, $field, $value) { Redis::hset($key, $field, $value); } /** * 充值人数查询 * name: getRechargeUserNum * @param $accountId 账号id * @param $miniProgramId 小程序id * @param mixed $type 账号类型 2 投放公司 3 优化师 * date 2023/06/20 10:18 */ private static function getRechargeUserNum($accountId, $miniProgramId, mixed $type): array { $start = date("Y-m-d") . " 00:00:00"; $end = date("Y-m-d") . " 23:59:59"; // $start = "2023-05-31 00:00:00"; // $end = "2023-05-31 23:59:59"; if ($type == 2) { // 投放公司 $recharge_coin_num = DB::table('orders')->where('status', "<>", 'UNPAID') ->where('miniprogram_id', $miniProgramId) ->where('puser_id', $accountId)->whereBetween("created_at", [$start, $end]) ->whereBetween('ranse_created_at', [$start, $end]) ->where('order_type', 'COIN')->groupBy('uid', 'ranse_created_at')->count(); $recharge_vip_num = DB::table('orders')->where('status', "<>", 'UNPAID') ->where('miniprogram_id', $miniProgramId) ->where('puser_id', $accountId)->whereBetween("created_at",[ $start, $end]) ->whereBetween('ranse_created_at', [$start, $end]) ->where('order_type', '<>', 'COIN')->groupBy('uid', 'ranse_created_at')->count(); } elseif ($type == 3) { // 优化师 $recharge_coin_num = DB::table('orders')->where('status', "<>", 'UNPAID') ->where('miniprogram_id', $miniProgramId) ->where('user_id', $accountId)->whereBetween("created_at", [$start, $end]) ->whereBetween('ranse_created_at', [$start, $end]) ->where('order_type', 'COIN')->groupBy('uid', 'ranse_created_at')->count(); $recharge_vip_num = DB::table('orders')->where('status', "<>", 'UNPAID') ->where('miniprogram_id', $miniProgramId) ->where('user_id', $accountId)->whereBetween("created_at",[$start, $end]) ->whereBetween('ranse_created_at',[ $start, $end]) ->where('order_type', '<>', 'COIN')->groupBy('uid', 'ranse_created_at')->count(); } else { // 其他暂不统计 $recharge_coin_num = 0; $recharge_vip_num = 0; } return [$recharge_coin_num, $recharge_vip_num]; } }