ソースを参照

用户订单详情改动

wangzhengliang 3 年 前
コミット
e51199b11d

+ 0 - 13
src/main/java/com/chuanghai/ihotel/component/DoorLockComponent.java

@@ -81,17 +81,4 @@ public class DoorLockComponent {
             return sign;
         }
     }
-
-    public static void main(String[] args) throws JsonProcessingException {
-        ObjectMapper objectMapper = new ObjectMapper();
-        String json = "{\"result\":1,\"message\":\"successful operation\",\"data\":{\"id\":\"b03ae22669374825a3a00e0f30a49d66\",\"name\":\"202207291607006501552928665994690562\",\"usertype\":4,\"lockId\":\"bb725cba35484034b08f4d6e3f90b584\",\"temporaryPassword\":\"0C0F326CAA87E4C6A942246ADE1F4161\",\"starttime\":1659420000000,\"endtime\":1659499200000,\"enable\":1,\"taskId\":null,\"status\":0,\"password\":\"270969\"}}";
-        JsonNode jsonNode = objectMapper.readTree(json);
-
-        System.out.println(jsonNode.get("result").asText());
-        JsonNode dataNode = jsonNode.get("data");
-        System.out.println(dataNode.toString());
-
-        DoorLockAddPasswordDataDTO dto = objectMapper.readValue(dataNode.toString(), DoorLockAddPasswordDataDTO.class);
-        System.out.println(dto);
-    }
 }

+ 2 - 0
src/main/java/com/chuanghai/ihotel/component/WaterElectricComponent.java

@@ -148,7 +148,9 @@ public class WaterElectricComponent {
             headers.add("token", token);
         }
         HttpEntity<MultiValueMap<String, String>> formEntity = new HttpEntity<>(requestMap, headers);
+        log.info("=======开始请求数据=======");
         ResponseEntity<String> responseEntity = restTemplate.postForEntity(waterElectricConfig.getServiceHost() + uri, formEntity, String.class);
+        log.info("=======请求成功===========");
         String body = responseEntity.getBody();
 
         JsonNode jsonNode = mapper.readTree(body);

+ 1 - 1
src/main/java/com/chuanghai/ihotel/controller/HotelOrderController.java

@@ -147,7 +147,7 @@ public class HotelOrderController {
     }
 
     /**
-     * 订单详情 【管理端】
+     * 订单详情 【用户端】
      * @param userToken 用户token
      * @param orderId 订单id
      * @return

+ 2 - 0
src/main/java/com/chuanghai/ihotel/service/RoomDoorLockDataService.java

@@ -17,6 +17,8 @@ public interface RoomDoorLockDataService extends IService<RoomDoorLockDataEntity
 
     PageUtils queryPage(PageParam pageParam);
 
+    RoomDoorLockDataEntity queryByOrderId(Long orderId);
+
     /**
      * 生成密码
      * @param order

+ 16 - 1
src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderServiceImpl.java

@@ -24,6 +24,7 @@ import com.chuanghai.ihotel.dto.LockRoomDTO;
 import com.chuanghai.ihotel.entity.HotelOrderBillEntity;
 import com.chuanghai.ihotel.entity.HotelOrderEntity;
 import com.chuanghai.ihotel.entity.HotelUserEntity;
+import com.chuanghai.ihotel.entity.RoomDoorLockDataEntity;
 import com.chuanghai.ihotel.entity.RoomEntity;
 import com.chuanghai.ihotel.entity.RoomTypeEntity;
 import com.chuanghai.ihotel.entity.SystemSettingEntity;
@@ -80,6 +81,8 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
     @Autowired
     private RoomDoorLockDataService doorLockService;
     @Autowired
+    private RoomDoorLockDataService roomDoorLockDataService;
+    @Autowired
     private PayComponent payComponent;
     @Autowired
     private JXNXSPayConfig jxnxsPayConfig;
@@ -398,7 +401,8 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
         detailVO.setRoomTypeDiscountPrice(roomType.getDiscountPrice());
 
         // 订单状态为已入住之后,查询水电等相关信息
-        if (Integer.valueOf(orderEntity.getOrderStatu()).intValue() >= Integer.valueOf(OrderStatuEnum.HOLD_ON.getCode()).intValue()) {
+        String orderStatu = orderEntity.getOrderStatu();
+        if (Integer.valueOf(orderStatu).intValue() >= Integer.valueOf(OrderStatuEnum.HOLD_ON.getCode()).intValue()) {
             HotelOrderBillEntity orderBill = orderBillService.findByOrderId(orderId);
             if (orderBill == null) {
                 throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "用户订单详情-订单状态错误");
@@ -406,6 +410,17 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
             BeanUtils.copyProperties(orderBill, detailVO);
         }
 
+        // 订单状态为已入住,查询密码锁等相关信息
+        if (OrderStatuEnum.HOLD_ON.getCode().equals(orderStatu)) {
+            RoomDoorLockDataEntity lockData = roomDoorLockDataService.queryByOrderId(orderId);
+            if (lockData == null) {
+                throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "用户订单详情-锁密码获取失败");
+            }
+            detailVO.setLockRealtimePassword(lockData.getLockRealtimePassword());
+            detailVO.setPasswordStartTime(lockData.getStartTime());
+            detailVO.setPasswordEndTime(lockData.getEndTime());
+        }
+
         return detailVO;
     }
 

+ 8 - 0
src/main/java/com/chuanghai/ihotel/service/impl/RoomDoorLockDataServiceImpl.java

@@ -44,6 +44,14 @@ public class RoomDoorLockDataServiceImpl extends ServiceImpl<RoomDoorLockDataDao
     }
 
     @Override
+    public RoomDoorLockDataEntity queryByOrderId(Long orderId) {
+        QueryWrapper<RoomDoorLockDataEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("order_id", orderId);
+        wrapper.last("limit 1");
+        return this.getOne(wrapper);
+    }
+
+    @Override
     public void generatePassword(HotelOrderEntity order) {
         Long roomId = order.getRoomId();
         RoomThirdSettingEntity roomThirdSettingEntity = roomThirdSettingService.findByRoomId(roomId);

+ 14 - 0
src/main/java/com/chuanghai/ihotel/vo/UserOrderDetailVO.java

@@ -125,4 +125,18 @@ public class UserOrderDetailVO {
      */
     @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal realFree;
+    /**
+     * 锁实时密码
+     */
+    private String lockRealtimePassword;
+    /**
+     * 锁实时密码有效时间-开始
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime passwordStartTime;
+    /**
+     * 锁实时密码有效时间-结束
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime passwordEndTime;
 }