sandm пре 3 година
родитељ
комит
825d91f303

+ 4 - 0
app/Http/Controllers/Web/Auth/LoginController.php

@@ -83,6 +83,7 @@ class LoginController extends WebBaseController
         if (!$this->geetestService->checkGeetest(config('aix.system.site_safety.site_vo_code.members_login'))) {
             return $this->sendErrorResponse("验证码不通过,请重新验证", ['is_need_geetest'=>1]);
         }
+
         if (!$member=$this->authService->loginByAccount($request->account, $request->password, $request->autoLogin)) {
             $data['is_need_geetest']=$this->geetestService->isNeedGeetest(
                 config('aix.system.site_safety.site_vo_code.members_login')
@@ -90,6 +91,9 @@ class LoginController extends WebBaseController
 
             return $this->sendErrorResponse("账号或密码错误", $data);
         }
+        if(!$this->authService->checkPwdLog($member)){
+            return $this->sendErrorResponse("密码已过期,请使用找回密码重新设置密码");
+        }
         if ($member->status == 0) {
             Auth::guard('web-member')->logout();
             return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员");

+ 1 - 0
app/Repositories/CompanyRepository.php

@@ -213,6 +213,7 @@ class CompanyRepository extends BaseRepository
     public function resetPassword($type, $value, $password)
     {
         $this->model->where($type, $value)->update(['password'=>Hash::make($password)]);
+        return $this->model->where($type, $value)->first();
     }
 
     public function getLastCompanyCount($where)

+ 2 - 1
app/Repositories/MemberLogRepository.php

@@ -119,7 +119,8 @@ class MemberLogRepository extends BaseRepository
         2041=>array('type'=>'订阅职位订阅器','content'=>'订阅职位订阅器(记录id:%s)'),
         2042=>array('type'=>'举报职位','content'=>'举报职位(职位id:%s)'),
         2043=>array('type'=>'修改个人资料','content'=>'修改个人资料'),
-        2044=>array('type'=>'修改了个人头像','content'=>'修改了个人头像')
+        2044=>array('type'=>'修改了个人头像','content'=>'修改了个人头像'),
+        2045=>array('type'=>'修改了登录密码','content'=>'修改了登录密码')
     );
     /**
      * Specify Model class name

+ 1 - 0
app/Repositories/MemberRepository.php

@@ -126,6 +126,7 @@ class MemberRepository extends BaseRepository
     public function resetPassword($type, $value, $password)
     {
         $this->model->where($type, $value)->update(['password'=>Hash::make($password)]);
+        return $this->model->where($type, $value)->first();
     }
 
     public function getLastPersonCount($where)

+ 23 - 2
app/Services/Auth/AuthService.php

@@ -145,10 +145,11 @@ class AuthService
     {
         $data = Cache::pull($token);
         if ($data['utype'] == 1) {
-            $this->companyRepository->resetPassword($data['type'], $data[$data['type']], $password);
+            $user = $this->companyRepository->resetPassword($data['type'], $data[$data['type']], $password);
         } elseif ($data['utype'] == 2) {
-            $this->memberRepository->resetPassword($data['type'], $data[$data['type']], $password);
+            $user = $this->memberRepository->resetPassword($data['type'], $data[$data['type']], $password);
         }
+        $this->memberLogRepository->createLog($user, 2045, []);
         return $data['utype'];
     }
 
@@ -289,6 +290,26 @@ class AuthService
         return $user;
     }
 
+    public function checkPwdLog($user)
+    {
+        $pwdLog = $this->memberLogRepository->getMemberLog(
+            $user->id,
+            $user->utype,
+            2045
+        );
+        if(count($pwdLog) >= 1){
+            $log = array_shift($pwdLog);
+            $time = strtotime($log->created_at);
+        }else{
+            $time = 0;
+        }
+        if((time()-$time)>7776000){
+            return false;
+        }else{
+            return true;
+        }
+    }
+
     public function login($user, $isAutoLogin = 0)
     {
         $isAutoLogin = $isAutoLogin ? true : false;

+ 3 - 0
app/Services/Person/MemberInfoService.php

@@ -315,6 +315,9 @@ class MemberInfoService
         }
         $res = $this->MemberRepository->updatePasswordById(bcrypt($password), $user->id);
         if ($res) {
+            if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2045,"")){
+                throw new \Exception("日志记失败!");
+            }
             return ['status'=>1,'info'=>'修改成功'];
         } else {
             return ['status'=>0,'info'=>'修改失败'];