46 lines
2.1 KiB
Java
46 lines
2.1 KiB
Java
package github.benjamin.equipreservebackend.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import github.benjamin.equipreservebackend.constant.ApprovalStep;
|
|
import github.benjamin.equipreservebackend.constant.ReservationStatus;
|
|
import github.benjamin.equipreservebackend.dto.LeaderApprovalDTO;
|
|
import github.benjamin.equipreservebackend.entity.Approval;
|
|
import github.benjamin.equipreservebackend.entity.Reservation;
|
|
import github.benjamin.equipreservebackend.mapper.ApprovalMapper;
|
|
import github.benjamin.equipreservebackend.mapper.ReservationMapper;
|
|
import github.benjamin.equipreservebackend.service.ApprovalService;
|
|
import github.benjamin.equipreservebackend.vo.LeaderApprovalVO;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
public class ApprovalServiceImpl implements ApprovalService {
|
|
|
|
private final ApprovalMapper approvalMapper;
|
|
|
|
private final ReservationMapper reservationMapper;
|
|
|
|
@Override
|
|
public void addApproval(LeaderApprovalDTO dto) {
|
|
Approval approval = Approval.builder()
|
|
.approverId(dto.getLeaderId())
|
|
.reservationId(dto.getReservationId())
|
|
.step(ApprovalStep.LEADER.getStep())
|
|
.decision(dto.getIsApprove() ? 1 : 0)
|
|
.build();
|
|
approvalMapper.insert(approval);
|
|
reservationMapper.update(new LambdaUpdateWrapper<Reservation>()
|
|
.eq(Reservation::getId, dto.getReservationId())
|
|
.set(Reservation::getStatus, dto.getIsApprove() ? ReservationStatus.PENDING_DEVICE_ADMIN : ReservationStatus.REJECTED));
|
|
}
|
|
|
|
@Override
|
|
public IPage<LeaderApprovalVO> getLeaderApproval(Page<Approval> pageRequest, Long userId, String applicantName, String deviceName) {
|
|
return approvalMapper.getLeaderApproval(pageRequest, userId, applicantName, deviceName);
|
|
}
|
|
}
|