diff --git a/das/src/main/java/com/das/modules/auth/controller/LoginController.java b/das/src/main/java/com/das/modules/auth/controller/LoginController.java
index 38ca19ea..c3c2077b 100644
--- a/das/src/main/java/com/das/modules/auth/controller/LoginController.java
+++ b/das/src/main/java/com/das/modules/auth/controller/LoginController.java
@@ -6,6 +6,7 @@ import com.das.common.captcha.CaptchaUtils;
import com.das.common.captcha.CaptchaVO;
import com.das.common.result.R;
import com.das.common.utils.AdminRedisTemplate;
+import com.das.modules.auth.domain.dto.ChangePasswordDto;
import com.das.modules.auth.domain.dto.LoginDto;
import com.das.modules.auth.domain.dto.RefreshTokenDto;
import com.das.modules.auth.domain.vo.LoginUserDetailsVo;
@@ -77,5 +78,13 @@ public class LoginController {
return R.success(loginVO);
}
+ @PostMapping("/changePassword")
+ public R> changePassword(@RequestBody ChangePasswordDto changePasswordDto) {
+ int result = loginService.changePassword(changePasswordDto);
+ if (result < 0) {
+ return R.fail("密码修改失败");
+ }
+ return R.success("密码修改成功");
+ }
}
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/ChangePasswordDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/ChangePasswordDto.java
new file mode 100644
index 00000000..517638b3
--- /dev/null
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/ChangePasswordDto.java
@@ -0,0 +1,14 @@
+package com.das.modules.auth.domain.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+@Data
+public class ChangePasswordDto {
+
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long id;
+
+ private String newPassword;
+}
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/DeleteDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/DeleteDto.java
index 8c1ba646..80e52f65 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/DeleteDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/DeleteDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -7,5 +9,6 @@ import java.io.Serializable;
@Data
public class DeleteDto implements Serializable {
/** ID */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long id;
}
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysAuthorityDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysAuthorityDto.java
index c98b47da..0253300c 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysAuthorityDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysAuthorityDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -8,6 +10,7 @@ import java.util.Date;
@Data
public class SysAuthorityDto implements Serializable {
/** 机构id */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long id ;
/** 权限编码 */
private String authorityCode;
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuDto.java
index 7d4517ac..89bd5398 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -8,6 +10,7 @@ import java.util.Date;
@Data
public class SysMenuDto implements Serializable {
/** 菜单ID */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long id ;
/** 菜单名称 */
private String menuName ;
@@ -20,8 +23,10 @@ public class SysMenuDto implements Serializable {
/** 菜单操作参数 */
private String funParam ;
/** 权限ID */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long authorityId ;
/** 上级菜单ID */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long parentMenuId ;
/** 乐观锁 */
private Integer revision ;
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuQueryDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuQueryDto.java
index 90d320cb..6d748978 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuQueryDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysMenuQueryDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -7,11 +9,13 @@ import java.io.Serializable;
@Data
public class SysMenuQueryDto implements Serializable {
/** 菜单ID */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long id ;
/** 菜单名称 */
private String menuName ;
/** 上级菜单ID */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long parentMenuId ;
/** 是否是首次查询菜单 */
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgDto.java
index 95921935..ca1d4333 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -8,6 +10,7 @@ import java.util.Date;
@Data
public class SysOrgDto implements Serializable {
/** 机构id */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long id ;
/** 机构名称 */
private String name ;
@@ -28,6 +31,7 @@ public class SysOrgDto implements Serializable {
/** 机构简称 */
private String aliasName;
/** 上级组织机构id */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long parentOrgId ;
/** 乐观锁 */
private Integer revision ;
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgQueryDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgQueryDto.java
index f20431b1..0cc19e6a 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgQueryDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysOrgQueryDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -14,6 +16,8 @@ public class SysOrgQueryDto implements Serializable {
private String city ;
/** 区县 */
private String county ;
+
+ @JsonSerialize(using = ToStringSerializer.class)
private Long parentOrgId ;
/** 是否是首次查询机构 */
private Boolean recursive;
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysRoleDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysRoleDto.java
index 3dd04c93..cddf07a4 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysRoleDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysRoleDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -8,6 +10,7 @@ import java.util.List;
@Data
public class SysRoleDto implements Serializable {
/** 主键id */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long id ;
/** 角色名称 */
private String roleName ;
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysUserDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysUserDto.java
index 1c89042e..305c5588 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysUserDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysUserDto.java
@@ -38,6 +38,7 @@ public class SysUserDto implements Serializable {
/**
* 所属机构id
*/
+ @JsonSerialize(using = ToStringSerializer.class)
private Long orgId;
/**
* 最后登录时间
diff --git a/das/src/main/java/com/das/modules/auth/domain/dto/SysUserQueryDto.java b/das/src/main/java/com/das/modules/auth/domain/dto/SysUserQueryDto.java
index f148724b..03e5694f 100644
--- a/das/src/main/java/com/das/modules/auth/domain/dto/SysUserQueryDto.java
+++ b/das/src/main/java/com/das/modules/auth/domain/dto/SysUserQueryDto.java
@@ -1,5 +1,7 @@
package com.das.modules.auth.domain.dto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@@ -9,5 +11,9 @@ public class SysUserQueryDto implements Serializable {
/** 职员名称 */
private String userName ;
/** 组织机构id */
+ @JsonSerialize(using = ToStringSerializer.class)
private Long orgId ;
+ /** 用户主键id */
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long id ;
}
diff --git a/das/src/main/java/com/das/modules/auth/service/LoginService.java b/das/src/main/java/com/das/modules/auth/service/LoginService.java
index 0f88eb35..10a48485 100644
--- a/das/src/main/java/com/das/modules/auth/service/LoginService.java
+++ b/das/src/main/java/com/das/modules/auth/service/LoginService.java
@@ -1,6 +1,8 @@
package com.das.modules.auth.service;
+import com.das.modules.auth.domain.dto.ChangePasswordDto;
+import com.das.modules.auth.domain.vo.LoginUserDetailsVo;
import com.das.modules.auth.domain.dto.LoginDto;
import com.das.modules.auth.domain.dto.RefreshTokenDto;
import com.das.modules.auth.domain.vo.LoginUserDetailsVo;
@@ -36,4 +38,6 @@ public interface LoginService {
* @return
*/
LoginVo refreshToken(RefreshTokenDto refreshToken);
+
+ int changePassword(ChangePasswordDto changePasswordDto);
}
diff --git a/das/src/main/java/com/das/modules/auth/service/impl/LoginServiceImpl.java b/das/src/main/java/com/das/modules/auth/service/impl/LoginServiceImpl.java
index 8eb9c1c6..5602ad82 100644
--- a/das/src/main/java/com/das/modules/auth/service/impl/LoginServiceImpl.java
+++ b/das/src/main/java/com/das/modules/auth/service/impl/LoginServiceImpl.java
@@ -8,7 +8,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.das.common.captcha.CaptchaUtils;
import com.das.common.config.SaTokenProperties;
import com.das.common.config.SessionUtil;
+import com.das.common.exceptions.ServiceException;
import com.das.common.utils.AdminRedisTemplate;
+import com.das.modules.auth.domain.dto.ChangePasswordDto;
+import com.das.modules.auth.domain.vo.LoginUserDetailsVo;
import com.das.modules.auth.domain.dto.LoginDto;
import com.das.modules.auth.domain.dto.RefreshTokenDto;
import com.das.modules.auth.domain.vo.LoginUserDetailsVo;
@@ -22,8 +25,10 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
import java.time.Duration;
+import java.util.Date;
/**
* @author chenhaojie
@@ -63,6 +68,9 @@ public class LoginServiceImpl implements LoginService {
loginInfo.setMsg("账号密码错误");
return loginInfo;
}
+ // 更新用户登录时间
+ sysUser.setLastLogin(new Date());
+ sysUserMapper.updateById(sysUser);
StpUtil.login(sysUser.getAccount());// 执行登录,这里username为用户唯一标识
String refreshTokenUuid = IdUtil.fastSimpleUUID();
String token = StpUtil.getTokenValue().replace("-", "");
@@ -125,4 +133,19 @@ public class LoginServiceImpl implements LoginService {
}
+ @Override
+ public int changePassword(ChangePasswordDto changePasswordDto) {
+ if (changePasswordDto.getId() == null || StringUtils.isEmpty(changePasswordDto.getNewPassword())) {
+ throw new ServiceException("非法调用,参数缺失");
+ }
+ String passwordEncode = BCrypt.hashpw(changePasswordDto.getNewPassword(), BCrypt.gensalt());
+ SysUser sysUser = sysUserMapper.selectById(changePasswordDto.getId());
+ if (sysUser == null) {
+ throw new ServiceException("用户不存在");
+ }
+ sysUser.setPassword(passwordEncode);
+ sysUser.setUpdatedTime(new Date());
+ return sysUserMapper.updateById(sysUser);
+ }
+
}
diff --git a/das/src/main/java/com/das/modules/auth/service/impl/SysOrgServiceImpl.java b/das/src/main/java/com/das/modules/auth/service/impl/SysOrgServiceImpl.java
index eb2e0767..ea13ceca 100644
--- a/das/src/main/java/com/das/modules/auth/service/impl/SysOrgServiceImpl.java
+++ b/das/src/main/java/com/das/modules/auth/service/impl/SysOrgServiceImpl.java
@@ -39,6 +39,7 @@ public class SysOrgServiceImpl implements SysOrgService {
public void updateOrg(SysOrgDto sysOrgDto) {
SysOrg sysOrg = new SysOrg();
BeanCopyUtils.copy(sysOrgDto,sysOrg);
+ sysOrg.setUpdatedTime(new Date());
sysOrgMapper.updateById(sysOrg);
}
diff --git a/das/src/main/java/com/das/modules/auth/service/impl/SysRoleServiceImpl.java b/das/src/main/java/com/das/modules/auth/service/impl/SysRoleServiceImpl.java
index 9b09cb47..ce2c2b9c 100644
--- a/das/src/main/java/com/das/modules/auth/service/impl/SysRoleServiceImpl.java
+++ b/das/src/main/java/com/das/modules/auth/service/impl/SysRoleServiceImpl.java
@@ -135,6 +135,7 @@ public class SysRoleServiceImpl implements SysRoleService {
sysRole.setRoleName(sysRoleDto.getRoleName());
sysRole.setRoleCode(sysRoleDto.getRoleCode());
sysRole.setId(sysRoleDto.getId());
+ sysRole.setUpdatedTime(new Date());
this.sysRoleMapper.updateById(sysRole);
//验证权限有效性
String errorAuths = checkErrorAuthorities(sysRoleDto.getAuthList());
diff --git a/das/src/main/java/com/das/modules/auth/service/impl/SysUserServiceImpl.java b/das/src/main/java/com/das/modules/auth/service/impl/SysUserServiceImpl.java
index 00eec8e5..81e057eb 100644
--- a/das/src/main/java/com/das/modules/auth/service/impl/SysUserServiceImpl.java
+++ b/das/src/main/java/com/das/modules/auth/service/impl/SysUserServiceImpl.java
@@ -56,7 +56,7 @@ public class SysUserServiceImpl implements SysUserService {
SysUser sysUser = new SysUser();
BeanCopyUtils.copy(sysUserDto,sysUser);
//密码加密
- String passwordEncode = BCrypt.hashpw(sysUserDto.getPassword(), BCrypt.gensalt());
+ String passwordEncode = BCrypt.hashpw("123456789", BCrypt.gensalt());
sysUser.setId(SequenceUtils.generateId());
sysUser.setRevision(1);
sysUser.setCreatedTime(new Date());
@@ -138,6 +138,7 @@ public class SysUserServiceImpl implements SysUserService {
}
SysUser newSysUser = new SysUser();
BeanUtils.copyProperties(sysUserDto, newSysUser, "password");
+ newSysUser.setUpdatedTime(new Date());
sysUserMapper.updateById(newSysUser);
if (sysUserDto.getRoleList() != null) {
diff --git a/das/src/main/resources/mapper/SysUserMapper.xml b/das/src/main/resources/mapper/SysUserMapper.xml
index ee62c2b7..175b59a7 100644
--- a/das/src/main/resources/mapper/SysUserMapper.xml
+++ b/das/src/main/resources/mapper/SysUserMapper.xml
@@ -61,6 +61,9 @@
and org_id = #{sysUser.orgId}
+
+ and id = #{sysUser.id}
+
diff --git a/ui/dasadmin/src/views/backend/auth/menuManagement/index.vue b/ui/dasadmin/src/views/backend/auth/menuManagement/index.vue
index 468731b6..2ff2fda1 100644
--- a/ui/dasadmin/src/views/backend/auth/menuManagement/index.vue
+++ b/ui/dasadmin/src/views/backend/auth/menuManagement/index.vue
@@ -65,9 +65,9 @@
:rules="rules"
style="padding: 24px 40px; font-size: 14px; line-height: 1.5; word-wrap: break-word; font-size: 20px"
>
-
+
@@ -90,11 +90,7 @@
-
-
-
-
-
+
@@ -112,7 +108,7 @@
-
+
-
+
@@ -170,11 +166,7 @@
-
-
-
-
-
+
@@ -191,7 +183,7 @@
-
+
确定是否删除?