Просмотр исходного кода

平台后台-财务-财务操作-公正处入账明细-导出-增加字段

sunxbiao 1 год назад
Родитель
Сommit
9405b7cd26
1 измененных файлов с 69 добавлено и 26 удалено
  1. 69 26
      app/common/repositories/merchant/order/OrderGzcRepository.php

+ 69 - 26
app/common/repositories/merchant/order/OrderGzcRepository.php

@@ -17,6 +17,7 @@ use app\traits\GzcApiRequest;
17 17
 use Carbon\Carbon;
18 18
 use crmeb\services\SpreadsheetExcelService;
19 19
 use FormBuilder\Factory\Elm;
20
+use think\facade\Db;
20 21
 use think\facade\Log;
21 22
 use think\facade\Route;
22 23
 
@@ -50,36 +51,78 @@ class OrderGzcRepository extends BaseRepository
50 51
         // 导出
51 52
         $is_excel = request()->param('is_excel', 0);
52 53
         if ($is_excel == 1) {
53
-            $data = $query->with('user')->select();
54
+            $data = $query->with('user')->select()->toArray();
55
+
54 56
             $arr = [];
55
-            foreach ($data as $item) {
56
-                $arr[] = [
57
-                    $item['id'],
58
-                    $item['platform_no'],
59
-                    $item['user']['nickname'],
60
-                    $item['user']['account'],
61
-                    $item['user_name'],
62
-                    $item['mobile'],
63
-                    $item['user_card'],
64
-                    $item['bank_name'],
65
-                    $item['branch_name'],
66
-                    $item['bank_account'],
67
-                    $item['bank_no'],
68
-                    $item['alipay_account'],
69
-                    $item['alipay_no'],
70
-                    $item['wxpay_account'],
71
-                    $item['wxpay_no'],
72
-                    $item['out_trade_no'],
73
-                    $item['pension'],
74
-                    $item['gzc'] == 1 ? '已发起' : '待发起',
75
-                    $item['gzc_deposit_no'],
76
-                    $item['gzc_confirm_result'],
77
-                    $item['create_time'],
78
-                    $item['update_time']
57
+            if (!empty($data)) {
58
+                $orderTypeMap = [];
59
+                $orderDetailMap = [];
60
+                $orderMap = [
61
+                    0 => ['table' => 'rrx_store_order', 'name' => '平台订单', 'pk' => 'order_id', 'field' => 'order_id, total_price AS order_money, pay_price AS pay_money, con_pri AS commission'],
62
+                    1 => ['table' => 'rrx_order_pdd', 'name' => '拼多多', 'pk' => 'order_pdd_id', 'field' => 'order_pdd_id AS order_id, order_money, pay_money, commission'],
63
+                    2 => ['table' => 'rrx_order_vip', 'name' => '唯品会', 'pk' => 'order_vip_id', 'field' => 'order_vip_id AS order_id, pay_money AS order_money, pay_money, commission'],
64
+                    3 => ['table' => 'rrx_order_su', 'name' => '苏宁', 'pk' => 'order_su_id', 'field' => 'order_su_id AS order_id, total_amount AS order_money, pay_amount AS pay_money, commission'],
65
+                    5 => ['table' => 'rrx_order_tb', 'name' => '淘宝', 'pk' => 'order_tb_id', 'field' => 'order_tb_id AS order_id, alipay_total_price AS order_money, alipay_total_price AS pay_money, commission'],
66
+                    6 => ['table' => 'rrx_order_jd', 'name' => '京东', 'pk' => 'order_jd_id', 'field' => 'order_jd_id AS order_id, pay_money AS order_money, pay_money AS pay_money, commission'],
67
+                    9 => ['table' => 'rrx_order_huafei', 'name' => '话费', 'pk' => 'order_huafei_id', 'field' => 'order_huafei_id AS order_id, pay_money AS order_money, pay_money AS pay_money, commission'],
68
+                    10 => ['table' => 'rrx_order_merchant', 'name' => '线下扫码', 'pk' => 'id', 'field' => 'id AS order_id, money AS order_money, money AS pay_money, available AS commission']
79 69
                 ];
70
+
71
+                foreach ($data as $gzcData) {
72
+                    if (!empty($gzcData['link_id'])) {
73
+                        $orderTypeMap[$gzcData['order_type']][$gzcData['link_id']] = $gzcData['id'];
74
+                    }
75
+                }
76
+
77
+                if (!empty($orderTypeMap)) {
78
+                    foreach ($orderTypeMap as $orderType => $map) {
79
+                        if (isset($orderMap[$orderType])) {
80
+                            $config = $orderMap[$orderType];
81
+                            $result = Db::table($config['table'])
82
+                                ->whereIn($config['pk'], array_keys($map))
83
+                                ->select()
84
+                                ->toArray();
85
+                            if (!empty($result)) {
86
+                                foreach ($result as $orderData) {
87
+                                    $orderDetailMap[$map[$orderData['order_id']]] = $orderData;
88
+                                }
89
+                            }
90
+                        }
91
+                    }
92
+                }
93
+
94
+                foreach ($data as $item) {
95
+                    $arr[] = [
96
+                        $item['id'],
97
+                        $item['platform_no'],
98
+                        $item['user']['nickname'],
99
+                        $item['user']['account'],
100
+                        $item['user_name'],
101
+                        $item['mobile'],
102
+                        $item['user_card'],
103
+                        $item['bank_name'],
104
+                        $item['branch_name'],
105
+                        $item['bank_account'],
106
+                        $item['bank_no'],
107
+                        $item['alipay_account'],
108
+                        $item['alipay_no'],
109
+                        $item['wxpay_account'],
110
+                        $item['wxpay_no'],
111
+                        $orderMap[$item['order_type']]['name'],
112
+                        $orderDetailMap[$item['id']]['order_money'],
113
+                        $orderDetailMap[$item['id']]['commission'],
114
+                        $item['out_trade_no'],
115
+                        $item['pension'],
116
+                        $item['gzc'] == 1 ? '已发起' : '待发起',
117
+                        $item['gzc_deposit_no'],
118
+                        $item['gzc_confirm_result'],
119
+                        $item['create_time'],
120
+                        $item['update_time']
121
+                    ];
122
+                }
80 123
             }
81 124
             return $this->getStatisticsExcel([
82
-                'ID', '平台申请单号', '用户昵称', '用户账号', '实名认证姓名', '实名认证电话', '实名认证证件号', '银行名称', '银行名称', '开户账号', '转账流水号', '支付宝账号', '支付宝流水号', '微信账号', '微信流水号', '关联订单', '养老金', '处理状态', '公证处入账编号', '公证处入账结果', '创建时间', '更新时间'
125
+                'ID', '平台申请单号', '用户昵称', '用户账号', '实名认证姓名', '实名认证电话', '实名认证证件号', '银行名称', '银行名称', '开户账号', '转账流水号', '支付宝账号', '支付宝流水号', '微信账号', '微信流水号', '订单来源', '订单金额', '订单利润', '关联订单', '养老金', '处理状态', '公证处入账编号', '公证处入账结果', '创建时间', '更新时间'
83 126
             ], $arr, '公证处入账明细');
84 127
         }
85 128