|
|
@@ -830,160 +830,350 @@ class AnalyseLogic extends BaseLogic
|
|
|
public function getPaySuccessRate($where)
|
|
|
{
|
|
|
$params = $this->searchByAuth($where);
|
|
|
-
|
|
|
$whereRaw = $this->getCommonWhereRaw($params);
|
|
|
-
|
|
|
$type = $params['type'] ?? 'day';
|
|
|
|
|
|
+ if ($type == 'day') {
|
|
|
+ return $this->getPaySuccessRateByDay($whereRaw);
|
|
|
+ } elseif ($type == 'week') {
|
|
|
+ return $this->getPaySuccessRateByWeek($whereRaw);
|
|
|
+ }
|
|
|
|
|
|
- // 对比今日和昨日的支付成功率,
|
|
|
- if($type == 'day'){
|
|
|
- $today = date('Y-m-d');
|
|
|
- $yesterday = date('Y-m-d', strtotime('-1 day'));
|
|
|
- $todayWhereRaw = $whereRaw . " AND pay_time BETWEEN '".strtotime($today . " 00:00:00")."' AND '".strtotime($today . " 23:59:59")."'";
|
|
|
- $yesterdayWhereRaw = $whereRaw . " AND pay_time BETWEEN '".strtotime($yesterday . " 00:00:00")."' AND '".strtotime($yesterday . " 23:59:59")."'";
|
|
|
-
|
|
|
-
|
|
|
- // 今日总下单量
|
|
|
- $todayOrderNumData = Db::connect('db_game_log')->query("
|
|
|
- SELECT Count(*) as order_num, pay_time
|
|
|
- FROM sdk_order_success
|
|
|
- WHERE {$todayWhereRaw}
|
|
|
- group by pay_time
|
|
|
- ");
|
|
|
-
|
|
|
- // 今日总支付量
|
|
|
- $todayPaySuccessData = Db::connect('db_game_log')->query("
|
|
|
- SELECT Count(*) as pay_num, pay_time
|
|
|
- FROM sdk_order_success
|
|
|
- WHERE {$todayWhereRaw} AND sync_status = 1
|
|
|
- group by pay_time
|
|
|
- ");
|
|
|
-
|
|
|
- // 初始化24小时的数组(0-23)
|
|
|
- $todayOrderNumDataMap = [];
|
|
|
- $todayPaySuccessDataMap = [];
|
|
|
- for ($hour = 0; $hour < 24; $hour++) {
|
|
|
- $hourKey = str_pad($hour, 2, '0', STR_PAD_LEFT);
|
|
|
- $todayOrderNumDataMap[$hourKey] = 0;
|
|
|
- $todayPaySuccessDataMap[$hourKey] = 0;
|
|
|
- }
|
|
|
-
|
|
|
- // 新总下单量按小时分组
|
|
|
- foreach($todayOrderNumData as $item){
|
|
|
- $hourKey = date('H', $item['pay_time']);
|
|
|
- $todayOrderNumDataMap[$hourKey] = $item['order_num'];
|
|
|
- }
|
|
|
- // 新总支付量按小时分组
|
|
|
- foreach($todayPaySuccessData as $item){
|
|
|
- $hourKey = date('H', $item['pay_time']);
|
|
|
- $todayPaySuccessDataMap[$hourKey] = $item['pay_num'];
|
|
|
- }
|
|
|
+ return [];
|
|
|
+ }
|
|
|
|
|
|
- // 计算今日支付成功率
|
|
|
- $todayPaySuccessRateArr = [];
|
|
|
- foreach($todayOrderNumDataMap as $key => $value){
|
|
|
- $paySuccessNum = $todayPaySuccessDataMap[$key] ?? 0;
|
|
|
- $todayPaySuccessRateArr[] = $value > 0 ? getRound($paySuccessNum, $value) : 0;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- // 昨日总下单量
|
|
|
- $yesterdayOrderNumData = Db::connect('db_game_log')->query("
|
|
|
- SELECT Count(*) as order_num, pay_time
|
|
|
- FROM sdk_order_success
|
|
|
- WHERE {$yesterdayWhereRaw}
|
|
|
- group by pay_time
|
|
|
- ");
|
|
|
-
|
|
|
-
|
|
|
- // 昨日总支付量
|
|
|
- $yesterdayPaySuccessData = Db::connect('db_game_log')->query("
|
|
|
- SELECT Count(*) as pay_num, pay_time
|
|
|
- FROM sdk_order_success
|
|
|
- WHERE {$yesterdayWhereRaw} AND sync_status = 1
|
|
|
- group by pay_time
|
|
|
- ");
|
|
|
-
|
|
|
- // 初始化24小时的数组(0-23)
|
|
|
- $yesterdayOrderNumDataMap = [];
|
|
|
- $yesterdayPaySuccessDataMap = [];
|
|
|
- for ($hour = 0; $hour < 24; $hour++) {
|
|
|
- $hourKey = str_pad($hour, 2, '0', STR_PAD_LEFT);
|
|
|
- $yesterdayOrderNumDataMap[$hourKey] = 0;
|
|
|
- $yesterdayPaySuccessDataMap[$hourKey] = 0;
|
|
|
- }
|
|
|
-
|
|
|
- // 昨日总下单量按小时分组
|
|
|
- foreach($yesterdayOrderNumData as $item){
|
|
|
- $hourKey = date('H', $item['pay_time']);
|
|
|
- $yesterdayOrderNumDataMap[$hourKey] = $item['order_num'];
|
|
|
- }
|
|
|
- // 昨日总支付量按小时分组
|
|
|
- foreach($yesterdayPaySuccessData as $item){
|
|
|
- $hourKey = date('H', $item['pay_time']);
|
|
|
- $yesterdayPaySuccessDataMap[$hourKey] = $item['pay_num'];
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 按天对比支付成功率(今天vs昨天,按小时分组)
|
|
|
+ */
|
|
|
+ private function getPaySuccessRateByDay($whereRaw)
|
|
|
+ {
|
|
|
+ $today = date('Y-m-d');
|
|
|
+ $yesterday = date('Y-m-d', strtotime('-1 day'));
|
|
|
+
|
|
|
+ $currentStartTime = strtotime($today . " 00:00:00");
|
|
|
+ $currentEndTime = strtotime($today . " 23:59:59");
|
|
|
+ $lastStartTime = strtotime($yesterday . " 00:00:00");
|
|
|
+ $lastEndTime = strtotime($yesterday . " 23:59:59");
|
|
|
+
|
|
|
+ // 获取当前周期和上一周期的数据
|
|
|
+ $currentData = $this->getPayDataByTimeRange($whereRaw, $currentStartTime, $currentEndTime);
|
|
|
+ $lastData = $this->getPayDataByTimeRange($whereRaw, $lastStartTime, $lastEndTime);
|
|
|
+
|
|
|
+ // 初始化24小时数据
|
|
|
+ $currentOrderMap = $this->initHourlyData();
|
|
|
+ $currentPayMap = $this->initHourlyData();
|
|
|
+ $lastOrderMap = $this->initHourlyData();
|
|
|
+ $lastPayMap = $this->initHourlyData();
|
|
|
+
|
|
|
+ // 填充数据(按小时)
|
|
|
+ $this->fillDataByHour($currentData['orderData'], $currentOrderMap);
|
|
|
+ $this->fillDataByHour($currentData['payData'], $currentPayMap);
|
|
|
+ $this->fillDataByHour($lastData['orderData'], $lastOrderMap);
|
|
|
+ $this->fillDataByHour($lastData['payData'], $lastPayMap);
|
|
|
+
|
|
|
+ // 计算成功率
|
|
|
+ $currentRateArr = $this->calculateSuccessRate($currentOrderMap, $currentPayMap);
|
|
|
+ $lastRateArr = $this->calculateSuccessRate($lastOrderMap, $lastPayMap);
|
|
|
+
|
|
|
+ // 生成X轴数据(小时)
|
|
|
+ $xAxisData = $this->generateHourlyXAxisData();
|
|
|
+
|
|
|
+ // 计算成功率变化
|
|
|
+ $successRateChange = $this->calculateRateChange($currentRateArr, $lastRateArr);
|
|
|
+
|
|
|
+ // 生成表格数据
|
|
|
+ $tableData = $this->generateDayTableData(
|
|
|
+ $currentOrderMap,
|
|
|
+ $currentPayMap,
|
|
|
+ $currentRateArr,
|
|
|
+ $lastOrderMap,
|
|
|
+ $lastPayMap,
|
|
|
+ $lastRateArr,
|
|
|
+ $successRateChange
|
|
|
+ );
|
|
|
+
|
|
|
+ $currentOrderNum = array_sum($currentOrderMap);
|
|
|
+ $currentPaySuccessNum = array_sum($currentPayMap);
|
|
|
+ $paySuccessRate = $currentOrderNum > 0 ? getRound($currentPaySuccessNum, $currentOrderNum) : 0;
|
|
|
|
|
|
- // 计算昨日支付成功率
|
|
|
- $yesterdayPaySuccessRateArr = [];
|
|
|
- foreach($yesterdayOrderNumDataMap as $key => $value){
|
|
|
- $paySuccessNum = $yesterdayPaySuccessDataMap[$key] ?? 0;
|
|
|
- $yesterdayPaySuccessRateArr[] = $value > 0 ? getRound($paySuccessNum, $value) : 0;
|
|
|
- }
|
|
|
+ return [
|
|
|
+ 'PaySuccessRateArr' => $currentRateArr,
|
|
|
+ 'OldPaySuccessRateArr' => $lastRateArr,
|
|
|
+ 'orderNum' => $currentOrderNum,
|
|
|
+ 'successNum' => $currentPaySuccessNum,
|
|
|
+ 'paySuccessRate' => $paySuccessRate,
|
|
|
+ 'xAxisData' => $xAxisData,
|
|
|
+ 'successRateChange' => $successRateChange,
|
|
|
+ 'data' => $tableData
|
|
|
+ ];
|
|
|
+ }
|
|
|
|
|
|
- // 今日总下单量
|
|
|
- $todayOrderNum = array_sum($todayOrderNumDataMap);
|
|
|
- // 今日支付成功量
|
|
|
- $todayPaySuccessNum = array_sum($todayPaySuccessDataMap);
|
|
|
- // 今日支付成功率
|
|
|
- $paySuccessRate = getRound($todayPaySuccessNum, $todayOrderNum);
|
|
|
- // xAxis.data
|
|
|
- $xAxisData = [];
|
|
|
- for ($hour = 0; $hour < 24; $hour++) {
|
|
|
- $xAxisData[] = str_pad($hour, 2, '0', STR_PAD_LEFT) . ":00-" . str_pad($hour + 1, 2, '0', STR_PAD_LEFT) . ":00";
|
|
|
- if($hour == 23){
|
|
|
- $xAxisData[] = str_pad($hour, 2, '0', STR_PAD_LEFT) . ":00-00:00";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 成功率变化
|
|
|
- $successRateChange = [];
|
|
|
- for ($hour = 0; $hour < 24; $hour++) {
|
|
|
- $successRateChange[] = $todayPaySuccessRateArr[$hour] - $yesterdayPaySuccessRateArr[$hour];
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 按周对比支付成功率(本周vs上周,按天分组)
|
|
|
+ */
|
|
|
+ private function getPaySuccessRateByWeek($whereRaw)
|
|
|
+ {
|
|
|
+ // 本周:今天往前7天(包含今天)
|
|
|
+ $currentEndTime = strtotime(date('Y-m-d') . " 23:59:59");
|
|
|
+ $currentStartTime = strtotime(date('Y-m-d', strtotime('-6 days')) . " 00:00:00");
|
|
|
+
|
|
|
+ // 上周:今天往前14天到往前7天
|
|
|
+ $lastEndTime = strtotime(date('Y-m-d', strtotime('-7 days')) . " 23:59:59");
|
|
|
+ $lastStartTime = strtotime(date('Y-m-d', strtotime('-13 days')) . " 00:00:00");
|
|
|
+
|
|
|
+ // 获取当前周期和上一周期的数据
|
|
|
+ $currentData = $this->getPayDataByTimeRange($whereRaw, $currentStartTime, $currentEndTime);
|
|
|
+ $lastData = $this->getPayDataByTimeRange($whereRaw, $lastStartTime, $lastEndTime);
|
|
|
+
|
|
|
+ // 初始化7天数据
|
|
|
+ $currentOrderMap = $this->initWeeklyData($currentStartTime);
|
|
|
+ $currentPayMap = $this->initWeeklyData($currentStartTime);
|
|
|
+ $lastOrderMap = $this->initWeeklyData($lastStartTime);
|
|
|
+ $lastPayMap = $this->initWeeklyData($lastStartTime);
|
|
|
+
|
|
|
+ // 填充数据(按天)
|
|
|
+ $this->fillDataByDay($currentData['orderData'], $currentOrderMap);
|
|
|
+ $this->fillDataByDay($currentData['payData'], $currentPayMap);
|
|
|
+ $this->fillDataByDay($lastData['orderData'], $lastOrderMap);
|
|
|
+ $this->fillDataByDay($lastData['payData'], $lastPayMap);
|
|
|
+
|
|
|
+ // 计算成功率
|
|
|
+ $currentRateArr = $this->calculateSuccessRate($currentOrderMap, $currentPayMap);
|
|
|
+ $lastRateArr = $this->calculateSuccessRate($lastOrderMap, $lastPayMap);
|
|
|
+
|
|
|
+ // 生成X轴数据(星期)
|
|
|
+ $xAxisData = $this->generateWeeklyXAxisData($currentStartTime);
|
|
|
+
|
|
|
+ // 计算成功率变化
|
|
|
+ $successRateChange = $this->calculateRateChange($currentRateArr, $lastRateArr);
|
|
|
+
|
|
|
+ // 生成表格数据
|
|
|
+ $tableData = $this->generateWeekTableData(
|
|
|
+ $currentOrderMap,
|
|
|
+ $currentPayMap,
|
|
|
+ $currentRateArr,
|
|
|
+ $lastOrderMap,
|
|
|
+ $lastPayMap,
|
|
|
+ $lastRateArr,
|
|
|
+ $successRateChange,
|
|
|
+ $xAxisData
|
|
|
+ );
|
|
|
+
|
|
|
+ $currentOrderNum = array_sum($currentOrderMap);
|
|
|
+ $currentPaySuccessNum = array_sum($currentPayMap);
|
|
|
+ $paySuccessRate = $currentOrderNum > 0 ? getRound($currentPaySuccessNum, $currentOrderNum) : 0;
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'PaySuccessRateArr' => $currentRateArr,
|
|
|
+ 'OldPaySuccessRateArr' => $lastRateArr,
|
|
|
+ 'orderNum' => $currentOrderNum,
|
|
|
+ 'successNum' => $currentPaySuccessNum,
|
|
|
+ 'paySuccessRate' => $paySuccessRate,
|
|
|
+ 'xAxisData' => $xAxisData,
|
|
|
+ 'successRateChange' => $successRateChange,
|
|
|
+ 'data' => $tableData
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取指定时间范围内的订单和支付数据
|
|
|
+ */
|
|
|
+ private function getPayDataByTimeRange($whereRaw, $startTime, $endTime)
|
|
|
+ {
|
|
|
+ $timeWhereRaw = $whereRaw . " AND pay_time BETWEEN '{$startTime}' AND '{$endTime}'";
|
|
|
+
|
|
|
+ // 总下单量
|
|
|
+ $orderData = Db::connect('db_game_log')->query("
|
|
|
+ SELECT Count(*) as order_num, pay_time
|
|
|
+ FROM sdk_order_success
|
|
|
+ WHERE {$timeWhereRaw}
|
|
|
+ GROUP BY pay_time
|
|
|
+ ");
|
|
|
+
|
|
|
+ // 总支付量
|
|
|
+ $payData = Db::connect('db_game_log')->query("
|
|
|
+ SELECT Count(*) as pay_num, pay_time
|
|
|
+ FROM sdk_order_success
|
|
|
+ WHERE {$timeWhereRaw} AND sync_status = 1
|
|
|
+ GROUP BY pay_time
|
|
|
+ ");
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'orderData' => $orderData,
|
|
|
+ 'payData' => $payData
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化24小时数据结构
|
|
|
+ */
|
|
|
+ private function initHourlyData()
|
|
|
+ {
|
|
|
+ $data = [];
|
|
|
+ for ($hour = 0; $hour < 24; $hour++) {
|
|
|
+ $hourKey = str_pad($hour, 2, '0', STR_PAD_LEFT);
|
|
|
+ $data[$hourKey] = 0;
|
|
|
+ }
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化7天数据结构
|
|
|
+ */
|
|
|
+ private function initWeeklyData($startTime)
|
|
|
+ {
|
|
|
+ $data = [];
|
|
|
+ for ($day = 0; $day < 7; $day++) {
|
|
|
+ $dateKey = date('Y-m-d', strtotime("+{$day} days", $startTime));
|
|
|
+ $data[$dateKey] = 0;
|
|
|
+ }
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 按小时填充数据
|
|
|
+ */
|
|
|
+ private function fillDataByHour($sourceData, &$targetMap)
|
|
|
+ {
|
|
|
+ foreach ($sourceData as $item) {
|
|
|
+ $hourKey = date('H', $item['pay_time']);
|
|
|
+ $value = $item['order_num'] ?? $item['pay_num'] ?? 0;
|
|
|
+ $targetMap[$hourKey] = $value;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //表格数据
|
|
|
- $tableData = [];
|
|
|
- for ($hour = 0; $hour < 24; $hour++) {
|
|
|
- $hourKey = str_pad($hour, 2, '0', STR_PAD_LEFT);
|
|
|
- $tableData[] = [
|
|
|
- 'time'=>$hourKey . ":00-" . str_pad($hour + 1, 2, '0', STR_PAD_LEFT) . ":00",
|
|
|
- 'todayOrderNum'=>$todayOrderNumDataMap[$hourKey],
|
|
|
- 'todayPayNum'=>$todayPaySuccessDataMap[$hourKey],
|
|
|
- 'todayPaySuccessRate'=>$todayPaySuccessRateArr[$hour],
|
|
|
- 'yesterdayOrderNum'=>$yesterdayOrderNumDataMap[$hourKey],
|
|
|
- 'yesterdayPayNum'=>$yesterdayPaySuccessDataMap[$hourKey],
|
|
|
- 'yesterdayPaySuccessRate'=>$yesterdayPaySuccessRateArr[$hour],
|
|
|
- 'successRateChange'=>$successRateChange[$hour],
|
|
|
- ];
|
|
|
+ /**
|
|
|
+ * 按天填充数据
|
|
|
+ */
|
|
|
+ private function fillDataByDay($sourceData, &$targetMap)
|
|
|
+ {
|
|
|
+ foreach ($sourceData as $item) {
|
|
|
+ $dateKey = date('Y-m-d', $item['pay_time']);
|
|
|
+ $value = $item['order_num'] ?? $item['pay_num'] ?? 0;
|
|
|
+ if (isset($targetMap[$dateKey])) {
|
|
|
+ $targetMap[$dateKey] += $value;
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 计算成功率数组
|
|
|
+ */
|
|
|
+ private function calculateSuccessRate($orderMap, $payMap)
|
|
|
+ {
|
|
|
+ $rateArr = [];
|
|
|
+ foreach ($orderMap as $key => $orderNum) {
|
|
|
+ $payNum = $payMap[$key] ?? 0;
|
|
|
+ $rateArr[] = $orderNum > 0 ? getRound($payNum, $orderNum) : 0;
|
|
|
+ }
|
|
|
+ return $rateArr;
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 计算成功率变化
|
|
|
+ */
|
|
|
+ private function calculateRateChange($currentRateArr, $lastRateArr)
|
|
|
+ {
|
|
|
+ $change = [];
|
|
|
+ $count = count($currentRateArr);
|
|
|
+ for ($i = 0; $i < $count; $i++) {
|
|
|
+ $change[] = $currentRateArr[$i] - $lastRateArr[$i];
|
|
|
}
|
|
|
+ return $change;
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 生成小时X轴数据
|
|
|
+ */
|
|
|
+ private function generateHourlyXAxisData()
|
|
|
+ {
|
|
|
+ $xAxisData = [];
|
|
|
+ for ($hour = 0; $hour < 24; $hour++) {
|
|
|
+ $xAxisData[] = str_pad($hour, 2, '0', STR_PAD_LEFT) . ":00-" .
|
|
|
+ str_pad($hour + 1, 2, '0', STR_PAD_LEFT) . ":00";
|
|
|
+ }
|
|
|
+ return $xAxisData;
|
|
|
+ }
|
|
|
|
|
|
- return [
|
|
|
- 'PaySuccessRateArr' => $todayPaySuccessRateArr,
|
|
|
- 'OldPaySuccessRateArr' => $yesterdayPaySuccessRateArr,
|
|
|
- 'orderNum'=>$todayOrderNum,
|
|
|
- 'successNum'=>$todayPaySuccessNum,
|
|
|
- 'paySuccessRate'=>$paySuccessRate,
|
|
|
- 'xAxisData'=>$xAxisData,
|
|
|
- 'successRateChange'=>$successRateChange,
|
|
|
- 'tableData'=>$tableData
|
|
|
- ];
|
|
|
+ /**
|
|
|
+ * 生成星期X轴数据(根据起始日期往后推7天)
|
|
|
+ */
|
|
|
+ private function generateWeeklyXAxisData($startTime)
|
|
|
+ {
|
|
|
+ $weekDays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
|
|
|
+ $xAxisData = [];
|
|
|
+
|
|
|
+ for ($day = 0; $day < 7; $day++) {
|
|
|
+ $timestamp = strtotime("+{$day} days", $startTime);
|
|
|
+ $weekIndex = date('w', $timestamp);
|
|
|
+ $xAxisData[] = $weekDays[$weekIndex];
|
|
|
+ }
|
|
|
+
|
|
|
+ return $xAxisData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成按天的表格数据
|
|
|
+ */
|
|
|
+ private function generateDayTableData(
|
|
|
+ $currentOrderMap,
|
|
|
+ $currentPayMap,
|
|
|
+ $currentRateArr,
|
|
|
+ $lastOrderMap,
|
|
|
+ $lastPayMap,
|
|
|
+ $lastRateArr,
|
|
|
+ $successRateChange
|
|
|
+ ) {
|
|
|
+ $tableData = [];
|
|
|
+ $index = 0;
|
|
|
+
|
|
|
+ foreach ($currentOrderMap as $hourKey => $orderNum) {
|
|
|
+ $tableData[] = [
|
|
|
+ 'time' => $hourKey . ":00-" . str_pad(intval($hourKey) + 1, 2, '0', STR_PAD_LEFT) . ":00",
|
|
|
+ 'todayOrderNum' => $orderNum,
|
|
|
+ 'todayPayNum' => $currentPayMap[$hourKey],
|
|
|
+ 'todayPaySuccessRate' => $currentRateArr[$index],
|
|
|
+ 'yesterdayOrderNum' => array_values($lastOrderMap)[$index],
|
|
|
+ 'yesterdayPayNum' => array_values($lastPayMap)[$index],
|
|
|
+ 'yesterdayPaySuccessRate' => $lastRateArr[$index],
|
|
|
+ 'successRateChange' => $successRateChange[$index],
|
|
|
+ ];
|
|
|
+ $index++;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $tableData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成按周的表格数据
|
|
|
+ */
|
|
|
+ private function generateWeekTableData(
|
|
|
+ $currentOrderMap,
|
|
|
+ $currentPayMap,
|
|
|
+ $currentRateArr,
|
|
|
+ $lastOrderMap,
|
|
|
+ $lastPayMap,
|
|
|
+ $lastRateArr,
|
|
|
+ $successRateChange,
|
|
|
+ $xAxisData
|
|
|
+ ) {
|
|
|
+ $tableData = [];
|
|
|
+ $index = 0;
|
|
|
+
|
|
|
+ foreach ($currentOrderMap as $dateKey => $orderNum) {
|
|
|
+ $tableData[] = [
|
|
|
+ 'time' => $xAxisData[$index],
|
|
|
+ 'todayOrderNum' => $orderNum,
|
|
|
+ 'todayPayNum' => $currentPayMap[$dateKey],
|
|
|
+ 'todayPaySuccessRate' => $currentRateArr[$index],
|
|
|
+ 'yesterdayOrderNum' => array_values($lastOrderMap)[$index],
|
|
|
+ 'yesterdayPayNum' => array_values($lastPayMap)[$index],
|
|
|
+ 'yesterdayPaySuccessRate' => $lastRateArr[$index],
|
|
|
+ 'successRateChange' => $successRateChange[$index],
|
|
|
+ ];
|
|
|
+ $index++;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $tableData;
|
|
|
}
|
|
|
}
|