feat:增加密码管理接口
This commit is contained in:
@@ -3,7 +3,7 @@ package com.cxx.admin.controller;
|
||||
import com.cxx.admin.service.AccountService;
|
||||
import com.cxx.common.ReadView;
|
||||
import com.cxx.common.WriteView;
|
||||
import com.cxx.admin.dto.user.AccountDto;
|
||||
import com.cxx.common.dto.AccountDto;
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.cxx.admin.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.cxx.common.dto.user.SessionDto;
|
||||
import com.cxx.common.dto.SessionDto;
|
||||
import com.cxx.admin.service.SessionService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.cxx.admin.controller;
|
||||
|
||||
import com.cxx.admin.service.UserService;
|
||||
import com.cxx.common.ReadView;
|
||||
import com.cxx.common.WriteView;
|
||||
import com.cxx.common.dto.user.UserDto;
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
@Tag(name = "用户管理")
|
||||
public class UserController {
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@Operation(summary = "查询用户")
|
||||
@GetMapping("/{id}")
|
||||
public @JsonView(ReadView.class) UserDto queryUser(@PathVariable("id") Long id) {
|
||||
return userService.queryUser(id);
|
||||
}
|
||||
|
||||
@Operation(summary = "更新用户")
|
||||
@PutMapping("/{id}")
|
||||
public Boolean updateUser(@PathVariable("id") Long id,
|
||||
@JsonView(WriteView.class) @Validated @RequestBody UserDto userDto) {
|
||||
return userService.updateUser(id, userDto);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.cxx.admin.dao;
|
||||
|
||||
import com.cxx.admin.dto.user.AccountDto;
|
||||
import com.cxx.common.dto.AccountDto;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.cxx.admin.dto.user;
|
||||
|
||||
import com.cxx.common.PlainView;
|
||||
import com.cxx.common.ReadView;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@JsonView(PlainView.class)
|
||||
public class AccountDto {
|
||||
@Schema(description = "id")
|
||||
@JsonView(ReadView.class)
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "账户名称")
|
||||
@NotBlank(message = "账户名称不能为空")
|
||||
private String accountName;
|
||||
|
||||
@Schema(description = "密码")
|
||||
@NotBlank(message = "密码不能为空")
|
||||
private String password;
|
||||
|
||||
@Schema(description = "用户名称")
|
||||
@NotBlank(message = "用户名称不能为空")
|
||||
private String username;
|
||||
|
||||
@Schema(description = "账户状态")
|
||||
@JsonView(ReadView.class)
|
||||
private Integer state;
|
||||
|
||||
@Schema(description = "创建日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@JsonView(ReadView.class)
|
||||
private Date date;
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.cxx.admin.dto.user;
|
||||
|
||||
import com.cxx.common.PlainView;
|
||||
import com.cxx.common.ReadView;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@JsonView(PlainView.class)
|
||||
public class UserSummaryDto {
|
||||
@Schema(description = "id")
|
||||
@JsonView(ReadView.class)
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "id")
|
||||
@JsonView(ReadView.class)
|
||||
private String accountName;
|
||||
|
||||
@Schema(description = "用户名称")
|
||||
@NotBlank(message = "用户名称不能为空")
|
||||
private String username;
|
||||
|
||||
@Schema(description = "账户状态")
|
||||
private Integer state;
|
||||
|
||||
@Schema(description = "创建日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private LocalDateTime date;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.cxx.admin.service;
|
||||
|
||||
|
||||
import com.cxx.admin.dto.user.AccountDto;
|
||||
import com.cxx.common.dto.AccountDto;
|
||||
import com.cxx.common.entity.Account;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.cxx.admin.service;
|
||||
|
||||
import com.cxx.common.dto.user.SessionDto;
|
||||
import com.cxx.common.dto.SessionDto;
|
||||
|
||||
public interface SessionService {
|
||||
SessionDto create(String name, String password);
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.cxx.admin.service;
|
||||
|
||||
|
||||
import com.cxx.common.dto.user.UserDto;
|
||||
|
||||
public interface UserService {
|
||||
UserDto queryUser(Long id);
|
||||
|
||||
Boolean updateUser(Long id, UserDto userDto);
|
||||
}
|
||||
@@ -3,9 +3,9 @@ package com.cxx.admin.service.impl;
|
||||
|
||||
import cn.dev33.satoken.secure.BCrypt;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.cxx.admin.dao.AccountDao;
|
||||
import com.cxx.admin.service.AccountService;
|
||||
import com.cxx.admin.dto.user.AccountDto;
|
||||
import com.cxx.admin.dao.AccountDao;
|
||||
import com.cxx.common.dto.AccountDto;
|
||||
import com.cxx.common.entity.Account;
|
||||
import com.cxx.common.entity.User;
|
||||
import com.cxx.common.mapper.AccountMapper;
|
||||
|
||||
@@ -5,9 +5,9 @@ import cn.dev33.satoken.secure.BCrypt;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.cxx.common.dto.user.SessionDto;
|
||||
import com.cxx.admin.service.SessionService;
|
||||
import com.cxx.common.dto.user.UserDto;
|
||||
import com.cxx.common.dto.SessionDto;
|
||||
import com.cxx.common.dto.UserDto;
|
||||
import com.cxx.common.entity.Account;
|
||||
import com.cxx.common.entity.User;
|
||||
import com.cxx.common.mapper.AccountMapper;
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
package com.cxx.admin.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.cxx.admin.service.AccountService;
|
||||
import com.cxx.admin.service.UserService;
|
||||
import com.cxx.common.dto.user.UserDto;
|
||||
import com.cxx.common.entity.User;
|
||||
import com.cxx.common.mapper.UserMapper;
|
||||
import com.cxx.framework.web.CustomException;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class UserServiceImpl implements UserService {
|
||||
@Resource
|
||||
private UserMapper userMapper;
|
||||
|
||||
@Resource
|
||||
private AccountService accountService;
|
||||
|
||||
@Override
|
||||
public UserDto queryUser(Long id) {
|
||||
User user = userMapper.selectById(id);
|
||||
if (user == null) {
|
||||
throw new CustomException("未查询到该用户");
|
||||
}
|
||||
|
||||
UserDto userDto = new UserDto();
|
||||
BeanUtils.copyProperties(user, userDto);
|
||||
userDto.setAccountName(accountService.queryAccountByUserId(id).getAccountName());
|
||||
return userDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateUser(Long id, UserDto userDto) {
|
||||
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (!userMapper.exists(queryWrapper.eq(User::getId, id))) {
|
||||
throw new CustomException("该用户不存在");
|
||||
}
|
||||
|
||||
queryWrapper.clear();
|
||||
if (userMapper.exists(queryWrapper.eq(User::getUsername, userDto.getUsername()).ne(User::getId, id))) {
|
||||
throw new CustomException("该用户已经存在");
|
||||
}
|
||||
|
||||
User user = new User();
|
||||
BeanUtils.copyProperties(userDto, user);
|
||||
user.setId(id);
|
||||
return userMapper.updateById(user) == 1;
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ spring:
|
||||
name: @project.artifactId@
|
||||
version: @project.version@
|
||||
profiles:
|
||||
active: dev
|
||||
active: prod
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 10MB
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cxx.admin.dao.AccountDao">
|
||||
<select id="queryAccount" resultType="com.cxx.admin.dto.user.AccountDto">
|
||||
<select id="queryAccount" resultType="com.cxx.common.dto.AccountDto">
|
||||
SELECT b.id AS id,
|
||||
b.account_name AS accountName,
|
||||
a.username AS username,
|
||||
|
||||
Reference in New Issue
Block a user