| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package com.chuanghai.ihotel.controller;
- import com.chuanghai.ihotel.anno.AdminLoginCheck;
- import com.chuanghai.ihotel.anno.ParamCheck;
- import com.chuanghai.ihotel.common.exception.BizCodeEnume;
- import com.chuanghai.ihotel.common.exception.RRException;
- import com.chuanghai.ihotel.common.utils.CommonResult;
- import com.chuanghai.ihotel.controller.request.RoomLockRequest;
- import com.chuanghai.ihotel.controller.request.RoomRealtimeStatuRequest;
- import com.chuanghai.ihotel.controller.request.StatuIdRequest;
- import com.chuanghai.ihotel.controller.request.ToDirtyRequest;
- import com.chuanghai.ihotel.service.RoomRealtimeStatuService;
- import com.chuanghai.ihotel.vo.RoomRealDataStatuVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.time.LocalDate;
- import java.time.temporal.ChronoUnit;
- import java.util.List;
- import java.util.Set;
- /**
- * 实时房态
- *
- * @author codingliang
- * @email codingliang@gmail.com
- * @date 2022-07-27 10:02:04
- */
- @RestController
- @RequestMapping("roomRealTimeStatu")
- public class RoomRealtimeStatuController {
- @Autowired
- private RoomRealtimeStatuService roomRealtimeStatuService;
- /**
- * 房态信息
- * @param request 请求参数
- * @param adminToken 管理员token
- * @return
- */
- @ParamCheck
- @AdminLoginCheck
- @GetMapping("/realData")
- public CommonResult<List<RoomRealDataStatuVO>> realData(RoomRealtimeStatuRequest request,
- @RequestHeader("admin_token") String adminToken) {
- LocalDate startDay = request.getStartDay();
- LocalDate endDay = request.getEndDay();
- if (startDay.isEqual(endDay)) {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询开始时间和结束时间不能为同一天");
- }
- if (endDay.isBefore(startDay)) {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询日期错误");
- }
- if (ChronoUnit.DAYS.between(startDay, endDay) > 1) {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询日期最多间隔一天");
- }
- List<RoomRealDataStatuVO> realData = roomRealtimeStatuService.realData(request);
- return CommonResult.ok().setResult(realData);
- }
- /**
- * 脏房修改为空闲房间
- * @param adminToken 管理员token
- * @param statuIdRequest 状态id集合
- * @return
- * @apiNote 注意,只有当房间为脏房或被锁定时,房间状态才可以被置为空闲房间
- */
- @AdminLoginCheck
- @PostMapping("clean/cleanByStatuId")
- public CommonResult<String> cleanByStatuId(@RequestHeader("admin_token") String adminToken,
- @RequestBody StatuIdRequest statuIdRequest) {
- roomRealtimeStatuService.cleanByStatuId(statuIdRequest);
- return CommonResult.ok();
- }
- /**
- * 房间转为脏房
- * @param adminToken 管理员token
- * @param request 请求参数
- * @return
- */
- @AdminLoginCheck
- @ParamCheck(index = 2)
- @PutMapping("toDirty")
- public CommonResult<String> toDirtyByRoomId(@RequestHeader("admin_token") String adminToken,
- @RequestBody ToDirtyRequest request) {
- if (request.getEndDay().isBefore(request.getStartDay())) {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "时间参数错误");
- }
- if (Math.abs(ChronoUnit.DAYS.between(request.getStartDay(), request.getEndDay())) != 1) {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "时间间隔不能为1");
- }
- roomRealtimeStatuService.toDirtyByRoomId(request);
- return CommonResult.ok();
- }
- /**
- * 锁定房间
- * @param roomLockRequest 锁定参数
- * @param adminToken 管理员token
- * @return
- */
- @ParamCheck
- @AdminLoginCheck
- @PutMapping("lock")
- public CommonResult<String> lock(@RequestBody RoomLockRequest roomLockRequest, @RequestHeader("admin_token") String adminToken) {
- roomRealtimeStatuService.lock(roomLockRequest);
- return CommonResult.ok();
- }
- }
|