소스 검색

# feat:用户管理相关的接口和模型

yang yi 1 주 전
부모
커밋
f4b4acc39a

+ 50 - 16
src/main/java/space/anyi/serve/controller/UserController.java

@@ -3,15 +3,15 @@ package space.anyi.serve.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import jakarta.annotation.Resource;
 import org.springframework.beans.BeanUtils;
+import org.springframework.context.annotation.Bean;
 import org.springframework.web.bind.annotation.*;
-import space.anyi.serve.entity.PageDto;
 import space.anyi.serve.entity.PageVo;
 import space.anyi.serve.entity.Response;
-import space.anyi.serve.entity.user.User;
-import space.anyi.serve.entity.user.UserDto;
-import space.anyi.serve.entity.user.UserQueryCondition;
+import space.anyi.serve.entity.user.*;
 import space.anyi.serve.service.UserService;
 
+import java.util.List;
+
 
 /**
  * (User)表控制层
@@ -30,16 +30,28 @@ public class UserController {
 
     /**
      * 分页查询
-     *
-     * @param pageDto 条件分页
-     * @return 查询结果
+     * @param account
+     * @param username
+     * @param role
+     * @param enable
+     * @param pageNum
+     * @param pageSize
+     * @return
      */
     @GetMapping
-    public Response<PageVo<User>> queryByPage(UserQueryCondition userQueryCondition,PageDto pageDto) {
+    public Response<PageVo<User>> queryByPage(
+            String account,
+            String username,
+            String role,
+            @RequestParam(defaultValue = "1") Integer enable,
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
         User user = new User();
-        BeanUtils.copyProperties(userQueryCondition,user);
-        //PageRequest pageRequest = PageRequest.of(pageDto.getPageNum(), pageDto.getPageSize());
-        Page<User> page = this.userService.queryByPage(user, Page.of(pageDto.getPageNum(), pageDto.getPageSize()));
+        user.setAccount(account);
+        user.setUsername(username);
+        user.setRole(role);
+        user.setEnable(enable);
+        Page<User> page = this.userService.queryByPage(user, Page.of(pageNum, pageSize));
         return Response.ok(PageVo.of(page));
     }
 
@@ -61,7 +73,7 @@ public class UserController {
      * @return 新增结果
      */
     @PostMapping
-    public Response<User> add(@RequestBody UserDto userDto) {
+    public Response<Boolean> add(@RequestBody UserDto userDto) {
         User user = new User();
         BeanUtils.copyProperties(userDto,user);
         return Response.ok(this.userService.insert(user));
@@ -74,7 +86,7 @@ public class UserController {
      * @return 编辑结果
      */
     @PutMapping
-    public Response<User> edit(UserDto userDto) {
+    public Response<Boolean> edit(UserDto userDto) {
         User user = new User();
         BeanUtils.copyProperties(userDto,user);
         return Response.ok(this.userService.update(user));
@@ -83,12 +95,34 @@ public class UserController {
     /**
      * 删除数据
      *
-     * @param id 主键
+     * @param ids 主键
      * @return 删除是否成功
      */
     @DeleteMapping
-    public Response<Boolean> deleteById(Long id) {
-        return Response.ok(this.userService.deleteById(id));
+    public Response<Boolean> deleteById(List<Long> ids) {
+        return Response.ok(this.userService.deleteById(ids));
+    }
+
+    //更新用户状态
+    @PutMapping("/updateStatus")
+    public Response updateUserStatus(UpdateUserStatusDto dto){
+        User user = new User();
+        BeanUtils.copyProperties(dto,user);
+        return Response.ok(userService.updateUserStatus(user));
+    }
+    //更新用户头像
+    @PutMapping("/updateAvatar")
+    public Response updateUserAvatar(UpdateUserAvatarDto dto){
+        User user = new User();
+        BeanUtils.copyProperties(dto,user);
+        return Response.ok(userService.updateUserAvatar(user));
+    }
+    //更新用户密码
+    @PutMapping("/updatePassword")
+    public Response updatePassword(UpdateUserPasswordDto dto){
+        User user = new User();
+        BeanUtils.copyProperties(dto,user);
+        return Response.ok(userService.updatePassword(user,dto.getOldPassword()));
     }
 
 }

+ 0 - 31
src/main/java/space/anyi/serve/entity/PageDto.java

@@ -1,31 +0,0 @@
-package space.anyi.serve.entity;
-
-/**
- * @fileName: PageDto
- * @projectName: serve
- * @package: space.anyi.serve.entity
- * @author: 杨逸
- * @date:2026/3/31 22:16
- * @description:
- */
-public final class PageDto {
-    private int pageNum = 1;
-    private int pageSize = 0;
-
-
-    public int getPageNum() {
-        return pageNum;
-    }
-
-    public void setPageNum(int pageNum) {
-        this.pageNum = pageNum;
-    }
-
-    public int getPageSize() {
-        return pageSize;
-    }
-
-    public void setPageSize(int pageSize) {
-        this.pageSize = pageSize;
-    }
-}

+ 7 - 0
src/main/java/space/anyi/serve/entity/Response.java

@@ -56,6 +56,13 @@ public final class Response<T> {
         response.setData(data);
         return response;
     }
+    public static <T> Response<T> ok(){
+        Response<T> response = new Response<>();
+        response.setCode(SUCCESS_CODE);
+        response.setMessage("success");
+        response.setData(null);
+        return response;
+    }
 
     /**
      * 失败的封装

+ 30 - 0
src/main/java/space/anyi/serve/entity/user/UpdateUserAvatarDto.java

@@ -0,0 +1,30 @@
+package space.anyi.serve.entity.user;
+
+/**
+ * @fileName: UpdateUserAvatarDto
+ * @projectName: serve
+ * @package: space.anyi.serve.entity.user
+ * @author: 杨逸
+ * @date:2026/4/29 9:11
+ * @description:
+ */
+public class UpdateUserAvatarDto {
+    private Long id;
+    private String avatar;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+}

+ 39 - 0
src/main/java/space/anyi/serve/entity/user/UpdateUserPasswordDto.java

@@ -0,0 +1,39 @@
+package space.anyi.serve.entity.user;
+
+/**
+ * @fileName: UpdateUserPasswordDto
+ * @projectName: serve
+ * @package: space.anyi.serve.entity.user
+ * @author: 杨逸
+ * @date:2026/4/29 9:15
+ * @description:
+ */
+public class UpdateUserPasswordDto {
+    private Long id;
+    private String password;
+    private String oldPassword;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getOldPassword() {
+        return oldPassword;
+    }
+
+    public void setOldPassword(String oldPassword) {
+        this.oldPassword = oldPassword;
+    }
+}

+ 30 - 0
src/main/java/space/anyi/serve/entity/user/UpdateUserStatusDto.java

@@ -0,0 +1,30 @@
+package space.anyi.serve.entity.user;
+
+/**
+ * @fileName: UpdateUserStatusDto
+ * @projectName: serve
+ * @package: space.anyi.serve.entity.user
+ * @author: 杨逸
+ * @date:2026/4/29 9:05
+ * @description:
+ */
+public class UpdateUserStatusDto {
+    private Long id;
+    private Integer enable;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Integer getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Integer enable) {
+        this.enable = enable;
+    }
+}

+ 9 - 0
src/main/java/space/anyi/serve/entity/user/UserDto.java

@@ -13,6 +13,7 @@ public class UserDto {
     private String account;
     private String password;
     private String username;
+    private String role;
 
     public Long getId() {
         return id;
@@ -45,4 +46,12 @@ public class UserDto {
     public void setUsername(String username) {
         this.username = username;
     }
+
+    public String getRole() {
+        return role;
+    }
+
+    public void setRole(String role) {
+        this.role = role;
+    }
 }

+ 0 - 48
src/main/java/space/anyi/serve/entity/user/UserQueryCondition.java

@@ -1,48 +0,0 @@
-package space.anyi.serve.entity.user;
-
-/**
- * @fileName: UserQueryCondition
- * @projectName: serve
- * @package: space.anyi.serve.entity.user
- * @author: 杨逸
- * @date:2026/4/1 8:56
- * @description:
- */
-public class UserQueryCondition {
-    private String account;
-    private String username;
-    private String role = "user";
-    private Boolean enable = true;
-
-    public String getAccount() {
-        return account;
-    }
-
-    public void setAccount(String account) {
-        this.account = account;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public String getRole() {
-        return role;
-    }
-
-    public void setRole(String role) {
-        this.role = role;
-    }
-
-    public Boolean getEnable() {
-        return enable;
-    }
-
-    public void setEnable(Boolean enable) {
-        this.enable = enable;
-    }
-}

+ 11 - 4
src/main/java/space/anyi/serve/service/UserService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import space.anyi.serve.entity.user.User;
 
+import java.util.List;
+
 /**
  * (User)表服务接口
  *
@@ -35,7 +37,7 @@ public interface UserService extends IService<User> {
      * @param user 实例对象
      * @return 实例对象
      */
-    User insert(User user);
+    Boolean insert(User user);
 
     /**
      * 修改数据
@@ -43,14 +45,19 @@ public interface UserService extends IService<User> {
      * @param user 实例对象
      * @return 实例对象
      */
-    User update(User user);
+    Boolean update(User user);
 
     /**
      * 通过主键删除数据
      *
-     * @param id 主键
+     * @param ids 主键
      * @return 是否成功
      */
-    boolean deleteById(Long id);
+    Boolean deleteById(List<Long> ids);
+
+    Boolean updateUserStatus(User user);
+
+    Boolean updateUserAvatar(User user);
 
+    Boolean updatePassword(User user, String oldPassword);
 }

+ 36 - 9
src/main/java/space/anyi/serve/service/impl/UserServiceImpl.java

@@ -1,6 +1,7 @@
 package space.anyi.serve.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
@@ -8,6 +9,7 @@ import space.anyi.serve.entity.user.User;
 import space.anyi.serve.mapper.UserMapper;
 import space.anyi.serve.service.UserService;
 
+import java.util.List;
 import java.util.Objects;
 
 
@@ -49,6 +51,25 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
         return page;
     }
 
+    @Override
+    public Boolean updateUserStatus(User user) {
+        return this.update(user);
+    }
+
+    @Override
+    public Boolean updateUserAvatar(User user) {
+        return this.update(user);
+    }
+
+    @Override
+    public Boolean updatePassword(User user, String oldPassword) {
+        User user1 = getById(user.getId());
+        if (!oldPassword.equals(user1.getPassword())) {
+            return false;
+        }
+        return update(user);
+    }
+
     /**
      * 新增数据
      *
@@ -56,9 +77,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
      * @return 实例对象
      */
     @Override
-    public User insert(User user) {
-        save(user);
-        return user;
+    public Boolean insert(User user) {
+        return save(user);
     }
 
     /**
@@ -68,19 +88,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
      * @return 实例对象
      */
     @Override
-    public User update(User user) {
-        update(user);
-        return user;
+    public Boolean update(User user) {
+        LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<User>()
+                .eq(User::getId, user.getId())
+                .set(Objects.nonNull(user.getAccount()),User::getAccount, user.getAccount())
+                .set(Objects.nonNull(user.getPassword()),User::getPassword,user.getPassword())
+                .set(Objects.nonNull(user.getUsername()),User::getUsername, user.getUsername())
+                .set(Objects.nonNull(user.getAvatar()), User::getAvatar,user.getAvatar())
+                .set(Objects.nonNull(user.getRole()),User::getRole, user.getRole())
+                .set(Objects.nonNull(user.getEnable()),User::getEnable, user.getEnable());
+        return this.update(updateWrapper);
     }
 
     /**
      * 通过主键删除数据
      *
-     * @param id 主键
+     * @param ids 主键
      * @return 是否成功
      */
     @Override
-    public boolean deleteById(Long id) {
-        return deleteById(id);
+    public Boolean deleteById(List<Long> ids) {
+        return this.getBaseMapper().deleteByIds(ids) == 1;
     }
 }