Compare commits
2 Commits
121ec9b684
...
71bd2bb31b
Author | SHA1 | Date | |
---|---|---|---|
71bd2bb31b | |||
eb7d8f92d1 |
@ -1,17 +1,17 @@
|
|||||||
package github.benjamin.equipreservebackend.controller;
|
package github.benjamin.equipreservebackend.controller;
|
||||||
|
|
||||||
import github.benjamin.equipreservebackend.dto.LoginRequest;
|
import github.benjamin.equipreservebackend.dto.LoginRequest;
|
||||||
|
import github.benjamin.equipreservebackend.dto.UserDTO;
|
||||||
import github.benjamin.equipreservebackend.entity.Role;
|
import github.benjamin.equipreservebackend.entity.Role;
|
||||||
import github.benjamin.equipreservebackend.vo.LoginResponse;
|
|
||||||
import github.benjamin.equipreservebackend.response.ResponseResult;
|
|
||||||
import github.benjamin.equipreservebackend.entity.User;
|
import github.benjamin.equipreservebackend.entity.User;
|
||||||
|
import github.benjamin.equipreservebackend.response.ResponseResult;
|
||||||
import github.benjamin.equipreservebackend.security.SecurityUser;
|
import github.benjamin.equipreservebackend.security.SecurityUser;
|
||||||
import github.benjamin.equipreservebackend.service.UserService;
|
import github.benjamin.equipreservebackend.service.UserService;
|
||||||
import github.benjamin.equipreservebackend.utils.JwtUtil;
|
import github.benjamin.equipreservebackend.utils.JwtUtil;
|
||||||
|
import github.benjamin.equipreservebackend.vo.LoginResponse;
|
||||||
|
import github.benjamin.equipreservebackend.vo.UserVO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -31,4 +31,17 @@ public class UserController {
|
|||||||
List<String> roles = securityUser.getRoles().stream().map(Role::getCode).toList();
|
List<String> roles = securityUser.getRoles().stream().map(Role::getCode).toList();
|
||||||
return ResponseResult.success(new LoginResponse(user.getId(), user.getName(), roles, token));
|
return ResponseResult.success(new LoginResponse(user.getId(), user.getName(), roles, token));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/userdetail/{id}")
|
||||||
|
public ResponseResult<UserVO> getUserVO(@PathVariable Long id) {
|
||||||
|
return ResponseResult.success(userService.getUserVO(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PatchMapping("/user/{id}")
|
||||||
|
public ResponseResult<UserVO> updateUser(@PathVariable Long id,
|
||||||
|
@RequestBody UserDTO dto) {
|
||||||
|
userService.updateUser(id, dto);
|
||||||
|
return ResponseResult.success(userService.getUserVO(id));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package github.benjamin.equipreservebackend.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserDTO {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private String phone;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
}
|
@ -1,11 +1,17 @@
|
|||||||
package github.benjamin.equipreservebackend.service;
|
package github.benjamin.equipreservebackend.service;
|
||||||
|
|
||||||
|
import github.benjamin.equipreservebackend.dto.UserDTO;
|
||||||
import github.benjamin.equipreservebackend.entity.User;
|
import github.benjamin.equipreservebackend.entity.User;
|
||||||
import github.benjamin.equipreservebackend.security.SecurityUser;
|
import github.benjamin.equipreservebackend.security.SecurityUser;
|
||||||
|
import github.benjamin.equipreservebackend.vo.UserVO;
|
||||||
|
|
||||||
public interface UserService {
|
public interface UserService {
|
||||||
|
|
||||||
User login(String username, String password);
|
User login(String username, String password);
|
||||||
|
|
||||||
SecurityUser loadSecurityUserById(Long userId);
|
SecurityUser loadSecurityUserById(Long userId);
|
||||||
|
|
||||||
|
UserVO getUserVO(Long id);
|
||||||
|
|
||||||
|
void updateUser(Long id, UserDTO dto);
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,24 @@
|
|||||||
package github.benjamin.equipreservebackend.service.impl;
|
package github.benjamin.equipreservebackend.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import github.benjamin.equipreservebackend.dto.UserDTO;
|
||||||
import github.benjamin.equipreservebackend.entity.Role;
|
import github.benjamin.equipreservebackend.entity.Role;
|
||||||
|
import github.benjamin.equipreservebackend.entity.Team;
|
||||||
import github.benjamin.equipreservebackend.entity.User;
|
import github.benjamin.equipreservebackend.entity.User;
|
||||||
import github.benjamin.equipreservebackend.exception.ApiException;
|
import github.benjamin.equipreservebackend.exception.ApiException;
|
||||||
import github.benjamin.equipreservebackend.mapper.RoleMapper;
|
import github.benjamin.equipreservebackend.mapper.RoleMapper;
|
||||||
|
import github.benjamin.equipreservebackend.mapper.TeamMapper;
|
||||||
import github.benjamin.equipreservebackend.mapper.UserMapper;
|
import github.benjamin.equipreservebackend.mapper.UserMapper;
|
||||||
import github.benjamin.equipreservebackend.response.ResponseCode;
|
import github.benjamin.equipreservebackend.response.ResponseCode;
|
||||||
import github.benjamin.equipreservebackend.security.SecurityUser;
|
import github.benjamin.equipreservebackend.security.SecurityUser;
|
||||||
import github.benjamin.equipreservebackend.service.UserService;
|
import github.benjamin.equipreservebackend.service.UserService;
|
||||||
import github.benjamin.equipreservebackend.utils.JwtUtil;
|
import github.benjamin.equipreservebackend.utils.JwtUtil;
|
||||||
import github.benjamin.equipreservebackend.utils.PasswordUtil;
|
import github.benjamin.equipreservebackend.utils.PasswordUtil;
|
||||||
|
import github.benjamin.equipreservebackend.vo.UserVO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -25,6 +31,8 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
private final RoleMapper roleMapper;
|
private final RoleMapper roleMapper;
|
||||||
|
|
||||||
|
private final TeamMapper teamMapper;
|
||||||
|
|
||||||
private final JwtUtil jwtUtil;
|
private final JwtUtil jwtUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -45,4 +53,24 @@ public class UserServiceImpl implements UserService {
|
|||||||
List<Role> roles = roleMapper.selectRoleByUserId(userId);
|
List<Role> roles = roleMapper.selectRoleByUserId(userId);
|
||||||
return new SecurityUser(user, roles);
|
return new SecurityUser(user, roles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UserVO getUserVO(Long id) {
|
||||||
|
User user = userMapper.selectById(id);
|
||||||
|
Team team = teamMapper.selectById(user.getTeamId());
|
||||||
|
return new UserVO(user, team);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateUser(Long id, UserDTO dto) {
|
||||||
|
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<User>()
|
||||||
|
.eq(User::getId, id)
|
||||||
|
.set(StringUtils.hasText(dto.getName()), User::getName, dto.getName())
|
||||||
|
.set(StringUtils.hasText(dto.getPhone()), User::getPhone, dto.getPhone());
|
||||||
|
if (StringUtils.hasText(dto.getPassword())) {
|
||||||
|
String encoded = PasswordUtil.encode(dto.getPassword());
|
||||||
|
wrapper.set(User::getPassword, encoded);
|
||||||
|
}
|
||||||
|
userMapper.update(wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import java.util.Map;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class UserReservationVO {
|
public class UserReservationVO {
|
||||||
|
private String reservationId;
|
||||||
private String deviceName;
|
private String deviceName;
|
||||||
private LocalDate startTime;
|
private LocalDate startTime;
|
||||||
private LocalDate endTime;
|
private LocalDate endTime;
|
||||||
@ -24,6 +25,7 @@ public class UserReservationVO {
|
|||||||
private LocalDateTime createdTime;
|
private LocalDateTime createdTime;
|
||||||
|
|
||||||
public UserReservationVO(Reservation r, Map<Long, String> deviceNameMap) {
|
public UserReservationVO(Reservation r, Map<Long, String> deviceNameMap) {
|
||||||
|
this.reservationId = r.getId().toString();
|
||||||
this.deviceName = deviceNameMap.get(r.getDeviceId());
|
this.deviceName = deviceNameMap.get(r.getDeviceId());
|
||||||
this.startTime = r.getStartTime();
|
this.startTime = r.getStartTime();
|
||||||
this.endTime = r.getEndTime();
|
this.endTime = r.getEndTime();
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package github.benjamin.equipreservebackend.vo;
|
||||||
|
|
||||||
|
import github.benjamin.equipreservebackend.entity.Team;
|
||||||
|
import github.benjamin.equipreservebackend.entity.User;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class UserVO {
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
private String team;
|
||||||
|
private String name;
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
public UserVO(User u, Team t) {
|
||||||
|
this.username = u.getUsername();
|
||||||
|
this.name = u.getName();
|
||||||
|
this.phone = u.getPhone();
|
||||||
|
this.team = t.getName();
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user