Compare commits

..

No commits in common. "121ec9b684246a89e270a5d1a78249ccdd029daf" and "44df4b564d26bae18cc0c5cc3a2f18ff1849fe21" have entirely different histories.

9 changed files with 2 additions and 96 deletions

View File

@ -1,15 +0,0 @@
package github.benjamin.equipreservebackend.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/device_image/**")
.addResourceLocations("file:" + System.getProperty("user.dir") + "/device_image/");
}
}

View File

@ -4,16 +4,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import github.benjamin.equipreservebackend.entity.Device;
import github.benjamin.equipreservebackend.response.ResponseResult;
import github.benjamin.equipreservebackend.service.DeviceService;
import github.benjamin.equipreservebackend.service.ReservationService;
import github.benjamin.equipreservebackend.vo.DeviceUserVO;
import github.benjamin.equipreservebackend.vo.TimeRangeVO;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
@RestController
@RequiredArgsConstructor
@ -22,8 +19,6 @@ public class DeviceController {
private final DeviceService deviceService;
private final ReservationService reservationService;
@PreAuthorize("hasRole('USER')")
@GetMapping
public ResponseResult<Page<DeviceUserVO>> getDevices(@RequestParam(defaultValue = "1") Integer page,
@ -34,13 +29,6 @@ public class DeviceController {
return ResponseResult.success(res);
}
@PreAuthorize("hasRole('USER')")
@GetMapping ("/unavailable-times/{id}")
public ResponseResult<List<TimeRangeVO>> getUnavailableTimes(@PathVariable Long id) {
List<TimeRangeVO> res = reservationService.getUnavailableTimes(id);
return ResponseResult.success(res);
}
@PreAuthorize("hasRole('DEVICE_ADMIN')")
@PostMapping
public ResponseResult<?> addDevice(@RequestBody Device device){

View File

@ -1,9 +0,0 @@
package github.benjamin.equipreservebackend.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import github.benjamin.equipreservebackend.entity.Team;
import org.springframework.stereotype.Repository;
@Repository
public interface TeamMapper extends BaseMapper<Team> {
}

View File

@ -2,7 +2,6 @@ package github.benjamin.equipreservebackend.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import github.benjamin.equipreservebackend.entity.Reservation;
import github.benjamin.equipreservebackend.vo.TimeRangeVO;
import github.benjamin.equipreservebackend.vo.UserReservationVO;
import java.util.List;
@ -14,6 +13,4 @@ public interface ReservationService {
void addReservation(Reservation reservation);
Page<UserReservationVO> getUserReservationVO(Long userId, Page<Reservation> pageRequest);
List<TimeRangeVO> getUnavailableTimes(Long id);
}

View File

@ -1,4 +0,0 @@
package github.benjamin.equipreservebackend.service;
public interface TeamService {
}

View File

@ -5,21 +5,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import github.benjamin.equipreservebackend.constant.ReservationStatus;
import github.benjamin.equipreservebackend.entity.Device;
import github.benjamin.equipreservebackend.entity.Reservation;
import github.benjamin.equipreservebackend.entity.Team;
import github.benjamin.equipreservebackend.entity.User;
import github.benjamin.equipreservebackend.mapper.DeviceMapper;
import github.benjamin.equipreservebackend.mapper.ReservationMapper;
import github.benjamin.equipreservebackend.mapper.TeamMapper;
import github.benjamin.equipreservebackend.mapper.UserMapper;
import github.benjamin.equipreservebackend.service.ReservationService;
import github.benjamin.equipreservebackend.utils.PageUtil;
import github.benjamin.equipreservebackend.vo.TimeRangeVO;
import github.benjamin.equipreservebackend.vo.UserReservationVO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@ -37,8 +33,6 @@ public class ReservationServiceImpl implements ReservationService {
private final UserMapper userMapper;
private final TeamMapper teamMapper;
/**
* 未来days天内有预约的设备显示为有预约
*/
@ -47,24 +41,15 @@ public class ReservationServiceImpl implements ReservationService {
@Override
public List<Reservation> getApprovedReservationsByDeviceIds(List<Long> devicesIds) {
LocalDate now = LocalDate.now();
LocalDate endTime = now.plusDays(days);
LocalDateTime endTime = LocalDateTime.now().plusDays(days);
return reservationMapper.selectList(new LambdaQueryWrapper<Reservation>()
.in(Reservation::getDeviceId, devicesIds)
.eq(Reservation::getStatus, ReservationStatus.APPROVED)
.between(Reservation::getStartTime, now, endTime));
.lt(Reservation::getEndTime, endTime));
}
@Override
public void addReservation(Reservation reservation) {
User user = userMapper.selectById(reservation.getUserId());
Team team = teamMapper.selectById(user.getTeamId());
Device device = deviceMapper.selectById(reservation.getDeviceId());
reservation.setApplicantName(user.getName());
reservation.setApplicantTeam(team.getName());
reservation.setApplicantContact(user.getPhone());
reservation.setDeviceAdminId(device.getDeviceAdminId());
reservation.setStatus(String.valueOf(ReservationStatus.PENDING_LEADER));
reservationMapper.insert(reservation);
}
@ -109,16 +94,4 @@ public class ReservationServiceImpl implements ReservationService {
res.setRecords(vos);
return res;
}
@Override
public List<TimeRangeVO> getUnavailableTimes(Long id) {
List<Reservation> reservations = reservationMapper.selectList(new LambdaQueryWrapper<Reservation>()
.eq(Reservation::getDeviceId, id)
.eq(Reservation::getStatus, "APPROVED")
.gt(Reservation::getEndTime, LocalDate.now()));
return reservations.stream()
.map(r -> new TimeRangeVO(r.getStartTime(), r.getEndTime()))
.toList();
}
}

View File

@ -1,9 +1,6 @@
package github.benjamin.equipreservebackend.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import github.benjamin.equipreservebackend.entity.Device;
import github.benjamin.equipreservebackend.entity.User;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -11,7 +8,6 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class DeviceUserVO {
@JsonSerialize(using = ToStringSerializer.class)
private Long deviceId;
private String name;
private String usageRequirement;

View File

@ -1,7 +1,5 @@
package github.benjamin.equipreservebackend.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import github.benjamin.equipreservebackend.entity.Role;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -12,7 +10,6 @@ import java.util.List;
@AllArgsConstructor
public class LoginResponse {
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
private String name;
private List<String> roles;

View File

@ -1,17 +0,0 @@
package github.benjamin.equipreservebackend.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TimeRangeVO {
private LocalDate startTime;
private LocalDate endTime;
}