Преглед изворни кода

新增团队成员编辑功能

liugc пре 1 година
родитељ
комит
8e9b587dfc

+ 16 - 1
app/workerapi/controller/MasterWorkerTeamController.php

@@ -56,6 +56,20 @@ class MasterWorkerTeamController extends BaseApiController
         }
         return $this->success('', [], 1, 1);
     }
+    /**
+     * 编辑团队成员
+     * @return \think\response\Json
+     */
+    public function upTeamMember()
+    {
+        $params = (new MasterWokerTeamValidate())->post()->goCheck('edit');
+        $result = MasterWorkerTeamLogic::upTeamMember($params,$params['master_worker_id'],$this->userId);
+        if($result === false){
+            return $this->fail(MasterWorkerTeamLogic::getError());
+        }
+        return $this->success('', [], 1, 1);
+    }
+
 
     /**
      * 分配工单给团队成员
@@ -95,7 +109,8 @@ class MasterWorkerTeamController extends BaseApiController
      */
     public function getCalendarTeamOrder()
     {
-        return $this->data(MasterWorkerTeamLogic::TeamOrderStatistics($this->userInfo,62));
+        $params = request()->get();
+        return $this->data(MasterWorkerTeamLogic::TeamOrderStatistics($this->userInfo,0,$params['date']??''));
     }
 
 }

+ 32 - 4
app/workerapi/logic/MasterWorkerTeamLogic.php

@@ -81,7 +81,29 @@ class MasterWorkerTeamLogic extends  BaseLogic
         }
     }
 
-
+    public static function upTeamMember(array $params,int $masterWorkerId,int $userId = 0)
+    {
+        try {
+            $team = MasterWorkerTeam::where('master_worker_id',$userId)->findOrEmpty();
+            if ($team->isEmpty()) {
+                throw new \Exception('团队不存在');
+            }
+            // $masterWorkerId 当前要修改的工程师ID
+            // 若非自己的其他工程师存在则不允许修改
+            $masterWorker =  MasterWorker::where('id','<>',$masterWorkerId)->where('mobile',$params['mobile'])->findOrEmpty();
+            if (!$masterWorker->isEmpty()) {
+                throw new \Exception('该手机号已占用');
+            }
+            if(isset($params['category_ids']) && !empty($params['category_ids']) && is_array($params['category_ids'])){
+                $params['category_ids'] = implode(',',$params['category_ids']);
+            }
+            MasterWorker::where('team_id',$team->id)->where('team_role',2)->where('id',$masterWorkerId)->update(['real_name'=>$params['real_name'],'account'=>$params['mobile'],'mobile'=>$params['mobile'],'category_ids'=>$params['category_ids']??'']);
+            return true;
+        } catch (\Exception $e) {
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
     public static function getMemberList(int $masterWorkerId)
     {
         try {
@@ -175,9 +197,15 @@ class MasterWorkerTeamLogic extends  BaseLogic
      * @param int $masterWorkerId
      * @return array
      */
-    public static function TeamOrderStatistics($userInfo,$day_num = 7) {
-        $start_time = strtotime(date('Y-m-d', time() - $day_num * 86400));
-        $end_time = time();
+    public static function TeamOrderStatistics($userInfo,$day_num = 7,$month = ''){
+        if(!empty($day_num)){
+            $start_time = strtotime(date('Y-m-d', time() - $day_num * 86400));
+            $end_time = time();
+        }
+        if(!empty($month)){
+            $start_time = strtotime($month.'-01');
+            $end_time = $start_time + 31 * 86400;
+        }
         $lists = ServiceWork::whereIn('master_worker_id',
             MasterWorker::where('team_id', $userInfo['team_id'])->where('team_role', 2)->column('id')
         )->group('DATE(FROM_UNIXTIME(create_time))')

+ 8 - 1
app/workerapi/validate/MasterWokerTeamValidate.php

@@ -10,7 +10,7 @@ class MasterWokerTeamValidate  extends BaseValidate
         'id' => 'require',
         'name' => 'require',
         'age' => 'require',
-        'mobile' => 'require',
+        'mobile' => 'require|mobile',
         'lon' => 'require',
         'lat' => 'require',
         'address' => 'require',
@@ -37,6 +37,13 @@ class MasterWokerTeamValidate  extends BaseValidate
     public function sceneAdd(){
         return $this->only(['mobile']);
     }
+    /**
+     * @notes 编辑场景
+     */
+    public function sceneEdit()
+    {
+        return $this->only(['master_worker_id','mobile']);
+    }
     public function sceneAllocation(){
         return $this->only(['work_id','master_worker_id']);
     }