|
|
@@ -825,4 +825,499 @@ class AnalyseLogic extends BaseLogic
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 支付成功率(包含对比数据)
|
|
|
+ public function getPaySuccessRate($where)
|
|
|
+ {
|
|
|
+ $params = $this->searchByAuth($where);
|
|
|
+ $whereRaw = $this->getCommonWhereRaw($params);
|
|
|
+ $type = $params['type'] ?? 'day';
|
|
|
+
|
|
|
+ if ($type == 'day') {
|
|
|
+ $data = $this->getPaySuccessRateByDay($whereRaw);
|
|
|
+ // 添加对比数据
|
|
|
+ $data['comparison'] = $this->getDayComparisonFromPaySuccessRate($params);
|
|
|
+ return $data;
|
|
|
+ } elseif ($type == 'week') {
|
|
|
+ $data = $this->getPaySuccessRateByWeek($whereRaw);
|
|
|
+ // 添加对比数据
|
|
|
+ $data['comparison'] = $this->getWeekComparisonFromPaySuccessRate($params);
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从支付成功率接口获取日对比数据(今日vs昨日)
|
|
|
+ */
|
|
|
+ private function getDayComparisonFromPaySuccessRate($params)
|
|
|
+ {
|
|
|
+ // 复用支付成功率接口的数据
|
|
|
+ $paySuccessData = $this->getPaySuccessRateByDay($this->getCommonWhereRaw($params));
|
|
|
+
|
|
|
+ // 从支付成功率数据中提取今日和昨日的数据
|
|
|
+ $todayOrderNum = $paySuccessData['orderNum'];
|
|
|
+ $todayPayNum = $paySuccessData['successNum'];
|
|
|
+ $todayPaySuccessRate = $paySuccessData['paySuccessRate'];
|
|
|
+
|
|
|
+ // 计算昨日数据(从表格数据中获取)
|
|
|
+ $tableData = $paySuccessData['data'];
|
|
|
+ $yesterdayOrderNum = 0;
|
|
|
+ $yesterdayPayNum = 0;
|
|
|
+ foreach ($tableData as $row) {
|
|
|
+ $yesterdayOrderNum += $row['yesterdayOrderNum'];
|
|
|
+ $yesterdayPayNum += $row['yesterdayPayNum'];
|
|
|
+ }
|
|
|
+ $yesterdayPaySuccessRate = $yesterdayOrderNum > 0 ? getRound($yesterdayPayNum, $yesterdayOrderNum) : 0;
|
|
|
+
|
|
|
+ // 计算变化百分比和趋势
|
|
|
+ $orderChange = $this->calculateChangePercentage($todayOrderNum, $yesterdayOrderNum);
|
|
|
+ $payChange = $this->calculateChangePercentage($todayPayNum, $yesterdayPayNum);
|
|
|
+ $rateChange = $this->calculateChangePercentage($todayPaySuccessRate, $yesterdayPaySuccessRate);
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'type' => 'day',
|
|
|
+ 'current' => [
|
|
|
+ 'orderNum' => $todayOrderNum,
|
|
|
+ 'payNum' => $todayPayNum,
|
|
|
+ 'paySuccessRate' => $todayPaySuccessRate,
|
|
|
+ 'label' => '今日'
|
|
|
+ ],
|
|
|
+ 'previous' => [
|
|
|
+ 'orderNum' => $yesterdayOrderNum,
|
|
|
+ 'payNum' => $yesterdayPayNum,
|
|
|
+ 'paySuccessRate' => $yesterdayPaySuccessRate,
|
|
|
+ 'label' => '昨日'
|
|
|
+ ],
|
|
|
+ 'changes' => [
|
|
|
+ 'orderChange' => array_merge($orderChange, ['label' => '较昨日']),
|
|
|
+ 'payChange' => array_merge($payChange, ['label' => '较昨日']),
|
|
|
+ 'rateChange' => array_merge($rateChange, ['label' => '较昨日'])
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从支付成功率接口获取周对比数据(本周vs上周)
|
|
|
+ */
|
|
|
+ private function getWeekComparisonFromPaySuccessRate($params)
|
|
|
+ {
|
|
|
+ // 复用支付成功率接口的数据
|
|
|
+ $paySuccessData = $this->getPaySuccessRateByWeek($this->getCommonWhereRaw($params));
|
|
|
+
|
|
|
+ // 从支付成功率数据中提取本周和上周的数据
|
|
|
+ $thisWeekOrderNum = $paySuccessData['orderNum'];
|
|
|
+ $thisWeekPayNum = $paySuccessData['successNum'];
|
|
|
+ $thisWeekPaySuccessRate = $paySuccessData['paySuccessRate'];
|
|
|
+
|
|
|
+ // 计算上周数据(从表格数据中获取)
|
|
|
+ $tableData = $paySuccessData['data'];
|
|
|
+ $lastWeekOrderNum = 0;
|
|
|
+ $lastWeekPayNum = 0;
|
|
|
+ foreach ($tableData as $row) {
|
|
|
+ $lastWeekOrderNum += $row['yesterdayOrderNum'];
|
|
|
+ $lastWeekPayNum += $row['yesterdayPayNum'];
|
|
|
+ }
|
|
|
+ $lastWeekPaySuccessRate = $lastWeekOrderNum > 0 ? getRound($lastWeekPayNum, $lastWeekOrderNum) : 0;
|
|
|
+
|
|
|
+ // 计算变化百分比和趋势
|
|
|
+ $orderChange = $this->calculateChangePercentage($thisWeekOrderNum, $lastWeekOrderNum);
|
|
|
+ $payChange = $this->calculateChangePercentage($thisWeekPayNum, $lastWeekPayNum);
|
|
|
+ $rateChange = $this->calculateChangePercentage($thisWeekPaySuccessRate, $lastWeekPaySuccessRate);
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'type' => 'week',
|
|
|
+ 'current' => [
|
|
|
+ 'orderNum' => $thisWeekOrderNum,
|
|
|
+ 'payNum' => $thisWeekPayNum,
|
|
|
+ 'paySuccessRate' => $thisWeekPaySuccessRate,
|
|
|
+ 'label' => '本周'
|
|
|
+ ],
|
|
|
+ 'previous' => [
|
|
|
+ 'orderNum' => $lastWeekOrderNum,
|
|
|
+ 'payNum' => $lastWeekPayNum,
|
|
|
+ 'paySuccessRate' => $lastWeekPaySuccessRate,
|
|
|
+ 'label' => '上周'
|
|
|
+ ],
|
|
|
+ 'changes' => [
|
|
|
+ 'orderChange' => array_merge($orderChange, ['label' => '较上周']),
|
|
|
+ 'payChange' => array_merge($payChange, ['label' => '较上周']),
|
|
|
+ 'rateChange' => array_merge($rateChange, ['label' => '较上周'])
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按天对比支付成功率(今天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;
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'PaySuccessRateArr' => $currentRateArr,
|
|
|
+ 'OldPaySuccessRateArr' => $lastRateArr,
|
|
|
+ 'orderNum' => $currentOrderNum,
|
|
|
+ 'successNum' => $currentPaySuccessNum,
|
|
|
+ 'paySuccessRate' => $paySuccessRate,
|
|
|
+ 'xAxisData' => $xAxisData,
|
|
|
+ 'successRateChange' => $successRateChange,
|
|
|
+ 'data' => $tableData
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按周对比支付成功率(本周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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按天填充数据
|
|
|
+ */
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计算变化百分比和趋势
|
|
|
+ */
|
|
|
+ private function calculateChangePercentage($currentValue, $previousValue)
|
|
|
+ {
|
|
|
+ if ($previousValue == 0) {
|
|
|
+ $trend = $currentValue > 0 ? 'up' : 'stable';
|
|
|
+ $percentage = $currentValue > 0 ? 100 : 0;
|
|
|
+ return [
|
|
|
+ 'percentage' => $percentage,
|
|
|
+ 'percentageText' => $percentage . '%',
|
|
|
+ 'trend' => $trend,
|
|
|
+ 'value' => $currentValue - $previousValue,
|
|
|
+ 'icon' => $trend == 'up' ? 'icon-arrow-rise' : 'icon-arrow-stable'
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ $percentage = round((($currentValue - $previousValue) / $previousValue) * 100, 2);
|
|
|
+ $trend = $percentage > 0 ? 'up' : ($percentage < 0 ? 'down' : 'stable');
|
|
|
+
|
|
|
+ // 根据趋势设置图标
|
|
|
+ $icon = 'icon-arrow-stable';
|
|
|
+ if ($trend == 'up') {
|
|
|
+ $icon = 'icon-arrow-rise';
|
|
|
+ } elseif ($trend == 'down') {
|
|
|
+ $icon = 'icon-arrow-fall';
|
|
|
+ }
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'percentage' => abs($percentage),
|
|
|
+ 'percentageText' => abs($percentage) . '%',
|
|
|
+ 'trend' => $trend,
|
|
|
+ 'value' => $currentValue - $previousValue,
|
|
|
+ 'icon' => $icon
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成小时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;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成星期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;
|
|
|
+ }
|
|
|
}
|