Bläddra i källkod

Merge remote-tracking branch 'origin/master'

root 1 år sedan
förälder
incheckning
656a2e2e20

+ 4 - 4
app/Http/Controllers/Api/EmployeeController.php

@@ -20,8 +20,8 @@ class EmployeeController extends BaseController
 
 
         $service = new EmployeeService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->employeeEdit($request->all());
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->employeeEdit($request->all(),$user);
 
         if($status){
             return $this->json_return(200,'',$data);
@@ -37,8 +37,8 @@ class EmployeeController extends BaseController
 
 
         $service = new EmployeeService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->employeeAdd($request->all(),$request->all());
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->employeeAdd($request->all(),$user);
 
         if($status){
             return $this->json_return(200,'',$data);

+ 24 - 0
app/Http/Controllers/Api/LoginController.php

@@ -9,6 +9,14 @@ use Illuminate\Support\Facades\Log;
 //登录
 class LoginController extends BaseController
 {
+    const MOBILE = '[mobile]';// 手机端
+    const PERSONAL_COMPUTER = '[personalComputer]';// 电脑端
+
+    public static $port = [
+        self::MOBILE => '',
+        self::PERSONAL_COMPUTER => '',
+    ];
+
     public function login(Request $request){
         $data = $request->only("account","password");
 
@@ -22,7 +30,23 @@ class LoginController extends BaseController
 
         //生成token
         $jwtToken = TokenService::getToken($return['id']);
+        $jwtToken = self::PERSONAL_COMPUTER . $jwtToken;
 
         return $this->json_return(200,'', ['token' => $jwtToken, 'emp_name'=>$return['name']]);
     }
+
+    public function loginMobile(Request $request){
+        $data = $request->only("account","password");
+
+        //登录
+        $result = (new EmployeeService())->loginRule($data);
+        list($bool, $return) = $result;
+        if(! $bool) return $this->json_return(201,'',$return);
+
+        //生成token
+        $jwtToken = TokenService::getToken($return['id']);
+        $jwtToken = self::MOBILE . $jwtToken;
+
+        return $this->json_return(200,'', ['token' => $jwtToken]);
+    }
 }

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

@@ -2,6 +2,7 @@
 
 namespace App\Http\Middleware;
 
+use App\Http\Controllers\Api\LoginController;
 use App\Service\EmployeeService;
 use Closure;
 use App\Service\TokenService;
@@ -21,6 +22,15 @@ class CheckLogin
         if (!isset($token)){
             return  response()->json(['code'=>1,'msg'=>'缺少token','data'=>null]);
         }
+
+        //登录来源前缀清除
+        foreach (LoginController::$port as $key => $value){
+            if (strpos($token,$key) !== false) {
+                $token = str_replace($key, $value, $token);
+                break;
+            }
+        }
+
         //校验token
         $result = TokenService::verifyToken($token);
         if ($result < 0){

+ 25 - 30
app/Service/EmployeeService.php

@@ -21,55 +21,38 @@ use Illuminate\Support\Facades\Hash;
  */
 class EmployeeService extends Service
 {
-
-    public function employeeEdit($data){
-        list($status,$msg) = $this->employeeRule($data);
+    public function employeeEdit($data,$user){
+        list($status,$msg) = $this->employeeRule($data,false);
         if(!$status) return [$status,$msg];
-        $first = SysMenu::where('emp_id',$data['emp_id'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'工号已存在!'];
 
         $model = new Employee();
         $model = $model->where('id',$data['id'])->first();
-
         $model->id_card = $data['id_card']??'';
-        $model->emp_id = $data['emp_id'] ;
+        $model->number = $data['number'] ;
         $model->mobile = $data['mobile'];
         $model->emp_name = $data['emp_name'];
-        $model->state = 1;
-//        $model->crt_id = $user->id;
-//        $model->crt_time = time();
         $model->is_admin = $data['is_admin'];
         if($model->is_admin == 1){
             $model->account = $data['account'];
             if($data['password'] !== '********'){
                 $model->password   = Hash::make($data['password']);
             }
-
         }
         $model->save();
         return [true,'保存成功!'];
-
     }
 
     public function employeeAdd($data,$user){
-
-
-//        if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
         list($status,$msg) = $this->employeeRule($data);
         if(!$status) return [$status,$msg];
-//        $first = SysMenu::where('title',$data['title'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
 
         $model = new Employee();
-
         $model->id_card = $data['id_card']??'';
-        $model->emp_id = $data['emp_id'] ;
+        $model->number = $data['number'] ;
         $model->mobile = $data['mobile'];
         $model->emp_name = $data['emp_name'];
         $model->state = 1;
-//        $model->crt_id = $user->id;
-        $model->crt_id = 1;
-//        $model->crt_time = time();
+        $model->crt_id = $user['id'];
         $model->is_admin = $data['is_admin'];
         if($model->is_admin == 1){
             $model->account = $data['account'];
@@ -78,7 +61,6 @@ class EmployeeService extends Service
         $model->save();
 
         return [true,'保存成功!'];
-
     }
 
     public function employeeDel($data){
@@ -92,23 +74,37 @@ class EmployeeService extends Service
     }
 
     public function employeeList($data){
-        $list = Employee::where('del_time',0)->select('id_card','emp_name','mobile','emp_name','crt_time','account','is_admin','upd_time','id')->orderBy('id','desc');
+        $list = Employee::where('del_time',0)->select('id_card','emp_name','mobile','crt_time','account','is_admin','upd_time','id')->orderBy('id','desc');
 
         $list = $this->limit($list,'',$data);
 
         return [200,$list];
     }
 
-    public function employeeRule($data){
-        if($this->isEmpty($data,'emp_id')) return [false,'工号不存在!'];
-//        if($this->isEmpty($data,'icon')) return [201,'d不存在!'];
+    public function employeeRule($data,$is_add = true){
+        if($this->isEmpty($data,'number')) return [false,'工号不存在!'];
         if($this->isEmpty($data,'mobile')) return [false,'手机号不存在!'];
         if($this->isEmpty($data,'emp_name')) return [false,'姓名不存在!'];
+        if(! $is_add){
+            if($this->isEmpty($data,'id')) return [false,'ID不能为空!'];
+            $bool = Employee::where('number',$data['number'])
+                ->where('id','<>',$data['id'])
+                ->where('del_time',0)->exists();
+            $bool_account = Employee::where('account',$data['account'])
+                ->where('id','<>',$data['id'])
+                ->where('del_time',0)->exists();
+        }else{
+            $bool = Employee::where('number',$data['number'])
+                ->where('del_time',0)->exists();
+            $bool_account = Employee::where('account',$data['account'])
+                ->where('del_time',0)->exists();
+        }
+        if($bool) return [false,'工号已存在!'];
+        if($bool_account) return [false,'账号已存在!'];
 
         return [true,''];
     }
 
-
     public function roleEdit($data){
         list($status,$msg) = $this->roleRule($data);
         if(!$status) return [$status,$msg];
@@ -167,7 +163,6 @@ class EmployeeService extends Service
         return [true,''];
     }
 
-
     public function departEdit($data){
         list($status,$msg) = $this->departRule($data);
         if(!$status) return [$status,$msg];
@@ -390,7 +385,7 @@ class EmployeeService extends Service
 
         $res = reset($res);
         if(! Hash::check($data['password'], $res['password'])) return [false,'密码错误!'];
-        if($res['is_admin'] != Employee::IS_ADMIN) return [false,'非管理员账号!'];
+        if($res['is_admin'] != Employee::IS_ADMIN) return [false,'该账号不能登录!'];
         if($res['state'] == Employee::NOT_USE) return [false,'账号停用!'];
 
         return [true, ['id'=>$res['id'], 'name'=>$res['emp_name'], 'account' => $res['account']]];

+ 1 - 0
routes/api.php

@@ -18,6 +18,7 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
 });
 
 Route::any('login', 'Api\LoginController@login');
+Route::any('loginMobile', 'Api\LoginController@loginMobile');
 Route::any('test', 'Api\TestController@aa');
 Route::any('getHeaderWord', 'Api\HeaderWordController@getHeaderWord');
 Route::any('deviceList', 'Api\Device\DeviceController@deviceList');