Browse Source

修改房态预定,小程序预定,添加定时取消超时订单

liu 1 year ago
parent
commit
4b2143a606

+ 1 - 1
src/main/java/com/template/api/HouseNumberStateAPI.java

@@ -18,7 +18,7 @@ public interface HouseNumberStateAPI {
 
 
     @GetMapping("/calendarList")
     @GetMapping("/calendarList")
     @ApiOperation(value = "房态管理-日历", notes = "房态管理-日历", httpMethod = "GET")
     @ApiOperation(value = "房态管理-日历", notes = "房态管理-日历", httpMethod = "GET")
-    CommonResult calendarPage(String dateTime, String keyWord, String houseType, int page, int size);
+    CommonResult calendarPage(String dateTime, String keyWord, String houseType, int page, int size,Integer houseId,Integer buildingId);
 
 
     @GetMapping("/particular")
     @GetMapping("/particular")
     @ApiOperation(value = "房态管理-房间详情", notes = "房态管理-房间详情", httpMethod = "GET")
     @ApiOperation(value = "房态管理-房间详情", notes = "房态管理-房间详情", httpMethod = "GET")

+ 4 - 2
src/main/java/com/template/controller/HouseNumberStateController.java

@@ -157,7 +157,7 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
     }
     }
 
 
     @Override
     @Override
-    public CommonResult calendarPage(String dateTime, String keyWord, String houseType, int page, int size) {
+    public CommonResult calendarPage(String dateTime, String keyWord, String houseType, int page, int size,Integer houseId,Integer buildingId) {
         if (ObjectUtils.isEmpty(page) && page <= 0) {
         if (ObjectUtils.isEmpty(page) && page <= 0) {
             page = 1;
             page = 1;
         }
         }
@@ -233,7 +233,7 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
         map.put("dateTime", list);
         map.put("dateTime", list);
 
 
 
 
-        PageUtils<CalendarPageVo> pageVo = houseNumberService.houseStateCalendarPage(keyWord, houseType, page, size);
+        PageUtils<CalendarPageVo> pageVo = houseNumberService.houseStateCalendarPage(keyWord, houseType, page, size,houseId,buildingId);
 
 
         List<CalendarPageVo> listVo = pageVo.getList();
         List<CalendarPageVo> listVo = pageVo.getList();
 
 
@@ -761,6 +761,8 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
             houseOrder.setPrice(priceVo.getPrice());
             houseOrder.setPrice(priceVo.getPrice());
 //        订单渠道
 //        订单渠道
             houseOrder.setOrderChannel("2");
             houseOrder.setOrderChannel("2");
+//            超时时间
+            houseOrder.setTimeOut(reserveDto.getTimeOut());
 
 
 //        添加房态表
 //        添加房态表
             HouseNumberState houseNumberState = new HouseNumberState();
             HouseNumberState houseNumberState = new HouseNumberState();

+ 133 - 71
src/main/java/com/template/controller/HouseOrderController.java

@@ -180,7 +180,6 @@ public class HouseOrderController implements HouseOrderAPI {
         }
         }
 
 
 
 
-
 //        if (house.getNumber() < Func.parseInt(establishOrderDto.getHouseOrderNumber())) {
 //        if (house.getNumber() < Func.parseInt(establishOrderDto.getHouseOrderNumber())) {
 //            return CommonResult.fail("超出限定房间数量");
 //            return CommonResult.fail("超出限定房间数量");
 //        }
 //        }
@@ -300,6 +299,10 @@ public class HouseOrderController implements HouseOrderAPI {
         houseOrder.setReserveLiveTime(establishOrderDto.getReserveLiveTime());
         houseOrder.setReserveLiveTime(establishOrderDto.getReserveLiveTime());
 //        预定离开时间
 //        预定离开时间
         houseOrder.setReserveLeaveTime(establishOrderDto.getReserveLeaveTime());
         houseOrder.setReserveLeaveTime(establishOrderDto.getReserveLeaveTime());
+//        超时时间
+        String timeOut = now.plusMinutes(15).format(dateTimeFormatter1);
+        houseOrder.setTimeOut(timeOut);
+
 //    单价   全日房  价格单价=总价/房间数/天数
 //    单价   全日房  价格单价=总价/房间数/天数
 //       钟点房  价格单价=总价/房间数
 //       钟点房  价格单价=总价/房间数
         Integer roomType = house.getRoomType();
         Integer roomType = house.getRoomType();
@@ -447,6 +450,15 @@ public class HouseOrderController implements HouseOrderAPI {
         if (ObjectUtils.isEmpty(houseOrderId)) {
         if (ObjectUtils.isEmpty(houseOrderId)) {
             return CommonResult.fail();
             return CommonResult.fail();
         }
         }
+        Users users = usersService.getById(userId);
+        if (ObjectUtils.isEmpty(users)) {
+            return CommonResult.fail("用户不存在");
+        }
+        String department = users.getDepartment();
+        if (!"4".equals(department)) {
+            return CommonResult.fail("请前往前台办理入住");
+        }
+
         HouseOrder houseOrder = houseOrderService.getById(houseOrderId);
         HouseOrder houseOrder = houseOrderService.getById(houseOrderId);
 //      预定人就是入住人
 //      预定人就是入住人
         String reserveName = houseOrder.getReserveName();
         String reserveName = houseOrder.getReserveName();
@@ -463,7 +475,11 @@ public class HouseOrderController implements HouseOrderAPI {
 
 
 //        需先获取所属房间号的门锁型号
 //        需先获取所属房间号的门锁型号
         String houseNumberId = houseOrder.getHouseNumberId();
         String houseNumberId = houseOrder.getHouseNumberId();
-        List<HouseLock> houseLocks = houseLockService.getHouseNumberId(houseNumberId);
+        HouseLock houseLock = houseLockService.getHouseNumberId(houseNumberId);
+//        如果没有房锁则需要去前台
+        if (ObjectUtils.isEmpty(houseLock)) {
+            return CommonResult.fail("请前往前台办理入住");
+        }
 
 
         try {
         try {
             long start = date.getTime();
             long start = date.getTime();
@@ -471,65 +487,62 @@ public class HouseOrderController implements HouseOrderAPI {
 
 
 //            设备id
 //            设备id
             //      下发门锁密码
             //      下发门锁密码
-            for (int i = 0; i < houseLocks.size(); i++) {
-                HouseLock houseLock = houseLocks.get(i);
 //                设备id
 //                设备id
-                String equipmentType = houseLock.getEquipmentType();
-                PasswordDto pr = new PasswordDto();
-                pr.setLuid(equipmentType);
-                pr.setStartTime(String.valueOf(start));
-                pr.setEndTime(String.valueOf(end));
-                pr.setHouseNumberId(houseNumberId);
-                pr.setOrderNumber(houseOrder.getOrderNumber());
-                Unlocking unlocking = passwordIssController.addPassword(pr);
-
-                String passWord = unlocking.getPassWord();
-                //添加
-                unlockingService.save(unlocking);
+            String equipmentType = houseLock.getEquipmentType();
+            PasswordDto pr = new PasswordDto();
+            pr.setLuid(equipmentType);
+            pr.setStartTime(String.valueOf(start));
+            pr.setEndTime(String.valueOf(end));
+            pr.setHouseNumberId(houseNumberId);
+            pr.setOrderNumber(houseOrder.getOrderNumber());
+            Unlocking unlocking = passwordIssController.addPassword(pr);
+
+            String passWord = unlocking.getPassWord();
+            //添加
+            unlockingService.save(unlocking);
 
 
 //                String password = "测试";
 //                String password = "测试";
-                Integer houseNumberId1 = houseLock.getHouseNumberId();
-                HouseNumber houseNumber = houseNumberService.getById(houseNumberId1);
+            Integer houseNumberId1 = houseLock.getHouseNumberId();
+            HouseNumber houseNumber = houseNumberService.getById(houseNumberId1);
 //                房间号
 //                房间号
-                String roomNumber = houseNumber.getRoomNumber();
+            String roomNumber = houseNumber.getRoomNumber();
 //              获取工号
 //              获取工号
-                Users users = usersService.getById(userId);
-                String cardNumber = users.getCardNumber();
-                if (ObjectUtils.isEmpty(cardNumber)) {
-                    return CommonResult.fail("无微校卡号");
-                }
-                log.info("微校卡号【{}】", cardNumber);
-                ArrayList<String> strings = new ArrayList<>();
-                strings.add(cardNumber);
-                //        获取手机号,酒店名字
-                List<ApartmentSetting> list = apartmentSettingService.list(new LambdaQueryWrapper<>());
-                ApartmentSetting apartmentSetting = list.get(0);
-                String phoneNumber = apartmentSetting.getPhoneNumbr();
-                String name = apartmentSetting.getName();
-                weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + roomNumber + ",密码是:" + passWord + "离店时间为:" + reserveLeaveTime + ",欢迎您入住"+name+",我们全体员工很荣幸能为您服务,如有任何需要请致电:"+phoneNumber+",期待为你服务。祝你生活愉快!", null);
+            String cardNumber = users.getCardNumber();
+            if (ObjectUtils.isEmpty(cardNumber)) {
+                return CommonResult.fail("无微校卡号");
+            }
+            log.info("微校卡号【{}】", cardNumber);
+            ArrayList<String> strings = new ArrayList<>();
+            strings.add(cardNumber);
+            //        获取手机号,酒店名字
+            List<ApartmentSetting> list2 = apartmentSettingService.list(new LambdaQueryWrapper<>());
+            ApartmentSetting apartmentSetting = list2.get(0);
+            String phoneNumber = apartmentSetting.getPhoneNumbr();
+            String name = apartmentSetting.getName();
+            weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + roomNumber + ",密码是:" + passWord + "离店时间为:" + reserveLeaveTime + ",欢迎您入住" + name + ",我们全体员工很荣幸能为您服务,如有任何需要请致电:" + phoneNumber + ",期待为你服务。祝你生活愉快!", null);
 //              添加锁的操作记录
 //              添加锁的操作记录
-                OperatingRecord operatingRecord = new OperatingRecord();
-                operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
-                operatingRecord.setHouseNumberId(houseNumber.getId());
-                operatingRecord.setOperatorName(users.getUserName());
-                operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
-                operatingRecord.setContent("姓名:" + houseOrder.getLiveName());
-                operatingRecord.setType("添加密码钥匙");
-                operatingRecordService.save(operatingRecord);
+            OperatingRecord operatingRecord = new OperatingRecord();
+            operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
+            operatingRecord.setHouseNumberId(houseNumber.getId());
+            operatingRecord.setOperatorName(users.getUserName());
+            operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
+            operatingRecord.setContent("姓名:" + houseOrder.getLiveName());
+            operatingRecord.setType("添加密码钥匙");
+            operatingRecordService.save(operatingRecord);
 
 
-                HouseNumber number = houseNumberService.getById(houseLock.getHouseNumberId());
+            HouseNumber number = houseNumberService.getById(houseLock.getHouseNumberId());
 //                开电
 //                开电
 //                Boolean aBoolean = electricEquipmentService.openMeterControl(number.getElectricEquipmentId());
 //                Boolean aBoolean = electricEquipmentService.openMeterControl(number.getElectricEquipmentId());
 //                if (!aBoolean) {
 //                if (!aBoolean) {
 //                    return CommonResult.fail("开电失败");
 //                    return CommonResult.fail("开电失败");
 //                }
 //                }
 //                设置开电状态
 //                设置开电状态
-                number.setElectricType("1");
+            number.setElectricType("1");
 //                房间号设置成脏房需要退房后设置
 //                房间号设置成脏房需要退房后设置
 //                number.setHouseStatus(2);
 //                number.setHouseStatus(2);
-                houseNumberService.updateById(number);
+            houseNumberService.updateById(number);
+
 
 
-            }
 //                修改订单状态
 //                修改订单状态
 //                订单状态 1.待支付,2.已支付,3.待入住,4.已入住,5.待结账,6.退款中,7.已退款,8.已退房,9.已取消,超时
 //                订单状态 1.待支付,2.已支付,3.待入住,4.已入住,5.待结账,6.退款中,7.已退款,8.已退房,9.已取消,超时
             houseOrder.setOrderStatus("4");
             houseOrder.setOrderStatus("4");
@@ -871,10 +884,10 @@ public class HouseOrderController implements HouseOrderAPI {
 
 
 
 
             houseOrder.setKeyType(lockStatus);
             houseOrder.setKeyType(lockStatus);
-            if (5==lockStatus) {
+            if (5 == lockStatus) {
 //                默认未归还
 //                默认未归还
                 houseOrder.setGiveBack(2);
                 houseOrder.setGiveBack(2);
-            }else {
+            } else {
                 //        获取设备id
                 //        获取设备id
                 LambdaQueryWrapper<HouseLock> wrapperHl = new LambdaQueryWrapper<>();
                 LambdaQueryWrapper<HouseLock> wrapperHl = new LambdaQueryWrapper<>();
                 wrapperHl.eq(HouseLock::getHouseNumberId, houseNumberId);
                 wrapperHl.eq(HouseLock::getHouseNumberId, houseNumberId);
@@ -884,7 +897,7 @@ public class HouseOrderController implements HouseOrderAPI {
                 }
                 }
                 String equipmentState = houseLock.getEquipmentType();
                 String equipmentState = houseLock.getEquipmentType();
 
 
-                if (1==lockStatus) {
+                if (1 == lockStatus) {
                     PasswordDto pr = new PasswordDto();
                     PasswordDto pr = new PasswordDto();
                     pr.setLuid(equipmentState);
                     pr.setLuid(equipmentState);
                     pr.setStartTime(start);
                     pr.setStartTime(start);
@@ -901,7 +914,7 @@ public class HouseOrderController implements HouseOrderAPI {
 //                ArrayList<String> strings = new ArrayList<>();
 //                ArrayList<String> strings = new ArrayList<>();
                     // strings.add(cardNumber);
                     // strings.add(cardNumber);
                     // weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + roomNumber + ",密码是:" + passWord + "离店时间为:" + liveTime + ",欢迎您入住张玉玲酒店,我们全体员工很荣幸能为您服务,如有任何需要请致电张玉玲,期待为你服务。祝你生活愉快!", null);
                     // weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + roomNumber + ",密码是:" + passWord + "离店时间为:" + liveTime + ",欢迎您入住张玉玲酒店,我们全体员工很荣幸能为您服务,如有任何需要请致电张玉玲,期待为你服务。祝你生活愉快!", null);
-                } else if (2==lockStatus) {
+                } else if (2 == lockStatus) {
                     CardInfoDto cid = new CardInfoDto();
                     CardInfoDto cid = new CardInfoDto();
                     cid.setCard(idCardInformation);
                     cid.setCard(idCardInformation);
                     cid.setLuid(equipmentState);
                     cid.setLuid(equipmentState);
@@ -918,7 +931,7 @@ public class HouseOrderController implements HouseOrderAPI {
                     //                默认未归还
                     //                默认未归还
                     houseOrder.setGiveBack(2);
                     houseOrder.setGiveBack(2);
 
 
-                } else if (3==lockStatus) {
+                } else if (3 == lockStatus) {
                     FingerprintDataDto fd = new FingerprintDataDto();
                     FingerprintDataDto fd = new FingerprintDataDto();
                     fd.setLuid(equipmentState);
                     fd.setLuid(equipmentState);
                     fd.setHouseNumberId(houseNumberId);
                     fd.setHouseNumberId(houseNumberId);
@@ -930,7 +943,7 @@ public class HouseOrderController implements HouseOrderAPI {
                     unlockingService.save(unlocking);
                     unlockingService.save(unlocking);
                     //                添加锁的操作记录类型
                     //                添加锁的操作记录类型
                     operatingRecord.setType("添加指纹钥匙");
                     operatingRecord.setType("添加指纹钥匙");
-                }else if (4==lockStatus){
+                } else if (4 == lockStatus) {
                     CardInfoDto cid = new CardInfoDto();
                     CardInfoDto cid = new CardInfoDto();
                     cid.setCard(idCardInformation);
                     cid.setCard(idCardInformation);
                     cid.setLuid(equipmentState);
                     cid.setLuid(equipmentState);
@@ -2280,6 +2293,15 @@ public class HouseOrderController implements HouseOrderAPI {
         if (ObjectUtils.isEmpty(houseOrder)) {
         if (ObjectUtils.isEmpty(houseOrder)) {
             return CommonResult.fail("无该订单");
             return CommonResult.fail("无该订单");
         }
         }
+
+//        判断是是否是房卡和钥匙开门,是的话则需要去前台办理
+        Integer keyType = houseOrder.getKeyType();
+        if (keyType == 2) {
+            return CommonResult.fail("未归还房卡,请前往前台办理退房");
+        } else if (keyType == 5) {
+            return CommonResult.fail("未归还钥匙,请前往前台办理退房");
+        }
+
         try {
         try {
             houseOrder.setOrderStatus("8");
             houseOrder.setOrderStatus("8");
 
 
@@ -2715,7 +2737,7 @@ public class HouseOrderController implements HouseOrderAPI {
                         rpr.setIsSuccess(2);
                         rpr.setIsSuccess(2);
                         rpr.setRemark(rpr.getRemark() + "|微信支付退款失败:" + tradeState + "--" + TimeExchange.getTime());
                         rpr.setRemark(rpr.getRemark() + "|微信支付退款失败:" + tradeState + "--" + TimeExchange.getTime());
 
 
-                    }else{
+                    } else {
                         rpr = new RefundRecord();
                         rpr = new RefundRecord();
                         rpr.setHouseOrderId(rr.getId());
                         rpr.setHouseOrderId(rr.getId());
                         rpr.setUserId(Integer.valueOf(rr.getReserveUserId()));
                         rpr.setUserId(Integer.valueOf(rr.getReserveUserId()));
@@ -2874,20 +2896,20 @@ public class HouseOrderController implements HouseOrderAPI {
             houseOrderService.updateById(one);
             houseOrderService.updateById(one);
             return CommonResult.ok(result);
             return CommonResult.ok(result);
         }
         }
-        if(reFundRecord.getIsSuccess()==1){
-            result.put("code","200");
-            result.put("message","退款已完成");
+        if (reFundRecord.getIsSuccess() == 1) {
+            result.put("code", "200");
+            result.put("message", "退款已完成");
             one.setOrderStatus("7");
             one.setOrderStatus("7");
             one.setRefundTime(new Date());
             one.setRefundTime(new Date());
             houseOrderService.updateById(one);
             houseOrderService.updateById(one);
             return CommonResult.ok(result);
             return CommonResult.ok(result);
         }
         }
-        if(reFundRecord.getIsSuccess()==2){
+        if (reFundRecord.getIsSuccess() == 2) {
             one.setOrderStatus("10");
             one.setOrderStatus("10");
             one.setRefundTime(new Date());
             one.setRefundTime(new Date());
             houseOrderService.updateById(one);
             houseOrderService.updateById(one);
-            result.put("code","1002");
-            result.put("message","退款失败,原因:"+reFundRecord.getRemark());
+            result.put("code", "1002");
+            result.put("message", "退款失败,原因:" + reFundRecord.getRemark());
             //失败不更新订房单
             //失败不更新订房单
             return CommonResult.ok(result);
             return CommonResult.ok(result);
         }
         }
@@ -3065,7 +3087,7 @@ public class HouseOrderController implements HouseOrderAPI {
         JSONObject jsonObject1 = JSONObject.parseObject(tokenResponse);
         JSONObject jsonObject1 = JSONObject.parseObject(tokenResponse);
         String openId = (String) jsonObject1.getString("openid");
         String openId = (String) jsonObject1.getString("openid");
         if (openId == null || openId == "") {
         if (openId == null || openId == "") {
-            return CommonResult.fail("openid查询失败:"+tokenResponse);
+            return CommonResult.fail("openid查询失败:" + tokenResponse);
         }
         }
         return CommonResult.ok(openId);
         return CommonResult.ok(openId);
     }
     }
@@ -3096,7 +3118,7 @@ public class HouseOrderController implements HouseOrderAPI {
     /**
     /**
      * 每天12点查询一次到时间没有点退房的订单,并自动退房
      * 每天12点查询一次到时间没有点退房的订单,并自动退房
      */
      */
-    @Scheduled(cron = "0 0 12 * * ? ")
+    @Scheduled(cron = "0 1 0/1 * * ? ")
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void getOrder() {
     public void getOrder() {
         LambdaQueryWrapper<HouseOrder> wrapperHo = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<HouseOrder> wrapperHo = new LambdaQueryWrapper<>();
@@ -3219,32 +3241,32 @@ public class HouseOrderController implements HouseOrderAPI {
             for (HouseOrder ownerClass : ownerClasses) {
             for (HouseOrder ownerClass : ownerClasses) {
 //                金额
 //                金额
                 BigDecimal electricCost = ownerClass.getElectricCost();
                 BigDecimal electricCost = ownerClass.getElectricCost();
-                electricCostTotal=electricCostTotal.add(electricCost);
+                electricCostTotal = electricCostTotal.add(electricCost);
 //                能耗
 //                能耗
                 BigDecimal electricConsume = ownerClass.getElectricConsume();
                 BigDecimal electricConsume = ownerClass.getElectricConsume();
-                electricTotal=electricTotal.add(electricConsume);
+                electricTotal = electricTotal.add(electricConsume);
 
 
                 BigDecimal waterCost = ownerClass.getWaterCost();
                 BigDecimal waterCost = ownerClass.getWaterCost();
-                waterCostTotal=waterCostTotal.add(waterCost);
+                waterCostTotal = waterCostTotal.add(waterCost);
 
 
                 BigDecimal waterConsume = ownerClass.getWaterConsume();
                 BigDecimal waterConsume = ownerClass.getWaterConsume();
-                waterTotal=waterTotal.add(waterConsume);
+                waterTotal = waterTotal.add(waterConsume);
 
 
             }
             }
 
 
 //            需支付金额
 //            需支付金额
             BigDecimal payPrice = new BigDecimal(0);
             BigDecimal payPrice = new BigDecimal(0);
 //            总额度大于免费额度
 //            总额度大于免费额度
-            if (waterTotal.subtract(water).doubleValue()>0) {
-                BigDecimal totalWaterPrice=(waterTotal.subtract(water)).multiply(waterPrice);
-                payPrice=payPrice.add(totalWaterPrice);
+            if (waterTotal.subtract(water).doubleValue() > 0) {
+                BigDecimal totalWaterPrice = (waterTotal.subtract(water)).multiply(waterPrice);
+                payPrice = payPrice.add(totalWaterPrice);
             }
             }
 
 
-            if (electricTotal.subtract(electric).doubleValue()>0) {
-                BigDecimal totalElectricPrice=(electricTotal.subtract(electric)).multiply(electricPrice);
-                payPrice=payPrice.add(totalElectricPrice);
+            if (electricTotal.subtract(electric).doubleValue() > 0) {
+                BigDecimal totalElectricPrice = (electricTotal.subtract(electric)).multiply(electricPrice);
+                payPrice = payPrice.add(totalElectricPrice);
             }
             }
-            if (payPrice.doubleValue()>0) {
+            if (payPrice.doubleValue() > 0) {
                 HouseOrder houseOrder = new HouseOrder();
                 HouseOrder houseOrder = new HouseOrder();
                 //        订单号
                 //        订单号
 //                String orderNumber = UUID.randomUUID().toString();
 //                String orderNumber = UUID.randomUUID().toString();
@@ -3287,9 +3309,49 @@ public class HouseOrderController implements HouseOrderAPI {
             houseOrderService.saveBatch(houseOrders);
             houseOrderService.saveBatch(houseOrders);
 
 
 
 
+        }
+
+
+    }
+
+
+    //    到时间超时还未付款则取消
+    @Scheduled(cron = "0 0/5 * * * ? ")
+    public void getTimeOut() {
+//        当前时间
+        LocalDateTime now = LocalDateTime.now();
+        LambdaQueryWrapper<HouseOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(HouseOrder::getOrderStatus, 1)
+                .le(HouseOrder::getTimeOut, now);
+        List<HouseOrder> list = houseOrderService.list(wrapper);
+
+        ArrayList<HouseOrder> houseOrders = new ArrayList<>();
+        ArrayList<HouseNumberState> houseNumberStates = new ArrayList<>();
+        for (HouseOrder houseOrder : list) {
+            String orderNumber = houseOrder.getOrderNumber();
+            String houseNumberId = houseOrder.getHouseNumberId();
 
 
+            LambdaQueryWrapper<HouseNumberState> wrapperHns = new LambdaQueryWrapper<>();
+            wrapperHns.eq(HouseNumberState::getHouseNumberId, houseNumberId)
+                    .eq(HouseNumberState::getOrderNumber, orderNumber);
+            HouseNumberState houseNumberState = houseNumberStateService.getOne(wrapperHns);
+            if (ObjectUtils.isNotEmpty(houseNumberState)) {
+               houseNumberStateService.removeById(houseNumberState.getId());
+            }
+
+            // 修改订单状态
+            houseOrder.setOrderStatus("9");
+            //  设置取消时间
+            houseOrder.setCancelTime(new Date());
+
+            houseOrders.add(houseOrder);
         }
         }
 
 
+        if (houseOrders.size()>0) {
+            houseOrderService.updateBatchById(houseOrders);
+        }
+
+
 
 
     }
     }
 
 

+ 2 - 4
src/main/java/com/template/mapper/HouseLockMapper.java

@@ -1,11 +1,9 @@
 package com.template.mapper;
 package com.template.mapper;
 
 
-import com.template.model.pojo.HouseLock;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.pojo.HouseLock;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
-import java.util.List;
-
 /**
 /**
  * <p>
  * <p>
  *  Mapper 接口
  *  Mapper 接口
@@ -17,5 +15,5 @@ import java.util.List;
 @Mapper
 @Mapper
 public interface HouseLockMapper extends BaseMapper<HouseLock> {
 public interface HouseLockMapper extends BaseMapper<HouseLock> {
 
 
-    List<HouseLock> getHouseNumberId(String houseNumberId);
+    HouseLock getHouseNumberId(String houseNumberId);
 }
 }

+ 1 - 1
src/main/java/com/template/mapper/HouseNumberMapper.java

@@ -25,7 +25,7 @@ public interface HouseNumberMapper extends BaseMapper<HouseNumber> {
 
 
     List<HouseStateVo> houseStatePage(@Param("keyWord") String keyWord, @Param("houseType") String houseType, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end,@Param("houseId") Integer houseId,@Param("buildingId") Integer buildingId,@Param("status") Integer status);
     List<HouseStateVo> houseStatePage(@Param("keyWord") String keyWord, @Param("houseType") String houseType, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end,@Param("houseId") Integer houseId,@Param("buildingId") Integer buildingId,@Param("status") Integer status);
 
 
-    IPage<CalendarPageVo> houseStateCalendarPage(Page<CalendarPageVo> pageVo, @Param("keyWord") String keyWord, @Param("houseType") String houseType);
+    IPage<CalendarPageVo> houseStateCalendarPage(Page<CalendarPageVo> pageVo, @Param("keyWord") String keyWord, @Param("houseType") String houseType,@Param("houseId") Integer houseId,@Param("buildingId")Integer buildingId);
 
 
 
 
     List<houseLockListVo> houseLockListDto(@Param("roomNumber") String roomNumber, @Param("houseIds") String houseIds);
     List<houseLockListVo> houseLockListDto(@Param("roomNumber") String roomNumber, @Param("houseIds") String houseIds);

+ 3 - 0
src/main/java/com/template/model/dto/ReserveDto.java

@@ -26,4 +26,7 @@ public class ReserveDto {
 //  工号/学号
 //  工号/学号
     private String cardNumber;
     private String cardNumber;
     private int adminId;
     private int adminId;
+
+    private String timeOut;
+
 }
 }

+ 3 - 0
src/main/java/com/template/model/pojo/HouseOrder.java

@@ -124,6 +124,9 @@ public class HouseOrder implements Serializable {
     @ApiModelProperty(value = "是否归还 1:已归还,2:未归还")
     @ApiModelProperty(value = "是否归还 1:已归还,2:未归还")
     private Integer giveBack;
     private Integer giveBack;
 
 
+    @ApiModelProperty(value = "超时时间")
+    private String timeOut;
+
     @ApiModelProperty(value = "创建时间")
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
     @TableField(fill = FieldFill.INSERT)
     private String createTime;
     private String createTime;

+ 1 - 1
src/main/java/com/template/model/pojo/Users.java

@@ -29,7 +29,7 @@ public class Users implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
     private Integer id;
 
 
-    @ApiModelProperty(value = "部门")
+    @ApiModelProperty(value = "身份类型,0为其他,1为学生,4为教职工,5为校友,6为访客应用身份,7为临时人员")
     private String department;
     private String department;
 
 
     @ApiModelProperty(value = "用户名")
     @ApiModelProperty(value = "用户名")

+ 3 - 0
src/main/java/com/template/model/vo/CalendarPageVo.java

@@ -39,4 +39,7 @@ public class CalendarPageVo {
 
 
     //    营业时间
     //    营业时间
     private String receivingTime;
     private String receivingTime;
+
+    private String building;
+    private String element;
 }
 }

+ 3 - 2
src/main/java/com/template/model/vo/HouseStateVo.java

@@ -2,8 +2,6 @@ package com.template.model.vo;
 
 
 import lombok.Data;
 import lombok.Data;
 
 
-import java.math.BigDecimal;
-
 @Data
 @Data
 public class HouseStateVo {
 public class HouseStateVo {
 //    房态id
 //    房态id
@@ -39,4 +37,7 @@ public class HouseStateVo {
 
 
 //    房间类型(1:全日房,2:钟点房)
 //    房间类型(1:全日房,2:钟点房)
     private Integer roomType;
     private Integer roomType;
+
+    private String building;
+    private String element;
 }
 }

+ 2 - 4
src/main/java/com/template/services/HouseLockService.java

@@ -1,9 +1,7 @@
 package com.template.services;
 package com.template.services;
 
 
-import com.template.model.pojo.HouseLock;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
-
-import java.util.List;
+import com.template.model.pojo.HouseLock;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -15,6 +13,6 @@ import java.util.List;
  */
  */
 public interface HouseLockService extends IService<HouseLock> {
 public interface HouseLockService extends IService<HouseLock> {
 
 
-    List<HouseLock> getHouseNumberId(String houseNumberId);
+    HouseLock getHouseNumberId(String houseNumberId);
 
 
 }
 }

+ 1 - 1
src/main/java/com/template/services/HouseNumberService.java

@@ -21,7 +21,7 @@ public interface HouseNumberService extends IService<HouseNumber> {
 
 
     List<HouseStateVo> houseStatePage(String keyWord, String houseType, LocalDateTime start,LocalDateTime end,Integer houseId,Integer buildingId,Integer status);
     List<HouseStateVo> houseStatePage(String keyWord, String houseType, LocalDateTime start,LocalDateTime end,Integer houseId,Integer buildingId,Integer status);
 
 
-    PageUtils<CalendarPageVo> houseStateCalendarPage(String keyWord, String houseType, int page, int size);
+    PageUtils<CalendarPageVo> houseStateCalendarPage(String keyWord, String houseType, int page, int size,Integer houseId,Integer buildingId);
 
 
     List<houseLockListVo>  houseLockPage(String roomNumber, String houseIds);
     List<houseLockListVo>  houseLockPage(String roomNumber, String houseIds);
 
 

+ 3 - 5
src/main/java/com/template/services/impl/HouseLockServiceImpl.java

@@ -1,14 +1,12 @@
 package com.template.services.impl;
 package com.template.services.impl;
 
 
-import com.template.model.pojo.HouseLock;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.template.mapper.HouseLockMapper;
 import com.template.mapper.HouseLockMapper;
+import com.template.model.pojo.HouseLock;
 import com.template.services.HouseLockService;
 import com.template.services.HouseLockService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.util.List;
-
 /**
 /**
  * <p>
  * <p>
  *  服务实现类
  *  服务实现类
@@ -23,7 +21,7 @@ public class HouseLockServiceImpl extends ServiceImpl<HouseLockMapper, HouseLock
     HouseLockMapper houseLockMapper;
     HouseLockMapper houseLockMapper;
 
 
     @Override
     @Override
-    public List<HouseLock> getHouseNumberId(String houseNumberId) {
+    public HouseLock getHouseNumberId(String houseNumberId) {
         return houseLockMapper.getHouseNumberId(houseNumberId);
         return houseLockMapper.getHouseNumberId(houseNumberId);
     }
     }
 }
 }

+ 2 - 2
src/main/java/com/template/services/impl/HouseNumberServiceImpl.java

@@ -38,9 +38,9 @@ public class HouseNumberServiceImpl extends ServiceImpl<HouseNumberMapper, House
     }
     }
 
 
     @Override
     @Override
-    public PageUtils<CalendarPageVo> houseStateCalendarPage(String keyWord, String houseType, int page, int size) {
+    public PageUtils<CalendarPageVo> houseStateCalendarPage(String keyWord, String houseType, int page, int size,Integer houseId,Integer buildingId) {
         Page<CalendarPageVo> pageVo = new Page<>(page,size);
         Page<CalendarPageVo> pageVo = new Page<>(page,size);
-        IPage<CalendarPageVo> result=houseNumberMapper.houseStateCalendarPage(pageVo,keyWord,houseType);
+        IPage<CalendarPageVo> result=houseNumberMapper.houseStateCalendarPage(pageVo,keyWord,houseType,houseId,buildingId);
         return new PageUtils(result);
         return new PageUtils(result);
     }
     }
 
 

+ 1 - 1
src/main/resources/mapper/template/HouseLockMapper.xml

@@ -8,7 +8,7 @@
         FROM
         FROM
             `house_lock`
             `house_lock`
         WHERE
         WHERE
-            FIND_IN_SET( house_number_id, #{houseNumberId})
+            house_number_id = #{houseNumberId}
           AND deleted =0
           AND deleted =0
     </select>
     </select>
 </mapper>
 </mapper>

+ 13 - 1
src/main/resources/mapper/template/HouseNumberMapper.xml

@@ -76,11 +76,15 @@
         -- ho.reserve_leave_time as reserveLeaveTime,
         -- ho.reserve_leave_time as reserveLeaveTime,
         h.room_price as price,
         h.room_price as price,
         h.room_live_time as roomLiveTime,
         h.room_live_time as roomLiveTime,
-        h.receiving_time as receivingTime
+        h.receiving_time as receivingTime,
+        b.building,
+        b.element
         FROM
         FROM
         `house_number` hn
         `house_number` hn
         LEFT JOIN house h ON h.id = hn.house_id
         LEFT JOIN house h ON h.id = hn.house_id
         AND h.deleted = 0
         AND h.deleted = 0
+        LEFT JOIN building b ON b.id = hn.building_id
+        AND b.deleted = 0
         -- LEFT JOIN house_number_state hns ON hn.id = hns.house_number_id
         -- LEFT JOIN house_number_state hns ON hn.id = hns.house_number_id
         -- AND hns.deleted = 0
         -- AND hns.deleted = 0
 
 
@@ -96,6 +100,14 @@
                 AND hn.room_number LIKE '%' #{keyWord} '%'
                 AND hn.room_number LIKE '%' #{keyWord} '%'
             </if>
             </if>
 
 
+            <if test="houseId != null and houseId != ''">
+                AND hn.house_id = #{houseId}
+            </if>
+
+            <if test="buildingId != null and buildingId != ''">
+                AND hn.building_id = #{buildingId}
+            </if>
+
         </where>
         </where>
         ORDER BY
         ORDER BY
         hn.room_number
         hn.room_number