Browse Source

报表优化

wufeng 2 years ago
parent
commit
caabe0f3bb
1 changed files with 37 additions and 31 deletions
  1. 37 31
      app/admin/controller/Report.php

+ 37 - 31
app/admin/controller/Report.php

@@ -139,27 +139,29 @@ class Report extends Base
     {
         $param = $this->request->only([
             'token',
-            'start_date' => date('Y-m-d'),
-            'end_date' => date('Y-m-d'),
+            'start_date' => '',
+            'end_date' => '',
             'page' => 1,
             'size' => 15,
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
-            'start_date' => 'require|date|elt:end_date',
-            'end_date' => 'require|date',
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date',
         ]);
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
+        $where = [['gz.is_del', '=', 0]];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gz.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
         $count = Db::name('good_zixun')
             ->alias('gz')
             ->field('count(gz.id) total,DATE_FORMAT(gz.addtime,"%Y-%m-%d") addtime,du.itemid,ci.name')
             ->leftJoin('depart_user du', 'du.uid=gz.createrid AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
-            ->where('gz.is_del', 0)
+            ->where($where)
             ->group('addtime,du.itemid,ci.name')
-            ->whereBetween('gz.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
             ->count();
 
         $list = Db::name('good_zixun')
@@ -167,9 +169,8 @@ class Report extends Base
             ->field('count(gz.id) total,DATE_FORMAT(gz.addtime,"%Y-%m-%d") addtime,du.itemid,ci.name')
             ->leftJoin('depart_user du', 'du.uid=gz.createrid AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
-            ->where('gz.is_del', 0)
+            ->where($where)
             ->group('addtime,du.itemid,ci.name')
-            ->whereBetween('gz.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
             ->order('addtime')
             ->page($param['page'], $param['size'])
             ->select()
@@ -184,8 +185,8 @@ class Report extends Base
     {
         $param = $this->request->only([
             'token',
-            'start_date' => date('Y-m-d'),
-            'end_date' => date('Y-m-d'),
+            'start_date' => '',
+            'end_date' => '',
             'page' => 1,
             'size' => 15,
         ], 'post', 'trim');
@@ -197,13 +198,15 @@ class Report extends Base
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
+        $where = [['po.is_del', '=', 0]];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['po.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
         $rs = Db::name('purchease_order')
             ->alias('po')
             ->leftJoin('depart_user du', 'du.uid=po.cgder_id AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
-            ->where('po.is_del', 0)
-            ->order('addtime,itemid')
-            ->whereBetween('po.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']);
+            ->where($where)
+            ->order('addtime,itemid');
 
         //统计条数的时候,不能按照status分组,否则下方列表不准
         $count = $rs
@@ -213,7 +216,7 @@ class Report extends Base
 
         $list = $rs
             ->field('DATE_FORMAT(po.addtime,"%Y-%m-%d") addtime,SUM(po.total_fee) total_fee,SUM(po.good_num) good_num,po.status,du.itemid,ci.name,"" wait_total_fee,"" wait_good_num')
-            ->page($param['page'],$param['size'])
+            ->page($param['page'], $param['size'])
             ->group('addtime,du.itemid,po.status')
             ->cursor();
 
@@ -259,8 +262,8 @@ class Report extends Base
     {
         $param = $this->request->only([
             'token',
-            'start_date' => date('Y-m-d'),
-            'end_date' => date('Y-m-d'),
+            'start_date' => '',
+            'end_date' => '',
             'page' => 1,
             'size' => 15,
         ], 'post', 'trim');
@@ -272,14 +275,16 @@ class Report extends Base
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
+        $where = [['cb.is_del', '=', 0]];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['cb.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
         $count = Db::name('consult_bids')
             ->alias('cb')
             ->field('DATE_FORMAT(cb.addtime,"%Y-%m-%d") addtime,du.itemid,cb.createrid,SUM(c.num) num,COUNT(cb.id) total,du.nickname,ci.name')
             ->leftJoin('consult c', 'c.zxNo=cb.zxNo AND c.is_del=0')
             ->leftJoin('depart_user du', 'du.uid=cb.createrid AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
-            ->where('cb.is_del', 0)
-            ->whereBetween('cb.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->where($where)
             ->group('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
             ->order('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
             ->count();
@@ -290,17 +295,16 @@ class Report extends Base
             ->leftJoin('consult c', 'c.zxNo=cb.zxNo AND c.is_del=0')
             ->leftJoin('depart_user du', 'du.uid=cb.createrid AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
-            ->where('cb.is_del', 0)
-            ->whereBetween('cb.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->where($where)
             ->group('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
             ->order('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
-            ->page($param['page'],$param['size'])
+            ->page($param['page'], $param['size'])
             ->select()
             ->toArray();
 
         $list[] = ['addtime' => '汇总', 'itemid' => 0, 'createrid' => 0, 'num' => array_sum(array_column($list, 'num')), 'total' => array_sum(array_column($list, 'total')), 'nickname' => '', 'name' => ''];
 
-        return app_show(0, '请求成功', ['list'=>$list,'count'=>$count]);
+        return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
 
     }
 
@@ -309,10 +313,10 @@ class Report extends Base
     {
         $param = $this->request->only([
             'token',
-            'start_date' => date('Y-m-d'),
-            'end_date' => date('Y-m-d'),
-            'page'=>1,
-            'size'=>15
+            'start_date' => '',
+            'end_date' => '',
+            'page' => 1,
+            'size' => 15
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
@@ -322,20 +326,22 @@ class Report extends Base
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
+        $where = [['is_del', '=', 0]];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
         $count = Db::name('purchease_order')
 //            ->field('DATE_FORMAT(addtime, "%Y-%m-%d") addtime,cgder_id,cgder,SUM(total_fee) total_fee,SUM(good_num) good_num,0 wait_total_fee,0 wait_good_num')
-            ->where('is_del', 0)
+            ->where($where)
             ->group('addtime,cgder_id')
             ->order('addtime,cgder_id')
-            ->whereBetween('addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
             ->count('id');
 
         $rs = Db::name('purchease_order')
             ->field('DATE_FORMAT(addtime, "%Y-%m-%d") addtime,cgder_id,cgder,SUM(total_fee) total_fee,SUM(good_num) good_num,status,0 wait_total_fee,0 wait_good_num')
-            ->where('is_del', 0)
+            ->where($where)
             ->group('addtime,cgder_id,cgder,status')
             ->order('addtime,cgder_id')
-            ->whereBetween('addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->page($param['page'], $param['size'])
             ->cursor();
 
         $data = [];
@@ -368,7 +374,7 @@ class Report extends Base
             }
         }
 
-        return app_show(0, '请求成功', ['list'=>$da,'count'=>$count]);
+        return app_show(0, '请求成功', ['list' => $da, 'count' => $count]);
 
     }