RoomRealtimeStatuController.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.chuanghai.ihotel.controller;
  2. import com.chuanghai.ihotel.anno.AdminLoginCheck;
  3. import com.chuanghai.ihotel.anno.ParamCheck;
  4. import com.chuanghai.ihotel.common.exception.BizCodeEnume;
  5. import com.chuanghai.ihotel.common.exception.RRException;
  6. import com.chuanghai.ihotel.common.utils.CommonResult;
  7. import com.chuanghai.ihotel.controller.request.RoomLockRequest;
  8. import com.chuanghai.ihotel.controller.request.RoomRealtimeStatuRequest;
  9. import com.chuanghai.ihotel.controller.request.StatuIdRequest;
  10. import com.chuanghai.ihotel.controller.request.ToDirtyRequest;
  11. import com.chuanghai.ihotel.service.RoomRealtimeStatuService;
  12. import com.chuanghai.ihotel.vo.RoomRealDataStatuVO;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.time.LocalDate;
  16. import java.time.temporal.ChronoUnit;
  17. import java.util.List;
  18. import java.util.Set;
  19. /**
  20. * 实时房态
  21. *
  22. * @author codingliang
  23. * @email codingliang@gmail.com
  24. * @date 2022-07-27 10:02:04
  25. */
  26. @RestController
  27. @RequestMapping("roomRealTimeStatu")
  28. public class RoomRealtimeStatuController {
  29. @Autowired
  30. private RoomRealtimeStatuService roomRealtimeStatuService;
  31. /**
  32. * 房态信息
  33. * @param request 请求参数
  34. * @param adminToken 管理员token
  35. * @return
  36. */
  37. @ParamCheck
  38. @AdminLoginCheck
  39. @GetMapping("/realData")
  40. public CommonResult<List<RoomRealDataStatuVO>> realData(RoomRealtimeStatuRequest request,
  41. @RequestHeader("admin_token") String adminToken) {
  42. LocalDate startDay = request.getStartDay();
  43. LocalDate endDay = request.getEndDay();
  44. if (startDay.isEqual(endDay)) {
  45. throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询开始时间和结束时间不能为同一天");
  46. }
  47. if (endDay.isBefore(startDay)) {
  48. throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询日期错误");
  49. }
  50. if (ChronoUnit.DAYS.between(startDay, endDay) > 1) {
  51. throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询日期最多间隔一天");
  52. }
  53. List<RoomRealDataStatuVO> realData = roomRealtimeStatuService.realData(request);
  54. return CommonResult.ok().setResult(realData);
  55. }
  56. /**
  57. * 脏房修改为空闲房间
  58. * @param adminToken 管理员token
  59. * @param statuIdRequest 状态id集合
  60. * @return
  61. * @apiNote 注意,只有当房间为脏房或被锁定时,房间状态才可以被置为空闲房间
  62. */
  63. @AdminLoginCheck
  64. @PostMapping("clean/cleanByStatuId")
  65. public CommonResult<String> cleanByStatuId(@RequestHeader("admin_token") String adminToken,
  66. @RequestBody StatuIdRequest statuIdRequest) {
  67. roomRealtimeStatuService.cleanByStatuId(statuIdRequest);
  68. return CommonResult.ok();
  69. }
  70. /**
  71. * 房间转为脏房
  72. * @param adminToken 管理员token
  73. * @param request 请求参数
  74. * @return
  75. */
  76. @AdminLoginCheck
  77. @ParamCheck(index = 2)
  78. @PutMapping("toDirty")
  79. public CommonResult<String> toDirtyByRoomId(@RequestHeader("admin_token") String adminToken,
  80. @RequestBody ToDirtyRequest request) {
  81. if (request.getEndDay().isBefore(request.getStartDay())) {
  82. throw new RRException(BizCodeEnume.PARAMETER_ERROR, "时间参数错误");
  83. }
  84. if (Math.abs(ChronoUnit.DAYS.between(request.getStartDay(), request.getEndDay())) != 1) {
  85. throw new RRException(BizCodeEnume.PARAMETER_ERROR, "时间间隔不能为1");
  86. }
  87. roomRealtimeStatuService.toDirtyByRoomId(request);
  88. return CommonResult.ok();
  89. }
  90. /**
  91. * 锁定房间
  92. * @param roomLockRequest 锁定参数
  93. * @param adminToken 管理员token
  94. * @return
  95. */
  96. @ParamCheck
  97. @AdminLoginCheck
  98. @PutMapping("lock")
  99. public CommonResult<String> lock(@RequestBody RoomLockRequest roomLockRequest, @RequestHeader("admin_token") String adminToken) {
  100. roomRealtimeStatuService.lock(roomLockRequest);
  101. return CommonResult.ok();
  102. }
  103. }