Explorar o código

人事功能修改

haozi %!s(int64=5) %!d(string=hai) anos
pai
achega
10770c5bef

+ 0 - 1
app/Http/Controllers/PersonnelController.php

@@ -171,7 +171,6 @@ class PersonnelController extends Controller
         $beforeYesterdayDate=Carbon::now()->addDays(-2)->format('Y-m-d');
         $userDutyChecks=UserDutyCheck::with(['userWorkgroup','userLabor.laborCompany','userDetail'])->whereIn("user_id",$user_ids)
             ->whereBetween('checked_at',[$beforeYesterdayDate,$dateNow])->orderBy('checked_at','DESC')->get();
-//        where('type','登入')->
         $laravelEchoPrefix = config('database.redis.options.prefix');
         return view('personnel/checking-in/clockAudit',['userDutyChecks'=>$userDutyChecks,'laravelEchoPrefix'=>$laravelEchoPrefix,'workgroupSign'=>$result['workgroupSign']]);
     }

+ 19 - 17
app/Http/Controllers/UserDutyCheckController.php

@@ -37,8 +37,8 @@ class UserDutyCheckController extends Controller
             if ($key<$date) return view('exception.404',['error'=>'二维码失效!']);
         }
         $userLaborToken=$request->cookie('userLaborToken');
-        if ($userLaborToken && Cache::has('tokenStr_'.$userLaborToken)) {
-            $user_id=Cache::get('tokenStr_'.$userLaborToken);
+        if ($userLaborToken && Cache::has('dutyCheckTokenStr_'.$userLaborToken)) {
+            $user_id=Cache::get('dutyCheckTokenStr_'.$userLaborToken);
             $userDetail=UserDetail::find($user_id);
             if (!$userDetail)   return redirect('personnel/checking-in/userDutyCheck/createUserDetail/'.$userDetail->mobile_phone)->with("userWorkgroupID",$userWorkgroupID);
             $userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
@@ -55,9 +55,7 @@ class UserDutyCheckController extends Controller
             }
             if ($userDutyCheck&&$userDutyCheck->error==true)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
             if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
-            $userWorkgroups=$userDetail->user->userWorkgroups();
-            if($userWorkgroups->count()>0)
-                $group_name=$userDetail->user->userWorkgroups->first()['name'];
+                $group_name=$userDutyCheck->userWorkgroup['name'];
             $laravelEchoPrefix = config('database.redis.options.prefix');
             return response()->view('personnel/checking-in/success',['group_name'=>$group_name??'','full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at,'type'=>$userDutyCheck->type,'laravelEchoPrefix'=>$laravelEchoPrefix]);
         }
@@ -71,9 +69,7 @@ class UserDutyCheckController extends Controller
         $this->validator($request)->validate();
         $userDetail=UserDetail::where('mobile_phone',$mobile_phone)->first();
         if (!$userDetail)   return redirect('personnel/checking-in/userDutyCheck/createUserDetail/'.$mobile_phone)->with("userWorkgroupID",$userWorkgroupID);
-        $user=User::find($userDetail->user_id);
-        if (Cache::has('tokenUser_'.$user->id))return "<h1 style='color: red;text-align:center'>请使用原有设备进行打卡,如无法使用原有设备请联系管理人员解绑设备!</h1>";
-        //if ($userWorkgroupID)$user->userWorkgroups()->sync([$userWorkgroupID]);
+        if (Cache::has('dutyCheckTokenUser_'.$userDetail->user_id))return "<h1 style='color: red;text-align:center'>请使用原有设备进行打卡,如无法使用原有设备请联系管理人员解绑设备!</h1>";
         $userDutyCheckOld=UserDutyCheck::where('user_id',$userDetail->user_id)->orderBy('checked_at','DESC')->limit(10)->first();
         $date=date('Y-m-d H:i:s');
         $lastDate=Carbon::parse($userDutyCheckOld['checked_at']);
@@ -98,8 +94,8 @@ class UserDutyCheckController extends Controller
         }
         if ($userDutyCheck&&$userDutyCheck->error==true)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
         if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
-        $userLaborToken=$user->token(config('users.token_check_in_expire_minutes'));
-        $group_name=$userDetail->user->userWorkgroups->first()['name'];
+        $userLaborToken=$userDetail->getDutyCheckToken(config('users.token_check_in_expire_minutes'));
+        $group_name=$userDutyCheck->userWorkgroup['name'];
         $laravelEchoPrefix = config('database.redis.options.prefix');
         return response()->view('personnel/checking-in/success',['group_name'=>$group_name??'','full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at,'type'=>$userDutyCheck->type,'laravelEchoPrefix'=>$laravelEchoPrefix])
             ->cookie('userLaborToken',$userLaborToken,config('users.token_check_in_expire_minutes'),'/');
@@ -137,10 +133,9 @@ class UserDutyCheckController extends Controller
         }
         if ($userDutyCheck&&$userDutyCheck->error==true)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
         if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
-        $user=User::find($userDetail->user_id);
-        $userLaborToken=$user->token(config('users.token_check_in_expire_minutes'));
+        $userLaborToken=$userDetail->getDutyCheckToken(config('users.token_check_in_expire_minutes'));
         $this->log(__METHOD__,"录入临时工,用户,对应工作组,打卡记录".__FUNCTION__,json_encode($request->all()));
-        $group_name=$userDetail->user->userWorkgroups->first()['name'];
+        $group_name=$userDutyCheck->userWorkgroup['name'];
         $laravelEchoPrefix = config('database.redis.options.prefix');
         return response()->view('personnel/checking-in/success',['group_name'=>$group_name??'','full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at,'type'=>$userDutyCheck->type,'laravelEchoPrefix'=>$laravelEchoPrefix])
             ->cookie('userLaborToken',$userLaborToken,config('users.token_check_in_expire_minutes'),'/');
@@ -180,9 +175,9 @@ class UserDutyCheckController extends Controller
         }
         if ($userDutyCheck&&$userDutyCheck->error==true)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
         if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
-        $userLaborToken=$user->token(config('users.token_check_in_expire_minutes'));
+        $userLaborToken=$userDetail->getDutyCheckToken(config('users.token_check_in_expire_minutes'));
         $this->log(__METHOD__,"录入临时工,用户,对应工作组,打卡记录".__FUNCTION__,json_encode($request->all()));
-        $group_name=$userDutyCheck->userWorkgroup->first()['name'];
+        $group_name=$userDutyCheck->userWorkgroup['name'];
         $laravelEchoPrefix = config('database.redis.options.prefix');
         return response()->view('personnel/checking-in/success',['group_name'=>$group_name??'','full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at,'type'=>$userDutyCheck->type,'laravelEchoPrefix'=>$laravelEchoPrefix])
             ->cookie('userLaborToken',$userLaborToken,config('users.token_check_in_expire_minutes'),'/');
@@ -237,9 +232,10 @@ class UserDutyCheckController extends Controller
             switch ($diffDate){
                 case $diffDate<=20:
                     $userDutyCheck->type="登入";
+                    $userDutyCheck->workgroup_id=$userDutyCheckOld->workgroup_id;
                     break;
                 case $diffDate>=1380:
-                    $userDutyCheck->type="登入";
+                    $userDutyCheck->type=="登入";
                     break;
                 default:
                     $userDutyCheck->type="登出";
@@ -251,13 +247,19 @@ class UserDutyCheckController extends Controller
                 case $diffDate<=20:
                     $userDutyCheck->type="登出";
                     $userDutyCheck->verify_user_id=0;
+                    $userDutyCheck->workgroup_id=$userDutyCheckOld->workgroup_id;
                     break;
                 default:
                     $userDutyCheck->type="登入";
             }
         }
         if ($userWorkgroupID!=$userDutyCheckOld['workgroup_id']&&$userDutyCheckOld->type=="登入"&&$userDutyCheck->type="登出"){
-            $userDutyCheck->workgroup_id=$userDutyCheckOld['workgroup_id'];
+            if ($diffDate>=1380){
+                $userDutyCheck->type="登入";
+            }else{
+                $userDutyCheck->workgroup_id=$userDutyCheckOld['workgroup_id'];
+            }
+
         }
         $userDutyCheck->save();
         return $userDutyCheck;

+ 2 - 2
app/Http/Controllers/UserLaborController.php

@@ -41,8 +41,8 @@ class UserLaborController extends Controller
     public function relieve(Request $request){
         $user_id=$request->input('user_id');
         if (!$user_id) return ['error'=>'传递空值!'];
-        $token=Cache::pull('tokenUser_'.$user_id);
-        if ($token)Cache::pull('tokenStr_'.$token);
+        $token=Cache::pull('dutyCheckTokenUser_'.$user_id);
+        if ($token)Cache::pull('dutyCheckTokenStr_'.$token);
         $userLabor=UserLabor::find($user_id);
         $userLabor->is_relieve_facility=$userLabor->getIsRelieveFacilityAttribute();
         return ['success'=>true,'userLabor'=>$userLabor];

+ 30 - 0
app/UserDetail.php

@@ -4,6 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
+use Illuminate\Support\Facades\Cache;
 
 class UserDetail extends Model
 {
@@ -33,6 +34,35 @@ class UserDetail extends Model
         $laborCompany=LaborCompany::find($laborCompanyId);
         return $this['user_labor_company']=$laborCompany['name'];
     }
+    public function getDutyCheckToken($expireTime=null)
+    {
+        if(!$expireTime){
+            $expireTime=config('users.token_check_in_expire_minutes');
+        }
+        $token=Cache::get('dutyCheckTokenUser'.$this['user_id']);
+        if($token){
+            Cache::put('dutyCheckTokenUser'.$this['user_id'],$token,$expireTime);
+            Cache::put('dutyCheckTokenStr'.$token,$this['user_id'],$expireTime);
+            return $token;
+        }
+        $token=md5(rand(1,intval(microtime(true)*10000)).'baoshi');
+        Cache::put('dutyCheckTokenUser_'.$this['user_id'],$token,$expireTime);
+        Cache::put('dutyCheckTokenStr_'.$token,$this['user_id'],$expireTime);
+        return $token;
+    }
+
+    public function hasDutyCheckToken()
+    {
+        $token=Cache::get('dutyCheckTokenUser_'.$this['user_id']);
+        if ($token){
+            return true;
+        }else{
+            return Cache::has('dutyCheckTokenStr_'.$token);
+        }
+    }
+    public function markDutyCheckToken()
+    {
+    }
 
 
 }

+ 5 - 4
app/UserLabor.php

@@ -27,12 +27,13 @@ class UserLabor extends Model
         return $this->belongsTo('App\LaborCompany');
     }
     public function getIsRelieveFacilityAttribute(){
-        $user_id=$this['user_id'];
-        $token=Cache::get('tokenUser_'.$user_id);
-        if (Cache::has('tokenStr_'.$token)){
+         // return  $this->userDetail()->hasDutyCheckToken();
+        $token=Cache::get('dutyCheckTokenUser_'.$this['user_id']);
+        if ($token){
             return true;
+        }else{
+            return Cache::has('dutyCheckTokenStr_'.$token);
         }
-        return false;
     }
 
 }