Explorar o código

add
记录最后一次密码修改时间

lifang hai 1 día
pai
achega
9809ec2bce

+ 2 - 0
nb-admin/src/main/resources/db/migration/V7__init_20251222.sql

@@ -0,0 +1,2 @@
+ALTER TABLE sys_user ADD COLUMN last_modify_psw_time datetime COMMENT '最后一次密码更新时间';
+update sys_user set last_modify_psw_time = now() ;

+ 4 - 0
nb-auth/src/main/java/com/nb/auth/bean/AuthInfo.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * @author lifang
  * @version 1.0.0
@@ -29,6 +31,8 @@ public class AuthInfo {
     @ApiModelProperty("权限体系名称")
     private String loginType;
 
+    private Date lastModifyPswTime;
+
     @ApiModelProperty("是否需要修改密码")
     private Boolean pswNeedReset;
 }

+ 2 - 0
nb-auth/src/main/java/com/nb/auth/bean/LoginUser.java

@@ -95,4 +95,6 @@ public class LoginUser<T> implements Serializable {
     private boolean isSuperAdmin;
 
     private Boolean pswNeedReset=false;
+
+    private Date lastModifyPswTime;
 }

+ 1 - 0
nb-auth/src/main/java/com/nb/auth/controller/AuthController.java

@@ -61,6 +61,7 @@ public class AuthController {
                 .loginType(grant.getLoginType())
                 .token(grant.getToken())
                 .pswNeedReset(grant.getPswNeedReset())
+                .lastModifyPswTime(grant.getLastModifyPswTime())
                 .build());
     }
 

+ 1 - 0
nb-service/web-service/src/main/java/com/nb/web/service/system/auth/DefaultAccountOperator.java

@@ -143,6 +143,7 @@ public class DefaultAccountOperator implements IAccountOperator {
                 .update(new UpdateWrapper<SysUser>()
                         .lambda().eq(SysUser::getId,userId)
                         .set(SysUser::getPassword,encryptPassword)
+                        .set(SysUser::getLastModifyPswTime,new Date())
                         .set(SysUser::getPswNeedReset,!validatePsw));
     }
 

+ 1 - 0
nb-service/web-service/src/main/java/com/nb/web/service/system/auth/WebAuthGranter.java

@@ -124,6 +124,7 @@ public class WebAuthGranter implements IAuthGranter {
         loginUser.setId(sysUser.getId());
         loginUser.setLoginType(StpTypeEnum.DEFAULT.getText());
         loginUser.setPswNeedReset(sysUser.getPswNeedReset());
+        loginUser.setLastModifyPswTime(sysUser.getLastModifyPswTime());
         fillUserAgentInfo(loginUser);
         // 设置用户信息
         stpLogic.getTokenSession().set(LOGIN_USER_KEY,loginUser);

+ 5 - 0
nb-service/web-service/src/main/java/com/nb/web/service/system/entity/SysUser.java

@@ -12,6 +12,7 @@ import com.nb.core.entity.TenantGenericEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.nb.core.enums.SexEnum;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Getter;
 
@@ -204,6 +205,10 @@ public class SysUser extends TenantGenericEntity<Long,Long> {
     @TableField
     private Boolean pswNeedReset;
 
+    @TableField
+    @ApiModelProperty("最后修改密码时间")
+    private Date lastModifyPswTime;
+
     @Getter
     @TableField(value = "tenant_id",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER,typeHandler = TenantNameHandler.class)
     private String tenantName;