Преглед на файлове

新增pv&商户分润统计

xialei преди 1 година
родител
ревизия
6d4423be40
променени са 3 файла, в които са добавени 172 реда и са изтрити 3 реда
  1. 135 3
      app/common/repositories/finance/FinanceRepository.php
  2. 35 0
      app/controller/admin/finance/Finance.php
  3. 2 0
      route/admin.php

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

@@ -468,6 +468,7 @@ class FinanceRepository extends BaseRepository
468 468
         $query1 = clone $query;
469 469
         $query2 = clone $query;
470 470
         $query3 = clone $query;
471
+        $query4 = clone $query;
471 472
         $data['list'] = $this->date_where($query, $where['date'], 'ub.create_time')
472 473
             ->field('ub.bill_id,ub.title,ub.number,ub.mark,ub.take_time,ub.commission_type,u.uid,u.phone,u.nickname,u.user_group,ub.order_sn,ub.take_time,ub.status,ub.create_time')
473 474
             ->order('ub.bill_id', 'desc')
@@ -489,7 +490,9 @@ class FinanceRepository extends BaseRepository
489 490
         $data['statistics']['commission'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim(array_sum($statistics)), 'name' => '佣金奖励总额'];
490 491
         $data['statistics']['commission'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($statistics_tow[1] ?? 0), 'name' => '已结算佣金'];
491 492
         $data['statistics']['commission'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($statistics_tow[0] ?? 0), 'name' => '未结算佣金'];
492
-        $data['statistics']['commission'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim(0), 'name' => '佣金转VR'];
493
+        $data['statistics']['commission'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($statistics_tow[-1] ?? 0), 'name' => '已失效佣金'];
494
+        $transition_vr = Db::name('user_transition_vr')->where('type', 1)->sum('number');
495
+        $data['statistics']['commission'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($transition_vr), 'name' => '佣金转VR'];
493 496
         $user_extra_money = Db::name('user_extract')->where('status', 1)->sum('extract_price');
494 497
         $data['statistics']['commission'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($user_extra_money), 'name' => '已提现佣金'];
495 498
         $data['statistics'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($user_extra_money), 'name' => '已提现金额'];
@@ -510,6 +513,8 @@ class FinanceRepository extends BaseRepository
510 513
         $data['statistics']['yanglao'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($statistics[1] ?? 0), 'name' => '已结算养老金'];
511 514
         $data['statistics']['yanglao'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($statistics[0] ?? 0), 'name' => '未结算养老金'];
512 515
         $data['statistics']['yanglao'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($statistics[-1] ?? 0), 'name' => '已失效养老金'];
516
+        $gzc_number = $query4->where('ub.gzc', 1)->sum('ub.number');
517
+        $data['statistics']['yanglao'][] = ['className' => 'el-icon-s-goods', 'count' => set_price_rtrim($gzc_number ?? 0), 'name' => '已入账养老金'];
513 518
         return $data;
514 519
     }
515 520
 
@@ -793,7 +798,7 @@ class FinanceRepository extends BaseRepository
793 798
         $page = input('page');
794 799
         $limit = input('limit');
795 800
         $where = request()->params(['date']);
796
-        $params = request()->params(['type', 'uid', 'pm', 'phone','status']);
801
+        $params = request()->params(['commission_type', 'type', 'uid', 'pm', 'phone','status']);
797 802
 
798 803
         if($params['status'] == 99){
799 804
             unset($params['status']);
@@ -820,6 +825,9 @@ class FinanceRepository extends BaseRepository
820 825
         })
821 826
         ->when(isset($params['type']) && $params['type'] != '', function ($query) use ($params) {
822 827
             $query->where('type', $params['type']);
828
+        })        
829
+        ->when(isset($params['commission_type']) && $params['commission_type'] != '', function ($query) use ($params) {
830
+            $query->where('uss.commission_type', $params['commission_type']);
823 831
         });
824 832
         $query1 = clone $query;
825 833
         $query2 = clone $query;
@@ -829,7 +837,7 @@ class FinanceRepository extends BaseRepository
829 837
         $query6 = clone $query;
830 838
         $query7 = clone $query;
831 839
         $date['list'] = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
832
-            ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,uss.status,uss.mark,u.score')
840
+            ->field('uss.id,uss.addtime,uss.commission_type,u.nickname,u.phone,uss.number,o.order_sn,uss.status,uss.mark,u.score')
833 841
             ->page($page, $limit)
834 842
             ->order('uss.id', 'desc')
835 843
             ->select()
@@ -975,6 +983,130 @@ class FinanceRepository extends BaseRepository
975 983
 
976 984
 
977 985
 
986
+     /**
987
+     * PV统计
988
+     * @return mixed
989
+     */
990
+    public function pv_list($mer_id = 0)
991
+    {
992
+        $page = input('page');
993
+        $limit = input('limit');
994
+        $where = request()->params(['date']);
995
+        $params = request()->params([ 'uid', 'pm', 'phone','status']);
996
+
997
+        if($params['status'] == 99){
998
+            unset($params['status']);
999
+            $params['type'] = 2;
1000
+        }
1001
+
1002
+        $date = [];
1003
+        //商户ID
1004
+        $query = Db::name('user_pv_log')
1005
+        ->alias('uss')
1006
+        ->leftJoin('user u', 'u.uid=uss.uid')
1007
+        ->leftJoin('store_order o', 'o.order_id=uss.order_id')
1008
+        ->when(isset($params['uid']) && $params['uid'] != '', function ($query) use ($params) {
1009
+            $query->where('uss.uid', $params['uid']);
1010
+        })
1011
+        ->when(isset($params['status']) && $params['status'] != '', function ($query) use ($params) {
1012
+            $query->where('uss.status', $params['status']);
1013
+        })
1014
+        ->when(isset($params['phone']) && $params['phone'] != '', function ($query) use ($params) {
1015
+            $query->whereLike('u.phone', '%' . $params['phone'] . '%');
1016
+        });
1017
+        // ->when(isset($params['type']) && $params['type'] != '', function ($query) use ($params) {
1018
+        //     $query->where('type', $params['type']);
1019
+        // });
1020
+        $query1 = clone $query;
1021
+        $query2 = clone $query;
1022
+        $query3 = clone $query;
1023
+        $query4 = clone $query;
1024
+        $query5 = clone $query;
1025
+        $query6 = clone $query;
1026
+        $query7 = clone $query;
1027
+        $date['list'] = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
1028
+            ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.pv,o.order_sn,uss.status,uss.mark,u.score')
1029
+            ->page($page, $limit)
1030
+            ->order('uss.id', 'desc')
1031
+            ->select()
1032
+            ->each(function ($item) {
1033
+                $item['mark'] = $item['mark'];
1034
+                $item['addtime'] = date('Y-m-d H:i:s', $item['addtime']);
1035
+                return $item;
1036
+            });
1037
+        $date['count'] = $query->count();
1038
+        $date['statistics']['all'] = decimal2($query1->sum('uss.pv'));//平台PV总数
1039
+        $date['statistics']['clear'] = decimal2($query2->where('uss.status', 1)->sum('uss.pv'));//已结算PV总数
1040
+        $date['statistics']['nclear'] = decimal2($query3->where('uss.status', -1)->sum('uss.pv'));//未结算PV总数
1041
+        $date['statistics']['lost'] = decimal2($query4->where('uss.status', 2)->sum('uss.pv'));//已失效PV总数
1042
+        $date['statistics']['deduct'] = decimal2($query4->where('uss.status', 2)->sum('uss.pv'));//已结算红包总额
1043
+        $date['statistics']['all_mp1'] = decimal2($query4->where('uss.status', 2)->sum('uss.pv'));//可分红PV数
1044
+ 
1045
+        return $date;
1046
+    }
1047
+
1048
+
1049
+
1050
+
1051
+    /**
1052
+     * 商户分润统计
1053
+     * @return mixed
1054
+     */
1055
+    public function fenrun_list($mer_id = 0)
1056
+    {
1057
+        $page = input('page');
1058
+        $limit = input('limit');
1059
+        $where = request()->params(['date']);
1060
+        $params = request()->params(['type', 'uid', 'pm', 'phone','status']);
1061
+
1062
+        if($params['status'] == 99){
1063
+            unset($params['status']);
1064
+            $params['type'] = 2;
1065
+        }
1066
+
1067
+        $date = [];
1068
+        //商户ID
1069
+        $query = Db::name('user_sign_fenrun')
1070
+        ->alias('uss')
1071
+        ->leftJoin('user u', 'u.uid=uss.uid')
1072
+        ->leftJoin('store_order o', 'o.order_id=uss.order_id')
1073
+        ->leftJoin('merchant m', 'm.mer_id=o.mer_id')
1074
+        ->when(isset($params['uid']) && $params['uid'] != '', function ($query) use ($params) {
1075
+            $query->where('uss.uid', $params['uid']);
1076
+        })
1077
+        ->when(isset($params['status']) && $params['status'] != '', function ($query) use ($params) {
1078
+            $query->where('uss.status', $params['status']);
1079
+        })
1080
+        ->when(isset($params['phone']) && $params['phone'] != '', function ($query) use ($params) {
1081
+            $query->whereLike('u.phone', '%' . $params['phone'] . '%');
1082
+        });
1083
+        $query1 = clone $query;
1084
+        $query2 = clone $query;
1085
+        $query3 = clone $query;
1086
+        $query4 = clone $query;
1087
+        $query5 = clone $query;
1088
+        $query6 = clone $query;
1089
+        $query7 = clone $query;
1090
+        $date['list'] = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
1091
+            ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,o.total_price,uss.status,uss.mark,u.score,m.mer_name')
1092
+            ->page($page, $limit)
1093
+            ->order('uss.id', 'desc')
1094
+            ->select()
1095
+            ->each(function ($item) {
1096
+                $item['mark'] = $item['mark'];
1097
+                $item['addtime'] = date('Y-m-d H:i:s', $item['addtime']);
1098
+                return $item;
1099
+            });
1100
+        $date['count'] = $query->count();
1101
+        $date['statistics']['all'] = decimal2($query1->sum('number'));
1102
+        $date['statistics']['clear'] = decimal2($query2->where('uss.status', 1)->sum('number'));//已结算
1103
+        $date['statistics']['nclear'] = decimal2($query3->where('uss.status', -1)->sum('number'));//未结算
1104
+        $date['statistics']['lost'] = decimal2($query4->where('uss.status', 2)->sum('number'));//已失效
1105
+ 
1106
+        return $date;
1107
+    }
1108
+
1109
+
978 1110
 
979 1111
     /**
980 1112
      * 列表中的时间条件

+ 35 - 0
app/controller/admin/finance/Finance.php

@@ -136,6 +136,41 @@ class Finance extends BaseController
136 136
 
137 137
 
138 138
 
139
+    /**
140
+     * PV统计
141
+     * @return mixed
142
+     */
143
+    public function pv_list(){
144
+        try {
145
+            $financeRepository = app()->make(FinanceRepository::class);
146
+            $date = $financeRepository->pv_list();
147
+            return app('json')->success($date);
148
+        } catch (\Exception $e) {
149
+            Db::name('log')->insert(['data' => 'PV统计错误:' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】']);
150
+            return app('json')->fail('PV统计失败' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】');
151
+        }
152
+    }
153
+
154
+
155
+
156
+
157
+    /**
158
+     * 商户分润统计
159
+     * @return mixed
160
+     */
161
+    public function fenrun_list(){
162
+        try {
163
+            $financeRepository = app()->make(FinanceRepository::class);
164
+            $date = $financeRepository->fenrun_list();
165
+            return app('json')->success($date);
166
+        } catch (\Exception $e) {
167
+            Db::name('log')->insert(['data' => '商户分润统计错误:' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】']);
168
+            return app('json')->fail('商户分润统计失败' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】');
169
+        }
170
+    }
171
+
172
+
173
+
139 174
 
140 175
     /**
141 176
      * 佣金统计

+ 2 - 0
route/admin.php

@@ -865,6 +865,8 @@ Route::group(config('admin.api_admin_prefix') . '/', function () {
865 865
             Route::get('fugou_list', '/fugou_list');
866 866
             Route::get('hongbao_list', '/hongbao_list');
867 867
             Route::get('vr_list', '/vr_list');
868
+            Route::get('pv_list', '/pv_list');
869
+            Route::get('fenrun_list', '/fenrun_list');
868 870
             Route::get('day_bill/list', '/day_bill_list');
869 871
             Route::get('month_bill/list', '/month_bill_list');
870 872