阳光沙滩博客系统-删除用户

需要权限:管理员

是否真的删除呢?不是的呢,只是修改状态。

# 接口

/**
     * 需要管理员权限
     *
     * @param userId
     * @return
     */
@DeleteMapping("/{userId}")
public ResponseResult deleteUser(HttpServletResponse response, HttpServletRequest request,
                                 @PathVariable("userId") String userId) {
    //判断当前操作的用户是谁
    //根据用户角色判断是否可以删除
    //TODO:通过注解的方式来控制权限
    return userService.deleteUserById(userId, request, response);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 修改用户状态代码

/**
     * 删除用户,并不是真的删除
     * 而是修改状态
     * <p>
     * PS:需要管理员权限
     */
@Override
public ResponseResult deleteUserById(String userId, HttpServletRequest request, HttpServletResponse response) {
    //检验当前操作的用户是谁
    SobUser currentUser = checkSobUser(request, response);
    if (currentUser == null) {
        return ResponseResult.ACCOUNT_NOT_LOGIN();
    }
    //判断角色
    if (!Constants.User.ROLE_ADMIN.equals(currentUser.getRoles())) {
        return ResponseResult.PERMISSION_FORBID();
    }
    //可以删除用户了
    int result = userDao.deleteUserByState(userId);
    if (result > 0) {
        return ResponseResult.SUCCESS("删除成功");
    }
    return ResponseResult.FAILED("用户不存在");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# DAO里的方法

/**
     * 通过修改用户的状态来删除用户
     *
     * @param userId
     * @return
     */
@Modifying
@Query(nativeQuery = true, value = "UPDATE `tb_user` SET `state` = '0' WHERE `id` = ?")
int deleteUserByState(String userId);
1
2
3
4
5
6
7
8
9
上次更新: 2022/03/28, 23:04:38