Browse Source

外链调整

lgy 4 weeks ago
parent
commit
22fb27e1ef

+ 13 - 0
jcjyhr/app/common/library/Upload.php

@@ -255,6 +255,19 @@ class Upload
         return $attachment->toArray();
     }
 
+    public function uploadExcel(?string $saveName = null, int $adminId = 0, int $userId = 0): array
+    {
+        if (empty($this->file)) {
+            throw new Exception(__('No files have been uploaded or the file size exceeds the upload limit of the server'));
+        }
+
+        $params = [
+            'url'      => $this->getSaveName(),
+        ];
+        $this->move($saveName);
+        return $params;
+    }
+
     public function move($saveName = null): File
     {
         $saveName  = $saveName ?: $this->getSaveName();

+ 34 - 11
jcjyhr/app/zskk/controller/Wechat.php

@@ -6,6 +6,7 @@ namespace app\zskk\controller;
 use app\common\controller\ZskkApiController;
 use app\common\library\Upload;
 use app\zskk\servies\WechatServies;
+use PhpOffice\PhpSpreadsheet\IOFactory;
 
 class Wechat extends ZskkApiController
 {
@@ -27,11 +28,11 @@ class Wechat extends ZskkApiController
         $this->success('success',$data);
     }
 
-    public function getOneCard(WechatServies $servies)
+    public function updateOneCard(WechatServies $servies)
     {
         $params = $this->request->post();
-        $data = $servies->getOneCard($params);
-        $this->success('success',$data);
+        $data = $servies->updateOneCard($params);
+        $this->success('success');
     }
 
     public function delCard(WechatServies $servies)
@@ -41,7 +42,7 @@ class Wechat extends ZskkApiController
         $this->success('success',$data);
     }
 
-    public function export(WechatServies $servies)
+    public function exportData(WechatServies $servies)
     {
         set_time_limit(0);
         // 获取文件
@@ -52,8 +53,7 @@ class Wechat extends ZskkApiController
         $attachment = '';
         try {
             $upload = new Upload($file);
-            $attachment = $upload->upload(null, 1);
-            unset($attachment['create_time'], $attachment['quote']);
+            $attachment = $upload->uploadExcel(null, 1);
         } catch (\Throwable $e) {
             $this->error($e->getMessage());
         }
@@ -66,16 +66,33 @@ class Wechat extends ZskkApiController
             $this->error('文件获取失败');
         }
         // 读取内容
-        $excel_data = read_excel($url);
+
+        //设置excel格式
+        $reader = IOFactory::createReader('Xlsx');
+        //载入excel文件
+        $excel = $reader->load($url);
+        //读取第一张表
+        $sheet = $excel->getSheet(0);
+        //获取总行数
+        $row_num = $sheet->getHighestRow();
+        //获取总列数
+        $col_num = $sheet->getHighestColumn();
+
+        $excel_data = []; //数组形式获取表格数据
+        for($col='A';$col<=$col_num;$col++)
+        {
+            //从第二行开始,去除表头(若无表头则从第一行开始)
+            for($row=2;$row<=$row_num;$row++)
+            {
+                $excel_data[$row-2][] = $sheet->getCell($col.$row)->getValue();
+            }
+        }
+//        $excel_data = read_excel($attachment['url']);
         if (empty($excel_data)) {
             $this->error('请填写导入数据');
         }
         $data = [];
         foreach ($excel_data as $key=>$val) {
-            foreach ($val as &$v) {
-                $v = str_replace(' ', '', trim($v));
-                $v = str_replace("\xC2\xA0", '', $v);
-            }
             unset($v);
             $info = $servies->checkPostcardUser($val[0],$val[7]);
             if(!empty($info)){
@@ -102,4 +119,10 @@ class Wechat extends ZskkApiController
         }
         $this->success('导入成功');
     }
+
+    public function getArea(WechatServies $servies)
+    {
+        $list = $servies->getArea();
+        $this->success('success',$list);
+    }
 }

+ 10 - 0
jcjyhr/app/zskk/model/Chineseprovinces.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace app\zskk\model;
+
+use app\common\model\ZskkModel;
+
+class Chineseprovinces extends ZskkModel
+{
+
+}

+ 2 - 1
jcjyhr/app/zskk/model/Postcard.php

@@ -4,7 +4,8 @@ namespace app\zskk\model;
 
 use app\common\model\ZskkModel;
 /**
- * WechatUser 模型
+ * Postcard 模型
+ * @property int $age             AGE
  */
 class Postcard extends ZskkModel
 {

+ 19 - 7
jcjyhr/app/zskk/servies/WechatServies.php

@@ -6,6 +6,7 @@ namespace app\zskk\servies;
 use app\admin\model\dict\Commondata;
 use app\admin\servies\bi\BaseQcBiServies;
 use app\zskk\model\BiInspectReport;
+use app\zskk\model\Chineseprovinces;
 use app\zskk\model\ExamReport;
 use app\zskk\model\HrRecord;
 use app\zskk\model\InspectReport;
@@ -18,11 +19,13 @@ class WechatServies
 {
     public $postcardModel = null;
     public $wechatuserModel = null;
-    public function __construct(WechatUser $wechatuserModel,Postcard $postcardModel)
+    public $provinces = null;
+    public function __construct(WechatUser $wechatuserModel,Postcard $postcardModel,Chineseprovinces $chineseprovinces)
     {
 //        parent::__construct();
         $this->postcardModel = $postcardModel;
         $this->wechatuserModel = $wechatuserModel;
+        $this->provinces = $chineseprovinces;
     }
 
 
@@ -48,14 +51,17 @@ class WechatServies
     public function getCard($params)
     {
         $where = [];
+        $ageWhere = [];
         if(!empty($params['age'])){
-            $where[] = ['age','between',explode(',',$params['age'])];
+            $age1 = (int)$params['age'][0];
+            $age2 = (int)$params['age'][1];
+            $ageWhere = " age between $age1 and $age2";
         }
         if(!empty($params['sex'])){
             $where['sex'] = $params['sex'];
         }
         if(!empty($params['depart'])){
-            $where[] = ['depart' ,'in',explode(',',$params['depart'])];
+            $where[] = ['depart' ,'in',$params['depart']];
         }
         if(!empty($params['title'])){
             $where['title'] = $params['title'];
@@ -63,22 +69,23 @@ class WechatServies
         if(!empty($params['area'])){
             $where['area'] = $params['area'];
         }
-        $list = $this->postcardModel->where($where)->page((int)$params['page'],(int)$params['num'])->select()->toArray();
+        $list = $this->postcardModel->where($where)->where($ageWhere)->page((int)$params['page'],(int)$params['num'])->select()->toArray();
         $total = $this->postcardModel->where($where)->count();
         return ['list'=>$list,'total'=>$total];
     }
 
-    public function getOneCard($params)
+    public function updateOneCard($params)
     {
         $id = $params['id'];
-        $list = $this->postcardModel->where('id',$id)->find()->toArray();
+        unset($params['id']);
+        $list = $this->postcardModel->where('ID',$id)->update($params);
         return $list;
     }
 
     public function delCard($params)
     {
         $id = $params['id'];
-        $list = $this->postcardModel->where('id',$id)->delete();
+        $list = $this->postcardModel->where('ID',$id)->delete();
         return $list;
     }
 
@@ -92,4 +99,9 @@ class WechatServies
     {
         $this->postcardModel->saveAll($arr);
     }
+
+    public function getArea()
+    {
+        return $this->provinces->field('NAME AS id,NAME AS name')->select()->toArray();
+    }
 }