浏览代码

提现导出

gorden 5 月之前
父节点
当前提交
2f8270927c
共有 2 个文件被更改,包括 80 次插入0 次删除
  1. 79 0
      app/admin/controller/finance/WithdrawalListController.php
  2. 1 0
      route/admin.php

+ 79 - 0
app/admin/controller/finance/WithdrawalListController.php

@@ -307,7 +307,86 @@ class WithdrawalListController extends Curd
             Db::rollBack();
             return json_fail("修改状态失败");
         }
+    }
+
+    /**
+     * @Desc 提现导出
+     * @Author Gorden
+     * @Date 2024/11/1 17:12
+     *
+     * @param Request $request
+     * @return Response
+     */
+    public function export(Request $request)
+    {
+        $memberAccountListAddtimes = $request->get('member_account_list_addtimes');
+        $memberId = $request->get('join_member_account_list_member_id');
+        $memberAccountListStatus = $request->get('member_account_list_status');
+        $memberAccountListIds = $request->get('member_account_list_ids');
+        $withdrawal = MemberAccountList::with([
+            'member' => function ($query) {
+                $query->select('member_id', 'member_mobile');
+            },
+            'memberCert' => function ($query) {
+                $query->select('join_cert_member_id', 'member_cert_name');
+            }
+        ])->where('member_account_list_attr', 'OUT');
+        if (!empty($memberId)) {
+            $withdrawal = $withdrawal->where('join_member_account_list_member_id', $memberId);
+        }
+        if (!empty($memberAccountListStatus)) {
+            $withdrawal = $withdrawal->where('member_account_list_status', $memberAccountListStatus);
+        }
+        if (!empty($memberAccountListAddtimes)) {
+            $memberAccountListAddtimes[0] = strtotime($memberAccountListAddtimes[0]);
+            $memberAccountListAddtimes[1] = strtotime($memberAccountListAddtimes[1]);
+            $withdrawal = $withdrawal->whereBetween('member_account_list_addtimes', $memberAccountListAddtimes);
+        }
+        if (!empty($memberAccountListIds)) {
+            $withdrawal = $withdrawal->whereIn('member_account_list_id', $memberAccountListIds);
+        }
+        $withdrawal = $withdrawal->orderBy("member_account_list_addtimes", 'DESC')->get()->toArray();
+
+        $data = [];
+        foreach ($withdrawal as $item) {
+            $mobile = !empty($item['member']) ? $item['member']['member_mobile'] : '';
+            $certName = !empty($item['member_cert']) ? $item['member_cert']['member_cert_name'] : '';
+            $rateAmount = 0;
+            if (!empty($item['member_account_list_json'])) {
+                $memberAccountListJson = json_decode($item['member_account_list_json'], true);
+                if (isset($memberAccountListJson['out_rate'])) {
+                    $item['out_rate'] = ($memberAccountListJson['out_rate'] / 10);
+                    $rateAmount = round($item['member_account_list_amount'] * $item['out_rate'] / 100, 2);
+                    $item['out_rate'] = $item['out_rate'] . '%';
+                }
+            }
+            $item['to_account'] = sprintf('%.2f', $item['member_account_list_amount'] - $rateAmount);
+            if (!empty($item['member_account_list_extend_json']) && $item['member_account_list_status'] == 'CANCEL') {
+                $extendJson = json_decode($item['member_account_list_extend_json'], true);
+                if (!empty($extendJson['reason'])) {
+                    $item['member_account_list_status'] = 'REJECT';
+                }
+            }
 
+            $data[] = [
+                'member_account_list_addtimes' => $item['member_account_list_addtimes'],
+                'member_name' => MemberService::getMemberCertName($mobile, $certName, ''),
+                'member_account_list_category' => $item['member_account_list_category'],
+                'member_account_list_amount' => $item['member_account_list_amount'],
+                'out_rate' => $item['out_rate'] ?? '0',
+                'to_account' => $item['to_account'],
+                'member_account_list_status' => self::$status[$item['member_account_list_status']]
+            ];
+        }
 
+        return json_success('success', $data);
     }
+
+    public static $status = [
+        'PENDING' => '待处理',
+        'WAITING' => '处理中',
+        'ACTIVED' => '已完成',
+        'REJECT' => '已驳回',
+        'CANCEL' => '已取消'
+    ];
 }

+ 1 - 0
route/admin.php

@@ -179,6 +179,7 @@ Route::group('/admin', function () {
             Route::get('/statistics', [\app\admin\controller\finance\WithdrawalListController::class, 'statistics']);
             Route::get('/info', [\app\admin\controller\finance\WithdrawalListController::class, 'info']);
             Route::post('/changeStatus', [\app\admin\controller\finance\WithdrawalListController::class, 'changeStatus']);
+            Route::get('/export', [\app\admin\controller\finance\WithdrawalListController::class, 'export']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);