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..94fb6446 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,6 @@ public class SysUserQueryDto implements Serializable { /** 职员名称 */ private String userName ; /** 组织机构id */ + @JsonSerialize(using = ToStringSerializer.class) private Long orgId ; } 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..ba4fec2a 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 @@ -125,4 +130,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) {