liugc 1 год назад
Родитель
Сommit
1f894b601b

+ 3 - 3
app/common/model/works/ServiceWork.php

@@ -30,12 +30,12 @@ use app\common\model\property\PropertyHead;
  */
 class ServiceWork extends BaseModel
 {
-    
+
     protected $name = 'service_work';
     protected $type = [
         'goods_category_ids' =>  'array',
     ];
-    protected $status = [0=>'待派单',1=>'待领单',2=>'待联系',3=>'待上门',4=>'已上门',5=>'服务中',6=>'待结算',7=>'已完结',8=>'已评价',9=>'已退费'];
+    const WORK_STATUS_TXT  = [0=>'待派单',1=>'待领单',2=>'待联系',3=>'待上门',4=>'已上门',5=>'服务中',6=>'待结算',7=>'已完结',8=>'已评价',9=>'已退费'];
     public static function onAfterUpdate($model)
     {
         if($model->user_confirm_status == 5 and $model->work_status == 7 and $model->work_pay_status==1){
@@ -71,7 +71,7 @@ class ServiceWork extends BaseModel
     public function getWorkStatusTextAttr($value,$data)
     {
         //$status = [0=>'待派单',1=>'待领单',2=>'待联系',3=>'待上门',4=>'已上门',5=>'服务中',6=>'待结算',7=>'已完结',8=>'已评价',9=>'已退费'];
-        return (isset($data['service_status']) && $data['service_status']===4)?'已取消':$this->status[$data['work_status']];
+        return (isset($data['service_status']) && $data['service_status']===4)?'已取消':self::WORK_STATUS_TXT[$data['work_status']];
     }
 
     public function getUserConfirmStatusTextAttr($value,$data)

+ 16 - 9
app/workerapi/logic/MasterWorkerTeamLogic.php

@@ -135,15 +135,22 @@ class MasterWorkerTeamLogic extends  BaseLogic
      */
     public static function MemberWorkStatistics($userInfo){
         $lists = ServiceWork::whereIn('master_worker_id',
-                MasterWorker::where('team_id', $userInfo['team_id'])->where('team_role', 2)->column('id')
-            )->group('work_status')
-            ->field('work_status, COUNT(id) as count_num')
-            ->append(['work_status_text'])
-            ->order('work_status asc')
-            ->select()->toArray();
-
-        dd(array_column($lists,'count_num','work_status'));
-        return [];
+                    MasterWorker::where('team_id', $userInfo['team_id'])->where('team_role', 2)->column('id')
+                )->group('work_status')
+                ->field('work_status, COUNT(id) as count_num')
+                ->order('work_status asc')
+                ->select()->toArray();
+        $lists = array_column($lists,'count_num','work_status');
+        $work_status_txt = array_slice(ServiceWork::WORK_STATUS_TXT, 1, 8,true);
+        $res = [];
+        foreach ($work_status_txt as $work_status => $name) {
+            $res[] = [
+                'work_status' => $work_status,
+                'work_status_text' => $name,
+                'count_num' => $lists[$work_status]??0,
+            ];
+        }
+        return $res;
     }