zhangdehua 8 місяців тому
батько
коміт
735da4664e
1 змінених файлів з 51 додано та 3 видалено
  1. 51 3
      app/index/controller/User.php

+ 51 - 3
app/index/controller/User.php

@@ -13,6 +13,8 @@ use app\index\model\Goods as GoodsModel;
 use app\index\model\Order as OrderModel;
 use app\index\service\passport\UMailer;
 use app\store\model\Express as ExpressModel;
+use PhpOffice\PhpSpreadsheet\Spreadsheet;
+use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 use think\facade\Cache;
 use think\facade\Log;
 use think\facade\Session;
@@ -25,6 +27,8 @@ use Endroid\QrCode\Logo\Logo;
 use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
 use Endroid\QrCode\Writer\PngWriter;
 use Endroid\QrCode\Writer\ValidationException;
+use Spatie\SimpleExcel\SimpleExcelReader;
+use Spatie\SimpleExcel\SimpleExcelWriter;
 
 /**
  * 默认控制器
@@ -983,13 +987,30 @@ class User extends Controller
 
     public function pullLogsToNow()
     {
-        $from = intval($this->request->param('from'));//要统计的起始时间戳
+        //$pathToCsv = public_path('uploads/10001').date('Ymd').'/'.uniqid().'.xlsx';
+        $spreadsheet = new Spreadsheet();
+        // Set cell A1 with a string value
+        $spreadsheet->getActiveSheet()->setCellValue('B1', '进入积分说明页');
+        $spreadsheet->getActiveSheet()->setCellValue('C1', '商城首页');
+        $spreadsheet->getActiveSheet()->setCellValue('D1', '登录页');
+        $spreadsheet->getActiveSheet()->setCellValue('E1', '获取验证码行为');
+        $spreadsheet->getActiveSheet()->setCellValue('F1', '点击注册行为');
+
+        $spreadsheet->getActiveSheet()->setCellValue('A1', '');
+
+        $fromDate = $this->request->param('from');
+        $from = strtotime($fromDate);
+        if (!$from){
+            return $this->renderError('input valid from date');
+        }
+
+        //$from = intval($this->request->param('from'));//要统计的起始时间戳
         //$to = 86400;
         if ($from > time()){
             return $this->renderError('input valid ck');
         }
 
-        if (bcdiv(time() - $from,86400,0) > 10){
+        if (bcdiv(time() - $from,86400,0) > 15){
             return $this->renderError('from too old');
         }
 
@@ -1000,7 +1021,6 @@ class User extends Controller
 
         $data = [];
 
-        $data['distinct_ip_cnt'] = UserAccessLog::getAccessLogDistinctIps($from,time());
 
         while ($from < time()){
             $to = $from + 86399;
@@ -1008,6 +1028,34 @@ class User extends Controller
 
             $from = $from + 86400;
         }
+
+        $data['total_ips'] = [UserAccessLog::getAccessLogDistinctIps($from,time())];
+
+        $i = 2;
+
+        foreach ($data as $date => $datum){
+            $col = 'A';
+            $spreadsheet->getActiveSheet()->setCellValue($col.$i, $date);
+            foreach ($datum as $v){
+                $col = chr(ord($col) +1);
+                $spreadsheet->getActiveSheet()->setCellValue($col.$i, $v);
+            }
+            $i++;
+        }
+
+        $spreadsheet->getActiveSheet()->setCellValue('A'.$i, '说明:数量均为独立IP数量');
+
+        $writer = new Xlsx($spreadsheet);
+        if (file_exists('05featuredemo.xlsx')){
+            unlink('05featuredemo.xlsx');
+        }
+
+        $writer->save("05featuredemo.xlsx");
+
+        //$rows->toBrowser();
+        return $this->renderSuccess([]);
+
+
         return $this->renderSuccess($data);