liugc 1 rok temu
rodzic
commit
3c67510d35

+ 14 - 12
app/adminapi/lists/master_worker/MasterWorkerServiceOrderLists.php

@@ -83,11 +83,9 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
         if (isset($this->params['cooperation']) && !empty($this->params['cooperation'])) {
             $where[] = ['a.cooperation','=' ,$this->params['cooperation']];
         }
-        if (!empty($this->params['start_time'])) {
-            $this->sqlJoin .= '    AND  b.finished_time >= '.strtotime($this->params['start_time']);
-        }
-        if (!empty($this->params['end_time'])) {
-            $this->sqlJoin .= '    AND  b.finished_time < '.strtotime($this->params['end_time'])+86400;
+        // ( ( b.finished_time >= 1743436800  AND b.finished_time < 1746028800 ) or ( b.create_time >= 1743436800  AND b.create_time < 1746028800) )
+        if (!empty($this->params['start_time']) && !empty($this->params['end_time'])) {
+            $this->sqlJoin = ' and ( ( b.finished_time >= '.strtotime($this->params['start_time']).'  AND b.finished_time < '.strtotime($this->params['end_time']).' ) or ( b.create_time >= '.strtotime($this->params['start_time']).'  AND b.create_time < '.strtotime($this->params['end_time']).') )';
         }
         //dd($this->sqlJoin);
         $where[] = ['a.audit_state','=' ,1];
@@ -97,11 +95,12 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
     {
         $where = [];
         if (!empty($this->params['start_time'])) {
-            $where[0] = $this->params['start_time'];
+            $where[0] = strtotime($this->params['start_time']);
         }
         if (!empty($this->params['end_time'])) {
             $where[1] = strtotime($this->params['end_time'])+86400;
         }
+        //dd($where);
         return $where;
     }
     /**
@@ -138,16 +137,17 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
         $queryWhereLog = $this->queryWhereLog();
         $lists = Db::name('master_worker')->alias('a')->field([
                 'a.id','a.real_name','a.nickname','a.area_name','a.worker_number','a.recruiting_behalf','a.mobile','a.cooperation','a.category_ids','a.labels','a.remark',
-                Db::raw("COUNT(b.id) AS all_count"),
+                Db::raw("SUM( CASE WHEN b.work_status > 1 THEN 1 ELSE 0 END ) AS accepting_count"),
                 Db::raw("SUM(CASE WHEN b.service_status = 3 THEN 1 ELSE 0 END) AS success_count"),
                 Db::raw("SUM(CASE WHEN b.service_status = 4 OR b.service_status = 5 THEN 1 ELSE 0 END) AS fail_count"),
-                Db::raw("SUM(CASE WHEN b.service_status = 3 THEN b.work_total ELSE 0 END) work_total"),
-                Db::raw("SUM(CASE WHEN b.service_status = 3 THEN b.worker_price ELSE 0 END) worker_price"),
+                Db::raw("SUM(CASE WHEN b.service_status = 3 THEN b.work_amount ELSE 0 END) work_amount_sum"),
+                Db::raw("SUM(CASE WHEN b.service_status = 3 THEN (b.settlement_amount+b.earnest_money+b.add_work_amount+b.spare_total) ELSE 0 END) worker_settlement_sum"),
             ])
             ->leftJoin('service_work b', 'a.id = b.master_worker_id'.$this->sqlJoin)
             ->where($queryWhere)
             ->where($this->queryDataWhere())
             ->group('a.id')
+            //->having('success_count>0 OR fail_count>0 OR work_amount_sum>0 OR worker_settlement_sum>0')
             ->order('a.id desc')
             ->limit($this->limitOffset, $this->limitLength)
             ->select()->toArray();
@@ -178,15 +178,17 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
         $queryWhere = $this->queryWhere();
         return Db::name('master_worker')->alias('a')->field([
                 'a.id','a.real_name','a.nickname','a.worker_number','a.recruiting_behalf',
+                Db::raw("SUM( CASE WHEN b.work_status > 1 THEN 1 ELSE 0 END ) AS accepting_count"),
                 Db::raw("SUM(CASE WHEN b.service_status = 3 THEN 1 ELSE 0 END) AS success_count"),
                 Db::raw("SUM(CASE WHEN b.service_status = 4 OR b.service_status = 5 THEN 1 ELSE 0 END) AS fail_count"),
-                Db::raw("SUM(b.work_total) work_total"),
-                Db::raw("SUM(b.worker_price) worker_price"),
+                Db::raw("SUM(CASE WHEN b.service_status = 3 THEN b.work_amount ELSE 0 END) work_amount_sum"),
+                Db::raw("SUM(CASE WHEN b.service_status = 3 THEN (b.settlement_amount+b.earnest_money+b.add_work_amount+b.spare_total) ELSE 0 END) worker_settlement_sum"),
             ])
             ->leftJoin('service_work b', 'a.id = b.master_worker_id'.$this->sqlJoin)
             ->where($queryWhere)
             ->where($this->queryDataWhere())
             ->group('a.id')
+            //->having('success_count>0 OR fail_count>0 OR work_amount_sum>0 OR worker_settlement_sum>0')
             ->count();
     }
 
@@ -212,7 +214,7 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
                 }
                 return $row['labels']?:'';
             },
-            'success_count', 'fail_count', 'work_total', 'worker_price'
+            'success_count', 'fail_count', 'work_amount_sum', 'worker_settlement_sum'
         ];
         return [
             'zh_cn_fields' => $zh_cn_fields,

+ 3 - 3
app/api/logic/PerformanceLogic.php

@@ -54,7 +54,7 @@ class PerformanceLogic extends BaseLogic
             $coupon_price = RechargeOrder::where('work_id',$work->id)->sum('coupon_price');
             switch ($rule['type']){
                 case 0://按照总金额结算
-                    $settlement_amount = bcmul($work->work_total, $rule['rate'],2);
+                    $settlement_amount = bcmul(bcsub($work->work_total - $work->spare_total), $rule['rate'],2);
                     break;
                 case 1://按照结算金额结算
                     $worker_price = $work->work_amount;
@@ -65,7 +65,7 @@ class PerformanceLogic extends BaseLogic
                 case 2://按照服务总费用结算
                     //搜索所有优惠券
                     $worker_price = $work->service_fee-$coupon_price;
-                    $settlement_amount = bcmul($worker_price, $rule['rate'],2);
+                    $settlement_amount = bcmul(bcsub($worker_price - $work->spare_total), $rule['rate'],2);
                     break;
                 default://按照固定金额结算
                     $worker_price = $work->service_fee-$coupon_price;
@@ -162,7 +162,7 @@ class PerformanceLogic extends BaseLogic
             $work->worker_price = $work->work_total;
             //$settlement_amount = bcmul($work->work_total, $ratio,2);
             // 运营新定 - 配件费不包进总工单金额扣除
-            $settlement_amount = bcmul(bcsub($work->work_total - $work->spare_total), $ratio,2);
+            $settlement_amount = bcmul(bcsub($work->worker_price - $work->spare_total), $ratio,2);
             // 缴纳质保金
             $masterWorkerInfo = MasterWorker::where('id', $work->master_worker_id)->where('retention_money_status', 1)->findOrEmpty()->toArray();
             Log::info('缴纳质保金工程师信息:'.json_encode($masterWorkerInfo));