Prechádzať zdrojové kódy

修改脚本数据
添加重设参数值

18339543638 1 rok pred
rodič
commit
c87641b984

+ 3 - 1
nb-admin/src/main/resources/db/migration/V3__init_20241220.sql

@@ -12,4 +12,6 @@ ALTER TABLE bus_infusion_history ADD COLUMN block_status varchar(255) DEFAULT NU
 ALTER TABLE bus_infusion_history ADD COLUMN evening_time1 int(255) DEFAULT NULL COMMENT '夜间减档开始时间';
 ALTER TABLE bus_infusion_history ADD COLUMN evening_time2 int(255) DEFAULT NULL COMMENT '夜间减档结束时间';
 ALTER TABLE bus_infusion_history ADD COLUMN night_ratio int(255) DEFAULT NULL COMMENT '夜间减档比例';
-ALTER TABLE bus_infusion_history ADD COLUMN reset_params int(255) DEFAULT NULL COMMENT '是否重设参数';
+ALTER TABLE bus_infusion_history ADD COLUMN reset_params int(255) DEFAULT NULL COMMENT '是否重设参数';
+
+ALTER TABLE sys_user ADD COLUMN psw_need_reset tinyint(1) DEFAULT NULL COMMENT '是否需要修改密码';

+ 2 - 0
nb-auth/src/main/java/com/nb/auth/controller/vo/UserInfoVO.java

@@ -34,4 +34,6 @@ public class UserInfoVO implements Serializable {
     private List<RoleInfoVO> roles;
 
     private Boolean isSys;
+
+    private Boolean pswNeedReset;
 }

+ 25 - 0
nb-core/src/main/java/com/nb/core/utils/PswUtils.java

@@ -0,0 +1,25 @@
+package com.nb.core.utils;
+
+
+/**
+ * @ClassName : PswUtils
+ * @Description :
+ * @Author : LF
+ * @Date: 2024年09月10日
+ */
+
+public class PswUtils {
+    /***
+     * 描述: 密码规则
+     *
+     * @param pwd 密码
+     * @return String
+     */
+    public static boolean validatePsw(String pwd) {
+        String str = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,16}$";
+        if (!pwd.matches(str)) {
+            return false;
+        }
+        return true;
+    }
+}

+ 8 - 2
nb-service/web-service/src/main/java/com/nb/web/service/system/auth/DefaultAccountOperator.java

@@ -1,6 +1,5 @@
 package com.nb.web.service.system.auth;
 
-import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -20,6 +19,7 @@ import com.nb.web.service.system.entity.SysUser;
 import com.nb.web.service.system.service.ISysMenuService;
 import com.nb.web.service.system.service.ISysRoleService;
 import com.nb.web.service.system.service.ISysUserService;
+import com.nb.core.utils.PswUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Component;
 import java.util.*;
@@ -72,6 +72,7 @@ public class DefaultAccountOperator implements IAccountOperator {
             userInfoVO.setRoles(roleInfoVOList);
             userInfoVO.setIsSys(sysUser.getIsSys());
             userInfoVO.setTenantName(sysUser.getTenantName());
+            userInfoVO.setPswNeedReset(sysUser.getPswNeedReset());
         }
         userInfoVO.setTenantId(String.valueOf(loginUser.getTenantId()));
         return userInfoVO;
@@ -133,11 +134,16 @@ public class DefaultAccountOperator implements IAccountOperator {
         if (!SecurityUtil.matchesPassword(oldPass, sysUser.getPassword())) {
             throw new CustomException("旧密码不正确");
         }
+        if (!PswUtils.validatePsw(newPass)) {
+            throw new CustomException("密码由8~16位大小写字母、数字及特殊字符等混合、随机组成(至少包括数字、小写字母、大写字母和特殊符号中的三种)");
+        }
+        boolean validatePsw = PswUtils.validatePsw(newPass);
         String encryptPassword = SecurityUtil.encryptPassword(newPass);
         return sysUserService
                 .update(new UpdateWrapper<SysUser>()
                         .lambda().eq(SysUser::getId,userId)
-                        .set(SysUser::getPassword,encryptPassword));
+                        .set(SysUser::getPassword,encryptPassword)
+                        .set(SysUser::getPswNeedReset,!validatePsw));
     }
 
     private List<RouteItemVO> getChildrenList(SysMenu root, List<SysMenu> list) {

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

@@ -201,6 +201,9 @@ public class SysUser extends TenantGenericEntity<Long,Long> {
     @TableField
     private Boolean isSys;
 
+    @TableField
+    private Boolean pswNeedReset;
+
     @Getter
     @TableField(value = "tenant_id",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER,typeHandler = TenantNameHandler.class)
     private String tenantName;

+ 1 - 1
nb-service/web-service/src/main/java/com/nb/web/service/system/service/impl/SysUserServiceImpl.java

@@ -84,7 +84,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         queryWrapper.eq(SysUser::getStatus, StatusEnum.YES.getValue());
         queryWrapper.and(StrUtil.isNotBlank(req.getDeptId()), wrapper -> wrapper.eq(SysUser::getDeptId, req.getDeptId())
                 .or(!CollectionUtils.isEmpty(sysDeptIdList), wrapper2 -> wrapper2.in(SysUser::getDeptId, sysDeptIdList)));
-        queryWrapper.orderByAsc(SysUser::getSort);
+        queryWrapper.orderByAsc(SysUser::getCreateTime);
         IPage<SysUser> page = this.page(reqPage, queryWrapper);
         page.getRecords().forEach(item -> {
             // 设置部门名称