Kaynağa Gözat

单向限制

liugc 1 yıl önce
ebeveyn
işleme
6c375dae03

+ 5 - 3
app/adminapi/logic/works/ServiceWorkLogic.php

@@ -406,13 +406,15 @@ class ServiceWorkLogic extends BaseLogic
         ])->append(['id','work_status_text','service_status_text'])
             ->where($work_where)
             ->findOrEmpty()->toArray();
-        $result['is_lead_work'] = 0;
+        $result['is_operate_prohibit'] = 0;
         if(isset($params['user_id']) && $params['user_id'] && ($params['user_id'] != $result['master_worker_id'])){
             // 带徒师傅的工单
             $lead_master_worker_id = TrainingWorkerTask::where('master_worker_id',$params['user_id'])->where('training_status',2)
                 ->where('operate_status',0)->value('lead_master_worker_id');
-            if($lead_master_worker_id == $result['master_worker_id']){
-                $result['is_lead_work'] = 1;
+            // 该工单是团队负责人在查看(不能直接判断是否为同一个团队,因为队员不能查看负责人的工单)
+            $team_member_ids = MasterWorker::where('team_id',$params['user_info']['team_id'])->where('team_role',2)->column('id');
+            if($lead_master_worker_id == $result['master_worker_id'] || in_array($result['master_worker_id'],$team_member_ids)){
+                $result['is_operate_prohibit'] = 1;
             }else{
                 throw new \Exception('您没有权限操作该工单');
             }

+ 1 - 0
app/workerapi/controller/WorksController.php

@@ -100,6 +100,7 @@ class WorksController extends BaseApiController
         try {
             $params = (new ServiceWorkValidate())->goCheck('detail',[
                 'user_id' => $this->userId,
+                'user_info' => $this->userInfo,
             ]);
             if(empty($params['id']) && empty($params['work_sn'])){
                 $this->fail('参数错误');