cqpCow 1 year ago
parent
commit
2ab8e3772e

+ 4 - 3
app/Http/Controllers/Api/WxController.php

@@ -108,13 +108,14 @@ class WxController extends BaseController
 
     public function getTopMessage(Request $request){
         $service = new WxEmployeeService();
-        $userData = $request->userData->toArray();
-        list($status, $data) = $service->getTopMessage($request->all(),$userData);
+        list($status, $data) = $service->getTopMessage($request->all());
 
         if ($status) {
             return $this->json_return(200, '', $data);
         } else {
-            return $this->json_return(201, $data);
+            $code = 202;
+            if($status == 0) $code = 201;
+            return $this->json_return($code, $data);
         }
     }
 }

+ 2 - 0
app/Http/Middleware/CheckLogin.php

@@ -52,6 +52,8 @@ class CheckLogin
         $data['rule_depart'] = $return[0] ?? [];
         //顶级公司
         $data['depart_top'] = $return[1] ?? [];
+        $top = array_column($data['depart_top'],'depart_id');
+        if(! in_array($userSetTopDepartId, $top)) return response()->json(['code'=>1,'msg'=>'当前门店不在权限内,请重新选择!','data'=>null]);
         //部门对应的顶级公司
         $data['depart_map'] = $return[2] ?? [];
         //权限范围内的部门以及公司

+ 4 - 2
app/Http/Middleware/CheckWx.php

@@ -27,7 +27,7 @@ class CheckWx
         //校验openid是否绑定
         $employee = new WxEmployee();
         $employee = $employee->where('openid',$openid)->first();
-        if (empty($employee)) return response()->json(['code'=> 202,'msg'=>'用户信息不存在!','data'=>null]);
+        if (empty($employee)) return response()->json(['code'=> 202,'msg'=>'用户授权信息不存在!','data'=>null]);
         $employee = $employee->toArray();
         if (empty($employee['mobile'])) return response()->json(['code'=> 202,'msg'=>'用户手机信息不存在!','data'=>null]);
         if (empty($employee['employee_id'])) {
@@ -37,7 +37,7 @@ class CheckWx
                 ->where('state',Employee::USE)
                 ->select('id')
                 ->first();
-            if(empty($emp)) return response()->json(['code'=> 202,'msg'=>'用户手机信息未匹配到系统账号!','data'=>null]);
+            if(empty($emp)) return response()->json(['code'=> 201,'msg'=>'用户手机信息未匹配到系统账号,请录入手机号!','data'=>null]);
             $emp = $emp->toArray();
             WxEmployee::where('id',$employee['id'])->update(['employee_id' => $emp['id']]);
             $employee['employee_id'] = $emp['id'];
@@ -75,6 +75,8 @@ class CheckWx
             $data['rule_depart'] = $return[0] ?? [];
             //顶级公司
             $data['depart_top'] = $return[1] ?? [];
+            $top = array_column($data['depart_top'],'depart_id');
+            if(! in_array($userSetTopDepartId, $top)) return response()->json(['code'=>202,'msg'=>'当前门店不在权限内,请重新选择!','data'=>null]);
             //部门对应的顶级公司
             $data['depart_map'] = $return[2] ?? [];
             //权限范围内的部门以及公司

+ 21 - 2
app/Service/Wx/WxEmployeeService.php

@@ -119,7 +119,26 @@ class WxEmployeeService extends Service
         return [true, $res];
     }
 
-    public function getTopMessage($data,$user){
-        return [true,$user['depart_top'] ?? []];
+    public function getTopMessage($data){
+        if($this->isEmpty($data,'openid')) return [false,'openid不能为空!'];
+
+        $employee = WxEmployee::where('openid',$data['openid'])->first();
+        if(empty($employee)) return [false,'未找到用户信息!'];
+        $employee = $employee->toArray();
+        if(empty($employee['employee_id'])) {
+            //找到对应的账号
+            $emp = Employee::where('del_time',0)
+                ->where('mobile',$employee['mobile'])
+                ->where('state',Employee::USE)
+                ->select('id')
+                ->first();
+            if(empty($emp)) return [0,'用户手机信息未匹配到系统账号,请录入手机号!'];
+            $emp = $emp->toArray();
+            WxEmployee::where('id',$employee['id'])->update(['employee_id' => $emp['id']]);
+            $employee['employee_id'] = $emp['id'];
+        }
+        $return = EmployeeService::getLoginMessage($employee['employee_id']);
+
+        return [true, $return];
     }
 }

+ 2 - 2
routes/wx.php

@@ -17,9 +17,9 @@ Route::any('wxSetMobile', 'Api\WxController@setMobile');
 Route::any('wxLogin', 'Api\WxController@login');
 Route::any('wxH5', 'Api\WxController@wxH5');
 Route::any('ttt', 'Api\WxController@ttt');
-
+Route::any('getTopMessage', 'Api\WxController@getTopMessage');
 Route::group(['middleware'=> ['checkWx']],function ($route){
-    $route->any('getTopMessage', 'Api\WxController@getTopMessage');
+
     $route->any('oaCheck', 'Api\OaController@oaCheck');
     $route->any('oaOrderState', 'Api\OaController@oaOrderState');
     $route->any('checkAllOver', 'Api\OaController@checkAllOver');