ソースを参照

贡献值导出

xialei 1 年間 前
コミット
8268b0e4fb
共有1 個のファイルを変更した69 個の追加3 個の削除を含む
  1. 69 3
      app/common/repositories/finance/FinanceRepository.php

+ 69 - 3
app/common/repositories/finance/FinanceRepository.php

@@ -16,6 +16,7 @@ use app\common\repositories\user\UserRepository;
16 16
 use think\Exception;
17 17
 use think\facade\Db;
18 18
 use think\facade\Request;
19
+use crmeb\services\SpreadsheetExcelService;
19 20
 
20 21
 class FinanceRepository extends BaseRepository
21 22
 {
@@ -746,9 +747,6 @@ class FinanceRepository extends BaseRepository
746 747
         ->when(isset($params['uid']) && $params['uid'] != '', function ($query) use ($params) {
747 748
             $query->where('uss.uid', $params['uid']);
748 749
         })
749
-        // ->when(isset($params['pm']) && $params['pm'] != '', function ($query) use ($params) {
750
-        //     $query->where('uss.pm', $params['pm']);
751
-        // })
752 750
         ->when(isset($params['status']) && $params['status'] != '', function ($query) use ($params) {
753 751
             $query->where('uss.status', $params['status']);
754 752
         })
@@ -765,6 +763,43 @@ class FinanceRepository extends BaseRepository
765 763
         $query5 = clone $query;
766 764
         $query6 = clone $query;
767 765
         $query7 = clone $query;
766
+
767
+        //导出数据
768
+        $is_excel = request()->param('is_excel', 0);
769
+        if($is_excel == 1){
770
+            $date['list'] =  $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
771
+            ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,uss.status,uss.mark,u.score')
772
+            ->order('uss.number', 'desc')
773
+            ->select();
774
+            $arr = [];
775
+            foreach ($date['list'] as $k=>$item){
776
+                switch ($item['status']) {
777
+                    case '1':
778
+                        $item['status'] = '有效';
779
+                        break;
780
+                    case '-1':
781
+                        $item['status'] = '待确认';
782
+                        break;
783
+                    case '0':
784
+                        $item['status'] = '已失效';
785
+                        break;
786
+                }
787
+                $arr[] = array(
788
+                    $item['id'],
789
+                    date('Y-m-d H:i:s', $item['addtime']),
790
+                    $item['nickname'],
791
+                    $item['phone'],
792
+                    $item['number'],
793
+                    $item['status'],
794
+                    $item['order_sn'],
795
+                    $item['mark']
796
+                );
797
+            }
798
+            return $this->getStatisticsExcel([
799
+                'ID','时间','用户昵称','手机号','贡献值数','贡献值状态','关联订单','说名',
800
+            ], $arr, '贡献值统计');
801
+        }
802
+
768 803
         $date['list'] = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
769 804
             ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,uss.status,uss.mark,u.score')
770 805
             ->page($page, $limit)
@@ -1108,6 +1143,37 @@ class FinanceRepository extends BaseRepository
1108 1143
     }
1109 1144
 
1110 1145
 
1146
+    /**
1147
+     * 获取统计导出
1148
+     */
1149
+    public function getStatisticsExcel($header,$arr,$title)
1150
+    {
1151
+        $filename = $title.'_'.date('YmdHis').'_'.rand(10000,99999);
1152
+        $name = $filename;
1153
+        $info = '生成时间:' . date('Y-m-d H:i:s',time());
1154
+        $suffix='xlsx';
1155
+        $path='extract';
1156
+        unset($_instance);
1157
+
1158
+        $_instance = SpreadsheetExcelService::instance_xin();
1159
+
1160
+        $_path =$_instance
1161
+            ->createOrActive()
1162
+            ->setExcelHeader($header)
1163
+            ->setExcelTile($title, $name, $info)
1164
+            ->setExcelContent($arr)
1165
+            ->excelSave($filename, $suffix, $path);
1166
+
1167
+        $domain = request()->domain();
1168
+        $data= [
1169
+            'name' => $filename.'.'.$suffix,
1170
+            'status' => 1,
1171
+            'path' => $domain.'/'.$_path
1172
+        ];
1173
+
1174
+        return $data;
1175
+    }
1176
+
1111 1177
 
1112 1178
     /**
1113 1179
      * 列表中的时间条件