From 7bd3d54d97cf26f903aa54e1af701e24048bc34f Mon Sep 17 00:00:00 2001 From: MichaelWin Date: Mon, 17 Nov 2025 15:08:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/dto/sys/SysResetPasswordRequest.java | 9 + .../app/dto/sys/SysUserIdRequest.java | 8 + .../modules/admin/sys/SysUserController.java | 26 ++ .../corewing/app/service/SysUserService.java | 12 + .../app/service/impl/SysUserServiceImpl.java | 24 ++ .../templates/admin/sys/user/index.html | 321 ++++++++++++++---- 6 files changed, 342 insertions(+), 58 deletions(-) create mode 100644 src/main/java/com/corewing/app/dto/sys/SysResetPasswordRequest.java create mode 100644 src/main/java/com/corewing/app/dto/sys/SysUserIdRequest.java diff --git a/src/main/java/com/corewing/app/dto/sys/SysResetPasswordRequest.java b/src/main/java/com/corewing/app/dto/sys/SysResetPasswordRequest.java new file mode 100644 index 0000000..68d027f --- /dev/null +++ b/src/main/java/com/corewing/app/dto/sys/SysResetPasswordRequest.java @@ -0,0 +1,9 @@ +package com.corewing.app.dto.sys; + +import lombok.Data; + +@Data +public class SysResetPasswordRequest { + private Long userId; + private String password; +} diff --git a/src/main/java/com/corewing/app/dto/sys/SysUserIdRequest.java b/src/main/java/com/corewing/app/dto/sys/SysUserIdRequest.java new file mode 100644 index 0000000..6954227 --- /dev/null +++ b/src/main/java/com/corewing/app/dto/sys/SysUserIdRequest.java @@ -0,0 +1,8 @@ +package com.corewing.app.dto.sys; + +import lombok.Data; + +@Data +public class SysUserIdRequest { + private Long id; +} diff --git a/src/main/java/com/corewing/app/modules/admin/sys/SysUserController.java b/src/main/java/com/corewing/app/modules/admin/sys/SysUserController.java index 529930f..7c18c57 100644 --- a/src/main/java/com/corewing/app/modules/admin/sys/SysUserController.java +++ b/src/main/java/com/corewing/app/modules/admin/sys/SysUserController.java @@ -4,6 +4,8 @@ import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.corewing.app.common.Result; import com.corewing.app.dto.api.SysLoginRequest; +import com.corewing.app.dto.sys.SysResetPasswordRequest; +import com.corewing.app.dto.sys.SysUserIdRequest; import com.corewing.app.entity.SysUser; import com.corewing.app.service.SysUserService; import com.corewing.app.util.I18nUtil; @@ -40,6 +42,30 @@ public class SysUserController { return Result.success(sysUserPage); } + @PostMapping("/update") + @ResponseBody + public Result update(@RequestBody SysUser sysUser) { + return Result.isBool(sysUserService.update(sysUser)); + } + + @PostMapping("/save") + @ResponseBody + public Result save(@RequestBody SysUser sysUser) { + return Result.isBool(sysUserService.save(sysUser)); + } + + @PutMapping("/resetPassword") + @ResponseBody + public Result resetPassword(@RequestBody SysResetPasswordRequest sysResetPasswordRequest) { + return Result.isBool(sysUserService.resetPassword(sysResetPasswordRequest)); + } + + @DeleteMapping("/delete") + @ResponseBody + public Result delete(@RequestBody SysUserIdRequest sysUserIdRequest) { + return Result.isBool(sysUserService.removeById(sysUserIdRequest.getId())); + } + /** * 后台管理登录 */ diff --git a/src/main/java/com/corewing/app/service/SysUserService.java b/src/main/java/com/corewing/app/service/SysUserService.java index 9fefbb6..9008f52 100644 --- a/src/main/java/com/corewing/app/service/SysUserService.java +++ b/src/main/java/com/corewing/app/service/SysUserService.java @@ -2,6 +2,7 @@ package com.corewing.app.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.corewing.app.dto.sys.SysResetPasswordRequest; import com.corewing.app.entity.SysUser; /** @@ -11,6 +12,10 @@ public interface SysUserService extends IService { Page page(SysUser sysUser); + boolean save(SysUser sysUser); + + boolean update(SysUser sysUser); + /** * 根据用户名查询用户 * @@ -36,4 +41,11 @@ public interface SysUserService extends IService { * @param loginIp 登录IP */ void updateLoginInfo(Long userId, String loginIp); + + /** + * 修改密码 + * @param sysResetPasswordRequest + * @return + */ + boolean resetPassword(SysResetPasswordRequest sysResetPasswordRequest); } diff --git a/src/main/java/com/corewing/app/service/impl/SysUserServiceImpl.java b/src/main/java/com/corewing/app/service/impl/SysUserServiceImpl.java index 1ca111d..1ed2b7c 100644 --- a/src/main/java/com/corewing/app/service/impl/SysUserServiceImpl.java +++ b/src/main/java/com/corewing/app/service/impl/SysUserServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.corewing.app.common.page.PageContext; +import com.corewing.app.dto.sys.SysResetPasswordRequest; import com.corewing.app.entity.SysUser; import com.corewing.app.mapper.SysUserMapper; import com.corewing.app.service.SysUserService; @@ -25,9 +26,20 @@ public class SysUserServiceImpl extends ServiceImpl impl public Page page(SysUser sysUser) { Page page = PageContext.getPage(SysUser.class); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(sysUser.getStatus() != null, SysUser::getStatus, sysUser.getStatus()); + queryWrapper.like(StringUtils.hasText(sysUser.getUsername()), SysUser::getUsername, sysUser.getUsername()); return page(page, queryWrapper); } + public boolean save(SysUser sysUser) { + String encryptPassword = DigestUtils.md5DigestAsHex(sysUser.getPassword().getBytes(StandardCharsets.UTF_8)); + sysUser.setPassword(encryptPassword); + return super.save(sysUser); + } + + public boolean update(SysUser sysUser) { + return updateById(sysUser); + } @Override public SysUser getByUsername(String username) { @@ -75,4 +87,16 @@ public class SysUserServiceImpl extends ServiceImpl impl user.setLoginTime(LocalDateTime.now()); this.updateById(user); } + + @Override + public boolean resetPassword(SysResetPasswordRequest sysResetPasswordRequest) { + + SysUser sysUser = getById(sysResetPasswordRequest.getUserId()); + if(sysUser == null) { + throw new RuntimeException(I18nUtil.getMessage("error.user.not.found")); + } + String encryptPassword = DigestUtils.md5DigestAsHex(sysResetPasswordRequest.getPassword().getBytes(StandardCharsets.UTF_8)); + sysUser.setPassword(encryptPassword); + return updateById(sysUser); + } } diff --git a/src/main/resources/templates/admin/sys/user/index.html b/src/main/resources/templates/admin/sys/user/index.html index 098543f..4ed870e 100644 --- a/src/main/resources/templates/admin/sys/user/index.html +++ b/src/main/resources/templates/admin/sys/user/index.html @@ -14,7 +14,7 @@
-

用户管理

+

系统用户

@@ -88,7 +88,6 @@ 名称 状态 用户类型 - 所属部门 创建时间 操作 @@ -118,7 +117,8 @@ - + {{ item.id }} - {{ item.name }} + {{ item.username }} {{ item.status === 1 ? '启用' : '禁用' }} @@ -140,14 +140,13 @@ {{ item.userType === 'admin' ? '管理员' : item.userType === 'editor' ? '编辑' : '查看者' }} - - - {{ item.deptId === '1' ? '技术部' : item.deptId === '2' ? '运营部' : item.deptId === '3' ? '市场部' : '人事部' }} - - - {{ formatTime(item.createTime) }} + + {{ item.createTime }}
+ @@ -161,34 +160,32 @@
- -
-
- 已选中 {{ selectedIds.length }} 条数据 + + + - - + + + + + + + + + + + + - -
-
+ + + + + + + + +
@@ -218,12 +215,128 @@
+ + + + + + + + +