package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceDto;
import com.yuanchu.mom.pojo.Reservation;
import com.yuanchu.mom.service.DeviceService;
import com.yuanchu.mom.service.ReservationService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Map;
/**
*
* 资源预定新建预定表 前端控制器
*
*
* @author baomidou
* @since 2024-09-14
*/
@RestController
@RequestMapping("/reservation")
public class ReservationController {
@Autowired
private ReservationService reservationService;
@Resource
private DeviceService deviceService;
@PostMapping("/selectDeviceParameter")
public Result selectDeviceParameter(@RequestBody Map data, @RequestParam(value = "laboratoryNameIsNull", required = false) Boolean laboratoryNameIsNull,@RequestParam(value = "starttime", required = false)String starttime,@RequestParam(value = "endtime", required = false) String endtime) throws Exception {
Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
DeviceDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceDto.class);
Map map = reservationService.selectDeviceParameter(page, itemParameter, laboratoryNameIsNull,starttime,endtime);
return Result.success(map);
}
@PostMapping("/selectReservationParameterPage")
public Result selectReservationParameterPage(@RequestParam String deviceId,@RequestParam String reservationTime,@RequestParam String specificTime){
return Result.success(reservationService.selectReservationParameterPage(deviceId,reservationTime,specificTime));
}
@GetMapping("/{id}")
public Result getList(@PathVariable Integer id) {
LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Reservation::getDeviceId,id);
return Result.success(reservationService.list(lambdaQueryWrapper));
}
@PostMapping("save")
public Result save(Reservation reservation){
reservation.setCreateDate(LocalDateTime.now());
reservationService.save(reservation);
return Result.success();
}
@DeleteMapping("/delete/{ids}")
public Result deleteReservation(@PathVariable String ids) {
String[] idArray = ids.split(",");
reservationService.removeBatchByIds(Arrays.asList(idArray));
return Result.success();
}
}