wang jun 2 년 전
부모
커밋
dda87e64e0

+ 92 - 0
application/admin/controller/Houseserver.php

@@ -0,0 +1,92 @@
+<?php
+namespace app\admin\controller;
+
+use app\admin\logic\HouseserverLogic;
+
+/**
+ * 家政服务类型
+ *
+ * @author wj
+ * @date 2022-12-03
+ */
+class Houseserver
+{
+    /**
+     * 获取类型列表
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-19
+     */
+    public function gettypelist()
+    {
+        $post = request()->post();
+        $l_hs = new HouseserverLogic();
+        $result = $l_hs->gettypelist($post);
+        if (empty($result['status'])) {
+            return backjson2(0, $result['msg']);
+        }
+        return backjson2(200, $result['msg'], $result['data']);
+    }
+    /**
+     * 新增类型列表
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-19
+     */
+    public function newtype()
+    {
+        $post = request()->post();
+        $l_hs = new HouseserverLogic();
+        $result = $l_hs->newtype($post);
+        if (empty($result['status'])) {
+            return backjson2(0, $result['msg']);
+        }
+        return backjson2(200, $result['msg'], $result['data']);
+    }
+    public function edittype()
+    {
+        $post = request()->post();
+        $l_hs = new HouseserverLogic();
+        $result = $l_hs->edittype($post);
+        if (empty($result['status'])) {
+            return backjson2(0, $result['msg']);
+        }
+        return backjson2(200, $result['msg'], $result['data']);
+    }
+    /**
+     * 改类型可用
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-19
+     */
+    public function updatetypeisactive()
+    {
+        $post = request()->post();
+        $l_hs = new HouseserverLogic();
+        $result = $l_hs->updateisactive($post);
+        if (empty($result['status'])) {
+            return backjson2(0, $result['msg']);
+        }
+        return backjson2(200, $result['msg'], $result['data']);
+    }
+    /**
+     * 获取预定列表
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-19
+     */
+    public function getappointmentlist()
+    {
+        $post = request()->post();
+        $l_hs = new HouseserverLogic();
+        $result = $l_hs->getappointmentlist($post);
+        if (empty($result['status'])) {
+            return backjson2(0, $result['msg']);
+        }
+        return backjson2(200, $result['msg'], $result['data']);
+    }
+}

+ 29 - 1
application/admin/controller/Meal.php

@@ -2,6 +2,7 @@
 namespace app\admin\controller;
 
 use app\admin\logic\MealLogic;
+use think\Controller;
 
 /**
  * 套餐配送
@@ -9,7 +10,7 @@ use app\admin\logic\MealLogic;
  * @author wj
  * @date 2022-12-03
  */
-class Meal
+class Meal extends Controller
 {
 
     /**
@@ -217,4 +218,31 @@ class Meal
         }
         return backjson2(200, $result['msg'], $result['data']);
     }
+    /**
+     * 导出列表
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-30
+     */
+    public function exportlist()
+    {
+        $l_m = new MealLogic();
+        $post = request()->post();
+        if (request()->isPost()) {
+            $post = request()->post();
+            $result = $l_m->checkexportorderlist($post);
+            if (empty($result['status'])) {
+                return backjson2(0, $result['msg']);
+            }
+            return backjson2(200, $result['msg'], $result['data']);
+        }
+        if (request()->isGet()) {
+            $result = $l_m->doexportorderlist();
+            if (is_array($result) && empty($result['status'])) {
+                return $this->error($result['msg']);
+            }
+            return backjson2(200, $result['msg']);
+        }
+    }
 }

+ 29 - 1
application/admin/controller/Visit.php

@@ -2,6 +2,7 @@
 namespace app\admin\controller;
 
 use app\admin\logic\visitlogic;
+use think\Controller;
 
 /**
  * 到访
@@ -9,7 +10,7 @@ use app\admin\logic\visitlogic;
  * @author wj
  * @date 2023-01-18
  */
-class Visit
+class Visit extends Controller
 {
     public function newinfo()
     {
@@ -41,4 +42,31 @@ class Visit
         }
         return backjson2(200, $result['msg'], $result['data']);
     }
+    /**
+     * 导出列表
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-30
+     */
+    public function exportlist()
+    {
+        $l_v = new visitlogic();
+        $post = request()->post();
+        if (request()->isPost()) {
+            $post = request()->post();
+            $result = $l_v->checkexportlist($post);
+            if (empty($result['status'])) {
+                return backjson2(0, $result['msg']);
+            }
+            return backjson2(200, $result['msg'], $result['data']);
+        }
+        if (request()->isGet()) {
+            $result = $l_v->doexportlist();
+            if (is_array($result) && empty($result['status'])) {
+                return $this->error($result['msg']);
+            }
+            return backjson2(200, $result['msg']);
+        }
+    }
 }

+ 164 - 1
application/admin/logic/HouseserverLogic.php

@@ -1,7 +1,9 @@
 <?php
 namespace app\admin\logic;
 
+use app\admin\server\Webuserserver;
 use app\common\model\houseservermodel;
+use app\common\model\serverappointmentmodel;
 
 class HouseserverLogic
 {
@@ -12,7 +14,7 @@ class HouseserverLogic
      * @author wj
      * @date 2023-01-18
      */
-    public function gettypelist()
+    public function gettypelist($arr)
     {
         $userinfo = checkToken();
         $wherefield = ['servername'];
@@ -72,6 +74,167 @@ class HouseserverLogic
         if (empty($hsid)) {
             return backarr(0, "添加失败");
         }
+        //保存日志
+        $s_w = new Webuserserver();
+        $logData = [
+            'node' => '创建服务类型:' . $hsid . ":" . $servername,
+            'type' => 1,
+            'tablename' => 'houseserver',
+            'refid' => $hsid,
+        ];
+        $s_w->savelog($userinfo['id'], $logData);
         return backarr(1, "操作成功", ['hsid' => $hsid]);
     }
+    /**
+     * 编辑类型
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-19
+     */
+    public function edittype($arr)
+    {
+        $userinfo = checkToken();
+        $fillfields = ['servername', 'id', 'sprice'];
+        foreach ($fillfields as $key => $value) {
+            if (!isset($arr[$value]) || empty($arr[$value])) {
+                return backarr(0, "参数缺少");
+            }
+        }
+        $servername = $arr['servername'];
+        $id = $arr['id'];
+        $sprice = $arr['sprice'];
+        $m_hs = new houseservermodel();
+        $hsinfo = $m_hs->getInfo(['id' => $id]);
+        if (empty($hsinfo)) {
+            return backarr(0, "无数据");
+        }
+        $updateData = [];
+        if ($hsinfo['servername'] != $servername) {
+            $hssninfo = $m_hs->getInfo(['servername' => $servername]);
+            if (!empty($hssninfo)) {
+                return backarr(0, "服务已存在");
+            }
+            $updateData['servername'] = $servername;
+        }
+        if ($hsinfo['sprice'] != $sprice) {
+            $updateData['sprice'] = $sprice;
+        }
+        if (isset($arr['hserverphoto']) && !empty($arr['hserverphoto'])) {
+            $hserverphoto = $arr['hserverphoto'];
+            if ($hsinfo['hserverphoto'] != $hserverphoto) {
+                $updateData['hserverphoto'] = $hserverphoto;
+            }
+        }
+        $row = $m_hs->updateinfo(['id' => $id], $updateData);
+        if (empty($row)) {
+            return backarr(0, "修改失败");
+        }
+        //保存日志
+        $s_w = new Webuserserver();
+        $logData = [
+            'node' => '修改服务类型:' . $id,
+            'type' => 1,
+            'tablename' => 'houseserver',
+            'refid' => $id,
+        ];
+        $s_w->savelog($userinfo['id'], $logData);
+        return backarr(1, "操作成功", ['hsid' => $id]);
+    }
+    /**
+     * 改类型有效
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-19
+     */
+    public function updateisactive($arr)
+    {
+        $userinfo = checkToken();
+        $fillfields = ['isactive', 'id'];
+        foreach ($fillfields as $key => $value) {
+            if (!isset($arr[$value])) {
+                return backarr(0, "参数缺少");
+            }
+        }
+        $id = $arr['id'];
+        $isactive = $arr['isactive'];
+        $where = [['id', '=', $id]];
+        if ($isactive == 1) {
+            $where[] = ['isactive', 'in', [0]];
+        } else {
+            $where[] = ['isactive', 'in', [1]];
+        }
+        $m_hs = new houseservermodel();
+        $hsinfo = $m_hs->getInfo($where);
+        if (empty($hsinfo)) {
+            return backarr(0, "无数据");
+        }
+        $updateData = ['isactive' => $isactive];
+        $row = $m_hs->updateinfo(['id' => $id], $updateData);
+        if (empty($row)) {
+            return backarr(0, "修改失败");
+        }
+        //保存日志
+        $s_w = new Webuserserver();
+        $logData = [
+            'node' => '修改服务类型可用:' . $id . ":" . $isactive,
+            'type' => 1,
+            'tablename' => 'houseserver',
+            'refid' => $id,
+        ];
+        $s_w->savelog($userinfo['id'], $logData);
+        return backarr(1, "操作成功", ['hsid' => $id]);
+    }
+    /**
+     * 获取预定列表
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-19
+     */
+    public function getappointmentlist($arr)
+    {
+        $userinfo = checkToken();
+        $wherefield = ['orderno', 'receiver_address'];
+        $where = [];
+        foreach ($wherefield as $key => $value) {
+            if (isset($arr[$value]) && !empty($arr[$value])) {
+                $where[] = [$value, 'like', '%' . $arr[$value] . '%'];
+            }
+        }
+        $wherefield2 = ['serverid', 'paystatus', 'serverstatus'];
+        foreach ($wherefield2 as $key => $value) {
+            if (isset($arr[$value]) && is_numeric($arr[$value])) {
+                $where[] = [$value, '=', $arr[$value]];
+            }
+        }
+        $page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1;
+        $size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10;
+        $m_hs = new houseservermodel();
+        $m_sa = new serverappointmentmodel();
+        $count = $m_sa->getList($where, "count", $page, $size);
+        if ($count <= 0) {
+            return backarr(0, "无数据");
+        }
+        $totalpage = ceil($count / $size);
+        $page > $totalpage && $page = $totalpage;
+        $list = $m_sa->getList($where, "*", $page, $size)->toArray();
+        foreach ($list as $key => $value) {
+            $hsinfo = $m_hs->getInfo(['id' => $value['serverid']], ['servername']);
+            if (empty($hsinfo)) {
+                $value['servername'] = '';
+            } else {
+                $value['servername'] = $hsinfo['servername'];
+            }
+            $list[$key] = $value;
+        }
+        $data = [
+            'page' => $page,
+            'size' => $size,
+            'count' => $count,
+            'list' => $list,
+        ];
+        return backarr(1, "查询成功", $data);
+    }
 }

+ 138 - 1
application/admin/logic/MealLogic.php

@@ -7,7 +7,8 @@ use app\common\model\MealcenterModel;
 use app\common\model\MealcookModel;
 use app\common\model\MealModel;
 use app\common\model\MealOrdersModel;
-
+use app\common\server\PhpExcel as PhpExcelServer;
+use app\common\server\Redis;
 //use app\common\model\MealOrdersModel;
 //use app\common\model\UserAddressModel;
 use think\Db;
@@ -697,4 +698,140 @@ class MealLogic
         ];
         return backarr(1, "查询成功", $data);
     }
+
+    public function checkexportorderlist($arr)
+    {
+        $userinfo = checkToken();
+        $wherefield = ['name_center', 'orderno'];
+        $where = [];
+        foreach ($wherefield as $key => $value) {
+            if (isset($arr[$value]) && !empty($arr[$value])) {
+                $where[$value] = $arr[$value];
+            }
+        }
+        if (isset($arr['createtime']) && is_array($arr['createtime']) && !empty($arr['createtime'])) {
+            $createtime = array_filter($arr['createtime']);
+            if (count($arr['createtime']) == count($createtime)) {
+                $where['createtime'] = $createtime;
+            }
+        }
+        if (isset($arr['status']) && is_numeric($arr['status'])) {
+            $where['status'] = $arr['status'];
+        }
+        if (isset($arr['status_delivery']) && is_numeric($arr['status_delivery'])) {
+            $where['status_delivery'] = $arr['status_delivery'];
+        }
+        $m_mo = new MealOrdersModel();
+        $count = $m_mo->getListjoincenter($where, 'count');
+        if ($count <= 0) {
+            return backarr(0, "无数据");
+        }
+        $redis = new Redis();
+        $redis->delete('mealorderlistwhere');
+        $wherejson = json_encode($where);
+        $redis->set('mealorderlistwhere', $wherejson);
+        return backarr(1, "查询成功");
+    }
+    public function doexportorderlist()
+    {
+        $redis = new Redis();
+        if ($redis->has('mealorderlistwhere')) {
+            $wherejson = $redis->get('mealorderlistwhere');
+            $where = json_decode($wherejson, true);
+            $redis->delete('mealorderlistwhere');
+        } else {
+            return backarr(0, "无查询条件");
+        }
+        $m_mo = new MealOrdersModel();
+        $m_cb = new CookbookModel();
+        $count = $m_mo->getListjoincenter($where, 'count');
+        if ($count <= 0) {
+            return backarr(0, "无数据");
+        }
+        $size = 100;
+        $totalpage = ceil($count / $size);
+        $field = '*';
+        $exportdata = [];
+        $exporttitle = [];
+        $indexChar = 65;
+        $indexNum = 2;
+        $statuslist = ['0' => '已创建', '1' => '已支付', '2' => '已送达', '-1' => '支付失败'];
+        $statusdeliverylist = ['0' => '待处理', '1' => '已发送', '2' => '已送达'];
+        for ($page = 1; $page <= $totalpage; $page++) {
+            $list = $m_mo->getListjoincenter($where, $field, $page, $size);
+            foreach ($list as $key => $value) {
+                $cooks = $value['cooks'];
+                $cooks = explode(",", $cooks);
+                $cooklist = $m_cb->getList(['id' => ["in", $cooks], 'is_active' => 1])->toArray();
+                $cooklistvale = implode(',', array_column($cooklist, 'name_cook'));
+                $value['detail'] = $cooklistvale;
+                $value['status'] = isset($statuslist[$value['status']]) ? $statuslist[$value['status']] : '';
+                $value['status_delivery'] = isset($statusdeliverylist[$value['status_delivery']]) ? $statuslist[$value['status_delivery']] : '';
+                $item = [
+                    'id' => $value['id'],
+                    'name_center' => $value['name_center'],
+                    'quantity' => $value['quantity'],
+                    'money' => $value['money'],
+                    'status' => $value['status'],
+                    'status_delivery' => $value['status_delivery'],
+                    'createtime' => $value['createtime'],
+                    'paytime' => $value['paytime'],
+                    'deliverytime' => $value['deliverytime'],
+                    'remark' => $value['remark'],
+                    'detail' => $value['detail'],
+                    'receiver_address' => $value['receiver_address'],
+                    'receiver_username' => $value['receiver_username'],
+                    'receiver_phone' => $value['receiver_phone'] . " ",
+                ];
+                $itemuse = [];
+                foreach ($item as $ikey => $ivalue) {
+                    $itemuse[] = [
+                        'cell' => chr($indexChar) . $indexNum,
+                        'value' => $ivalue,
+                    ];
+                    $indexChar++;
+                }
+                $indexChar = 65;
+                $indexNum++;
+                $exportdata[] = $itemuse;
+            }
+        }
+        $exporttitle = [
+            ['cell' => 'A1', 'value' => 'ID'],
+            ['cell' => 'B1', 'value' => '中心名称'],
+            ['cell' => 'C1', 'value' => '订购份数'],
+            ['cell' => 'D1', 'value' => '价格'],
+            ['cell' => 'E1', 'value' => '状态'],
+            ['cell' => 'F1', 'value' => '配送状态'],
+            ['cell' => 'G1', 'value' => '创建时间'],
+            ['cell' => 'H1', 'value' => '支付时间'],
+            ['cell' => 'I1', 'value' => '到货时间'],
+            ['cell' => 'J1', 'value' => '备注'],
+            ['cell' => 'K1', 'value' => '菜品'],
+            ['cell' => 'L1', 'value' => '收货地址'],
+            ['cell' => 'M1', 'value' => '收货人姓名'],
+            ['cell' => 'N1', 'value' => '收货人手机号'],
+        ];
+        $style = [
+            'A' => ['width' => 5],
+            'B' => ['width' => 20],
+            'C' => ['width' => 10],
+            'D' => ['width' => 10],
+            'E' => ['width' => 10],
+            'F' => ['width' => 10],
+            'G' => ['width' => 20],
+            'H' => ['width' => 20],
+            'I' => ['width' => 20],
+            'J' => ['width' => 30],
+            'K' => ['width' => 35],
+            'L' => ['width' => 30],
+            'M' => ['width' => 20],
+            'N' => ['width' => 20],
+        ];
+        $s_pes = new PhpExcelServer();
+        $s_pes->getsheetobj($exportdata, $exporttitle, $style);
+        $filename = "mealorderlist_" . date('YmdHis') . '.xlsx';
+        $s_pes->exportsheet($filename);
+        return backarr(1, "操作成功");
+    }
 }

+ 147 - 0
application/admin/logic/visitlogic.php

@@ -4,6 +4,8 @@ namespace app\admin\logic;
 use app\admin\server\Webuserserver;
 use app\common\model\VisitBusinessTypeModel;
 use app\common\model\VisitModel;
+use app\common\server\PhpExcel as PhpExcelServer;
+use app\common\server\Redis;
 
 class visitlogic
 {
@@ -96,4 +98,149 @@ class visitlogic
         $list = $m_vbt->getList($where, "*", 1, 0, "id asc");
         return backarr(1, 'success', $list);
     }
+    /**
+     * 验证导出条件
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-29
+     */
+    public function checkexportlist($arr)
+    {
+        $userinfo = checkToken();
+        $wherefield = ['name', 'telno'];
+        $where = [];
+        foreach ($wherefield as $key => $value) {
+            if (isset($arr[$value]) && !empty($arr[$value])) {
+                $where[] = [$value, 'like', '%' . $arr[$value] . '%'];
+            }
+        }
+        $wherefield2 = ['is_member', 'business_type'];
+        foreach ($wherefield2 as $key => $value) {
+            if (isset($arr[$value]) && is_numeric($arr[$value])) {
+                $where[] = [$value, '=', $arr[$value]];
+            }
+        }
+        if (isset($arr['createtime'])) {
+            if (is_array($arr['createtime'])
+                && !empty(array_filter($arr['createtime']))
+                && $arr['createtime'] = array_filter($arr['createtime'])) {
+                $where[] = ['createtime', 'between', $arr['createtime']];
+            }
+        }
+        //$page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1;
+        //$size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10;
+        $m_v = new VisitModel();
+        $count = $m_v->getList($where, 'count');
+        if ($count <= 0) {
+            return backarr(0, "无数据");
+        }
+        /*if (session('?visitlistwhere', '', 'export')) {
+        session('visitlistwhere', null, 'export');
+        }
+        session('visitlistwhere', $where, 'export');*/
+        $redis = new Redis();
+        $redis->delete('visitlistwhere');
+        $wherejson = json_encode($where);
+        $redis->set('visitlistwhere', $wherejson);
+        return backarr(1, "查询成功");
+    }
+    /**
+     * 执行导出
+     *
+     * @return void
+     * @author wj
+     * @date 2023-01-29
+     */
+    public function doexportlist()
+    {
+        $redis = new Redis();
+        $wherejson = $redis->get('visitlistwhere');
+        $where = json_decode($wherejson, true);
+        $redis->delete('visitlistwhere');
+        $m_v = new VisitModel();
+        $count = $m_v->getList($where, 'count');
+        $size = 100;
+        $totalpage = ceil($count / $size);
+        $exportdata = [];
+        $exporttitle = [];
+        $indexChar = 65;
+        $indexNum = 2;
+        $m_vbt = new VisitBusinessTypeModel();
+        $tylist = $m_vbt->getList([], "*", 1, 0, "id asc");
+        if (!empty($tylist)) {
+            $tylist = $tylist->toArray();
+            $tylist = array_combine(array_column($tylist, "id"), array_column($tylist, "name"));
+        } else {
+            $tylist = [];
+        }
+        for ($page = 1; $page <= $totalpage; $page++) {
+            $list = $m_v->getList($where, "*", $page, $size)->toArray();
+            foreach ($list as $key => $value) {
+                if (!empty($tylist) && isset($tylist[$value['business_type']])) {
+                    $business = $tylist[$value['business_type']];
+                } else {
+                    $business = '';
+                }
+                $value['business'] = $business;
+                if (1 == $value['is_member']) {
+                    $value['is_member'] = '是';
+                } else {
+                    $value['is_member'] = '否';
+                }
+                $item = [
+                    'id' => $value['id'],
+                    'name' => $value['name'],
+                    'age' => $value['age'],
+                    'gender' => $value['gender'],
+                    'address' => $value['address'],
+                    'telno' => $value['telno'] . " ",
+                    'is_member' => $value['is_member'],
+                    'business' => $value['business'],
+                    'remark' => $value['remark'],
+                    'createtime' => $value['createtime'],
+                ];
+                $itemuse = [];
+                foreach ($item as $ikey => $ivalue) {
+                    $itemuse[] = [
+                        'cell' => chr($indexChar) . $indexNum,
+                        'value' => $ivalue,
+                    ];
+                    $indexChar++;
+                }
+                $indexChar = 65;
+                $indexNum++;
+                $exportdata[] = $itemuse;
+            }
+        }
+        $exporttitle = [
+            ['cell' => 'A1', 'value' => 'ID'],
+            ['cell' => 'B1', 'value' => '姓名'],
+            ['cell' => 'C1', 'value' => '年龄'],
+            ['cell' => 'D1', 'value' => '性别'],
+            ['cell' => 'E1', 'value' => '地址'],
+            ['cell' => 'F1', 'value' => '手机号'],
+            ['cell' => 'G1', 'value' => '是否会员'],
+            ['cell' => 'H1', 'value' => '到访事由'],
+            ['cell' => 'I1', 'value' => '备注'],
+            ['cell' => 'J1', 'value' => '到访时间'],
+        ];
+        $style = [
+            'A' => ['width' => 5],
+            'B' => ['width' => 10],
+            'C' => ['width' => 5],
+            'D' => ['width' => 5],
+            'E' => ['width' => 20],
+            'F' => ['width' => 20],
+            'G' => ['width' => 10],
+            'H' => ['width' => 10],
+            'I' => ['width' => 30],
+            'J' => ['width' => 10],
+        ];
+        $s_pes = new PhpExcelServer();
+        $s_pes->getsheetobj($exportdata, $exporttitle, $style);
+        $filename = "visitlist_" . date('YmdHis') . '.xlsx';
+        $s_pes->exportsheet($filename);
+        return backarr(1, "操作成功");
+    }
 }

+ 4 - 4
application/api/controller/Fileoper.php

@@ -64,15 +64,15 @@ class Fileoper extends Controller
         }
         $domainpath = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $dir . '/';
         // 移动到框架应用根目录/public/uploads/ 目录下
-        if ($filename) {
-            $info = $file->move(ROOT_PATH . 'public' . '/' . $dir, $filename);
+        if (!empty($filename)) {
+            $file = $file->move(ROOT_PATH . 'public' . '/' . $dir, $filename);
         } else {
-            $info = $file->move(ROOT_PATH . 'public' . '/' . $dir);
+            $file = $file->move(ROOT_PATH . 'public' . '/' . $dir);
         }
         //如果不清楚文件上传的具体键名,可以直接打印$info来查看
         //获取文件(文件名),$info->getFilename()  ***********不同之处,笔记笔记哦
         //获取文件(日期/文件名),$info->getSaveName()  **********不同之处,笔记笔记哦
-        $filename = $info->getSaveName(); //在测试的时候也可以直接打印文件名称来查看
+        $filename = $file->getSaveName();
         $filename = str_replace(DS, "/", $filename);
         if ($filename) {
             //$this->success('文件上传成功!');

+ 3 - 0
application/common.php

@@ -126,6 +126,9 @@ function checkToken()
 {
     $l_w = new app\admin\logic\webmanger();
     $token = request()->server('HTTP_TOKEN');
+    if (empty($token)) {
+        $token = request()->param('token');
+    }
     $param = ['token' => $token];
     $result = $l_w->queryinfobytoken($param);
     if (1 != $result['status']) {

+ 70 - 0
application/common/model/SupermarketModel.php

@@ -0,0 +1,70 @@
+<?php
+/*
+ * @Author: wang jun
+ * @Date: 2021-10-29 16:06:41
+ * @Last Modified by: wang jun
+ * @Last Modified time: 2021-10-29 16:15:16
+ */
+namespace app\common\model;
+
+use think\Model;
+
+class SupermarketModel extends Model
+{
+
+    protected $table = 't_supermarket';
+
+    public function insertData($data)
+    {
+        $field = $this->getTableFields();
+        $insertData = [];
+        foreach ($field as $key => $value) {
+            if (in_array($value, array_keys($data))) {
+                $insertData[$value] = $data[$value];
+            }
+        }
+        unset($insertData['id']);
+        $data = $insertData;
+        $id = $this->insertGetId($data);
+        return empty($id) ? false : $id;
+    }
+
+    public function getInfo($where, $field = "*", $row = true)
+    {
+        $info = $this->field($field)->where($where);
+        if ($row) {
+            $info = $info->find();
+        } else {
+            $info = $info->select();
+        }
+        return empty($info) ? false : $info;
+    }
+
+    public function updateinfo($where, $updateData)
+    {
+        $row = $this->where($where)->update($updateData);
+        return empty($row) ? false : $row;
+    }
+
+    public function deleteinfo($where)
+    {
+        $row = $this->where($where)->delete();
+        return empty($row) ? false : $row;
+    }
+
+    public function getList($where = [], $field = "*", $page = 1, $size = 10, $order = "id desc", $group = "", $row = false)
+    {
+        $sqlObj = $this->where($where);
+        if ("count" != $field) {
+            $sqlObj = $sqlObj->field($field)->order($order)->group($group)->page($page, $size);
+            if ($row) {
+                $data = $sqlObj->find();
+            } else {
+                $data = $sqlObj->select();
+            }
+        } else {
+            $data = $sqlObj->count();
+        }
+        return $data;
+    }
+}

+ 70 - 0
application/common/model/SupermarketorderModel.php

@@ -0,0 +1,70 @@
+<?php
+/*
+ * @Author: wang jun
+ * @Date: 2021-10-29 16:06:41
+ * @Last Modified by: wang jun
+ * @Last Modified time: 2021-10-29 16:15:16
+ */
+namespace app\common\model;
+
+use think\Model;
+
+class SupermarketorderModel extends Model
+{
+
+    protected $table = 't_supermarketorder';
+
+    public function insertData($data)
+    {
+        $field = $this->getTableFields();
+        $insertData = [];
+        foreach ($field as $key => $value) {
+            if (in_array($value, array_keys($data))) {
+                $insertData[$value] = $data[$value];
+            }
+        }
+        unset($insertData['id']);
+        $data = $insertData;
+        $id = $this->insertGetId($data);
+        return empty($id) ? false : $id;
+    }
+
+    public function getInfo($where, $field = "*", $row = true)
+    {
+        $info = $this->field($field)->where($where);
+        if ($row) {
+            $info = $info->find();
+        } else {
+            $info = $info->select();
+        }
+        return empty($info) ? false : $info;
+    }
+
+    public function updateinfo($where, $updateData)
+    {
+        $row = $this->where($where)->update($updateData);
+        return empty($row) ? false : $row;
+    }
+
+    public function deleteinfo($where)
+    {
+        $row = $this->where($where)->delete();
+        return empty($row) ? false : $row;
+    }
+
+    public function getList($where = [], $field = "*", $page = 1, $size = 10, $order = "id desc", $group = "", $row = false)
+    {
+        $sqlObj = $this->where($where);
+        if ("count" != $field) {
+            $sqlObj = $sqlObj->field($field)->order($order)->group($group)->page($page, $size);
+            if ($row) {
+                $data = $sqlObj->find();
+            } else {
+                $data = $sqlObj->select();
+            }
+        } else {
+            $data = $sqlObj->count();
+        }
+        return $data;
+    }
+}

+ 2 - 2
application/common/server/MyPhpOffacePsr16Implementation.php

@@ -32,8 +32,8 @@ class MyPhpOffacePsr16Implementation implements CacheInterface
     }
     public function get($key, $default = null)
     {
-        $$this->redis->get($key);
-        throw new InvalidArgumentException($error);
+        $this->redis->get($key);
+        //throw new InvalidArgumentException($error);
 
     }
     public function set($key, $value, $ttl = null)

+ 54 - 0
application/common/server/Redis.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace app\common\server;
+
+use Psr\SimpleCache\InvalidArgumentException;
+
+/**
+ * excel导出
+ *
+ * @Author wj
+ * @DateTime 2022-10-02
+ * @Describe
+ */
+class Redis
+{
+    private $redis;
+    public function __construct()
+    {
+        $this->redis = new \Redis();
+        //docker redis1 6379
+        $this->redis->connect('127.0.0.1', 6379);
+        //$this->redis->auth("qwe110110");
+        $this->redis->auth("zhonghui0123");
+        $this->redis->select("1"); //选择1号数据库 默认0号
+        if (!$this->redis->ping()) {
+            $error = "connect error";
+            throw new InvalidArgumentException($error);
+            //throw new \Exception("链接失败");
+        }
+    }
+    public function get($key, $default = null)
+    {
+        $value = $this->redis->get($key);
+        return $value;
+        //throw new InvalidArgumentException($error);
+    }
+    public function set($key, $value, $ttl = null)
+    {
+        $this->redis->set($key, $value);
+        //throw new InvalidArgumentException($error);
+        return true;
+    }
+    public function delete($key)
+    {
+        $this->redis->del($key);
+        return true;
+        //throw new InvalidArgumentException($error);
+    }
+    public function has($key)
+    {
+        return $this->redis->exists($key);
+        //throw new InvalidArgumentException($error);
+    }
+}

+ 25 - 27
thinkphp/library/think/db/Builder.php

@@ -24,16 +24,16 @@ abstract class Builder
 
     // 查询表达式解析
     protected $parser = [
-        'parseCompare'     => ['=', '<>', '>', '>=', '<', '<='],
-        'parseLike'        => ['LIKE', 'NOT LIKE'],
-        'parseBetween'     => ['NOT BETWEEN', 'BETWEEN'],
-        'parseIn'          => ['NOT IN', 'IN'],
-        'parseExp'         => ['EXP'],
-        'parseNull'        => ['NOT NULL', 'NULL'],
+        'parseCompare' => ['=', '<>', '>', '>=', '<', '<='],
+        'parseLike' => ['LIKE', 'NOT LIKE'],
+        'parseBetween' => ['NOT BETWEEN', 'BETWEEN'],
+        'parseIn' => ['NOT IN', 'IN'],
+        'parseExp' => ['EXP'],
+        'parseNull' => ['NOT NULL', 'NULL'],
         'parseBetweenTime' => ['BETWEEN TIME', 'NOT BETWEEN TIME'],
-        'parseTime'        => ['< TIME', '> TIME', '<= TIME', '>= TIME'],
-        'parseExists'      => ['NOT EXISTS', 'EXISTS'],
-        'parseColumn'      => ['COLUMN'],
+        'parseTime' => ['< TIME', '> TIME', '<= TIME', '>= TIME'],
+        'parseExists' => ['NOT EXISTS', 'EXISTS'],
+        'parseColumn' => ['COLUMN'],
     ];
 
     // SQL表达式
@@ -131,8 +131,8 @@ abstract class Builder
 
             if (false !== strpos($key, '->')) {
                 list($key, $name) = explode('->', $key);
-                $item             = $this->parseKey($query, $key);
-                $result[$item]    = 'json_set(' . $item . ', \'$.' . $name . '\', ' . $this->parseDataBind($query, $key, $val, $bind) . ')';
+                $item = $this->parseKey($query, $key);
+                $result[$item] = 'json_set(' . $item . ', \'$.' . $name . '\', ' . $this->parseDataBind($query, $key, $val, $bind) . ')';
             } elseif ('*' == $options['field'] && false === strpos($key, '.') && !in_array($key, $fields, true)) {
                 if ($options['strict']) {
                     throw new Exception('fields not exists:[' . $key . ']');
@@ -230,12 +230,12 @@ abstract class Builder
      */
     protected function parseTable(Query $query, $tables)
     {
-        $item    = [];
+        $item = [];
         $options = $query->getOptions();
 
         foreach ((array) $tables as $key => $table) {
             if (!is_numeric($key)) {
-                $key    = $this->connection->parseSqlTable($key);
+                $key = $this->connection->parseSqlTable($key);
                 $item[] = $this->parseKey($query, $key) . ' ' . $this->parseKey($query, $table);
             } else {
                 $table = $this->connection->parseSqlTable($table);
@@ -260,14 +260,14 @@ abstract class Builder
      */
     protected function parseWhere(Query $query, $where)
     {
-        $options  = $query->getOptions();
+        $options = $query->getOptions();
         $whereStr = $this->buildWhere($query, $where);
 
         if (!empty($options['soft_delete'])) {
             // 附加软删除条件
             list($field, $condition) = $options['soft_delete'];
 
-            $binds    = $this->connection->getFieldsBind($options['table']);
+            $binds = $this->connection->getFieldsBind($options['table']);
             $whereStr = $whereStr ? '( ' . $whereStr . ' ) AND ' : '';
             $whereStr = $whereStr . $this->parseWhereItem($query, $field, $condition, '', $binds);
         }
@@ -289,8 +289,7 @@ abstract class Builder
         }
 
         $whereStr = '';
-        $binds    = $this->connection->getFieldsBind($query->getOptions('table'));
-
+        $binds = $this->connection->getFieldsBind($query->getOptions('table'));
         foreach ($where as $logic => $val) {
             $str = [];
 
@@ -330,7 +329,7 @@ abstract class Builder
                 } elseif (strpos($field, '|')) {
                     // 不同字段使用相同查询条件(OR)
                     $array = explode('|', $field);
-                    $item  = [];
+                    $item = [];
 
                     foreach ($array as $k) {
                         $item[] = $this->parseWhereItem($query, $k, $value, '', $binds);
@@ -340,7 +339,7 @@ abstract class Builder
                 } elseif (strpos($field, '&')) {
                     // 不同字段使用相同查询条件(AND)
                     $array = explode('&', $field);
-                    $item  = [];
+                    $item = [];
 
                     foreach ($array as $k) {
                         $item[] = $this->parseWhereItem($query, $k, $value, '', $binds);
@@ -414,11 +413,10 @@ abstract class Builder
         if (is_scalar($value) && !in_array($exp, ['EXP', 'NOT NULL', 'NULL', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN']) && strpos($exp, 'TIME') === false) {
             if (0 === strpos($value, ':') && $query->isBind(substr($value, 1))) {
             } else {
-                $name  = $query->bind($value, $bindType);
+                $name = $query->bind($value, $bindType);
                 $value = ':' . $name;
             }
         }
-
         // 解析查询表达式
         foreach ($this->parser as $fun => $parse) {
             if (in_array($exp, $parse)) {
@@ -451,7 +449,7 @@ abstract class Builder
         // 模糊匹配
         if (is_array($value)) {
             foreach ($value as $item) {
-                $name    = $query->bind($item, PDO::PARAM_STR);
+                $name = $query->bind($item, PDO::PARAM_STR);
                 $array[] = $key . ' ' . $exp . ' :' . $name;
             }
 
@@ -659,14 +657,14 @@ abstract class Builder
             $array = [];
 
             foreach ($value as $k => $v) {
-                $name    = $query->bind($v, $bindType);
+                $name = $query->bind($v, $bindType);
                 $array[] = ':' . $name;
             }
 
             if (count($array) == 1) {
                 return $key . ('IN' == $exp ? ' = ' : ' <> ') . $array[0];
             } else {
-                $zone  = implode(',', $array);
+                $zone = implode(',', $array);
                 $value = empty($zone) ? "''" : $zone;
             }
         }
@@ -813,8 +811,8 @@ abstract class Builder
                 }
 
                 if (preg_match('/^[\w\.]+$/', $key)) {
-                    $sort    = strtoupper($sort);
-                    $sort    = in_array($sort, ['ASC', 'DESC'], true) ? ' ' . $sort : '';
+                    $sort = strtoupper($sort);
+                    $sort = in_array($sort, ['ASC', 'DESC'], true) ? ' ' . $sort : '';
                     $array[] = $this->parseKey($query, $key, true) . $sort;
                 } else {
                     throw new Exception('order express error:' . $key);
@@ -846,7 +844,7 @@ abstract class Builder
         $sort = in_array($sort, ['ASC', 'DESC'], true) ? ' ' . $sort : '';
 
         $options = $query->getOptions();
-        $bind    = $this->connection->getFieldsBind($options['table']);
+        $bind = $this->connection->getFieldsBind($options['table']);
 
         foreach ($val as $k => $item) {
             $val[$k] = $this->parseDataBind($query, $key, $item, $bind);