Browse Source

一些功能

Kirin 3 years ago
parent
commit
41dc9f4cf8

+ 1 - 0
app/admin/controller/order/StoreOrder.php

@@ -123,6 +123,7 @@ class StoreOrder extends AuthController
             ['order', ''],
             ['page', 1],
             ['limit', 20],
+            ['excel', 0]
         ]);
         return Json::successlayui(StoreExchangeOrder::getList($where));
     }

+ 4 - 0
app/admin/view/order/store_order/exchange_order.php

@@ -80,6 +80,10 @@
                                                 class="layui-btn layui-btn-sm layui-btn-normal">
                                             <i class="layui-icon layui-icon-search"></i>搜索
                                         </button>
+                                        <button @click="excel" type="button"
+                                                class="layui-btn layui-btn-warm layui-btn-sm export" type="button">
+                                            <i class="fa fa-floppy-o" style="margin-right: 3px;"></i>导出
+                                        </button>
                                         <button @click="refresh" type="reset"
                                                 class="layui-btn layui-btn-primary layui-btn-sm">
                                             <i class="layui-icon layui-icon-refresh"></i>刷新

+ 45 - 1
app/models/store/StoreExchangeOrder.php

@@ -10,6 +10,7 @@ namespace app\models\store;
 use app\admin\model\system\SystemStore;
 use app\models\user\User;
 use crmeb\basic\BaseModel;
+use crmeb\services\PHPExcelService;
 use crmeb\traits\ModelTrait;
 
 /**
@@ -68,7 +69,11 @@ class StoreExchangeOrder extends BaseModel
             $model = $model->order('a.id desc');
         }
         $count = $model->count();
-        $data = ($data = $model->page((int)$where['page'], (int)$where['limit'])->select()) && count($data) ? $data->toArray() : [];
+        if ($where['excel']) {
+            $data = ($data = $model->select()) && count($data) ? $data->toArray() : [];
+        } else {
+            $data = ($data = $model->page((int)$where['page'], (int)$where['limit'])->select()) && count($data) ? $data->toArray() : [];
+        }
         foreach ($data as &$v) {
             $v['nickname'] = User::where('uid', $v['uid'])->value('nickname');
             $v['giftnickname'] = User::where('uid', $v['gift_uid'])->value('nickname');
@@ -85,9 +90,48 @@ class StoreExchangeOrder extends BaseModel
             $v['store'] = SystemStore::where('id', $v['store_id'])->value('name') ?: '--';
             $v['add_time'] = $v['add_time'] ? date('Y-m-d H:i:s', $v['add_time']) : '';
         }
+        if (isset($where['excel']) && $where['excel'] == 1) {
+            self::SaveExcel($data);
+        }
         return compact('data', 'count');
     }
 
+
+    public static function SaveExcel($list)
+    {
+        $export = [];
+        foreach ($list as $index => $item) {
+            $_info = $item['_info'];
+            $goodsName = [];
+            foreach ($_info as $k => $v) {
+                $v = json_decode($v, true);
+                $suk = '';
+                if (isset($v['productInfo']['attrInfo'])) {
+                    if (isset($v['productInfo']['attrInfo']['suk'])) {
+                        $suk = '(' . $v['productInfo']['attrInfo']['suk'] . ')';
+                    }
+                }
+                $goodsName[] = implode(
+                    [$v['productInfo']['store_name'],
+                        $suk,
+                        "[1 * {$v['truePrice']}]"
+                    ], ' ');
+            }
+            $export[] = [
+                $item['order_id'],
+                $goodsName,
+                $item['nickname'] . '|' . $item['uid'],
+                $item['giftnickname'] . '|' . $item['gift_uid'],
+                $item['store'],
+                $item['status_name'],
+            ];
+        }
+        PHPExcelService::setExcelHeader(['订单号', '商品信息', '订单用户', '赠送人', '核销店铺', '兑换券状态'])
+            ->setExcelTile('兑换券导出' . date('YmdHis', time()), '兑换券信息' . time(), ' 生成时间:' . date('Y-m-d H:i:s', time()))
+            ->setExcelContent($export)
+            ->ExcelSave();
+    }
+
     public static function getOrderWhere($where, $model, $aler = '', $join = '')
     {
         if (isset($where['status']) && $where['status'] != '') $model = self::statusWhere($where['status'], $model, $aler);