Procházet zdrojové kódy

总部后台线下订单展示和导出

Xpy před 6 měsíci
rodič
revize
ba81bea503

+ 43 - 0
app/common/repositories/merchant/order/OrderMerchantRepository.php

@@ -163,6 +163,49 @@ class OrderMerchantRepository extends BaseRepository
163 163
             ->whereNull('refund_time')
164 164
             ->find();
165 165
 
166
+        $is_excel = request()->param('is_excel', 0);
167
+        if($is_excel){
168
+            ini_set('memory_limit', '-1');
169
+            set_time_limit(0);
170
+            $list = clone $query;
171
+            $list = $list->with(['merchant' => function ($query) {
172
+                return $query->field('mer_id,mer_name,mer_avatar');
173
+            }])->order('id desc')->select()->each(function ($item) {
174
+                $item->actual = bcsub($item->money, ($item->available + $item->swipe_fee), 2);
175
+                return $item;
176
+            });
177
+
178
+            $arr = [];
179
+            foreach ($list as $item){
180
+                $status = $item['paid'] == 1 ? '已支付' : '未支付';
181
+                if($item['refund_time']) $status = '已退款';
182
+
183
+                $arr[] = [
184
+                    $item['id'],
185
+                    $item['mer_id'],
186
+                    $item['merchant']['mer_name'] ?? '',
187
+                    $item['uid'],
188
+                    $item['money'],
189
+                    $item['available'],
190
+                    $item['service_money'],
191
+                    $item['pension'],
192
+                    $item['swipe_fee'],
193
+                    $item['mer_money'],
194
+                    $item['mer_fanyong'],
195
+                    $item['actual'],
196
+                    $status,
197
+                    $item['create_time'],
198
+                    $item['out_trade_no']
199
+                ];
200
+            }
201
+            $header = [
202
+                'ID', '商户ID', '商户名称', '用户ID',
203
+                '充值金额', '可分佣总额', '服务商返利', '养老金', '刷卡手续费', '商户金额', '商户返佣', '实到金额',
204
+                '状态', '时间', '订单号'
205
+            ];
206
+            return app()->make(\crmeb\services\SpreadsheetExcelService::class)->setExcelContent($header, $arr, '线下订单');
207
+        }
208
+
166 209
         $count = $query->count();
167 210
         $list = $query->with(['merchant', 'merchant' => function ($query) {
168 211
             return $query->field('mer_id,mer_name,mer_avatar');

+ 42 - 0
app/controller/admin/order/MerchantOfflineOrder.php

@@ -0,0 +1,42 @@
1
+<?php
2
+
3
+namespace app\controller\admin\order;
4
+use app\common\repositories\merchant\order\OrderMerchantRepository;
5
+use crmeb\basic\BaseController;
6
+use think\App;
7
+
8
+class MerchantOfflineOrder extends BaseController
9
+{
10
+    /**
11
+     * @var OrderMerchantRepository
12
+     */
13
+    protected $repository;
14
+
15
+    /**
16
+     * @var int
17
+     */
18
+    protected $merId;
19
+
20
+    /**
21
+     * MerchantIntention constructor.
22
+     * @param App $app
23
+     * @param OrderMerchantRepository $repository
24
+     */
25
+    public function __construct(App $app, OrderMerchantRepository $repository)
26
+    {
27
+        parent::__construct($app);
28
+        $this->repository = $repository;
29
+        $this->merId = 0;
30
+    }
31
+    /**
32
+     * @return mixed
33
+     * 展示线下订单
34
+     */
35
+    public function lst()
36
+    {
37
+        [$page, $limit] = $this->getPage();
38
+        $where = $this->request->params(['keyword', 'date', 'status', 'mer_id']);
39
+        return app('json')->success($this->repository->getMerchantListAdmin($this->merId, $where, $page, $limit));
40
+    }
41
+
42
+}

+ 1 - 0
route/admin.php

@@ -978,6 +978,7 @@ Route::group(config('admin.api_admin_prefix') . '/', function () {
978 978
             Route::post('killOrderRewards', 'Order/killOrderRewards');//撤回订单
979 979
             Route::post('killOrderLst', 'Order/killOrderLst');//撤回订单的列表
980 980
             Route::post('easterKillOrder', 'Order/easterKillOrder');//撤回撤回订单
981
+            Route::get('merchantOfflineOrder', 'MerchantOfflineOrder/lst');//线下订单展示
981 982
         })->prefix('admin.order.');
982 983
 
983 984
         //第三方订单