From f2727dbc355fa4e9a6d173ee43b03b4301a69f83 Mon Sep 17 00:00:00 2001 From: Niko <1377382065@qq.com> Date: Sat, 9 May 2026 15:37:09 +0800 Subject: [PATCH] feat: init auv-locker-sdk - Maven + JDK 8 project - HmacMD5 signature utility - Apache HttpClient wrapper - Storage API (11 endpoints) + Aux API (4 endpoints) - Unified AuvClient entry point - 20 unit tests --- pom.xml | 100 +++++++++ src/main/java/com/auv/locker/AuvClient.java | 130 ++++++++++++ .../java/com/auv/locker/config/AuvConfig.java | 115 ++++++++++ .../com/auv/locker/config/GatewayType.java | 34 +++ .../com/auv/locker/http/AuvHttpClient.java | 101 +++++++++ .../java/com/auv/locker/http/HmacMD5Util.java | 92 ++++++++ .../locker/model/aux/AuxCellOpResponse.java | 28 +++ .../model/aux/AuxDeviceListQueryResponse.java | 28 +++ .../auv/locker/model/aux/CellOpRequest.java | 40 ++++ .../auv/locker/model/aux/CellOpResponse.java | 37 ++++ .../locker/model/aux/CellStatusNotify.java | 40 ++++ .../auv/locker/model/aux/CellsOpsRequest.java | 54 +++++ .../model/aux/DeviceListQueryRequest.java | 35 ++++ .../model/aux/DeviceListQueryResponse.java | 37 ++++ .../locker/model/aux/DeviceStatusNotify.java | 28 +++ .../model/aux/DeviceStatusQueryRequest.java | 47 +++++ .../model/aux/DeviceStatusQueryResponse.java | 39 ++++ .../model/common/AuvRequestBuilder.java | 85 ++++++++ .../auv/locker/model/common/AuvResponse.java | 52 +++++ .../locker/model/storage/AddCellRequest.java | 73 +++++++ .../locker/model/storage/AddCellResponse.java | 19 ++ .../model/storage/CancelOrderRequest.java | 35 ++++ .../model/storage/CancelOrderResponse.java | 15 ++ .../ChangePreorderToFormalRequest.java | 35 ++++ .../ChangePreorderToFormalResponse.java | 11 + .../model/storage/CreateOrderRequest.java | 85 ++++++++ .../model/storage/CreateOrderResponse.java | 21 ++ .../model/storage/CreatePreOrderRequest.java | 70 +++++++ .../model/storage/CreatePreOrderResponse.java | 23 ++ .../model/storage/GetCellListRequest.java | 30 +++ .../model/storage/GetCellListResponse.java | 23 ++ .../model/storage/GetDeviceInfoRequest.java | 30 +++ .../model/storage/GetDeviceInfoResponse.java | 23 ++ .../model/storage/GetOrderListRequest.java | 55 +++++ .../model/storage/GetOrderListResponse.java | 41 ++++ .../model/storage/OrderStatusNotify.java | 28 +++ .../model/storage/ReOpenDoorRequest.java | 41 ++++ .../model/storage/ReOpenDoorResponse.java | 11 + .../model/storage/TakeByCodeRequest.java | 35 ++++ .../model/storage/TakeByOrderRequest.java | 35 ++++ .../model/storage/TakeByOrderResponse.java | 17 ++ .../com/auv/locker/service/AuxApiService.java | 29 +++ .../auv/locker/service/AuxApiServiceImpl.java | 110 ++++++++++ .../auv/locker/service/StorageApiService.java | 67 ++++++ .../locker/service/StorageApiServiceImpl.java | 196 ++++++++++++++++++ .../java/com/auv/locker/AuvClientTest.java | 116 +++++++++++ .../java/com/auv/locker/HmacMD5UtilTest.java | 87 ++++++++ .../classes/com/auv/locker/AuvClient$1.class | Bin 0 -> 205 bytes .../com/auv/locker/AuvClient$Builder.class | Bin 0 -> 2225 bytes target/classes/com/auv/locker/AuvClient.class | Bin 0 -> 1658 bytes .../com/auv/locker/config/AuvConfig$1.class | Bin 0 -> 219 bytes .../auv/locker/config/AuvConfig$Builder.class | Bin 0 -> 2988 bytes .../com/auv/locker/config/AuvConfig.class | Bin 0 -> 2803 bytes .../com/auv/locker/config/GatewayType.class | Bin 0 -> 1705 bytes .../com/auv/locker/http/AuvHttpClient.class | Bin 0 -> 6456 bytes .../com/auv/locker/http/HmacMD5Util.class | Bin 0 -> 3733 bytes .../locker/model/aux/AuxCellOpResponse.class | Bin 0 -> 1328 bytes .../aux/AuxDeviceListQueryResponse.class | Bin 0 -> 1355 bytes .../locker/model/aux/CellOpRequest$1.class | Bin 0 -> 237 bytes .../model/aux/CellOpRequest$Builder.class | Bin 0 -> 1382 bytes .../auv/locker/model/aux/CellOpRequest.class | Bin 0 -> 1453 bytes .../model/aux/CellOpResponse$CellInfo.class | Bin 0 -> 1140 bytes .../auv/locker/model/aux/CellOpResponse.class | Bin 0 -> 1347 bytes .../aux/CellStatusNotify$CellInfoItem.class | Bin 0 -> 796 bytes .../locker/model/aux/CellStatusNotify.class | Bin 0 -> 1631 bytes .../locker/model/aux/CellsOpsRequest$1.class | Bin 0 -> 243 bytes .../model/aux/CellsOpsRequest$Builder.class | Bin 0 -> 1726 bytes .../model/aux/CellsOpsRequest$OpItem.class | Bin 0 -> 1102 bytes .../locker/model/aux/CellsOpsRequest.class | Bin 0 -> 1701 bytes .../model/aux/DeviceListQueryRequest$1.class | Bin 0 -> 264 bytes .../aux/DeviceListQueryRequest$Builder.class | Bin 0 -> 1398 bytes .../model/aux/DeviceListQueryRequest.class | Bin 0 -> 1437 bytes ...viceListQueryResponse$DevicePageItem.class | Bin 0 -> 1476 bytes .../model/aux/DeviceListQueryResponse.class | Bin 0 -> 1220 bytes .../locker/model/aux/DeviceStatusNotify.class | Bin 0 -> 1307 bytes .../aux/DeviceStatusQueryRequest$1.class | Bin 0 -> 270 bytes .../DeviceStatusQueryRequest$Builder.class | Bin 0 -> 1873 bytes .../DeviceStatusQueryRequest$CellRef.class | Bin 0 -> 745 bytes .../model/aux/DeviceStatusQueryRequest.class | Bin 0 -> 1847 bytes ...DeviceStatusQueryResponse$CellDetail.class | Bin 0 -> 1190 bytes .../model/aux/DeviceStatusQueryResponse.class | Bin 0 -> 1421 bytes .../model/common/AuvRequestBuilder.class | Bin 0 -> 2639 bytes .../auv/locker/model/common/AuvResponse.class | Bin 0 -> 2523 bytes .../model/storage/AddCellRequest$1.class | Bin 0 -> 248 bytes .../storage/AddCellRequest$Builder.class | Bin 0 -> 2309 bytes .../locker/model/storage/AddCellRequest.class | Bin 0 -> 2708 bytes .../model/storage/AddCellResponse.class | Bin 0 -> 900 bytes .../model/storage/CancelOrderRequest$1.class | Bin 0 -> 260 bytes .../storage/CancelOrderRequest$Builder.class | Bin 0 -> 1299 bytes .../model/storage/CancelOrderRequest.class | Bin 0 -> 1432 bytes .../model/storage/CancelOrderResponse.class | Bin 0 -> 736 bytes .../ChangePreorderToFormalRequest$1.class | Bin 0 -> 293 bytes ...hangePreorderToFormalRequest$Builder.class | Bin 0 -> 1610 bytes .../ChangePreorderToFormalRequest.class | Bin 0 -> 1692 bytes .../ChangePreorderToFormalResponse.class | Bin 0 -> 519 bytes .../model/storage/CreateOrderRequest$1.class | Bin 0 -> 260 bytes .../storage/CreateOrderRequest$Builder.class | Bin 0 -> 2810 bytes .../model/storage/CreateOrderRequest.class | Bin 0 -> 3078 bytes .../model/storage/CreateOrderResponse.class | Bin 0 -> 1002 bytes .../storage/CreatePreOrderRequest$1.class | Bin 0 -> 269 bytes .../CreatePreOrderRequest$Builder.class | Bin 0 -> 2831 bytes .../model/storage/CreatePreOrderRequest.class | Bin 0 -> 2571 bytes .../storage/CreatePreOrderResponse.class | Bin 0 -> 1119 bytes .../model/storage/GetCellListRequest$1.class | Bin 0 -> 260 bytes .../storage/GetCellListRequest$Builder.class | Bin 0 -> 1124 bytes .../model/storage/GetCellListRequest.class | Bin 0 -> 1295 bytes .../model/storage/GetCellListResponse.class | Bin 0 -> 1156 bytes .../storage/GetDeviceInfoRequest$1.class | Bin 0 -> 266 bytes .../GetDeviceInfoRequest$Builder.class | Bin 0 -> 1144 bytes .../model/storage/GetDeviceInfoRequest.class | Bin 0 -> 1319 bytes .../model/storage/GetDeviceInfoResponse.class | Bin 0 -> 1156 bytes .../model/storage/GetOrderListRequest$1.class | Bin 0 -> 263 bytes .../storage/GetOrderListRequest$Builder.class | Bin 0 -> 2273 bytes .../model/storage/GetOrderListRequest.class | Bin 0 -> 2116 bytes .../GetOrderListResponse$OrderItem.class | Bin 0 -> 1481 bytes .../model/storage/GetOrderListResponse.class | Bin 0 -> 1244 bytes .../model/storage/OrderStatusNotify.class | Bin 0 -> 1314 bytes .../model/storage/ReOpenDoorRequest$1.class | Bin 0 -> 257 bytes .../storage/ReOpenDoorRequest$Builder.class | Bin 0 -> 1461 bytes .../model/storage/ReOpenDoorRequest.class | Bin 0 -> 1551 bytes .../model/storage/ReOpenDoorResponse.class | Bin 0 -> 483 bytes .../model/storage/TakeByCodeRequest$1.class | Bin 0 -> 257 bytes .../storage/TakeByCodeRequest$Builder.class | Bin 0 -> 1286 bytes .../model/storage/TakeByCodeRequest.class | Bin 0 -> 1414 bytes .../model/storage/TakeByOrderRequest$1.class | Bin 0 -> 260 bytes .../storage/TakeByOrderRequest$Builder.class | Bin 0 -> 1299 bytes .../model/storage/TakeByOrderRequest.class | Bin 0 -> 1432 bytes .../model/storage/TakeByOrderResponse.class | Bin 0 -> 800 bytes .../auv/locker/service/AuxApiService.class | Bin 0 -> 607 bytes .../locker/service/AuxApiServiceImpl$1.class | Bin 0 -> 1180 bytes .../locker/service/AuxApiServiceImpl$2.class | Bin 0 -> 1167 bytes .../locker/service/AuxApiServiceImpl$3.class | Bin 0 -> 1334 bytes .../locker/service/AuxApiServiceImpl$4.class | Bin 0 -> 1191 bytes .../locker/service/AuxApiServiceImpl.class | Bin 0 -> 5451 bytes .../locker/service/StorageApiService.class | Bin 0 -> 3205 bytes .../service/StorageApiServiceImpl$1.class | Bin 0 -> 891 bytes .../service/StorageApiServiceImpl$2.class | Bin 0 -> 862 bytes .../service/StorageApiServiceImpl.class | Bin 0 -> 12273 bytes .../compile/default-compile/createdFiles.lst | 91 ++++++++ .../compile/default-compile/inputFiles.lst | 44 ++++ .../default-testCompile/createdFiles.lst | 2 + .../default-testCompile/inputFiles.lst | 2 + .../TEST-com.auv.locker.AuvClientTest.xml | 76 +++++++ .../TEST-com.auv.locker.HmacMD5UtilTest.xml | 74 +++++++ .../com.auv.locker.AuvClientTest.txt | 4 + .../com.auv.locker.HmacMD5UtilTest.txt | 4 + .../com/auv/locker/AuvClientTest.class | Bin 0 -> 4457 bytes .../com/auv/locker/HmacMD5UtilTest.class | Bin 0 -> 3184 bytes 148 files changed, 2780 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/com/auv/locker/AuvClient.java create mode 100644 src/main/java/com/auv/locker/config/AuvConfig.java create mode 100644 src/main/java/com/auv/locker/config/GatewayType.java create mode 100644 src/main/java/com/auv/locker/http/AuvHttpClient.java create mode 100644 src/main/java/com/auv/locker/http/HmacMD5Util.java create mode 100644 src/main/java/com/auv/locker/model/aux/AuxCellOpResponse.java create mode 100644 src/main/java/com/auv/locker/model/aux/AuxDeviceListQueryResponse.java create mode 100644 src/main/java/com/auv/locker/model/aux/CellOpRequest.java create mode 100644 src/main/java/com/auv/locker/model/aux/CellOpResponse.java create mode 100644 src/main/java/com/auv/locker/model/aux/CellStatusNotify.java create mode 100644 src/main/java/com/auv/locker/model/aux/CellsOpsRequest.java create mode 100644 src/main/java/com/auv/locker/model/aux/DeviceListQueryRequest.java create mode 100644 src/main/java/com/auv/locker/model/aux/DeviceListQueryResponse.java create mode 100644 src/main/java/com/auv/locker/model/aux/DeviceStatusNotify.java create mode 100644 src/main/java/com/auv/locker/model/aux/DeviceStatusQueryRequest.java create mode 100644 src/main/java/com/auv/locker/model/aux/DeviceStatusQueryResponse.java create mode 100644 src/main/java/com/auv/locker/model/common/AuvRequestBuilder.java create mode 100644 src/main/java/com/auv/locker/model/common/AuvResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/AddCellRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/AddCellResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/CancelOrderRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/CancelOrderResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/CreateOrderRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/CreateOrderResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/CreatePreOrderRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/CreatePreOrderResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/GetCellListRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/GetCellListResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/GetDeviceInfoRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/GetDeviceInfoResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/GetOrderListRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/GetOrderListResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/OrderStatusNotify.java create mode 100644 src/main/java/com/auv/locker/model/storage/ReOpenDoorRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/ReOpenDoorResponse.java create mode 100644 src/main/java/com/auv/locker/model/storage/TakeByCodeRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/TakeByOrderRequest.java create mode 100644 src/main/java/com/auv/locker/model/storage/TakeByOrderResponse.java create mode 100644 src/main/java/com/auv/locker/service/AuxApiService.java create mode 100644 src/main/java/com/auv/locker/service/AuxApiServiceImpl.java create mode 100644 src/main/java/com/auv/locker/service/StorageApiService.java create mode 100644 src/main/java/com/auv/locker/service/StorageApiServiceImpl.java create mode 100644 src/test/java/com/auv/locker/AuvClientTest.java create mode 100644 src/test/java/com/auv/locker/HmacMD5UtilTest.java create mode 100644 target/classes/com/auv/locker/AuvClient$1.class create mode 100644 target/classes/com/auv/locker/AuvClient$Builder.class create mode 100644 target/classes/com/auv/locker/AuvClient.class create mode 100644 target/classes/com/auv/locker/config/AuvConfig$1.class create mode 100644 target/classes/com/auv/locker/config/AuvConfig$Builder.class create mode 100644 target/classes/com/auv/locker/config/AuvConfig.class create mode 100644 target/classes/com/auv/locker/config/GatewayType.class create mode 100644 target/classes/com/auv/locker/http/AuvHttpClient.class create mode 100644 target/classes/com/auv/locker/http/HmacMD5Util.class create mode 100644 target/classes/com/auv/locker/model/aux/AuxCellOpResponse.class create mode 100644 target/classes/com/auv/locker/model/aux/AuxDeviceListQueryResponse.class create mode 100644 target/classes/com/auv/locker/model/aux/CellOpRequest$1.class create mode 100644 target/classes/com/auv/locker/model/aux/CellOpRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/aux/CellOpRequest.class create mode 100644 target/classes/com/auv/locker/model/aux/CellOpResponse$CellInfo.class create mode 100644 target/classes/com/auv/locker/model/aux/CellOpResponse.class create mode 100644 target/classes/com/auv/locker/model/aux/CellStatusNotify$CellInfoItem.class create mode 100644 target/classes/com/auv/locker/model/aux/CellStatusNotify.class create mode 100644 target/classes/com/auv/locker/model/aux/CellsOpsRequest$1.class create mode 100644 target/classes/com/auv/locker/model/aux/CellsOpsRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/aux/CellsOpsRequest$OpItem.class create mode 100644 target/classes/com/auv/locker/model/aux/CellsOpsRequest.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$1.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceListQueryRequest.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceListQueryResponse$DevicePageItem.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceListQueryResponse.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceStatusNotify.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$1.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$CellRef.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse$CellDetail.class create mode 100644 target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse.class create mode 100644 target/classes/com/auv/locker/model/common/AuvRequestBuilder.class create mode 100644 target/classes/com/auv/locker/model/common/AuvResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/AddCellRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/AddCellRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/AddCellRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/AddCellResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/CancelOrderRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/CancelOrderRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/CancelOrderRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/CancelOrderResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/ChangePreorderToFormalResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/CreateOrderRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/CreateOrderRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/CreateOrderRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/CreateOrderResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/CreatePreOrderRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/CreatePreOrderResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/GetCellListRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/GetCellListRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/GetCellListRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/GetCellListResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/GetDeviceInfoResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/GetOrderListRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/GetOrderListRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/GetOrderListRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/GetOrderListResponse$OrderItem.class create mode 100644 target/classes/com/auv/locker/model/storage/GetOrderListResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/OrderStatusNotify.class create mode 100644 target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/ReOpenDoorRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/ReOpenDoorResponse.class create mode 100644 target/classes/com/auv/locker/model/storage/TakeByCodeRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/TakeByCodeRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/TakeByCodeRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/TakeByOrderRequest$1.class create mode 100644 target/classes/com/auv/locker/model/storage/TakeByOrderRequest$Builder.class create mode 100644 target/classes/com/auv/locker/model/storage/TakeByOrderRequest.class create mode 100644 target/classes/com/auv/locker/model/storage/TakeByOrderResponse.class create mode 100644 target/classes/com/auv/locker/service/AuxApiService.class create mode 100644 target/classes/com/auv/locker/service/AuxApiServiceImpl$1.class create mode 100644 target/classes/com/auv/locker/service/AuxApiServiceImpl$2.class create mode 100644 target/classes/com/auv/locker/service/AuxApiServiceImpl$3.class create mode 100644 target/classes/com/auv/locker/service/AuxApiServiceImpl$4.class create mode 100644 target/classes/com/auv/locker/service/AuxApiServiceImpl.class create mode 100644 target/classes/com/auv/locker/service/StorageApiService.class create mode 100644 target/classes/com/auv/locker/service/StorageApiServiceImpl$1.class create mode 100644 target/classes/com/auv/locker/service/StorageApiServiceImpl$2.class create mode 100644 target/classes/com/auv/locker/service/StorageApiServiceImpl.class create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 target/surefire-reports/TEST-com.auv.locker.AuvClientTest.xml create mode 100644 target/surefire-reports/TEST-com.auv.locker.HmacMD5UtilTest.xml create mode 100644 target/surefire-reports/com.auv.locker.AuvClientTest.txt create mode 100644 target/surefire-reports/com.auv.locker.HmacMD5UtilTest.txt create mode 100644 target/test-classes/com/auv/locker/AuvClientTest.class create mode 100644 target/test-classes/com/auv/locker/HmacMD5UtilTest.class diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..372aa54 --- /dev/null +++ b/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + com.auv + auv-locker-sdk + 1.0.0 + jar + + AUV Locker SDK + Java SDK for AUV Smart Locker API + + + 1.8 + 1.8 + UTF-8 + 4.5.14 + 2.15.2 + 1.7.36 + 4.13.2 + + + + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + + org.slf4j + slf4j-simple + ${slf4j.version} + test + + + + + junit + junit + ${junit.version} + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + 1.8 + 1.8 + UTF-8 + + + + org.apache.maven.plugins + maven-source-plugin + 3.2.1 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.5.0 + + UTF-8 + UTF-8 + + + + + diff --git a/src/main/java/com/auv/locker/AuvClient.java b/src/main/java/com/auv/locker/AuvClient.java new file mode 100644 index 0000000..d015934 --- /dev/null +++ b/src/main/java/com/auv/locker/AuvClient.java @@ -0,0 +1,130 @@ +package com.auv.locker; + +import com.auv.locker.config.AuvConfig; +import com.auv.locker.http.AuvHttpClient; +import com.auv.locker.service.AuxApiService; +import com.auv.locker.service.AuxApiServiceImpl; +import com.auv.locker.service.StorageApiService; +import com.auv.locker.service.StorageApiServiceImpl; + +/** + * AUV 智能取餐柜 Java SDK 统一入口。 + * + *

内部根据 API 类型自动路由到对应的网关: + *

+ * + *
+ * AuvClient client = AuvClient.builder()
+ *     .appId("66666")
+ *     .secretKey("mySecret")
+ *     .build();
+ *
+ * CreateOrderResponse resp = client.storage().createOrder(request);
+ * DeviceStatusResponse status = client.aux().queryDeviceStatus(request);
+ * 
+ */ +public class AuvClient { + + private final AuvHttpClient httpClient; + private final StorageApiService storage; + private final AuxApiService aux; + + private AuvClient(AuvConfig config) { + this.httpClient = new AuvHttpClient(config); + this.storage = new StorageApiServiceImpl(httpClient, config); + this.aux = new AuxApiServiceImpl(httpClient, config); + } + + /** + * 创建 Builder。 + */ + public static Builder builder() { + return new Builder(); + } + + /** + * 存取业务 API。 + */ + public StorageApiService storage() { + return storage; + } + + /** + * 辅助功能 API。 + */ + public AuxApiService aux() { + return aux; + } + + /** + * 关闭 HTTP 连接池。 + */ + public void close() { + try { httpClient.close(); } catch (java.io.IOException ignored) {} + } + + /** + * Client 构建器。 + */ + public static class Builder { + + private String appId; + private String secretKey; + private String storageBaseUrl; + private String auxBaseUrl; + private int connectTimeoutMs = 5000; + private int socketTimeoutMs = 10000; + private int connectionRequestTimeoutMs = 5000; + + public Builder appId(String appId) { + this.appId = appId; + return this; + } + + public Builder secretKey(String secretKey) { + this.secretKey = secretKey; + return this; + } + + public Builder storageBaseUrl(String storageBaseUrl) { + this.storageBaseUrl = storageBaseUrl; + return this; + } + + public Builder auxBaseUrl(String auxBaseUrl) { + this.auxBaseUrl = auxBaseUrl; + return this; + } + + public Builder connectTimeoutMs(int connectTimeoutMs) { + this.connectTimeoutMs = connectTimeoutMs; + return this; + } + + public Builder socketTimeoutMs(int socketTimeoutMs) { + this.socketTimeoutMs = socketTimeoutMs; + return this; + } + + public Builder connectionRequestTimeoutMs(int connectionRequestTimeoutMs) { + this.connectionRequestTimeoutMs = connectionRequestTimeoutMs; + return this; + } + + public AuvClient build() { + AuvConfig.Builder configBuilder = AuvConfig.builder() + .appId(appId) + .secretKey(secretKey) + .connectTimeoutMs(connectTimeoutMs) + .socketTimeoutMs(socketTimeoutMs) + .connectionRequestTimeoutMs(connectionRequestTimeoutMs); + if (storageBaseUrl != null) configBuilder.customStorageBaseUrl(storageBaseUrl); + if (auxBaseUrl != null) configBuilder.customAuxBaseUrl(auxBaseUrl); + AuvConfig config = configBuilder.build(); + return new AuvClient(config); + } + } +} diff --git a/src/main/java/com/auv/locker/config/AuvConfig.java b/src/main/java/com/auv/locker/config/AuvConfig.java new file mode 100644 index 0000000..d898026 --- /dev/null +++ b/src/main/java/com/auv/locker/config/AuvConfig.java @@ -0,0 +1,115 @@ +package com.auv.locker.config; + +/** + * AUV 取餐柜 API 配置。 + */ +public class AuvConfig { + + private final String appId; + private final String secretKey; + private GatewayType gatewayType; + private String customStorageBaseUrl; + private String customAuxBaseUrl; + private int connectTimeoutMs = 5000; + private int socketTimeoutMs = 10000; + private int connectionRequestTimeoutMs = 5000; + + private AuvConfig(Builder builder) { + this.appId = builder.appId; + this.secretKey = builder.secretKey; + this.gatewayType = builder.gatewayType; + this.customStorageBaseUrl = builder.customStorageBaseUrl; + this.customAuxBaseUrl = builder.customAuxBaseUrl; + this.connectTimeoutMs = builder.connectTimeoutMs; + this.socketTimeoutMs = builder.socketTimeoutMs; + this.connectionRequestTimeoutMs = builder.connectionRequestTimeoutMs; + } + + public String getAppId() { return appId; } + public String getSecretKey() { return secretKey; } + public GatewayType getGatewayType() { return gatewayType; } + public int getConnectTimeoutMs() { return connectTimeoutMs; } + public int getSocketTimeoutMs() { return socketTimeoutMs; } + public int getConnectionRequestTimeoutMs() { return connectionRequestTimeoutMs; } + + /** + * 获取存储业务 API 网关地址。 + */ + public String getStorageBaseUrl() { + if (customStorageBaseUrl != null) return customStorageBaseUrl; + return "https://" + GatewayType.STORAGE.getHost() + GatewayType.STORAGE.getPath(); + } + + /** + * 获取辅助功能 API 网关地址。 + */ + public String getAuxBaseUrl() { + if (customAuxBaseUrl != null) return customAuxBaseUrl; + return "https://" + GatewayType.AUX.getHost() + GatewayType.AUX.getPath(); + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String appId; + private String secretKey; + private GatewayType gatewayType = GatewayType.STORAGE; + private String customStorageBaseUrl; + private String customAuxBaseUrl; + private int connectTimeoutMs = 5000; + private int socketTimeoutMs = 10000; + private int connectionRequestTimeoutMs = 5000; + + public Builder appId(String appId) { + this.appId = appId; + return this; + } + + public Builder secretKey(String secretKey) { + this.secretKey = secretKey; + return this; + } + + public Builder gatewayType(GatewayType gatewayType) { + this.gatewayType = gatewayType; + return this; + } + + public Builder customStorageBaseUrl(String customStorageBaseUrl) { + this.customStorageBaseUrl = customStorageBaseUrl; + return this; + } + + public Builder customAuxBaseUrl(String customAuxBaseUrl) { + this.customAuxBaseUrl = customAuxBaseUrl; + return this; + } + + public Builder connectTimeoutMs(int connectTimeoutMs) { + this.connectTimeoutMs = connectTimeoutMs; + return this; + } + + public Builder socketTimeoutMs(int socketTimeoutMs) { + this.socketTimeoutMs = socketTimeoutMs; + return this; + } + + public Builder connectionRequestTimeoutMs(int connectionRequestTimeoutMs) { + this.connectionRequestTimeoutMs = connectionRequestTimeoutMs; + return this; + } + + public AuvConfig build() { + if (appId == null || appId.isEmpty()) { + throw new IllegalArgumentException("appId must not be null or empty"); + } + if (secretKey == null || secretKey.isEmpty()) { + throw new IllegalArgumentException("secretKey must not be null or empty"); + } + return new AuvConfig(this); + } + } +} diff --git a/src/main/java/com/auv/locker/config/GatewayType.java b/src/main/java/com/auv/locker/config/GatewayType.java new file mode 100644 index 0000000..0069c40 --- /dev/null +++ b/src/main/java/com/auv/locker/config/GatewayType.java @@ -0,0 +1,34 @@ +package com.auv.locker.config; + +/** + * API 网关类型枚举。 + * + * 两套网关响应格式不同: + * - STORAGE: code=10000 表示成功 + * - AUX: code=1 且 success=true 表示成功 + */ +public enum GatewayType { + + STORAGE("plat.58auv.com", "/OpenApi"), + AUX("openapi.58auv.com", "/gateway.do"); + + private final String host; + private final String path; + + GatewayType(String host, String path) { + this.host = host; + this.path = path; + } + + public String getHost() { + return host; + } + + public String getPath() { + return path; + } + + public String getBaseUrl() { + return "https://" + host + path; + } +} diff --git a/src/main/java/com/auv/locker/http/AuvHttpClient.java b/src/main/java/com/auv/locker/http/AuvHttpClient.java new file mode 100644 index 0000000..9a0d7e5 --- /dev/null +++ b/src/main/java/com/auv/locker/http/AuvHttpClient.java @@ -0,0 +1,101 @@ +package com.auv.locker.http; + +import com.auv.locker.config.AuvConfig; +import com.auv.locker.model.common.AuvResponse; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.Closeable; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; + +/** + * AUV API HTTP 客户端,封装连接池、超时、签名与请求发送。 + */ +public class AuvHttpClient implements Closeable { + + private static final Logger log = LoggerFactory.getLogger(AuvHttpClient.class); + private static final ObjectMapper MAPPER = new ObjectMapper(); + + private final AuvConfig config; + private final CloseableHttpClient httpClient; + + public AuvHttpClient(AuvConfig config) { + this.config = config; + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(config.getConnectTimeoutMs()) + .setSocketTimeout(config.getSocketTimeoutMs()) + .setConnectionRequestTimeout(config.getConnectionRequestTimeoutMs()) + .build(); + this.httpClient = HttpClients.custom() + .setDefaultRequestConfig(requestConfig) + .build(); + } + + /** + * 发送 GET 请求到 AUV 网关。 + * + * @param baseUrl 网关地址 + * @param method 接口方法名 + * @param bizDataJson bizData JSON 字符串(未 URL Encode) + * @return 统一响应,resultObject 为 JsonNode(可转为任意类型) + */ + public AuvResponse get(String baseUrl, String method, String bizDataJson) { + try { + String timestamp = java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") + .format(java.time.LocalDateTime.now()); + + // 签名用未 Encode 的 bizData + java.util.TreeMap signParams = new java.util.TreeMap<>(); + signParams.put("appId", config.getAppId()); + signParams.put("method", method); + signParams.put("timestamp", timestamp); + signParams.put("version", "1.0"); + signParams.put("bizData", bizDataJson != null ? bizDataJson : "{}"); + String signContent = HmacMD5Util.buildSignContent(signParams); + String digest = HmacMD5Util.sign(signContent, config.getSecretKey()); + + // URL 构建时用 URL Encode 的 bizData + URIBuilder uriBuilder = new URIBuilder(baseUrl); + uriBuilder.addParameter("appId", config.getAppId()); + uriBuilder.addParameter("method", method); + uriBuilder.addParameter("timestamp", timestamp); + uriBuilder.addParameter("version", "1.0"); + uriBuilder.addParameter("bizData", + URLEncoder.encode(bizDataJson != null ? bizDataJson : "{}", StandardCharsets.UTF_8.name())); + uriBuilder.addParameter("digest", digest); + + String url = uriBuilder.build().toString(); + return execute(url); + } catch (Exception e) { + throw new RuntimeException("AUV API request failed: " + e.getMessage(), e); + } + } + + private AuvResponse execute(String url) { + try { + HttpGet httpGet = new HttpGet(url); + try (CloseableHttpResponse response = httpClient.execute(httpGet)) { + String body = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8); + log.debug("AUV API response: {}", body); + return MAPPER.readValue(body, AuvResponse.class); + } + } catch (Exception e) { + throw new RuntimeException("AUV API request failed: " + e.getMessage(), e); + } + } + + @Override + public void close() throws java.io.IOException { + httpClient.close(); + } +} diff --git a/src/main/java/com/auv/locker/http/HmacMD5Util.java b/src/main/java/com/auv/locker/http/HmacMD5Util.java new file mode 100644 index 0000000..90c5b1c --- /dev/null +++ b/src/main/java/com/auv/locker/http/HmacMD5Util.java @@ -0,0 +1,92 @@ +package com.auv.locker.http; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * HmacMD5 签名工具。 + * + * 签名步骤: + * 1. 将所有参数(除 digest 外)按 key 的 ASCII 字典序排序 + * 2. 用 & 连接成 key=value 字符串 + * 3. 用 secretKey 做 HmacMD5 加密 + */ +public final class HmacMD5Util { + + private static final String ALGORITHM = "HmacMD5"; + + private HmacMD5Util() {} + + /** + * 计算 HmacMD5 签名。 + * + * @param params 待签名字符串(已按 key 排序拼接) + * @param secretKey 密钥 + * @return 小写十六进制签名串 + */ + public static String sign(String params, String secretKey) { + try { + Mac mac = Mac.getInstance(ALGORITHM); + mac.init(new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), ALGORITHM)); + byte[] bytes = mac.doFinal(params.getBytes(StandardCharsets.UTF_8)); + return toHexString(bytes); + } catch (Exception e) { + throw new RuntimeException("HmacMD5 sign failed", e); + } + } + + /** + * 从参数 Map 构建待签名字符串(按 key ASCII 排序)。 + * + * @param params 参数 Map + * @return 排序后的 key=value&key2=value2 字符串 + */ + public static String buildSignContent(Map params) { + TreeMap sorted = new TreeMap<>(params); + StringBuilder sb = new StringBuilder(); + boolean first = true; + for (Map.Entry entry : sorted.entrySet()) { + if (!first) sb.append('&'); + sb.append(entry.getKey()).append('=').append(entry.getValue()); + first = false; + } + return sb.toString(); + } + + /** + * 从参数 Map 构建待签名字符串,自动排除指定 key。 + * + * @param params 原始参数 Map + * @param excludeKeys 需要排除的 key 集合 + * @return 排序后的签名字符串 + */ + public static String buildSignContent(Map params, String... excludeKeys) { + Map filtered = new LinkedHashMap<>(); + for (Map.Entry entry : params.entrySet()) { + boolean excluded = false; + for (String key : excludeKeys) { + if (key.equals(entry.getKey())) { + excluded = true; + break; + } + } + if (!excluded) { + filtered.put(entry.getKey(), entry.getValue()); + } + } + return buildSignContent(filtered); + } + + private static String toHexString(byte[] bytes) { + StringBuilder sb = new StringBuilder(bytes.length * 2); + for (byte b : bytes) { + sb.append(Character.forDigit((b >>> 4) & 0xf, 16)); + sb.append(Character.forDigit(b & 0xf, 16)); + } + return sb.toString(); + } +} diff --git a/src/main/java/com/auv/locker/model/aux/AuxCellOpResponse.java b/src/main/java/com/auv/locker/model/aux/AuxCellOpResponse.java new file mode 100644 index 0000000..ec5099a --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/AuxCellOpResponse.java @@ -0,0 +1,28 @@ +package com.auv.locker.model.aux; + +/** + * 辅助 API 通用响应封装。 + */ +public class AuxCellOpResponse { + + private final String rawData; + private final Integer code; + private final String msg; + private final Boolean success; + + public AuxCellOpResponse(String rawData, Integer code, String msg, Boolean success) { + this.rawData = rawData; + this.code = code; + this.msg = msg; + this.success = success; + } + + public String getRawData() { return rawData; } + public Integer getCode() { return code; } + public String getMsg() { return msg; } + public Boolean isSuccess() { return success != null && success; } + + public boolean isOk() { + return success != null && success && code != null && code == 1; + } +} diff --git a/src/main/java/com/auv/locker/model/aux/AuxDeviceListQueryResponse.java b/src/main/java/com/auv/locker/model/aux/AuxDeviceListQueryResponse.java new file mode 100644 index 0000000..cb107e6 --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/AuxDeviceListQueryResponse.java @@ -0,0 +1,28 @@ +package com.auv.locker.model.aux; + +/** + * 辅助 API 设备列表查询响应。 + */ +public class AuxDeviceListQueryResponse { + + private final String rawData; + private final Integer code; + private final String msg; + private final Boolean success; + + public AuxDeviceListQueryResponse(String rawData, Integer code, String msg, Boolean success) { + this.rawData = rawData; + this.code = code; + this.msg = msg; + this.success = success; + } + + public String getRawData() { return rawData; } + public Integer getCode() { return code; } + public String getMsg() { return msg; } + public Boolean isSuccess() { return success != null && success; } + + public boolean isOk() { + return success != null && success && code != null && code == 1; + } +} diff --git a/src/main/java/com/auv/locker/model/aux/CellOpRequest.java b/src/main/java/com/auv/locker/model/aux/CellOpRequest.java new file mode 100644 index 0000000..a34f439 --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/CellOpRequest.java @@ -0,0 +1,40 @@ +package com.auv.locker.model.aux; + +/** + * 单元格操作(单指令)请求。 + * method: device.cell.op + */ +public class CellOpRequest { + + private final String deviceId; + private final String cellNo; + private final String op; // DOOR_OPEN, LIGHT_OPEN, LIGHT_CLOSE, WARM_START, WARM_STOP, DISINFECT_START, DISINFECT_STOP + + private CellOpRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.cellNo = builder.cellNo; + this.op = builder.op; + } + + public String getDeviceId() { return deviceId; } + public String getCellNo() { return cellNo; } + public String getOp() { return op; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + private String cellNo; + private String op; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder cellNo(String cellNo) { this.cellNo = cellNo; return this; } + public Builder op(String op) { this.op = op; return this; } + + public CellOpRequest build() { + return new CellOpRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/aux/CellOpResponse.java b/src/main/java/com/auv/locker/model/aux/CellOpResponse.java new file mode 100644 index 0000000..6e16157 --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/CellOpResponse.java @@ -0,0 +1,37 @@ +package com.auv.locker.model.aux; + +/** + * 单元格操作响应 (resultObject)。 + */ +public class CellOpResponse { + + private String deviceId; + private String appId; + private String deviceName; + private String deviceStatus; + private Integer cellNumCount; + private java.util.List cells; + + public String getDeviceId() { return deviceId; } + public String getAppId() { return appId; } + public String getDeviceName() { return deviceName; } + public String getDeviceStatus() { return deviceStatus; } + public Integer getCellNumCount() { return cellNumCount; } + public java.util.List getCells() { return cells; } + + public static class CellInfo { + private Integer cellId; + private String cellNo; + private String cellNoAlias; + private Integer cellOrder; + private Integer cellStatus; + private String cellInfo; // JSON string: {"door":"0","warm":"1","light":"0","disinfect":"0"} + + public Integer getCellId() { return cellId; } + public String getCellNo() { return cellNo; } + public String getCellNoAlias() { return cellNoAlias; } + public Integer getCellOrder() { return cellOrder; } + public Integer getCellStatus() { return cellStatus; } + public String getCellInfo() { return cellInfo; } + } +} diff --git a/src/main/java/com/auv/locker/model/aux/CellStatusNotify.java b/src/main/java/com/auv/locker/model/aux/CellStatusNotify.java new file mode 100644 index 0000000..3e5ae58 --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/CellStatusNotify.java @@ -0,0 +1,40 @@ +package com.auv.locker.model.aux; + +import java.util.List; + +/** + * 单元格状态变更通知回调参数模型。 + * notifyType: cell_status_sync + */ +public class CellStatusNotify { + + private String notifyTime; + private String notifyType; + private String appId; + private String charset; + private String version; + private String signType; + private String sign; + private String deviceId; + private List cellInfoList; + + public String getNotifyTime() { return notifyTime; } + public String getNotifyType() { return notifyType; } + public String getAppId() { return appId; } + public String getCharset() { return charset; } + public String getVersion() { return version; } + public String getSignType() { return signType; } + public String getSign() { return sign; } + public String getDeviceId() { return deviceId; } + public List getCellInfoList() { return cellInfoList; } + + public static class CellInfoItem { + private String cellNo; + private String propName; // door, light, warm, disinfect + private String propValue; // opened, opening, closed, started, starting, stopped, stopping + + public String getCellNo() { return cellNo; } + public String getPropName() { return propName; } + public String getPropValue() { return propValue; } + } +} diff --git a/src/main/java/com/auv/locker/model/aux/CellsOpsRequest.java b/src/main/java/com/auv/locker/model/aux/CellsOpsRequest.java new file mode 100644 index 0000000..ffa08fa --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/CellsOpsRequest.java @@ -0,0 +1,54 @@ +package com.auv.locker.model.aux; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +/** + * 单元格操作(多指令)请求。 + * method: device.cells.ops + */ +public class CellsOpsRequest { + + private final String deviceId; + private final List opList; + + private CellsOpsRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.opList = builder.opList; + } + + public String getDeviceId() { return deviceId; } + public List getOpList() { return opList; } + + public static Builder builder() { + return new Builder(); + } + + public static class OpItem { + @JsonProperty("cellNo") + private String cellNo; + + private List ops; + + public OpItem(String cellNo, List ops) { + this.cellNo = cellNo; + this.ops = ops; + } + + public String getCellNo() { return cellNo; } + public List getOps() { return ops; } + } + + public static class Builder { + private String deviceId; + private List opList; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder opList(List opList) { this.opList = opList; return this; } + + public CellsOpsRequest build() { + return new CellsOpsRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/aux/DeviceListQueryRequest.java b/src/main/java/com/auv/locker/model/aux/DeviceListQueryRequest.java new file mode 100644 index 0000000..32fb0e8 --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/DeviceListQueryRequest.java @@ -0,0 +1,35 @@ +package com.auv.locker.model.aux; + +/** + * 设备列表查询请求。 + * method: device.list.query + */ +public class DeviceListQueryRequest { + + private final Integer pageSize; + private final Integer pageNo; + + private DeviceListQueryRequest(Builder builder) { + this.pageSize = builder.pageSize; + this.pageNo = builder.pageNo; + } + + public Integer getPageSize() { return pageSize; } + public Integer getPageNo() { return pageNo; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private Integer pageSize = 10; + private Integer pageNo = 1; + + public Builder pageSize(Integer pageSize) { this.pageSize = pageSize; return this; } + public Builder pageNo(Integer pageNo) { this.pageNo = pageNo; return this; } + + public DeviceListQueryRequest build() { + return new DeviceListQueryRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/aux/DeviceListQueryResponse.java b/src/main/java/com/auv/locker/model/aux/DeviceListQueryResponse.java new file mode 100644 index 0000000..0b852fb --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/DeviceListQueryResponse.java @@ -0,0 +1,37 @@ +package com.auv.locker.model.aux; + +/** + * 设备列表查询响应 (resultObject)。 + */ +public class DeviceListQueryResponse { + + private java.util.List pageData; + private Integer totalCount; + private Boolean lastPage; + private Integer currentPage; + + public java.util.List getPageData() { return pageData; } + public Integer getTotalCount() { return totalCount; } + public Boolean isLastPage() { return lastPage; } + public Integer getCurrentPage() { return currentPage; } + + public static class DevicePageItem { + private String deviceId; + private String appId; + private String deviceName; + private String deviceStatus; // ONLINE / OFFLINE + private Integer cellNumCount; + private Long createTime; + private Long statusUpdateTime; + private String deviceType; + + public String getDeviceId() { return deviceId; } + public String getAppId() { return appId; } + public String getDeviceName() { return deviceName; } + public String getDeviceStatus() { return deviceStatus; } + public Integer getCellNumCount() { return cellNumCount; } + public Long getCreateTime() { return createTime; } + public Long getStatusUpdateTime() { return statusUpdateTime; } + public String getDeviceType() { return deviceType; } + } +} diff --git a/src/main/java/com/auv/locker/model/aux/DeviceStatusNotify.java b/src/main/java/com/auv/locker/model/aux/DeviceStatusNotify.java new file mode 100644 index 0000000..5c19b03 --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/DeviceStatusNotify.java @@ -0,0 +1,28 @@ +package com.auv.locker.model.aux; + +/** + * 设备状态变更通知回调参数模型。 + * notifyType: device_status_sync + */ +public class DeviceStatusNotify { + + private String notifyTime; + private String notifyType; + private String appId; + private String charset; + private String version; + private String signType; + private String sign; + private String deviceId; + private String deviceStatus; // ONLINE / OFFLINE + + public String getNotifyTime() { return notifyTime; } + public String getNotifyType() { return notifyType; } + public String getAppId() { return appId; } + public String getCharset() { return charset; } + public String getVersion() { return version; } + public String getSignType() { return signType; } + public String getSign() { return sign; } + public String getDeviceId() { return deviceId; } + public String getDeviceStatus() { return deviceStatus; } +} diff --git a/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryRequest.java b/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryRequest.java new file mode 100644 index 0000000..b5fbf0b --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryRequest.java @@ -0,0 +1,47 @@ +package com.auv.locker.model.aux; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +/** + * 设备状态查询请求。 + * method: device.status.query + */ +public class DeviceStatusQueryRequest { + + private final String deviceId; + private final List cells; + + private DeviceStatusQueryRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.cells = builder.cells; + } + + public String getDeviceId() { return deviceId; } + public List getCells() { return cells; } + + public static Builder builder() { + return new Builder(); + } + + public static class CellRef { + @JsonProperty("cellNo") + private String cellNo; + + public CellRef(String cellNo) { this.cellNo = cellNo; } + public String getCellNo() { return cellNo; } + } + + public static class Builder { + private String deviceId; + private List cells; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder cells(List cells) { this.cells = cells; return this; } + + public DeviceStatusQueryRequest build() { + return new DeviceStatusQueryRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryResponse.java b/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryResponse.java new file mode 100644 index 0000000..4ee5f31 --- /dev/null +++ b/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryResponse.java @@ -0,0 +1,39 @@ +package com.auv.locker.model.aux; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * 设备状态查询响应 (resultObject)。 + */ +public class DeviceStatusQueryResponse { + + private String deviceId; + private String appId; + private String deviceName; + private String deviceStatus; // ONLINE / OFFLINE + private Integer cellNumCount; + private java.util.List cells; + + public String getDeviceId() { return deviceId; } + public String getAppId() { return appId; } + public String getDeviceName() { return deviceName; } + public String getDeviceStatus() { return deviceStatus; } + public Integer getCellNumCount() { return cellNumCount; } + public java.util.List getCells() { return cells; } + + public static class CellDetail { + private Integer cellId; + private String cellNo; + private String cellNoAlias; + private Integer cellOrder; + private Integer cellStatus; + private String cellInfo; // JSON: {"door":"opening","warm":"starting","light":"opening","disinfect":"0"} + + public Integer getCellId() { return cellId; } + public String getCellNo() { return cellNo; } + public String getCellNoAlias() { return cellNoAlias; } + public Integer getCellOrder() { return cellOrder; } + public Integer getCellStatus() { return cellStatus; } + public String getCellInfo() { return cellInfo; } + } +} diff --git a/src/main/java/com/auv/locker/model/common/AuvRequestBuilder.java b/src/main/java/com/auv/locker/model/common/AuvRequestBuilder.java new file mode 100644 index 0000000..addbbe8 --- /dev/null +++ b/src/main/java/com/auv/locker/model/common/AuvRequestBuilder.java @@ -0,0 +1,85 @@ +package com.auv.locker.model.common; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * 请求构建器,用于组装 bizData 参数。 + */ +public class AuvRequestBuilder { + + private static final Logger log = LoggerFactory.getLogger(AuvRequestBuilder.class); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private final Map bizData = new LinkedHashMap<>(); + + public AuvRequestBuilder() {} + + /** + * 添加参数。 + */ + public AuvRequestBuilder add(String key, Object value) { + if (value != null && value instanceof String) { + String str = (String) value; + if (!str.isEmpty()) { + bizData.put(key, str); + } + } else if (value != null) { + bizData.put(key, value); + } + return this; + } + + /** + * 添加 String 参数,空字符串不添加。 + */ + public AuvRequestBuilder addString(String key, String value) { + if (value != null && !value.isEmpty()) { + bizData.put(key, value); + } + return this; + } + + /** + * 添加 Integer 参数,null 不添加。 + */ + public AuvRequestBuilder addInt(String key, Integer value) { + if (value != null) { + bizData.put(key, value); + } + return this; + } + + /** + * 添加 Boolean 参数,null 不添加。 + */ + public AuvRequestBuilder addBool(String key, Boolean value) { + if (value != null) { + bizData.put(key, value); + } + return this; + } + + /** + * 构建 bizData JSON 字符串。 + */ + public String build() { + try { + return OBJECT_MAPPER.writeValueAsString(bizData); + } catch (JsonProcessingException e) { + throw new RuntimeException("build bizData JSON failed", e); + } + } + + /** + * 获取原始参数 Map。 + */ + public Map getBizData() { + return bizData; + } +} diff --git a/src/main/java/com/auv/locker/model/common/AuvResponse.java b/src/main/java/com/auv/locker/model/common/AuvResponse.java new file mode 100644 index 0000000..4dddc75 --- /dev/null +++ b/src/main/java/com/auv/locker/model/common/AuvResponse.java @@ -0,0 +1,52 @@ +package com.auv.locker.model.common; + +import com.fasterxml.jackson.databind.JsonNode; + +/** + * AUV API 统一响应模型。 + * + *

两套网关响应格式: + *

    + *
  • 存取 API: { code(10000=成功), msg, resultObject, time, mem }
  • + *
  • 辅助 API: { code(1=成功), msg, success, timestamp, resultObject }
  • + *
+ * + *

resultObject 以 JsonNode 形式存储,由 Service 层按需转换为具体类型。 + */ +public class AuvResponse { + + private Integer code; + private String msg; + private Boolean success; + private JsonNode resultObject; + private String time; + private Long timestamp; + + public Integer getCode() { return code; } + public void setCode(Integer code) { this.code = code; } + + public String getMsg() { return msg; } + public void setMsg(String msg) { this.msg = msg; } + + public Boolean getSuccess() { return success; } + public void setSuccess(Boolean success) { this.success = success; } + + public JsonNode getResultObject() { return resultObject; } + public void setResultObject(JsonNode resultObject) { this.resultObject = resultObject; } + + public String getTime() { return time; } + public void setTime(String time) { this.time = time; } + + public Long getTimestamp() { return timestamp; } + public void setTimestamp(Long timestamp) { this.timestamp = timestamp; } + + /** + * 判断是否成功(存取 API: code==10000, 辅助 API: code==1 && success==true)。 + */ + public boolean isSuccess() { + if (code == null) return false; + if (code == 10000) return true; + if (code == 1 && Boolean.TRUE.equals(success)) return true; + return false; + } +} diff --git a/src/main/java/com/auv/locker/model/storage/AddCellRequest.java b/src/main/java/com/auv/locker/model/storage/AddCellRequest.java new file mode 100644 index 0000000..72bd597 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/AddCellRequest.java @@ -0,0 +1,73 @@ +package com.auv.locker.model.storage; + +import com.auv.locker.model.common.AuvRequestBuilder; + +/** + * 为现有订单增加格子请求。 + * method: addCell + */ +public class AddCellRequest { + + private final Integer orderId; + private final String deviceId; + private final Integer type; + private final String isWarm; + private final String isLight; + private final String isDisinfect; + private final String cellId; + + private AddCellRequest(Builder builder) { + this.orderId = builder.orderId; + this.deviceId = builder.deviceId; + this.type = builder.type; + this.isWarm = builder.isWarm; + this.isLight = builder.isLight; + this.isDisinfect = builder.isDisinfect; + this.cellId = builder.cellId; + } + + public Integer getOrderId() { return orderId; } + public String getDeviceId() { return deviceId; } + public Integer getType() { return type; } + public String getIsWarm() { return isWarm; } + public String getIsLight() { return isLight; } + public String getIsDisinfect() { return isDisinfect; } + public String getCellId() { return cellId; } + + public AuvRequestBuilder toBuilder() { + return new AuvRequestBuilder() + .addInt("orderId", orderId) + .addString("deviceId", deviceId) + .addInt("type", type) + .addString("isWarm", isWarm) + .addString("isLight", isLight) + .addString("isDisinfect", isDisinfect) + .addString("cellId", cellId); + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private Integer orderId; + private String deviceId; + private Integer type; + private String isWarm; + private String isLight; + private String isDisinfect; + private String cellId; + + public Builder orderId(Integer orderId) { this.orderId = orderId; return this; } + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder type(Integer type) { this.type = type; return this; } + public Builder isWarm(String isWarm) { this.isWarm = isWarm; return this; } + public Builder isLight(String isLight) { this.isLight = isLight; return this; } + public Builder isDisinfect(String isDisinfect) { this.isDisinfect = isDisinfect; return this; } + public Builder cellId(String cellId) { this.cellId = cellId; return this; } + + public AddCellRequest build() { + return new AddCellRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/AddCellResponse.java b/src/main/java/com/auv/locker/model/storage/AddCellResponse.java new file mode 100644 index 0000000..b62b4b3 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/AddCellResponse.java @@ -0,0 +1,19 @@ +package com.auv.locker.model.storage; + +/** + * 为现有订单增加格子响应 (resultObject)。 + */ +public class AddCellResponse { + + private String deviceId; + private String cellId; + private String cellAlias; + private String newCellId; + private String newCellAlias; + + public String getDeviceId() { return deviceId; } + public String getCellId() { return cellId; } + public String getCellAlias() { return cellAlias; } + public String getNewCellId() { return newCellId; } + public String getNewCellAlias() { return newCellAlias; } +} diff --git a/src/main/java/com/auv/locker/model/storage/CancelOrderRequest.java b/src/main/java/com/auv/locker/model/storage/CancelOrderRequest.java new file mode 100644 index 0000000..3bd1b1b --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/CancelOrderRequest.java @@ -0,0 +1,35 @@ +package com.auv.locker.model.storage; + +/** + * 撤餐操作请求。 + * method: cancelOrder + */ +public class CancelOrderRequest { + + private final String deviceId; + private final String orderId; + + private CancelOrderRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.orderId = builder.orderId; + } + + public String getDeviceId() { return deviceId; } + public String getOrderId() { return orderId; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + private String orderId; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder orderId(String orderId) { this.orderId = orderId; return this; } + + public CancelOrderRequest build() { + return new CancelOrderRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/CancelOrderResponse.java b/src/main/java/com/auv/locker/model/storage/CancelOrderResponse.java new file mode 100644 index 0000000..8ec6629 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/CancelOrderResponse.java @@ -0,0 +1,15 @@ +package com.auv.locker.model.storage; + +/** + * 撤餐操作响应 (resultObject)。 + */ +public class CancelOrderResponse { + + private String deviceId; + private String orderId; + private Boolean result; + + public String getDeviceId() { return deviceId; } + public String getOrderId() { return orderId; } + public Boolean getResult() { return result; } +} diff --git a/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalRequest.java b/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalRequest.java new file mode 100644 index 0000000..a7dfa50 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalRequest.java @@ -0,0 +1,35 @@ +package com.auv.locker.model.storage; + +/** + * 预订单转正式单请求。 + * method: changePreorderToFormal + */ +public class ChangePreorderToFormalRequest { + + private final Integer id; + private final String deviceId; + + private ChangePreorderToFormalRequest(Builder builder) { + this.id = builder.id; + this.deviceId = builder.deviceId; + } + + public Integer getId() { return id; } + public String getDeviceId() { return deviceId; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private Integer id; + private String deviceId; + + public Builder id(Integer id) { this.id = id; return this; } + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + + public ChangePreorderToFormalRequest build() { + return new ChangePreorderToFormalRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalResponse.java b/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalResponse.java new file mode 100644 index 0000000..020f19d --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalResponse.java @@ -0,0 +1,11 @@ +package com.auv.locker.model.storage; + +/** + * 预订单转正式单响应 (resultObject)。 + */ +public class ChangePreorderToFormalResponse { + + private Boolean result; + + public Boolean getResult() { return result; } +} diff --git a/src/main/java/com/auv/locker/model/storage/CreateOrderRequest.java b/src/main/java/com/auv/locker/model/storage/CreateOrderRequest.java new file mode 100644 index 0000000..779f443 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/CreateOrderRequest.java @@ -0,0 +1,85 @@ +package com.auv.locker.model.storage; + +import com.auv.locker.model.common.AuvRequestBuilder; + +/** + * 创建存餐订单请求。 + * method: createOrder + */ +public class CreateOrderRequest { + + private final String deviceId; + private final String shopOrderId; + private final Integer type; + private final String isWarm; + private final String isLight; + private final String isDisinfect; + private final String isRandom; + private final String takeCode; + private final String cellId; + + private CreateOrderRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.shopOrderId = builder.shopOrderId; + this.type = builder.type; + this.isWarm = builder.isWarm; + this.isLight = builder.isLight; + this.isDisinfect = builder.isDisinfect; + this.isRandom = builder.isRandom; + this.takeCode = builder.takeCode; + this.cellId = builder.cellId; + } + + public String getDeviceId() { return deviceId; } + public String getShopOrderId() { return shopOrderId; } + public Integer getType() { return type; } + public String getIsWarm() { return isWarm; } + public String getIsLight() { return isLight; } + public String getIsDisinfect() { return isDisinfect; } + public String getIsRandom() { return isRandom; } + public String getTakeCode() { return takeCode; } + public String getCellId() { return cellId; } + + public AuvRequestBuilder toBuilder() { + return new AuvRequestBuilder() + .addString("deviceId", deviceId) + .addString("shopOrderId", shopOrderId) + .addInt("type", type) + .addString("isWarm", isWarm) + .addString("isLight", isLight) + .addString("isDisinfect", isDisinfect) + .addString("isRandom", isRandom) + .addString("takeCode", takeCode) + .addString("cellId", cellId); + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + private String shopOrderId; + private Integer type = 1; + private String isWarm; + private String isLight; + private String isDisinfect; + private String isRandom = "1"; + private String takeCode; + private String cellId; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder shopOrderId(String shopOrderId) { this.shopOrderId = shopOrderId; return this; } + public Builder type(Integer type) { this.type = type; return this; } + public Builder isWarm(String isWarm) { this.isWarm = isWarm; return this; } + public Builder isLight(String isLight) { this.isLight = isLight; return this; } + public Builder isDisinfect(String isDisinfect) { this.isDisinfect = isDisinfect; return this; } + public Builder isRandom(String isRandom) { this.isRandom = isRandom; return this; } + public Builder takeCode(String takeCode) { this.takeCode = takeCode; return this; } + public Builder cellId(String cellId) { this.cellId = cellId; return this; } + + public CreateOrderRequest build() { + return new CreateOrderRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/CreateOrderResponse.java b/src/main/java/com/auv/locker/model/storage/CreateOrderResponse.java new file mode 100644 index 0000000..4d6e593 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/CreateOrderResponse.java @@ -0,0 +1,21 @@ +package com.auv.locker.model.storage; + +/** + * 创建存餐订单响应 (resultObject)。 + */ +public class CreateOrderResponse { + + private String deviceId; + private String shopOrderId; + private String orderId; + private String cellId; + private String code; + private String cellAlias; + + public String getDeviceId() { return deviceId; } + public String getShopOrderId() { return shopOrderId; } + public String getOrderId() { return orderId; } + public String getCellId() { return cellId; } + public String getCode() { return code; } + public String getCellAlias() { return cellAlias; } +} diff --git a/src/main/java/com/auv/locker/model/storage/CreatePreOrderRequest.java b/src/main/java/com/auv/locker/model/storage/CreatePreOrderRequest.java new file mode 100644 index 0000000..916dfc9 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/CreatePreOrderRequest.java @@ -0,0 +1,70 @@ +package com.auv.locker.model.storage; + +/** + * 创建预订单请求。 + * method: createPreOrder + */ +public class CreatePreOrderRequest { + + private final String deviceId; + private final String shopOrderId; + private final Integer type; + private final String expiryTime; + private final String isWarm; + private final String isLight; + private final String isDisinfect; + private final String takeCode; + private final String cellId; + + private CreatePreOrderRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.shopOrderId = builder.shopOrderId; + this.type = builder.type; + this.expiryTime = builder.expiryTime; + this.isWarm = builder.isWarm; + this.isLight = builder.isLight; + this.isDisinfect = builder.isDisinfect; + this.takeCode = builder.takeCode; + this.cellId = builder.cellId; + } + + public String getDeviceId() { return deviceId; } + public String getShopOrderId() { return shopOrderId; } + public Integer getType() { return type; } + public String getExpiryTime() { return expiryTime; } + public String getIsWarm() { return isWarm; } + public String getIsLight() { return isLight; } + public String getIsDisinfect() { return isDisinfect; } + public String getTakeCode() { return takeCode; } + public String getCellId() { return cellId; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + private String shopOrderId; + private Integer type = 1; + private String expiryTime; + private String isWarm; + private String isLight; + private String isDisinfect; + private String takeCode; + private String cellId; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder shopOrderId(String shopOrderId) { this.shopOrderId = shopOrderId; return this; } + public Builder type(Integer type) { this.type = type; return this; } + public Builder expiryTime(String expiryTime) { this.expiryTime = expiryTime; return this; } + public Builder isWarm(String isWarm) { this.isWarm = isWarm; return this; } + public Builder isLight(String isLight) { this.isLight = isLight; return this; } + public Builder isDisinfect(String isDisinfect) { this.isDisinfect = isDisinfect; return this; } + public Builder takeCode(String takeCode) { this.takeCode = takeCode; return this; } + public Builder cellId(String cellId) { this.cellId = cellId; return this; } + + public CreatePreOrderRequest build() { + return new CreatePreOrderRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/CreatePreOrderResponse.java b/src/main/java/com/auv/locker/model/storage/CreatePreOrderResponse.java new file mode 100644 index 0000000..923ddcd --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/CreatePreOrderResponse.java @@ -0,0 +1,23 @@ +package com.auv.locker.model.storage; + +/** + * 创建预订单响应 (resultObject)。 + */ +public class CreatePreOrderResponse { + + private String deviceId; + private String shopOrderId; + private String orderId; + private String cellId; + private String cellAlias; + private String code; + private String expiryTime; + + public String getDeviceId() { return deviceId; } + public String getShopOrderId() { return shopOrderId; } + public String getOrderId() { return orderId; } + public String getCellId() { return cellId; } + public String getCellAlias() { return cellAlias; } + public String getCode() { return code; } + public String getExpiryTime() { return expiryTime; } +} diff --git a/src/main/java/com/auv/locker/model/storage/GetCellListRequest.java b/src/main/java/com/auv/locker/model/storage/GetCellListRequest.java new file mode 100644 index 0000000..a0e0c32 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/GetCellListRequest.java @@ -0,0 +1,30 @@ +package com.auv.locker.model.storage; + +/** + * 获取格子列表请求。 + * method: getCellList + */ +public class GetCellListRequest { + + private final String deviceId; + + private GetCellListRequest(Builder builder) { + this.deviceId = builder.deviceId; + } + + public String getDeviceId() { return deviceId; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + + public GetCellListRequest build() { + return new GetCellListRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/GetCellListResponse.java b/src/main/java/com/auv/locker/model/storage/GetCellListResponse.java new file mode 100644 index 0000000..3c2ff16 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/GetCellListResponse.java @@ -0,0 +1,23 @@ +package com.auv.locker.model.storage; + +/** + * 获取格子列表响应元素 (resultObject 数组元素)。 + */ +public class GetCellListResponse { + + private Integer cellId; + private Integer type; // 1-小格, 2-大格 + private String orderId; + private String createTime; + private Integer isPreOrder; + private String expiryTime; + private Integer lockOpen; // 1-已锁定, 0-未锁定 + + public Integer getCellId() { return cellId; } + public Integer getType() { return type; } + public String getOrderId() { return orderId; } + public String getCreateTime() { return createTime; } + public Integer getIsPreOrder() { return isPreOrder; } + public String getExpiryTime() { return expiryTime; } + public Integer getLockOpen() { return lockOpen; } +} diff --git a/src/main/java/com/auv/locker/model/storage/GetDeviceInfoRequest.java b/src/main/java/com/auv/locker/model/storage/GetDeviceInfoRequest.java new file mode 100644 index 0000000..8979a2c --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/GetDeviceInfoRequest.java @@ -0,0 +1,30 @@ +package com.auv.locker.model.storage; + +/** + * 获取设备信息请求。 + * method: getDeviceInfo + */ +public class GetDeviceInfoRequest { + + private final String deviceId; + + private GetDeviceInfoRequest(Builder builder) { + this.deviceId = builder.deviceId; + } + + public String getDeviceId() { return deviceId; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + + public GetDeviceInfoRequest build() { + return new GetDeviceInfoRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/GetDeviceInfoResponse.java b/src/main/java/com/auv/locker/model/storage/GetDeviceInfoResponse.java new file mode 100644 index 0000000..0329836 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/GetDeviceInfoResponse.java @@ -0,0 +1,23 @@ +package com.auv.locker.model.storage; + +/** + * 获取设备信息响应 (resultObject)。 + */ +public class GetDeviceInfoResponse { + + private String deviceId; + private String deviceName; + private Integer smallTotal; + private Integer bigTotal; + private Integer small; + private Integer big; + private String lgdeLade; // 百度地图经纬度信息 + + public String getDeviceId() { return deviceId; } + public String getDeviceName() { return deviceName; } + public Integer getSmallTotal() { return smallTotal; } + public Integer getBigTotal() { return bigTotal; } + public Integer getSmall() { return small; } + public Integer getBig() { return big; } + public String getLgdeLade() { return lgdeLade; } +} diff --git a/src/main/java/com/auv/locker/model/storage/GetOrderListRequest.java b/src/main/java/com/auv/locker/model/storage/GetOrderListRequest.java new file mode 100644 index 0000000..fec508f --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/GetOrderListRequest.java @@ -0,0 +1,55 @@ +package com.auv.locker.model.storage; + +/** + * 查询存餐订单请求。 + * method: getOrderList + */ +public class GetOrderListRequest { + + private final Integer status; + private final Integer page; + private final String deviceId; + private final Integer orderId; + private final String timeStart; + private final String timeEnd; + + private GetOrderListRequest(Builder builder) { + this.status = builder.status; + this.page = builder.page; + this.deviceId = builder.deviceId; + this.orderId = builder.orderId; + this.timeStart = builder.timeStart; + this.timeEnd = builder.timeEnd; + } + + public Integer getStatus() { return status; } + public Integer getPage() { return page; } + public String getDeviceId() { return deviceId; } + public Integer getOrderId() { return orderId; } + public String getTimeStart() { return timeStart; } + public String getTimeEnd() { return timeEnd; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private Integer status; + private Integer page = 1; + private String deviceId; + private Integer orderId; + private String timeStart; + private String timeEnd; + + public Builder status(Integer status) { this.status = status; return this; } + public Builder page(Integer page) { this.page = page; return this; } + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder orderId(Integer orderId) { this.orderId = orderId; return this; } + public Builder timeStart(String timeStart) { this.timeStart = timeStart; return this; } + public Builder timeEnd(String timeEnd) { this.timeEnd = timeEnd; return this; } + + public GetOrderListRequest build() { + return new GetOrderListRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/GetOrderListResponse.java b/src/main/java/com/auv/locker/model/storage/GetOrderListResponse.java new file mode 100644 index 0000000..d916d89 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/GetOrderListResponse.java @@ -0,0 +1,41 @@ +package com.auv.locker.model.storage; + +/** + * 查询存餐订单响应 (resultObject)。 + */ +public class GetOrderListResponse { + + private Integer total; + private Integer per_page; + private Integer current_page; + private Integer last_page; + private java.util.List data; + + public Integer getTotal() { return total; } + public Integer getPerPage() { return per_page; } + public Integer getCurrentPage() { return current_page; } + public Integer getLastPage() { return last_page; } + public java.util.List getData() { return data; } + + public static class OrderItem { + private Integer id; + private String shopOrderId; + private String deviceId; + private String cellId; + private Integer status; // 1-待取, 2-已取, 3-已撤餐 + private String createTime; + private String takeTime; + private Integer preOrder; + private String expiryTime; + + public Integer getId() { return id; } + public String getShopOrderId() { return shopOrderId; } + public String getDeviceId() { return deviceId; } + public String getCellId() { return cellId; } + public Integer getStatus() { return status; } + public String getCreateTime() { return createTime; } + public String getTakeTime() { return takeTime; } + public Integer getPreOrder() { return preOrder; } + public String getExpiryTime() { return expiryTime; } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/OrderStatusNotify.java b/src/main/java/com/auv/locker/model/storage/OrderStatusNotify.java new file mode 100644 index 0000000..13bd7e4 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/OrderStatusNotify.java @@ -0,0 +1,28 @@ +package com.auv.locker.model.storage; + +/** + * 订单状态被动变更通知回调参数模型。 + * notifyType: orderCompleted / orderCancel + */ +public class OrderStatusNotify { + + private String appId; + private String charset; + private String deviceId; + private String notifyTime; + private String notifyType; // orderCompleted / orderCancel + private String signType; + private String version; + private String notifyContent; // JSON string of takeByCode response + private String sign; + + public String getAppId() { return appId; } + public String getCharset() { return charset; } + public String getDeviceId() { return deviceId; } + public String getNotifyTime() { return notifyTime; } + public String getNotifyType() { return notifyType; } + public String getSignType() { return signType; } + public String getVersion() { return version; } + public String getNotifyContent() { return notifyContent; } + public String getSign() { return sign; } +} diff --git a/src/main/java/com/auv/locker/model/storage/ReOpenDoorRequest.java b/src/main/java/com/auv/locker/model/storage/ReOpenDoorRequest.java new file mode 100644 index 0000000..d5186ba --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/ReOpenDoorRequest.java @@ -0,0 +1,41 @@ +package com.auv.locker.model.storage; + +/** + * 临时开门请求。 + * method: reOpenDoor + * 注意:存餐或取餐成功的 60 秒内有效。 + */ +public class ReOpenDoorRequest { + + private final String orderId; + private final String deviceId; + private final String type; // save / take + + private ReOpenDoorRequest(Builder builder) { + this.orderId = builder.orderId; + this.deviceId = builder.deviceId; + this.type = builder.type; + } + + public String getOrderId() { return orderId; } + public String getDeviceId() { return deviceId; } + public String getType() { return type; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String orderId; + private String deviceId; + private String type; + + public Builder orderId(String orderId) { this.orderId = orderId; return this; } + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder type(String type) { this.type = type; return this; } + + public ReOpenDoorRequest build() { + return new ReOpenDoorRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/ReOpenDoorResponse.java b/src/main/java/com/auv/locker/model/storage/ReOpenDoorResponse.java new file mode 100644 index 0000000..a4f0fd5 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/ReOpenDoorResponse.java @@ -0,0 +1,11 @@ +package com.auv.locker.model.storage; + +/** + * 临时开门响应 (resultObject)。 + */ +public class ReOpenDoorResponse { + + private Boolean result; + + public Boolean getResult() { return result; } +} diff --git a/src/main/java/com/auv/locker/model/storage/TakeByCodeRequest.java b/src/main/java/com/auv/locker/model/storage/TakeByCodeRequest.java new file mode 100644 index 0000000..44615a5 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/TakeByCodeRequest.java @@ -0,0 +1,35 @@ +package com.auv.locker.model.storage; + +/** + * 根据取餐码取餐请求。 + * method: takeByCode + */ +public class TakeByCodeRequest { + + private final String deviceId; + private final String code; + + private TakeByCodeRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.code = builder.code; + } + + public String getDeviceId() { return deviceId; } + public String getCode() { return code; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + private String code; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder code(String code) { this.code = code; return this; } + + public TakeByCodeRequest build() { + return new TakeByCodeRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/TakeByOrderRequest.java b/src/main/java/com/auv/locker/model/storage/TakeByOrderRequest.java new file mode 100644 index 0000000..9b5e032 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/TakeByOrderRequest.java @@ -0,0 +1,35 @@ +package com.auv.locker.model.storage; + +/** + * 根据订单取餐请求。 + * method: takeByOrder + */ +public class TakeByOrderRequest { + + private final String deviceId; + private final String orderId; + + private TakeByOrderRequest(Builder builder) { + this.deviceId = builder.deviceId; + this.orderId = builder.orderId; + } + + public String getDeviceId() { return deviceId; } + public String getOrderId() { return orderId; } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String deviceId; + private String orderId; + + public Builder deviceId(String deviceId) { this.deviceId = deviceId; return this; } + public Builder orderId(String orderId) { this.orderId = orderId; return this; } + + public TakeByOrderRequest build() { + return new TakeByOrderRequest(this); + } + } +} diff --git a/src/main/java/com/auv/locker/model/storage/TakeByOrderResponse.java b/src/main/java/com/auv/locker/model/storage/TakeByOrderResponse.java new file mode 100644 index 0000000..d18d373 --- /dev/null +++ b/src/main/java/com/auv/locker/model/storage/TakeByOrderResponse.java @@ -0,0 +1,17 @@ +package com.auv.locker.model.storage; + +/** + * 根据订单取餐 / 根据取餐码取餐响应 (resultObject)。 + */ +public class TakeByOrderResponse { + + private String deviceId; + private String orderId; + private String shopOrderId; + private String cellId; + + public String getDeviceId() { return deviceId; } + public String getOrderId() { return orderId; } + public String getShopOrderId() { return shopOrderId; } + public String getCellId() { return cellId; } +} diff --git a/src/main/java/com/auv/locker/service/AuxApiService.java b/src/main/java/com/auv/locker/service/AuxApiService.java new file mode 100644 index 0000000..4adc598 --- /dev/null +++ b/src/main/java/com/auv/locker/service/AuxApiService.java @@ -0,0 +1,29 @@ +package com.auv.locker.service; + +import com.auv.locker.model.aux.*; + +/** + * 辅助功能 API 服务接口。 + */ +public interface AuxApiService { + + /** + * 单元格操作(单指令)。 + */ + AuxCellOpResponse cellOp(CellOpRequest request); + + /** + * 单元格操作(多指令,仅安卓方案支持)。 + */ + AuxCellOpResponse cellsOps(CellsOpsRequest request); + + /** + * 设备状态查询。 + */ + AuxCellOpResponse queryDeviceStatus(DeviceStatusQueryRequest request); + + /** + * 设备列表查询。 + */ + AuxDeviceListQueryResponse queryDeviceList(DeviceListQueryRequest request); +} diff --git a/src/main/java/com/auv/locker/service/AuxApiServiceImpl.java b/src/main/java/com/auv/locker/service/AuxApiServiceImpl.java new file mode 100644 index 0000000..ce4e3c0 --- /dev/null +++ b/src/main/java/com/auv/locker/service/AuxApiServiceImpl.java @@ -0,0 +1,110 @@ +package com.auv.locker.service; + +import com.auv.locker.config.AuvConfig; +import com.auv.locker.http.AuvHttpClient; +import com.auv.locker.model.aux.*; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * 辅助功能 API 实现。 + */ +public class AuxApiServiceImpl implements AuxApiService { + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + private final AuvHttpClient httpClient; + private final AuvConfig config; + + public AuxApiServiceImpl(AuvHttpClient httpClient, AuvConfig config) { + this.httpClient = httpClient; + this.config = config; + } + + private AuxCellOpResponse doRequest(String method, String bizDataJson) { + try { + com.auv.locker.model.common.AuvResponse raw = httpClient.get(config.getAuxBaseUrl(), method, bizDataJson); + if (raw.isSuccess() && raw.getResultObject() != null && !raw.getResultObject().isNull()) { + return new AuxCellOpResponse(raw.getResultObject().toString(), + raw.getCode(), raw.getMsg(), true); + } + return new AuxCellOpResponse(null, raw.getCode(), raw.getMsg(), false); + } catch (Exception e) { + throw new RuntimeException("aux api " + method + " failed: " + e.getMessage(), e); + } + } + + private AuxDeviceListQueryResponse doListRequest(String method, String bizDataJson) { + try { + com.auv.locker.model.common.AuvResponse raw = httpClient.get(config.getAuxBaseUrl(), method, bizDataJson); + if (raw.isSuccess() && raw.getResultObject() != null && !raw.getResultObject().isNull()) { + JsonNode data = raw.getResultObject(); + DeviceListQueryResponse resp = MAPPER.convertValue(data, DeviceListQueryResponse.class); + return new AuxDeviceListQueryResponse(MAPPER.writeValueAsString(resp), + raw.getCode(), raw.getMsg(), true); + } + return new AuxDeviceListQueryResponse(null, raw.getCode(), raw.getMsg(), false); + } catch (Exception e) { + throw new RuntimeException("aux api " + method + " failed: " + e.getMessage(), e); + } + } + + @Override + public AuxCellOpResponse cellOp(CellOpRequest request) { + try { + String bizDataJson = MAPPER.writeValueAsString( + new java.util.LinkedHashMap() {{ + put("deviceId", request.getDeviceId()); + put("cellNo", request.getCellNo()); + put("op", request.getOp()); + }}); + return doRequest("device.cell.op", bizDataJson); + } catch (Exception e) { + throw new RuntimeException("cellOp failed: " + e.getMessage(), e); + } + } + + @Override + public AuxCellOpResponse cellsOps(CellsOpsRequest request) { + try { + String bizDataJson = MAPPER.writeValueAsString( + new java.util.LinkedHashMap() {{ + put("deviceId", request.getDeviceId()); + put("opList", request.getOpList()); + }}); + return doRequest("device.cells.ops", bizDataJson); + } catch (Exception e) { + throw new RuntimeException("cellsOps failed: " + e.getMessage(), e); + } + } + + @Override + public AuxCellOpResponse queryDeviceStatus(DeviceStatusQueryRequest request) { + try { + String bizDataJson = MAPPER.writeValueAsString( + new java.util.LinkedHashMap() {{ + put("deviceId", request.getDeviceId()); + if (request.getCells() != null && !request.getCells().isEmpty()) { + put("cells", request.getCells()); + } + }}); + return doRequest("device.status.query", bizDataJson); + } catch (Exception e) { + throw new RuntimeException("queryDeviceStatus failed: " + e.getMessage(), e); + } + } + + @Override + public AuxDeviceListQueryResponse queryDeviceList(DeviceListQueryRequest request) { + try { + String bizDataJson = MAPPER.writeValueAsString( + new java.util.LinkedHashMap() {{ + put("pageSize", request.getPageSize()); + put("pageNo", request.getPageNo()); + }}); + return doListRequest("device.list.query", bizDataJson); + } catch (Exception e) { + throw new RuntimeException("queryDeviceList failed: " + e.getMessage(), e); + } + } +} diff --git a/src/main/java/com/auv/locker/service/StorageApiService.java b/src/main/java/com/auv/locker/service/StorageApiService.java new file mode 100644 index 0000000..e4f12ec --- /dev/null +++ b/src/main/java/com/auv/locker/service/StorageApiService.java @@ -0,0 +1,67 @@ +package com.auv.locker.service; + +import com.auv.locker.model.common.AuvResponse; +import com.auv.locker.model.storage.*; + +/** + * 存取业务 API 服务接口。 + * + * 所有方法返回 AuvResponse,调用者通过 response.isSuccess() 判断成功与否。 + */ +public interface StorageApiService { + + /** + * 创建存餐订单。 + */ + AuvResponse createOrder(CreateOrderRequest request); + + /** + * 为现有订单增加格子。 + */ + AuvResponse addCell(AddCellRequest request); + + /** + * 撤餐操作。 + */ + AuvResponse cancelOrder(CancelOrderRequest request); + + /** + * 根据订单取餐。 + */ + AuvResponse takeByOrder(TakeByOrderRequest request); + + /** + * 根据取餐码取餐。 + */ + AuvResponse takeByCode(TakeByCodeRequest request); + + /** + * 临时开门(60 秒内有效)。 + */ + AuvResponse reOpenDoor(ReOpenDoorRequest request); + + /** + * 获取设备信息。 + */ + AuvResponse getDeviceInfo(GetDeviceInfoRequest request); + + /** + * 获取格子列表。 + */ + AuvResponse> getCellList(GetCellListRequest request); + + /** + * 查询存餐订单。 + */ + AuvResponse getOrderList(GetOrderListRequest request); + + /** + * 创建预订单。 + */ + AuvResponse createPreOrder(CreatePreOrderRequest request); + + /** + * 预订单转正式单。 + */ + AuvResponse changePreorderToFormal(ChangePreorderToFormalRequest request); +} diff --git a/src/main/java/com/auv/locker/service/StorageApiServiceImpl.java b/src/main/java/com/auv/locker/service/StorageApiServiceImpl.java new file mode 100644 index 0000000..8230859 --- /dev/null +++ b/src/main/java/com/auv/locker/service/StorageApiServiceImpl.java @@ -0,0 +1,196 @@ +package com.auv.locker.service; + +import com.auv.locker.config.AuvConfig; +import com.auv.locker.http.AuvHttpClient; +import com.auv.locker.model.common.AuvResponse; +import com.auv.locker.model.storage.*; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * 存取业务 API 实现。 + */ +public class StorageApiServiceImpl implements StorageApiService { + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + private final AuvHttpClient httpClient; + private final AuvConfig config; + + public StorageApiServiceImpl(AuvHttpClient httpClient, AuvConfig config) { + this.httpClient = httpClient; + this.config = config; + } + + @SuppressWarnings("unchecked") + private AuvResponse doRequest(String method, + com.auv.locker.model.common.AuvRequestBuilder builder, + Class resultType) { + String bizData = builder.build(); + AuvResponse raw = httpClient.get(config.getStorageBaseUrl(), method, bizData); + if (raw.isSuccess() && raw.getResultObject() != null && !raw.getResultObject().isNull()) { + AuvResponse resp = new AuvResponse(); + resp.setCode(raw.getCode()); + resp.setMsg(raw.getMsg()); + resp.setSuccess(raw.getSuccess()); + JsonNode node = raw.getResultObject(); + Object result = MAPPER.convertValue(node, resultType); + resp.setResultObject(MAPPER.valueToTree(result)); + return resp; + } + return raw; + } + + @SuppressWarnings("unchecked") + private AuvResponse doListRequest(String method, + com.auv.locker.model.common.AuvRequestBuilder builder) { + String bizData = builder.build(); + AuvResponse raw = httpClient.get(config.getStorageBaseUrl(), method, bizData); + if (raw.isSuccess() && raw.getResultObject() != null && !raw.getResultObject().isNull()) { + AuvResponse resp = new AuvResponse(); + resp.setCode(raw.getCode()); + resp.setMsg(raw.getMsg()); + resp.setSuccess(raw.getSuccess()); + JsonNode node = raw.getResultObject(); + java.util.List list = MAPPER.convertValue( + node, + new com.fasterxml.jackson.core.type.TypeReference>() {}); + resp.setResultObject(MAPPER.valueToTree(list)); + return resp; + } + return raw; + } + + @Override + public AuvResponse createOrder(CreateOrderRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = request.toBuilder(); + AuvResponse resp = (AuvResponse) doRequest("createOrder", builder, CreateOrderResponse.class); + return wrap(resp, CreateOrderResponse.class); + } + + @Override + public AuvResponse addCell(AddCellRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = request.toBuilder(); + AuvResponse resp = (AuvResponse) doRequest("addCell", builder, AddCellResponse.class); + return wrap(resp, AddCellResponse.class); + } + + @Override + public AuvResponse cancelOrder(CancelOrderRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addString("deviceId", request.getDeviceId()) + .addString("orderId", request.getOrderId()); + AuvResponse resp = (AuvResponse) doRequest("cancelOrder", builder, CancelOrderResponse.class); + return wrap(resp, CancelOrderResponse.class); + } + + @Override + public AuvResponse takeByOrder(TakeByOrderRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addString("deviceId", request.getDeviceId()) + .addString("orderId", request.getOrderId()); + AuvResponse resp = (AuvResponse) doRequest("takeByOrder", builder, TakeByOrderResponse.class); + return wrap(resp, TakeByOrderResponse.class); + } + + @Override + public AuvResponse takeByCode(TakeByCodeRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addString("deviceId", request.getDeviceId()) + .addString("code", request.getCode()); + AuvResponse resp = (AuvResponse) doRequest("takeByCode", builder, TakeByOrderResponse.class); + return wrap(resp, TakeByOrderResponse.class); + } + + @Override + public AuvResponse reOpenDoor(ReOpenDoorRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addString("orderId", request.getOrderId()) + .addString("deviceId", request.getDeviceId()) + .addString("type", request.getType()); + AuvResponse resp = (AuvResponse) doRequest("reOpenDoor", builder, ReOpenDoorResponse.class); + return wrap(resp, ReOpenDoorResponse.class); + } + + @Override + public AuvResponse getDeviceInfo(GetDeviceInfoRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addString("deviceId", request.getDeviceId()); + AuvResponse resp = (AuvResponse) doRequest("getDeviceInfo", builder, GetDeviceInfoResponse.class); + return wrap(resp, GetDeviceInfoResponse.class); + } + + @Override + public AuvResponse> getCellList(GetCellListRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addString("deviceId", request.getDeviceId()); + AuvResponse resp = (AuvResponse) doListRequest("getCellList", builder); + return wrapList(resp); + } + + @Override + public AuvResponse getOrderList(GetOrderListRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addInt("status", request.getStatus()) + .addInt("page", request.getPage()) + .addString("deviceId", request.getDeviceId()) + .addInt("orderId", request.getOrderId()) + .addString("timeStart", request.getTimeStart()) + .addString("timeEnd", request.getTimeEnd()); + AuvResponse resp = (AuvResponse) doRequest("getOrderList", builder, GetOrderListResponse.class); + return wrap(resp, GetOrderListResponse.class); + } + + @Override + public AuvResponse createPreOrder(CreatePreOrderRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addString("deviceId", request.getDeviceId()) + .addString("shopOrderId", request.getShopOrderId()) + .addInt("type", request.getType()) + .addString("expiryTime", request.getExpiryTime()) + .addString("isWarm", request.getIsWarm()) + .addString("isLight", request.getIsLight()) + .addString("isDisinfect", request.getIsDisinfect()) + .addString("takeCode", request.getTakeCode()) + .addString("cellId", request.getCellId()); + AuvResponse resp = (AuvResponse) doRequest("createPreOrder", builder, CreatePreOrderResponse.class); + return wrap(resp, CreatePreOrderResponse.class); + } + + @Override + public AuvResponse changePreorderToFormal(ChangePreorderToFormalRequest request) { + com.auv.locker.model.common.AuvRequestBuilder builder = new com.auv.locker.model.common.AuvRequestBuilder() + .addInt("id", request.getId()) + .addString("deviceId", request.getDeviceId()); + AuvResponse resp = (AuvResponse) doRequest("changePreorderToFormal", builder, ChangePreorderToFormalResponse.class); + return wrap(resp, ChangePreorderToFormalResponse.class); + } + + @SuppressWarnings("unchecked") + private AuvResponse wrap(AuvResponse raw, Class type) { + AuvResponse resp = new AuvResponse<>(); + resp.setCode(raw.getCode()); + resp.setMsg(raw.getMsg()); + resp.setSuccess(raw.getSuccess()); + if (raw.getResultObject() != null && !raw.getResultObject().isNull()) { + T result = MAPPER.convertValue(raw.getResultObject(), type); + resp.setResultObject(MAPPER.valueToTree(result)); + } + return resp; + } + + @SuppressWarnings("unchecked") + private AuvResponse> wrapList(AuvResponse raw) { + AuvResponse> resp = new AuvResponse<>(); + resp.setCode(raw.getCode()); + resp.setMsg(raw.getMsg()); + resp.setSuccess(raw.getSuccess()); + if (raw.getResultObject() != null && !raw.getResultObject().isNull()) { + java.util.List list = MAPPER.convertValue( + raw.getResultObject(), + new com.fasterxml.jackson.core.type.TypeReference>() {}); + resp.setResultObject(MAPPER.valueToTree(list)); + } + return resp; + } +} diff --git a/src/test/java/com/auv/locker/AuvClientTest.java b/src/test/java/com/auv/locker/AuvClientTest.java new file mode 100644 index 0000000..4cf8056 --- /dev/null +++ b/src/test/java/com/auv/locker/AuvClientTest.java @@ -0,0 +1,116 @@ +package com.auv.locker; + +import com.auv.locker.config.AuvConfig; +import com.auv.locker.config.GatewayType; +import com.auv.locker.http.HmacMD5Util; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class AuvClientTest { + + @Test + public void testBuilderBuildsClient() { + AuvClient client = AuvClient.builder() + .appId("test-app") + .secretKey("test-secret") + .build(); + assertNotNull(client); + client.close(); + } + + @Test + public void testBuilderWithCustomTimeouts() { + AuvClient client = AuvClient.builder() + .appId("test") + .secretKey("test") + .connectTimeoutMs(3000) + .socketTimeoutMs(15000) + .connectionRequestTimeoutMs(8000) + .build(); + assertNotNull(client); + client.close(); + } + + @Test + public void testBuilderWithCustomBaseUrls() { + AuvClient client = AuvClient.builder() + .appId("test") + .secretKey("test") + .storageBaseUrl("http://custom.storage/gateway") + .auxBaseUrl("http://custom.aux/api") + .build(); + assertNotNull(client); + client.close(); + } + + @Test(expected = IllegalArgumentException.class) + public void testBuilderWithoutAppIdThrows() { + AuvClient.builder() + .secretKey("test") + .build(); + } + + @Test(expected = IllegalArgumentException.class) + public void testBuilderWithoutSecretKeyThrows() { + AuvClient.builder() + .appId("test") + .build(); + } + + @Test + public void testAuvConfigDefaultStorageBaseUrl() { + AuvConfig config = AuvConfig.builder() + .appId("test") + .secretKey("test") + .build(); + assertEquals("https://plat.58auv.com/OpenApi", config.getStorageBaseUrl()); + } + + @Test + public void testAuvConfigDefaultAuxBaseUrl() { + AuvConfig config = AuvConfig.builder() + .appId("test") + .secretKey("test") + .build(); + assertEquals("https://openapi.58auv.com/gateway.do", config.getAuxBaseUrl()); + } + + @Test + public void testAuvConfigCustomBaseUrl() { + AuvConfig config = AuvConfig.builder() + .appId("test") + .secretKey("test") + .customStorageBaseUrl("http://custom.storage/api") + .customAuxBaseUrl("http://custom.aux/api") + .build(); + assertEquals("http://custom.storage/api", config.getStorageBaseUrl()); + assertEquals("http://custom.aux/api", config.getAuxBaseUrl()); + } + + @Test + public void testGatewayTypeStorage() { + assertEquals("plat.58auv.com", GatewayType.STORAGE.getHost()); + assertEquals("/OpenApi", GatewayType.STORAGE.getPath()); + } + + @Test + public void testGatewayTypeAux() { + assertEquals("openapi.58auv.com", GatewayType.AUX.getHost()); + assertEquals("/gateway.do", GatewayType.AUX.getPath()); + } + + @Test + public void testHmacMD5SignWithRealParams() { + java.util.TreeMap params = new java.util.TreeMap<>(); + params.put("appId", "66666"); + params.put("method", "createOrder"); + params.put("timestamp", "2024-01-01 12:00:00"); + params.put("version", "1.0"); + params.put("bizData", "{\"deviceId\":\"12345\"}"); + String content = HmacMD5Util.buildSignContent(params); + String sign = HmacMD5Util.sign(content, "testSecret"); + assertNotNull(sign); + assertEquals(32, sign.length()); + } +} diff --git a/src/test/java/com/auv/locker/HmacMD5UtilTest.java b/src/test/java/com/auv/locker/HmacMD5UtilTest.java new file mode 100644 index 0000000..f245efb --- /dev/null +++ b/src/test/java/com/auv/locker/HmacMD5UtilTest.java @@ -0,0 +1,87 @@ +package com.auv.locker; + +import com.auv.locker.http.HmacMD5Util; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import java.util.TreeMap; + +import static org.junit.Assert.*; + +public class HmacMD5UtilTest { + + @Rule + public ExpectedException exceptionRule = ExpectedException.none(); + + @Test + public void testSignGeneratesHexDigest() { + String result = HmacMD5Util.sign("hello", "secret"); + assertNotNull(result); + assertEquals(32, result.length()); + assertFalse(result.isEmpty()); + // verify all chars are lowercase hex + for (char c : result.toCharArray()) { + assertTrue((c >= 'a' && c <= 'f') || (c >= '0' && c <= '9')); + } + } + + @Test + public void testSignDeterministic() { + String s1 = HmacMD5Util.sign("hello", "secret"); + String s2 = HmacMD5Util.sign("hello", "secret"); + assertEquals(s1, s2); + } + + @Test + public void testSignDifferentKeyDifferentResult() { + String s1 = HmacMD5Util.sign("hello", "secret1"); + String s2 = HmacMD5Util.sign("hello", "secret2"); + assertNotEquals(s1, s2); + } + + @Test + public void testSignDifferentContentDifferentResult() { + String s1 = HmacMD5Util.sign("hello", "secret"); + String s2 = HmacMD5Util.sign("world", "secret"); + assertNotEquals(s1, s2); + } + + @Test + public void testBuildSignContent() { + TreeMap params = new TreeMap<>(); + params.put("b", "2"); + params.put("a", "1"); + params.put("c", "3"); + String result = HmacMD5Util.buildSignContent(params); + assertEquals("a=1&b=2&c=3", result); + } + + @Test + public void testBuildSignContentWithEmptyMap() { + TreeMap params = new TreeMap<>(); + String result = HmacMD5Util.buildSignContent(params); + assertEquals("", result); + } + + @Test + public void testBuildSignContentWithNullValue() { + TreeMap params = new TreeMap<>(); + params.put("a", "1"); + params.put("b", null); + String result = HmacMD5Util.buildSignContent(params); + assertEquals("a=1&b=null", result); + } + + @Test + public void testSignWithNullSecretThrows() { + exceptionRule.expect(RuntimeException.class); + HmacMD5Util.sign("hello", null); + } + + @Test + public void testSignWithNullContentThrows() { + exceptionRule.expect(RuntimeException.class); + HmacMD5Util.sign(null, "secret"); + } +} diff --git a/target/classes/com/auv/locker/AuvClient$1.class b/target/classes/com/auv/locker/AuvClient$1.class new file mode 100644 index 0000000000000000000000000000000000000000..53adcb63c3c9a9878ee785e96b41a60f00d26fcb GIT binary patch literal 205 zcmZ`zK?=e!5S-O&Y8CBKJbCbJ5d44?1rOrE7sME9YfPYN`#29iz(E zyxxx|fHj5!LSR5hPQIzM*%j6h#+#AR)}Ozf0A$ z(t3R}mHe3&E5c~+oT)OaLNI}lesiQ%E|?7P{On5mE5(teW2i){Q+J;w>7I1MM#UUvlU`AF{BarPNTPgJU zwLhnwX$%81{n*a*H!)1l%5IXeEs`&1b@%Qb?cIA;qkrGM{tLh-*ofmeK8;}*R|IAS zJ`?y{;0u8{fva&`!}T~W;fBCXfq8)ifklBY1-=rvrQvoQDcsSJ*YLGM)Y#g}Zz`k; zPmFCN=NQ#;uGnzxYI#l}R<}&oYTUJ6C=ApaHPY)`!+XBFNSd{3)iN7v zcEzfBjitJR$}0@kYvxmHzc<|uv}@IS)-%tl@89gZYFF*Xb%k(dYF#0+SlhHnQn0Jm zvR5ft?wV0@=t&i7rs1p`t}W}fGtzi$^R?Q7XFHpgtB}aEBzMs<>UE17=L=@7k~6&R zoFhfKxp{AU(Xp*+W1^kH6JN=6_hITVi5D~ZL&Zf)Ql7$@OmH~sILbDCXP4WBX}GJ< z72gW+kKqUJJ4Rn?Phq^X_Rb`ESFvH3PnV1>zmfjC;>DWhn$|5_x;?PlsLP^}1kPbB zff1ZZ;H-idF6eD zv7r6`Pp**MQ}Iga2?ePz*^$-RfxYB&2Sid_{_TmlvfcL=M9danJB+N}lRw=8|NM4zT-cM#Qo=VJ&$75CjmM6u>m zoM?r$Ddc!^IDQ*>xSnKvU1Z;q>_GsTbV$ff_a@W2$R3jHQ2?2=S;*48$@;s;5K^8`&m?mfj%sU|PMzG3i>^SDH?(0ozp6_ZYx)4$lkL@&oJqk#hYBv-lae@e2z0 z)vtZ5RaIMwlgMEjmsxXxJUM(woz9RihR|EgYWQf7j*saG@kitX+BDOLIT;rja*6*N KV%O+Lvj0D$TEQIv literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/AuvClient.class b/target/classes/com/auv/locker/AuvClient.class new file mode 100644 index 0000000000000000000000000000000000000000..e691cd7ffbaa5d0e27f336a240767f8e197e0d4a GIT binary patch literal 1658 zcmah~+fv$46kUf~AVx)Oy;WPR)B;{2YOh!o>CFzU4|JUIF~n4(F=0Z&@JD^EGqujt znSMY&s?&WEq&0}XWS@Pq);fEyeF(q*{QL!A6bSQasa6#=Uv!dOnw&JzJoMa1xo zC(i}E5Rvecmja3+B&=}knt)dV)&*<`*kq8lO;fYWhSF$g4F+M$)s214W)Ke@r(QO6 z&2$)MDynrND{fOZEcIBkW&Tnwxy|<-P?5+D$Fh|JjUgYzH#EDctD0Q(5v96b^>>IC zR@@fDY%fa5ZC!!K)^t;M))_L{AVsyzFZuzmtL&|cxm|`x+1jU)1}nO$eR5A~n*CX+ z8MKqCSgK;|Dz?t^_GZL6)X9g5pfuO?%%Fl}{y7ZOK~z@(WJ>MQ(M&cM#CKFPZQn_K zz8iLvd)eObpmR~xuo~2OILm$MuR4l){86cUoztyg*u34*-W?P?w?nNZhES`(FnJS{ z?pM`vZB=`#^HB_Rj95HUnu>&bnB36Jr> zd*_MM-ZW)&3?34a(dR5fNWX-%R{#*dfV6jx{%?e1o^p&Lut3jI()7_XMZO!Q+TtAQ z7vV!!y+b7*&_0x5oQmlt_XWwtYsobKHhG64??&RT{J_9hL@KA=Q36B^lI7eD(Zg(^ z59R;#q;@fRLI?-RO~Nu_;6TZ&I|!84Pu79o>D Zh>Yis6fjINMXMA=B;)j#k;EM&{sI#dd+-1N literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/config/AuvConfig$1.class b/target/classes/com/auv/locker/config/AuvConfig$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ce90241aacaae03e096d1ecb021fcca24c8fd479 GIT binary patch literal 219 zcmah@OAY}+6s*V4V+eBtB-T0-7mx{wg;+R2Yi-PE-O2n8XW;-2B_0b~ukxz$l2?^_ zzU~hIOY{YVK#vd|d|ha>$*ds^S9Ozkch1szt{O!ct(~^M%v`!N)y1C#BEnSrn^bip zt=CsmNd0xlpLez(47SdhBC)D0O-YD9andT6%Kb4nx+0AKq{I^tT3q%sZ3g%X&|wYG NWe#~G{vlSx;TvGXHje-R literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/config/AuvConfig$Builder.class b/target/classes/com/auv/locker/config/AuvConfig$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..49a0529528f470bd0e3697845340fe42fc58ddda GIT binary patch literal 2988 zcmb7`-Bue_6vzK3Buo-Q38AGe*ftcDkYWQZ1udm~Noi~VODIa~g~Mr%&~aP zVxGkUi$xYoESBTw!zVGU;7J^-c&Z>D#iwy3@GOdgg0(o3SXZ#2;4^`UTB+ps1X6{4 z^-#?js#(ev9a}d`vjVZI)NJWIlg9#GCDoDNs>fT$6)7-W(5!M!tsUkJOFNKuPP5F{ zdMUTsyhQq!wOZA&%0;RY2qgda6wK zo(_;9zNlN~ru?QRtKN^Dk91Ra9t(72#wN7T0rJ8Q+Nn0S1CrkFSp;oJsK8yuCd9il5>^^>^p-B&)%e02`BKqr@ z0At?xUIaLv$zSApWS4_LY0kV;i(cDZbX4tNO|3K{8CNw;R;wcu6BBMI{7a=ZZey)M z69^p<OSceXpr0@8$t-#)C5CW0wl~%;#w@XvWQy{#Cr+cU@^#I09O*Y&f+SrCD6~mF0;6Ww1VdeY~q@NVgg%uA#l6d z(s{#>CDmB8OSQ5zos}a^R=9@*Zn*;>U8YV=o0gN_m1(nP7-`E+%W}mzW;XTG@cAeR zzDh9v2%o=-VP6Q0zT?_iC()>AK4D{bpZZ>4$Y0r$MQY;W*2d=I>dL$ZX&fsOXF9MG`mPam0_<(U-Vz2_Q+Xo&aG$d4k#$)#T*&a}Hy+TE3E zz+I^z+?A@sU8z*umFkAp6euM~lN_SmE8+-Rhq9-LWq(2Z1fAL5zVA=ak?kE#o*-1; ziJx7>ZIb0{S)21yg}Cw=zfdD zPOAG9m;RtLrT$6reCpv(Z;{-|ic|D*d^+3$t=IcLdT~JEER!V@)2O%})$4tsQLG=5 zPA9^>v1BY6#a-kYKJm&vMcA2U;5*&J84oCe32q!xp7d2#+Ec!V`#zRC+f$zMwH#?r z`GK!;xIN`*8Y=Z9dIQ$+BSo%0D*i8EANeYW+Ef16S6Q^7OrAY-{hP%Hw5DjEqJO2| MM~qsN{*uvu0QgZZ2mk;8 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/config/AuvConfig.class b/target/classes/com/auv/locker/config/AuvConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..b6f265a3c1380510900e6de543ffff398fd30b57 GIT binary patch literal 2803 zcmb7GSyLNF5dKC2oeKhi!6uwB4oKJtY<$GnP6W0w;j$4BL(XLxiv^*TwJQuc-t%Mf z;G`l*#Z`XHLw-~$-K%R$tOC|Uch78p-93HG=%0W8dJkX zp2mASenh*v>&?y%6v8}^RpS%G^HuvpDE~>9hnzsR&%-e9f9cLo_eSzGHN!R zNLhJ3o1PX3no`S4Ye60hgwv`e->AoH$2lo*bx|`85^CWvkukJ=nNMg&_LZJa%+-_# z->DT$%Q#3`MqW+J8P$~Q`HVnYX**dsa%>qCpk}S<2hu25OBAD+7l@c_-MQOCj#yDQ zva9lSL7L8wz6W|%w;l;xA8im{vT!(SM><^2z;tXwplR0Fp+iL$^{iYj9Bj+{n!25# zo#>*WshJHmuk*UR*<|hN6yMN!E+_&1?Mj|w=V@015(uQFl`NH|b2R2w7=<)awc51O z(vf+AYXrMUfjS6C`KZghcQi)1kFt;Y^!L>Ot`%r!P+hrOQkJUiFR8h5{#r=KS^Keu z!Je&_z{3NkERW9a}{1)pFhz1FZ4j?>Tum0DX_P0l?biKgxsyqXavu}-a2MO0df4XF!8WHUusIEa&1n{h zhY3NG0)Yuyy{DCj_*VQBo_Kr5FGYCc?IUePG?iA(@v%SQE5gq_P(+YLJVj^p(h0hLNB0RXSA;7hoS=u3Cz5QPSMKLoc1IkK-4P zwwh|A4B&BD`!Q*INy8T(JB6rqeyIh0w$s6qMzxcDcw%=lH|kT&kp&N)kqr;cz!32$ RNrS}E7NCEY{rDKc{{Xa3WR(B_ literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/config/GatewayType.class b/target/classes/com/auv/locker/config/GatewayType.class new file mode 100644 index 0000000000000000000000000000000000000000..35d1e5f30a5f3cc822b78d63014c300da29bff69 GIT binary patch literal 1705 zcma)7ZBx@&6n-vEn-C&GMBWw=6}7F>s4Knzixd`t-D=eWBcop~C6>4$>9i@1|H?%L zXPw>gvp>r5oFuvtIwSdTPw&Zdo_o%7PHsPc`R6|XH}Rws3U2ARjXNsNs<^9T08_k7 z^P3r7ep4~4qZ9Wu%&{%($qFds-k>Tze{@Z2QeXz%0F#yV7!{SF9*{qz@=>NcoE8izhw)YEIFS2u(h*kH&*4Q zOCB|(D!&l8ojsaj?pW!VCBG`&b=h#3GbUC%xkLP!8OL*iS%IlG^eabCJnG4oSG+tR)dHyx8Z9atk&#cIc!2-Hg^<48W7-7*a@9}&C8~})^G*1nW`HnpUQF; zlZoI(ueCFC40UFy&3eUeHLCV~hXwCR3`v1!!oVm`>sbSTq9kzcr=w+H91jd+@zB68 z7%^}LBLV}5=WD*@xLbCEfj6j_?I5T(r!31r8IKG+MnRyv?#iGrd50#sK*tiwD%WkV zSa&!oXJ8OR0=+)@WZg*uyR2F?>xC`fz%awQ|4)F$5lB~E-=m6uRK2|U(yj)i%4D*E z3$AQ7rxW_d-$=4w%t~?n$+#G{!tKe(IwiU#Fwq8)B#MG!eTY#D{Kz$Toj&#fx=hk@ zLtHyRmWm^f$x?@w)CPKnxofmn>HZkQIS8Dm-FdS7=z9?R==g-x8`{x@L2D*_$M?-R zF2?wq=!m?glK+78Cn${X_yK>3JVqRQIn1Ghn?oo*@i|gRlQr{KMh=k4PrQekA5z{! z`};eSNmX$L8Jt2F`p}EhVAe5;Wq&@b@LP?MkE>L0CFHnDr%#|jE1zhQ84|1K_TsewZp+9ZG*3U4_=Pd8vTgQjRWXr*FFr+A~G78eVjPVI+kD^jZ@Na z9XH~7)=3wBZheHZVRom?lV;BWdf&nf9j6qt&paJE`qTdsB((>#vZ3suzw#D>RgU`G Y9ja-Nx+h2{opO!T`<4EhxTlj}0g3`=;Q#;t literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/http/AuvHttpClient.class b/target/classes/com/auv/locker/http/AuvHttpClient.class new file mode 100644 index 0000000000000000000000000000000000000000..e2bfe1530ab3a1a1a8af4c431ed45eab5fe8fae4 GIT binary patch literal 6456 zcmcIp349dQ8UMdzcV~Ap2!?Y(B_Svw5LOBbYyuJjNHhUV2#8wkWOtG*?(VF!vj|#i zwYBz8ds?kM>`iNJi`OPfE4H=P+SXoLd$;zky>Dt;>Hp2lW+$5sl=fHPxAW$`?|tY0 z``$N?Cti5yVE`+|LKWxY#t1s`Y89`+YgN1sH>tQ8x5&}!<>(D^^hP;)ll*zJinria z6>r6D^5=HB_ibU^q2ld$hl+RNU2=4%f_JN!jvK>xkKF%W`SQLnhQqidjQ5A}fiON8 z#sL){!iOcnU2^mh1$V1x#7E`N$0GPR4yw2Z_o}!L_lKd&=?7F4F``oHsDcL-Jfz@| zidHG<6Y}{<6-)529Fb@#4l8&>#Y)NYQ}}cpK7&V9d=`&MwLcfe<8}Bvo{%qJQ1C?+ zoA4z`^Q3|=t5}b($X$H-s*11S>k6Kd6gMh(TERC2YSZSBKz+Aq4aM^5!IgVr-R97c zVYLZ_dOEgm-_$G6+MO^nu|Yj=8`i!|I<`koT%I?xv7~P61F38>wryaKk+6I8T+ZE? zFtdXxvTbxW>V>_rw3)cvuww2)tfR2E(;=Z0b=bCZo#~X3wFQJ)-LM)ZZ zrDF+aIo6pr^M*cAkb+h4S}iMsjRWJkQp$n9g?Tx zgoK{nsaq-e?o9^l;Z$Crsgkv$9PJpV$`s4EqG050*Es1o=~llvo+X|idi~@yrFO`m z6ZGcpJ^Effme#XFu|C^MWry1SlbOYpI%a4noo8k;3>J0mHS#$#n>Q#aVy7}xRL|t3 z-4nzyEcw(>cDrur8CpNxr6|~`bZm!Z7>qP|)JYPWYCE9|B~wG>$ejf%wV{woCk;zr z@njy5yz;UB-Y$<+T3@iz0)mm4>C5xUg>lV93)+1`CiU_>@*pH|_GFQDBalN84L`T4AIOT!B|stIs|5TZt4(IgeFGQa5nQLBl72r43^2}Ohz5z&N-=M_<>2~E_{ zE-^(BCuw4;RL4ev_LVEsnC}JVmS=klSy{<^i?hp%ZdQ-gqB$M?I~zK-cQtrbx?xaf zxRUV(O-vIfYocC?y+BMCIAao{O3?OjsfZcWQ_LhbH8D%fR>T}CFQOW{aGt=7vOKr$ z#vABEF;^4w#3>riM>pLkPgcErKu%V&HF2sqO~cD^-8iT07`DtS=2y7dBd4=@ zBs$&Cbe`rMXW1I^N`ZN_pv-6-33rEF z{RGx{8aRw>Ba<^Noh_#~=tv}teBQL^!E!b7S~s4?L}`aS&scd&()=wnRmm0Db&Rvp zt!4i9+MDr<@TLSRbKWVhTQYj0XX9D@Y-m~k9I(rdkeTl`#!a40@=hm16;qK$8K zVv}X%P7Lc7lZM|gdN!$B$xip3`5NrsvH7yqJjq>AeqxV^sF*W>k+(+oWc3W&GPga* zQbd1m_oi%ueJ>#$GMo{EQG$U>(M6t`%hTDxG90$e(lHg1U$0q$r?rYlCVIGBM^r|x zhq%;-s8LIm%|3UIo!4!$pNv&H)n5myL+HD2IK^y9>oPG34I zLaR2hx3USw)2fsoS$^Gh5;s&D;$YofmU+R5pEpr+AB)LhFwygrH%-d(-&PP&Nn@bE zD~CnL4nQfp>HUah=*gXWy1=llI`%H7T^N_QVMP zoArckT6C~nbLhL4Ifs1f4pVYJFF7j4Mb)aW;|EX-*L=B8-3T#Sggfr ztiuMJL%Q|!UM`kR+=++BY2dmg%o5IWPSfk)F?1Hag=+iE!Vos z4#h=?Ok_}EmXn-v9;ai{k)@<_NEadCX9=O;3Ru**hW@CLpRF!_#d98hM-E}7gwoJqyGQ4M&rtZhJ1lD@adT3?CSNl@$}hYMLCb|c0FUq>(v@M&;9 z%kgal+wFvcgx@*>tcgJ0%l9A)*$uc7`^YbXTPXD^y7qR==gvWnfRQnPjX3ZV4s@9$ego%g@G5+dPn8rm^FK$vi^#tLH(xO8 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/http/HmacMD5Util.class b/target/classes/com/auv/locker/http/HmacMD5Util.class new file mode 100644 index 0000000000000000000000000000000000000000..5d438ea960fb9977ff65abd69384ce341b516217 GIT binary patch literal 3733 zcma)9X?GLX8GgpnXe4 znwFL}N%y^lbft^w4r%Kp?xFqMZ~fX|lJvB7pLb?t%UGwyK4<3M_rB}%E_d{||Gf7Q zz%eXEaTunCi7+Okn1ZF@dIZzRMDYY>qEL|)a!wxkD5~(P23tcR3@3^$C~CM7MGaol zFdIc3Oxes;kG<;Szw`B7||odv90W6r-Cg#xop8P zvd)N+DVhpGr>v~ybSVflw~QzV_TNY$nk` z>MI2`n@HJnc_)`h8YwDQ$LAcAj#ORgR-n+^Seb$|vnez0Sh*}2LwUnCX2=;Sm?_(I z&Y5$BWXLg6(@7)mM#bzYs2ML>ne-4{CR~o0brc-%JufmIn$34sbW$a+O`Yl)@2&S| zv!>mXF$x87(D$pPgT0wo;(XefrVw#Z_#uYS_Md>BDTiiBn zGN==lU7*{_Wd++e=58)u%3o)hZtC^iIkicv&sJVYT{Llgqx56TJzFN{NA#Go8otVQ zVkc?%8heImloT0G(Pqy3A4$+->a3W?_D6JeUfB#vMZv(dR8-iUO=XH{Nnf?UWTi3x z^%eAxeZtB(rfsG*Fk4q2vHh5FRM1?}!)hnjXU=-%!qRBI(p`~FVSOpx8cryP4&{n= z$~!)PC=x9S+!QTHf0u*Szq=v8S_y)d78IfOWX^f(eZu!K*z^$jexF?xV1i4uxp)qv6ywN8MExL-uI(XCQ{>s!LZVz z{D%r^T{*W4{lb)kA1TG&~zqT#NNpWYAhJCL3td&corVP7aI=q35Y}&BXJ>H(ppk5k2d+j8%<@HuMv(H3DVcPHZru!b> zcqPUbnfyCg%oX}nt~I&jq}sh>4*#NUIdchiWv5(wS~_>u${HEYU1=0A}~rLB3Da1(py@##f+@wY`hb0<^loBEk!Z#9O`n0-}RQ zmQZ~^xq>ZYbsvf^V(VXA#jW&4r(a@r7YzgZ_}tI+0W{$tPY==CCfAi?G#KLk7>+ZF zChppCg0gW`<0PIXjn1Hh@yg!`bh?qB;+g?XYj}?CbE1%s?kk5WDfX_fpk|Em*AA?p zZfp_t$zWI80=6w9rl2F(5M0J~1-J3Mtad2)D|U9MyYCYw8a*mIxOf^MWu^aKP{;H)K}^^8fPI?ae)q37d_$7Dp30Ezk- zrJhF*SM-+=_VOKpfipNu6l*bt7tzPK>M@Fbe1wsmBS$0Op5(xqWO7Y%kdlJUUIbRL z2daki8eYxe%h;#D#cc41 zkJvaDK48H>yV}+fY6v}S*8=U~SU9HL#i52!EPS*h(hw173E=|v-$o?ZuFfNJE3C|~ z{v)Q|!OpmUEHA>ki~|9T&ab``U&6t4OpmgTKxD#1rJ1<25tCk`GDJj1h>2iy4N0Ui zh&jB(A14=Fe7jf$y@(OH7Gm1Q)0fGuQpW`sb1CtgKIXC-!(}2Drj9F=t6D?a;~#Ka zLihz~k1I(oLHcQg{*7%e&KFl%=Mi^#)gusW0)JIuJMMoU>IZ1}C&fJMKT53mO+d5K zckj`J6z(~x*Vc#X)FKWIv?k*Zy8`XOSaA1UB;v8)GXy-QYOmL9eWRvk32v#9P`;q6h?^WWfv`}sYd?4!s?T1Jm>bHjEU234SF@T168Zo iCN(wAg5p!cdY{UwkfKl(lhDm~lo9RZ@4Xj7k^chmbC{a| literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/AuxCellOpResponse.class b/target/classes/com/auv/locker/model/aux/AuxCellOpResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..97b6a6c3660ec3956fdd2ce0e15b35730d9a3fe9 GIT binary patch literal 1328 zcma)4%Wl&^6g_^VZi4$to0gPkTcC;iFpu&Q2mwV%l@cN~sEaO;CT0k39lNrf(j~va zjvX5oAd!MtuR35 zFS?x;_g}J>Lu`vR&tlFN^KG$D4%P6jO&phNme(;^ci(h8YnS_Ghd>-UI53}d57xQk zH1;-mu;;k}C-Q|h4>wbXrYhCbVrf&5Yr@|zRG(%?X z*4bW4+zuMMWOk*xO?;YO*SGj{Tj-oV#duXbp^hSM=r{vi#|TDsjEQU<6B=&nxP^J0 zKFVzkcXZsvJqgDDJ0fBH_>(kRJKPE*X7m~p#}|nf33@C31zXJN5?^g!#Ks$9UfIrC zc`QDIlGrC<*mlDNflS!I9DU~k{dSdfl1R#mLT407Y7|K=#UapVz$C3xw0jR3If}E! zcSy!k53;e`gJP`opc-Yhhul}Xl~EEk)C)pY2{%s$j*@?qgjpuMX}Vd9kuZa^v=jA$ zi4dEHmfz20jDVf}$7|A5sxg$)7aEPG~(9};*l^@Uqq7s=HYnjO)&L&zeQ%w$X z>9GKt!#u6xgf0=yc7FZ=^9Q>GlDD8eCz)sM-z&s3b9HJh1L?Vq(6&03%a8CU)S DAENm! literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/AuxDeviceListQueryResponse.class b/target/classes/com/auv/locker/model/aux/AuxDeviceListQueryResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..0c831f3ac26462ac014642cecdd76bdf84275cee GIT binary patch literal 1355 zcmbVL$!^n76g`fex(V)-HZ3VbX$v%Q2Lo*x1VRiIQl*rL26fQ|l4Bmhtz%anLfP>f z?AWnk0TL;Q1Ym=#HA}afTHSX|yLnfDWH>LGfbrDbrtPyP zbLmoSc}+s_0>faQ*IV_-aV)0WR5ftVv`zoMfUR;0C7zHvNpMp~r;8HU$_{aR9C90} znl^hHv>MEPt~V@VTc|pQZtdu<$@lT0k?O|}Z z!P=(5s;1{Z3z++Mn|TM0?J-i3Z!&*7v1+1RIn9!spqhwNv8NzWMqW_G7B?+tdiBJ% z-r_`|fT6mt8~a=OL88F)YWw7Rxw1=q>Q3Mq?1{+*&-|PE3je4I3b?M|3={=J7*;UC zvr&x6xS?Pba|%73bs0Am+`?@EtN-DVfYI*zsWtYP;fGx5LydJWVs!$PM)W{-bSoeQ za+}B6D*=<`-L$z~J5ngIp#la?+m8{*mQBpkOV87fAdz5FOId*n4kKv}Bgv*X0D31F zr*(pM?~p;3;<{mFomqT=+d>C~)B O@2rJz);u+2aQP3?0|cM| literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/CellOpRequest$1.class b/target/classes/com/auv/locker/model/aux/CellOpRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f76d89b17f9bfd0e0ac0bf1be27f5de8acd55b70 GIT binary patch literal 237 zcma)$O%4G;5QSg)8-~Qh2`ogcbR=#dBo-p!1g%vtdb*jO5ofb-0EZG~X{TPQUaIo) zrC#sH6TlSh2vLLR5jH@rAmCiG@(?fSCeYssM)r~0M|-MKT?hm$+3xH$TKgqScg zK2y59DeKLdbCvl$TRGg-4`MJObe7I>KC?Om4us@ORaU!$TJKUe1!4FfEa`(#k@vq< V6+yNd>f$vtWHzN^$&fgb<_8#fJ;MM1 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/CellOpRequest$Builder.class b/target/classes/com/auv/locker/model/aux/CellOpRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..4e0b84da7a720600400347b60332ade1e2f870f8 GIT binary patch literal 1382 zcmb7E+iuf95IyT$?7D`g0m`LZnvxdBmFfibErD!PpS@T>eUo~AUq%APeh|p0<2!LI=|QvW zh6CG4hqfQOXEL$}#O~9^h20?$hv)C*msG|{eM~^=-kP(T8;jGFdMru6GV_Az-MZtt zGLGxbW-}AAp!mkDax(dXxF*CcCY}^8v*IXBBUirjGLNsAvdgnGU_dvp%wdVcE!-B^ z&ZmsK8v?uex+g;rs7!CoVeeGBi3&^Lley>^^7gmdeD%znGFzz8-Ph=YC_rITXr-`2 zSth$EYY^-d#TBY-%7Svqxffd&NkPvN^4`(fGX}$C5U#7B7@sRu25F3ogXMz zUumge3g5`!YonGioSHLT{MP09M9K_N?FJ$~7!w)uiNp-i<_$#b3=`eQ1B!gKJrrpL z=)X|g;zEu7j^SyUxxM`0-q@k`Mf3E?DFM(}134 WqkD$Cl&e&$^w+#YgEFZmW&Z%PTM2;x literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/CellOpRequest.class b/target/classes/com/auv/locker/model/aux/CellOpRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..830cf1693d5e4108159de894535d5939b8122fd0 GIT binary patch literal 1453 zcmb7^TW=CU6vzLwTo&kRDYmsC0{}H_o(MI1-3fX(X^%cRTW+-)_p_z1{S9lBxTS?H$>HtMu_KpIO1UMMM}q?by%fhB>`d`JW~XLArp zUyf;`c_N)2XJj_t9C1YQY7$enZ(B#$AS83!jC7a0|DoF(mHrnc#mN_r~eWPzPeg?}&b-(I{-3$6zm27$cNp<1hmE zr#i>4IxkOk&Q5hsTyeW>%y7ieX6P^+Gd!{I%)*I4 z#aCh2n+P=f=kii|p^T#AQoucXpgcah^Ex7F?kTb2?Lo5*qjZMiAn?< zUXL=F&8bnQ)-K2^+lXfJWqV} zHsH%Qm&Km&!?B2$Hg^Rk2HHLLgHyCcAZov~c{a*(JHm)CjI6hZ?CUEqRQ_!Nn zWYedspv2l}RbqKMl0qFxq>iLhN0Lg>0=+VtgqxIk6a~fAzL+lvHD@F3Ik-Tdpmy6^*BYDp#d$mYz8Obdpxl$zW e8_D}d*;bK!U?7)pplvs1h)c1|Ege}fG@+IQ4Kte*| zfe+xL5VJP989zk4oY|e3GoCp+{`LFEPXLE_Q-OhJ2FiG@;f02M4Yq~@4KGW0Rl@5M z4jIaA;kq65!DBExN(sO1@*ofaMFwIb9nl#uSluf=;kL`w(C&r4RKp{N0w0fcu#)7R z^O2w$$)y+aFrpf!L)FitQQM1D$WULX(@~)q3SSq}Nt9emqERSayDNi`LPk#x6_xU- z^l2)5+;zN>&7+C!dd?@|+aqrvTylK2^-LGzcOn>jDiAx<5syx&Wbs%k8J;k#HCvYq z`8Kf_s$HoBHQE>cd){}+V|6`;yO-RT`u^9M4?jxkw6*G|>3i!#5uVPJY&2U78qBmT zQ_|Z+&W%}qqG)w?pNgtIdZf9oTT4~v%IdN@lUlZ>DU0%+{p0*kQ7b(!@*Qy|wQ}`k z`S7RptLIUeZ1&j35Ry;U`6t58?a5kf|?VC8;cHdSTbSRgq1wj@>plEeIaE-F_h{z{EmB) zM;))J;~?rBF%-J7>Na>N7#x$fxJ)RwkAo=CCk&aLN{b;|RhPt$*MmqjlCUk}3*MH* zli^#Ln5!z5@sp*|c+FB#ja{jfMJE#WB6`LxFeQ_F?4Q7U? z?U`3{F#^{`9t9VU2}Kn0*kCyLpKFGR@5euD-w0nbRQ`MyHt0uf`s)lVV~R4%`068B zBg}#s&lE?g@(3AWZubT3soyq6(e9IL7^mE{QUfM1MMy7+8H&Hf&#)fp(89O4oGPA8 j6=#OUTdCr?RB?7#yqzMpFyHsLfD&Pm7RX^0lW;x(p7fnD literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/CellStatusNotify.class b/target/classes/com/auv/locker/model/aux/CellStatusNotify.class new file mode 100644 index 0000000000000000000000000000000000000000..fed384d42f115fbf25e79d4ac13902cd54995bac GIT binary patch literal 1631 zcmbu8U2hUW6o$`GVA<_fDwcj%t5$_pyMEOA0k$z16AY;r5bl>{N~bQnWOpIA+r8(_jy9p>Q~$pOi8l0%XgBri!` zk-R3UXi(MQjRr>y%o=yyx_9c=Bi_ff?s+_@xpo-xkb&X(kvP3*i9TmgXq?+4+j4EM zXEmchc)iNyj*9{A$k>BHy~{vz&g>xM5w1o&2!-!4$c3WkwdA%mEwR$&BjIoYOlRCh zLxe~z#wQIU;aXI|bMz)Mb~Fs|m=B4cs}0BRTlR2dxxVv>2Ug$jau*AqExKJZLM}X! zH`$rKZsiF7I9nB-h|r0-Qn}3_T|<^Zz9Bq*GVFJF(6T$OyuI((Zrct7<>O*HIumHq z-s}zFi3>d*#offdE|tnEXQ#GF*K&xxjr}!nS({i)Nqge*JSOB+Y_vAc7*PG)U%T^| zO^k>gFHCxv_Pp^=@xPoln*K0w_U>kA++=088G1!57 zs8``{kotl@reGU2hKox0z7n2G!plndff7z9;T0uZQo@-eysCuDN;sQ@*Oc(C64sLN zx)R<~!nq{8p@bhQVLb_ND&a@4j}MxBXCn!3Dd2e4EW{tnsdxf;j5K)*IM>%e{{!*x BD9Qi; literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/CellsOpsRequest$1.class b/target/classes/com/auv/locker/model/aux/CellsOpsRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d862f296fd4418635bff6601e60e952325470d68 GIT binary patch literal 243 zcma)%O%4G;5QSg)8-~Oz9KgatEOaDpAS4zd;RLN!FnYR~o)KrWZ~%uAWoxBgs$Qz{ z@+I|pKb`=lXh(=5vGw?tb&VU2VYA0E092y zK;i@VD8yMiC20zh6(Fz!sVXjQ!BJ-9bwr?~S^45DJu%)hM(bLwUGX*tZ9+8AiU;@Pwgz zqfRJ?0>zH&O26%xK_CNx_6%~nYk5P%jE)S)v))VJ7^aY-#&tZ&V3cHo_3RUMJdNC%Nh&dO{>e*61jZVw`ILkkeUWKF72l3 zq9Sx$C}I(XA}(WDpptf96>kVM(#Dtn-s#e$efN5Y(qhvZsacXv(?F5TIYde?YqO== zx0X7wCf50QX?)Bw{3vKVqq^Wj6VFRr7fNN?EA$u~1;>Tj39?_}kQG`L1k`brwwMH9 z71#O4R}eR76}S~|18BASH)Lv`>B?XNH)8lIeGD1H)lB83cGa=QHAVDtnn=V%*(svN ze~6O8ZjvC$Q6puE#7U{QIJ=EIv}%hjKIEz<{ReVyYvKe8v*|vYs#Z_ZEiK|M?u{8H xQhh~c7JOE!btM(S_wnE#V37h$LCVZFgNIn+xP~k)vVu#LF3<5A$4&aV$scl4sbv5F literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/CellsOpsRequest$OpItem.class b/target/classes/com/auv/locker/model/aux/CellsOpsRequest$OpItem.class new file mode 100644 index 0000000000000000000000000000000000000000..a6f858647acdd04d9805e8b8df84768f901057a1 GIT binary patch literal 1102 zcmb7DYi|-k6g|sRC_=?rt{8|3R|9xB1Qb^WCk)G3omd_RVaoe_k@hkM2mBcI-}@Fy^mF7Y6$}?Uj0+& zd~~Vx{O=ts9D?ntFi^%S+Fx>|u`@pk_P`LbgoXq%1HBG!7}k{L{4ebw3X&(IL${FNHrf{ApMb08daWEDgc}I z4@J%z%BbTyk@X}EE4WFI1XF!`vw|tyB5H*bq)a3!VU5^r+~H{p5VSTX+x&#o2VPPW u+1v!&o=7Dm*{PI+yST@w+2r(Wa$`YqQo((uKbT0ZW0kf@u?%~=fx-{LfBw1v literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/CellsOpsRequest.class b/target/classes/com/auv/locker/model/aux/CellsOpsRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..82677d5f1f52f4adbc9b7c82ce838be2b7890cf9 GIT binary patch literal 1701 zcmbVN+iuf95IyT$oVbRjp$!x$6bO*Ip-xK6Ema>#sZ=Q<5`{`UI?gJ%I8N}T%4dN@ zRRj_rz(*lwZKtV9AKW~6y*oSS%*>fx`_JE>zX5EZp&*Y{1q!MPWIV~!a!t&1F{{a_ zi$zt&x{RkXHW<`B$Kh_%Haw4e4D##1vb)@svB{8a5BGfDXUKK=k!A9|E<>?(XdD^3 zZ8$xB-*+vi*C5Biuw{8ZLm}D?e9P8_h4%9MR?ji~z~v0hbK6@jbI{j~;7GRz=4bBe z{Xv)8WEkm9Zrfga=)L1#0`B?cD3!*xh_+=pmcPxgSxJtM>uRhVFr=FlhGDj4Is9$V z?{N3M(Xq)=Yz<7qJ}_KMtYc%^|74LeTH;ugqTGpOWLQrOE00rTnCWqU=T!3f%F0Ee z=gFxZ>s}nYoK^nKf5z$b-XNaDeVPaq3|wrBRJR8r2!9mw_@U`-8wW`K~3} zK7a18t%)P9qJ-;Wc&6exUZ^NwPQ^>SQc=V;hT3H%VW=d9&_$ZuvUcZ?n{>Cdr06oq zp(l18-|Ee;el6UJPQ rJWlJ*;!#+)DC;pQ#2{gXI3#FP90-%b482jv(T^sNEA(8YXBPQ?h%u{^ literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$1.class b/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..55e4b9de72450fd3a1dab8eb13cbb00bcb319ad9 GIT binary patch literal 264 zcmb7xpGAlXsqrVJ>qc2`ez{a9pRtw0pL)%jri9^-b6kE|9RdeJ^295v-9fGQ1)GYX f-lQfI5L)utv)Ura)=QKC>Q$Xv+}Vc94XQc;d?DFXwmbj-0HHX=pm8q|h;= z;-(G*O@cLHiW0s~xHlo}Xk>)y@kQGj>Yz+#JhU6j&~zh$Y5eM3pW55Q%x5V~aS>`HZ!b#syS!U9x@TZ3U7>1_xGBc%6NG zB!kP9OqBSW&L^Tjh*tkXBrBCfbzER6>)hbXWoYd?N-s@1K>2i1YbR>b4wI@@xZ2N76g}f4cI=ua7{XST04ZdF+5selQt?15q)Jv;3YBQiaZ?H9C3%^<_}uNx9sl|J^EZG;c%VT=LxYA*4GQk4WZo58Q)n#(ZDDLG z=qR|S;68)C7X&=o@trv4F@y3f_54E~F_b?#L%#2Q;SA^OBWLWGz7q`1y&&O39`zVx z0qBRMY9opfyaq5FYH<|sVmJ~<}lE+2a?x4k%dmGbEGYyK(aani`k z^;!oE#T`O3RBSKc{d6?o(Hm#rlgF?_*YOXW$P;$%EGF+gYPh>>N$Ok~oDBJ7+30!0 z3~NK4yqt4XYql1$q~<6=RF5#L62uU$&hFAxyV-?E6N^EbbQvD5kbyzl57Wry&pmO8 z8;dt!ORScTvoOT5rNe}!V;vP8U7=M`VR*bEYYgU+kqp(-U4Jn+;%-7awq%k9F;-}b zmDU{B<#F7wEMl_1`UNiDt&{9s%fd~1-x~b`Bp8A{(hR{J$rAa9UeG%x>n&Ll$y$2~ zsonX3!ZC_MmX0BRqYo0!(`lecr%vY?I@ifpL5(~YX2B#cl0|873707~!xe1gCCtpG z!tL)UekIT>rA%&6CnAlW>7_gk!_|es^8dlcf?$<8xRzJ0XWaqiUr^pnQ5Nwmn`c(M zRuv6g&(XVtE)YU)ccx&cv(K2NN5S^Q5b(|(7Eo-_LND9;i%8o!)Dx^qOSrYnw<6H$7$Bw*2^shidLgIlB z;G+;T*CC5_c|g3J@r>upopXHs^Vjzu0B{ITH7LTJ0%)*LU=SP-+$Fe2aG&6i;6V-^ z<=`=cd|!-hOSJn8s^%FVbHm~8!03d&?GBzX$nepKUTSgQ2_FgudYp7Z9!3GCmT;Vt zXxQ>1H)K$oo6~kfF%Uiu(kx%_P;_k?P?>8nJ$XnKgN08<%rxyFd>aY>{GA9!o*RhW#fhl1I1pi6 zB->UR%{i%4SM%6(6dPNb_Q&3qr}-aysnS|-cy(dw%ww9>nzOmO&^IxI2hVtC=ggcr9{>FH{Re<2c;Ldp?HVe$W6fP_I@WX@Y&y8-;J!d( zmnJHtS8_ysLt_E2uQesTNTw;J0@Xvl*_B2Lw1NXUk$z@WTLQI#8fj^=gaihK z>+K+n$G*%aeiVlvDDlVfJBm2)(VzCTHC|_we0oFaVXRZynB}sy!yQ}`8yWTDOdEmK zX^Tkek>A&bMwD<$mAM)_z-+>^IF3kaPFM-EBq4p2Q`uHpnH_*&L$np+2CTmlZv{7I7>o$uB>e9|M<8M?ecgyi!~1`@H{lp@^A)i z536ViJX&;Hcp>wB%tv@RJfM&_$Kd)L z@RZvXE^-yu*cOW{6^k_H6cM=2W1j|>i{R#5@XfiMmy6)m9B>J@@*y|ivUiz7m6fWY F_8VHe6gdC@ literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/DeviceStatusNotify.class b/target/classes/com/auv/locker/model/aux/DeviceStatusNotify.class new file mode 100644 index 0000000000000000000000000000000000000000..a8f818a2080b5417be7d780ab748fc424f3f12fb GIT binary patch literal 1307 zcmb7?T~8B16o%g^ZMR((icn|)74fqLVf{dFG$saPV$$G6o8C{iV;O9Bo9(udf2E0u zi5LC=f0Xf@Sqi$&jW_Q(XL6pI^UloAU*CTKIKp!m9`?#u#6HVImIIbU7N6x2%VU-& zEKeOAId~@EhEbwFoOkp{39Pox41gIKiomCn}+A zrs9c?LV?mm55kUV%X3OAeKpg8V!%t&b|RDMM4}dC&nNd zSsJJ$EmF7DM$_i^k2d3_MA+-pwM*&o+&CBAx%WjX+L!j7i%Njk(_#1$Dwoy#9^7^` zjRW;ov)S6eV;}N^c&MT7VF}9~Dl983*H~6r)>x`6>ns~s7TEufyAfEqdiVFeGZiG* zrBC9~=PDz|2UC{gvrVMqO{57-q#;bCIZUKcOr&W{q=6{9Acv@vZc^n_6ch`4-ypu2 zwk^`4S#+>XxtBKJI&M%Ua1%SEf5Tsq`<#K-tne)>ypV;fR(RJ6=d x3g5B9#VlO2!gsB(lZES6_?{ImW#LULeBTO}v+$M`eqe>&EWB-n8|F7Oe*+%o!KMHJ literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$1.class b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ae5055cf3b03b311ff4ea832860b00909357340b GIT binary patch literal 270 zcmb79L23d)5Ue)FHESUI0l|Z32hks>0S_X&FBr$htQlu;XJ#>9%OMZ&QIhrn9_*sK zsHUiC`Ce%{SNT7=X}{|L*l7fT%WJh1=-J>`Le2Az>8Ve|&dK00llXLP!4>CkatJdcuT24wYL zh0;6Rksm|p2Zflsy2-dR8@6i)n*zyVX;&asBV1svZoBej*l9`cwb^p$nXh*()7dpW zTfN85RPfGbPTI53cG}Vts7{bg3}!Cd#nYmdrebWwj02^o=Jt7%bD&F$N_jd9xdO zmV9BWFL&{*d$6i*XcjuoWs$*b78fxuP#HTD1vCVnjtwmQy*If*v)FF!ODmX&F22_q zD5*bUk zQ$&qnA`uZKhlomN5cLmsg9QB?HB#nC+&}6~&K7ZtR)tvSzeSx%|AEw-vN%F|G~Jb< z)9U?na~a&motR-D)mJ1&!6&6!Qc@9o7x(@F7XJaJAO&Wdzg;T2|4Km- zeDDMODDh4jR46{^!_J*^@0oMY+@0?~zJ3Gn2zN6yaifg}Zl<`E;gr8R z{%k<+YpTNig%+D`PbfqbXSCMYxoB7*8@k#T^jt@aTYuAh5a*jC!<`&0ETz~IcpOLg zU(N(pe*dpm<0%zEpwWrbd-%_y*ybnEDKL~k5ZMwdBW;;&tCGT}`&PvuuQtBjbxkQca)HReSv$uXX2bw45bz?(m1w&ybW XIbk7_V13Toz%`B;*BaQw3feyb`$M*; literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest.class b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..b19fb60b8076a5b6f0ca103c848c17f85028d55b GIT binary patch literal 1847 zcmb_dT~8B16g{*3*tV=vDxjz+YSmJZZ3R>;@*u>7q)4Pn;^THZ*2Sfb`$6zuX(GXB z;t%jg8P9ABC5R6#KJ3igJNKTs_nx`4zkYxJ319)04APj%AcNTqbUa8?oKq`Ptx7t| zN|@F0P{+KE1p#Bd)so(-Yx%zP1@z~k<2IzHW0AtDblolaP9W8gdyXyF8v?oNj*>^z>ha()+X}KZeo|^4*v!E5uGNJ1r+z5m+eAkkefvD>-x^A<}omi%W8OJ;4z*U$YR965}q2!;gZ18!1WU-_wCEB?RE5K zeMi~>uXf)sdDd=#z>lApSV8q+#FwIv|~tckIYkZg_<{%G|pqiLukdBZ-^ZruI9u6l3ya13643$Ic7PI zK;4f~LSCh2yyJ{(xK4>Mn8Xc23*5w1_XsnRfkg2u;-6`xK|v;|Rt^frh}MZNj9?bG zX{F*j>6|?6Jbs3AC(S!7!zA+E2&SSafz%J^Zx4}DIO0SQ6IqqX-LCZ-tz)!E7H1A2 zdNt?-JQSTd)v-9vJBfQy-YTv8C=fxzG%++3nH=a7!w_d=Q~dR%ae?1Oe#1!r0WA*b A;Q#;t literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse$CellDetail.class b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse$CellDetail.class new file mode 100644 index 0000000000000000000000000000000000000000..35c452423afa62ac1d804abd8dd4f92d9b8d6016 GIT binary patch literal 1190 zcmbtS+iuf95IviwcI-H9Nm?kk(zGcg1!{zN<0g~}DN>ZG1oeI6EMbddBVQu;E0B$eC10XGgvA+ipC;h zu+@5)@Fb;1B|9T{M`MgRCr*wc%g-`CGm`P8Z zX*y0t^!bg5KZZdpT8nvfCu<@SRZyO6v^y8By>Ml|M;WtzY0tSeEBTmncbvSC8&u2F zxkuIcv6)TwFiay)yq3y~t-mTiP*3Kdj)nspRR<1g4ptPbs&q}k71T_)4A1||8HTmR z|2P_*3NK-J{O=>tq~B-JH#JaFnrT&1va?9avq<8zNcyu#SDy)_^8O7!O z?_giEZ5xC}R@}r@T03VOa1A#oW4MW1gqO+RQ2J6JZ)?f7v85p|70FF4`Hq%cE|Pb& tgol6SPS%_4bELoQ)Av$cim6m7Duf(O`y^#_4!+(Q5W literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse.class b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..c646fc5df768d4c1441623662ddb41ef6cb6b3a7 GIT binary patch literal 1421 zcmb_b+iuf95Ivjb>bj)OrQ8dJ0!e`yN_c9igi;|zvWiMj-#5-GY;o+!UPtg(AR!^~ zzz6VAh*_H^sWA^lyv*#*&N)7NcKqY#x9p5r^pz|4}sV`jMv?>I*zQPl=HTG?8wi=GEjhQqr|-87exe^ySDS zs(`4EQ^)(Z^PJ1IFtA|lYTI)$Lq@|(VFf{@fuYu%8YVh`zzSz zxaB&dIgd^ZzZ yNP`=h;4R$CxN|WLZf1h-;{m-=+OSd@yq*D09<4?2c5Lr9y#`>A7J~+18I@n-!6|$I literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/common/AuvRequestBuilder.class b/target/classes/com/auv/locker/model/common/AuvRequestBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..6ca75873ffc1d712837d802e16941fd3f41a06f9 GIT binary patch literal 2639 zcmbtWT~`}b6x}x;45TT6P>IlrC{iJWj#jW}kO~wm5I!W7+Ui=aNiq!slMK#GX!W1y zs}H_bTZ`JY{CM%fALVl2nIV}{`oS^}lY7scd-gf|o_+89^Y3rJ1DL=U3G`q_!PNvJ znCU<#K2|WBKpb;tFpq1}vXDSG78QJ=;Cefj5;%ip1uF>@uqxlLDOi^-46`8+HLa>Z zx?tH=)iLi(?5YK;TGj2mz}fY=<%RjJFIQ(bHWoGo#tUVurryyUSGVugOm$Z)?>Sao zt!S=RGU^p|y|k;B-BoRW-&?PgjBl>-oj|Ivs~u=+!!=BmuNk|eXjJQ(+pu+k$tT}V z`%_b^SJk3x8}({FWbrZbGmOzTZPX2ShBb_gZVSZbtqP;13PxRDYt%}*y`_~*T3B3J zGq*L{kn_M8b9W3!K=o?U8V9OrmG^X8tuctHvd|hUn{6Cy>R&Z<$DL~!X2q*2s#Pii zH%3A^Ju}PE(?@q)TW0L>6{dhy?&)6(#1AyH;T6?#2{_@76$MA2&4Wqr|*^5}i4%P+~+O5y@u6UelbOJVKlmFt?b!wyU0RrCpTwYtz} zAc;@0si2s|7H%Zbi%b&RxG8Y?fq&YPO!P;|#v=J5tEp&njmQS?iyIqH{v!vC~v zDsbC5j^I4nIc68~IY7%CR|x)hWe*{;j}f_bi0IFV{pfkW&Sxh*z=$!%Pw{_{v!uU< zsBdy6Fod^)c;C}IM%z^GZw%-DLi}3{C^9S_M%QxkG zQ}#aBMj>$rpzwK~H|+&{TI&4rSDIwPNnEHfHoHsc->gZ|&b{a+>)G?Q+8(q2qqxG0xmdC&vzP_7A!N@*65a8d^QJB)_WITPq%RFGD10 zndELu|4dM{+{ZSE6@`>g>iB?uvXfQLq+eVj$~KC4q3OzT(F^IfZ9E9%3*tixBHxsQ pWKjNk(w)B`^#EOu(M?69AD~?-LUMF=mszauI zf<6OxJOCG^Q(&eSz3ogNieW8TjwMB&(RjR1YwzFRI_y3E|NTGz0$4`73KeS=e1z}0 z`GK2tZtik(kDDK>xQ_=FJjA0aH5+9-F5@Q&vhExh5~f;*;#g>wu)ErZ?HgUgU6D}i zd0h$hn62%*rrjk|*$Z^t@Vw;FyN+WS!X~@w8eU-e+xv%x?n`L4bf>5NEIi+Ef9qM= zq0pauj;$RCU+kOqf%ceYTZBSKW#8-(QiVIu7ri41wHQLn2?3N<(>DDzf^0N*>CnB< zkBOFP8(Tqd-*7u(-y)fM%h83kD_oQ3(W31CViJ0vN(9H6<>=21SL>08r4ee6*w%yN z9m6|vY>%mClRCd24YZa**K&xgb~-C-9J;RI_i1Mu&6s1uxR<@bj@d@W2KHAWkxkCd zbVB1KKMF~N_L;asWM+XX3A6_}Oo9xvSS6K{O$nC49+sLQDT-7q-HQa3Kj9PfE6MZM z8@Z1&07tYF77a(PKT@N$sDkQ=Fhw<_M!TauQ}IxRTUfkedM6>ETHBLwrtMStZi=I* znksFxYYRVcsoWZ?ojb9V_3M9S?er35pzQ>%Zagr#Olz@fTjIN@;wSkjYb7_FYL*~uqP+O zp8O1Za+UgVNE{Ms&(Un1dWrhd!aGQ>X;8!`)GFa(4d-dB_BY@HKBd{k#L6X_Nd$A5 z+N9jyDEvvrxZGS$xhwcQl53Gy1yWHK7T=(d#yc14&GvUhc#O{RkYb<;+4`VYaV-P1 zmGPFOZ*6AKxjavJnvPS8bM&jOXxpqEB~az$l>eu1S7&{7)o za!ybUUuJ=p(x6vHfO5%agWkwYy^;pKniKS9cIuTh=(Q1`d?&L(zoI`Pr!P}E4cf>F z`Zd1EifB0v+8hDOk484=x40E4|3O!fACct+y7m8|RD8vQw-}q8uf0S`9!%wzsQ-lu z8RfUAzFXZLprJxFa27XklRm@uXZh6o!z+BPZ_~GgVr6`eFz(Q#fEBEU H{dXS#kHw^* literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/AddCellRequest$1.class b/target/classes/com/auv/locker/model/storage/AddCellRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c9942798a4c892837fb448e98e3ab6f65d445c16 GIT binary patch literal 248 zcmb7%NfrJ{f)I;q(*tqo{)Ue(kPqD-SNV@BuxGwCL<6U Zp~+XxFbG!*?T{^Wf=6NF@IxVyL?5qcLHYmy literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/AddCellRequest$Builder.class b/target/classes/com/auv/locker/model/storage/AddCellRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..7bcb18c8fbbbe20d2d01cb16953c1bde4c95aa37 GIT binary patch literal 2309 zcmbuBZEq4m5XWb)z_s)g3T=IUs8;2{_Mkw0pslu;CK#fLH8s9Gj+Jgb?)2_x^jm47 zX`+cAzz=1dIl$7gB!DlN*}2>QZ+B*AFZ}-V;}-xFVQU6vK_`U{Ag&BCL!Xp(PGf*A3!QErF&dqt(IQ-6kR2l{l58+2 zj3MbYAcOeH)q7b##0#UsCWGc=WgY7*@@2Y(E92}s4@>wt(eS&YflJk~Mr zSk%B{g#(Y}4m{Q#eH<8-80|%jbo2~;ICBisUxR6v&_;rXMYxP(tuq0xz;%omE_(wl ziOaaSf?myJzoYqrLj_Lcn}K|>Go>r1ozuQ))fn8Afg%H-tsx*voIrE(9fb!#PlkY~ zas*1qcN7``Jskp~(i12t2TcutwugY|> literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/AddCellRequest.class b/target/classes/com/auv/locker/model/storage/AddCellRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..232bab2346cc9d851f879d23c5b996ec68dc81f2 GIT binary patch literal 2708 zcmbtVi*nOe5Ixs%EZGskI1k==kPsZZAe#_MNuUi5B&IHDNeHEHS-v<5vfWB@hJFTr z($3U`DKq_mepH8DS$2#^X~%RtqdmLYvwOYw+^fI;`SULTH()0)g^dKJv6;XH6yxMR zWb`?s5~D8|Jz})Q=u1XlF?!5so6!!VCyaI#JWb#fHdV~A{aVFkw$D^tQIS@$s3M~x ztKb{vY%2Ix!FLM27to6Jx^xP*;kwclQ0_G?yCNMz4To&8A~06kHx3NlHtJQqSodUA zIx7NdMIKnDMIcV@Ia2(!CT zfkah$Tb=Pvq!)YUcQoJ;N?PyEc>KMr?vxcu+VKY+CsYh(&Gn0&agX{=&%`;C2gpN@ zdyVdn=cz^L;3-&Z)b+LIK``^q$OS$=j`JUzB~bmaT@GL2G2QaMC?YR&0+E+_0ewI= z?bLRo>6r3?#UdJeUwPN~SZMeNSNZXSh9B{hhB?e@Fi_TT84DUrj$Pqcg=1-sNk)r| zo-@iYsxr!Af#f*Q9%$HurC}d01eQXX$IPa??b!iX0?DJhV5_|EpWyHXAJdk0VJOW< zHDQ>hblv$}j&|qahlwHl;B+eIxpMLUSMDCRPT}iZxZ^DKIyZWq4P&(pD_g~7CWI7OWn65bl;N9eM=(u zElJ$BByh4Li14X_z%}w-kryF*Cv%8MCi@0MEkxN4w-95iw4kz$w~$~v(t^hJL<^&A zPqvW!oeD&t({llFdX6EAacG#J=OlgdPSe89P}8&Y^*x7GoJWqbCfkjX$93{(30R`{ zf_}@m87xotePB5A2co}GQoBuz!oWqpjOOFvpbTA#xD`T<^^>PU$)ALFR{P1*q2$}4 zofG}!nNaddC|T<#&xVp$L&>B4cd>5Yv(|&~^eO+HC?_%z+#X}Y)b zbYtHpRTW6g4@h}Al0;h!8-W<&q^Qq=<<0nN1Jt*;K+C(x_34{L&$gKINl>k|AbXv% zhxlD4dkAr)?{;q7?={oT=;}9yd%k|TVgXzsg8Nh>LaUo4n<6wr7D<)P#1t+e{tkNG BTQ>jz literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/AddCellResponse.class b/target/classes/com/auv/locker/model/storage/AddCellResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..3da288658641061b097af07f60bd759666201181 GIT binary patch literal 900 zcmb7>+e*Vg5QhJ)J*LstTF=LNLPgAtcZwj2AQS~Fz27EF+?pnmruDTH1i=d*z=slN zV`wq#jW_=scD|jN-LLPDPXNc*HBiJ_2?eYx*-+9@vZ-XNfb9Zy7>bSP{6oO_b@$@j(cMUpoYKRL>uN?%523=@0%ZHDYc;0T6F zQ~Kg&(Cdiso_9RT)S7|Ky*3Y}ij!nEdXRMeQPU2379R{PFR&j)X!Yn4&+11($X#Kb zJC168C;Cr;-xoAw*%i^{Xpj2dzHXBe6^({Y{A6g8!kh6*m2sF97_DFs+Tu#8(d(%J zj?}Z6sGw@11j9sGiK%2#$rKER!~d+rP#u58ZKo^j2o3tRBK>R*8P$cnjA|5H>J?jR z7hCE`HV=AuR7s~PvdA*Bxr2AG*SM^f6sgh~^3C4@)G|53omNnY#Od=;Uz7cOT*Jzcv%bQ({N1-uf#92`U5A2lRf|d literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/CancelOrderRequest$1.class b/target/classes/com/auv/locker/model/storage/CancelOrderRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b34854297e1f23887cb617a285e05d5f27d59ec8 GIT binary patch literal 260 zcmb7zpUk&Fx?x&F4NL`_Js6{7h0M^94{5Ch9Lf=rV9{y Zq19LYFbLNG!;k}vg2!Q#@IxVy#veR8M=<~Z literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/CancelOrderRequest$Builder.class b/target/classes/com/auv/locker/model/storage/CancelOrderRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..ecc630011213f9311ba12847271ac3f868551f58 GIT binary patch literal 1299 zcmbtU?P?Q26g{&|vgsOajN1CqYO7I`2yTJ}k%&JG2!&|DO2MC#%@DV4c5y#~kENg# z6np?5N<4Q>sU{UnW#QhL*?Z2MduC_9|M>C^z&7qKql66!*B#inVPn%l0b4e1+PI}q z9-4{onVq3Rt$&~=+6{C#a`)2M4@X@EJBo)Ume-}ne(0x96qXvzeT70V8XAR_z8{(w z*?3^$S9%a|rPhx;9qjAam-%$DkiPK~vOUfGfP4y-oiH?UFVIP1_~KFDi^i_bCTW9v1gw7V*T2@Pxs|aD{!z}L0Q5XR219=RSE32 z!ovk&M~9?PJ^r+I2M5MWZQN0a8mB&{g@K)}e6^iLJLq7GcgN;kviQ)!d_+5$OHg7b z<5|vJX2o1=9b)NYUUqI;1YE`n$5P4yRB?fsmk$>i1>DW)0lRhYGpyDJE?GE+ujlYp zuCZhamyzg^U7eGO)Ev>qUx=h3A-aTBMp3lQzl5lDzM}BDr4CV?6}9#QN4V9kR6G~|jHLh#iS!RjBtwB}lF+B#~?HO@=y;5_@Pb58P~o?#+K literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/CancelOrderRequest.class b/target/classes/com/auv/locker/model/storage/CancelOrderRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..ea08e020f3329759e231ca355e5ebba3e6400bf5 GIT binary patch literal 1432 zcmbVMYj4s}7=BKH7P>mH4(DA|rciV(YGMqFA7n9E!d&7mi60N;1UpL`+d}rUG;zUb z;t%jg8Q)VXOO!A0<-PTJZ_hcWzkYxJ3E(-N>L{VEL&ug54G&A?K9W{LT1^d>bhb3K zG(6Vugu&Pg0ugn69>*eP&|Z%{e;^`;;y_G1SL_WK%-$)VaNFm>&^}BeFBotb1!qwSbx@$W<5arBaP|n&6&sM0wpdW_g$Q5rqd5D|; zpZ>PIRt7G^lw#X}4adMb$_Cofs-Vp9VnxOn>?Jc9Di`t|70p z&Rti;aour<#r@R}Z}Gj#inkpH_vmTs^!yc=l033ZNge3|#fV)nTp{n6JcV@CnnJN! z-;g^;Uh2X*)Gzcw!3Iead6EXnOC;ARRz{T~S7*tjH_4+ixQ6Rgn&Ad+W-aX0r^eP- z5|c^i1+y3WDIl5AdVJ z>QT(XT)b3uRlirSUiatM`v-ti?B`%$GmA8~blBEm$HcCQJ%-FcOkGFZ3>Yfy5ub9~ zr_z=V_j+8py8dmZ!Us2CIB7d_Z1c&~_N4PDls%>)o*jfz@u9F=+;@c6 z(F@&);7R&{AmRK_gjatis*UE{dVe-@1d52-NtOy45Sghh;AeJnT{%&XxOVl<^%&(N z{a6+(6fBs?Sjg&-L!ROIzb+Wcv#0O$N5TnlK)+X}<$|*1{Pq9dq zO_@>v NnOuw|*Q5P5z5&l_jC}wA literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$1.class b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b557260d823c144d952b4c95a86010d22b5a30d0 GIT binary patch literal 293 zcmbVH%W48a5Uh?St82jh1QE{;f+z7N3OPuE`UB%^vp#00ac0+#%OM|-j|ypjAcu6( zT@*A`-QPc-UjXJ9WXLk~3He^y=y-GXOc<|DHdOo(Sz^iYARCFb^*g?`oSNyy-YsFc z4$ezDhic2sNy-d4VdKcEsF2`5sYNY#f1Rf-e=qE$s7H_j?`acr@+BYuGY z0SQzIBtC$TLd-f22_+!ZSeABocITX#IiB6`KfZheumfum1#GHe%Ycq;9rq37P|@)~ z$3q6q?J=x$&iIhq9{2lp+mA$F$R84ayX2n>-XuruU>wp!mwAJhmh(wxZ{X0tkmoEM2rkXt<6xB`sf`67)NWUXe3X@ z(SCKFaTvtX5eKenukC;K!V}fmCJbCLQN*GN6H5$FFQ1uWs50zdo?+ac45i7nd(k}; zPNbv8@IDja<`KWqR2O=8juIQ#q9;eECrG1@giluV7icbkZabD}yh@f$Gov|gonzr+ z;jFKu9aT|A1hKV4bpj`z2 mF34Ra2!YqIJ_F4D15DD~OGMki3e9D*3sgaw1bRd^k^cnl{Fk2q literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest.class b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..5e5e158760de919e326aaf014a71631996d7da36 GIT binary patch literal 1692 zcmb_dT~8BH5IuKkyX~?re(EbG{9>gRo;&D=k=w4CjQRgg*RmRH69r5uQ8iJ+6B84dH1QNG zCi1u{urWN*0?#iGB9K3Of3KPc(uq0Mm&YrStW2DrYK1SvX z4>S}h3rJC#lvgMx7&?g=T4wsexQ6T02!k8ANoavvxSgc1dO8zVz9RLRPJPG>&0s|e z#_a9W35>uU+`S+;^KWqBg5Vr0m`#G`des5hAJF$skX7;g+EDhB7xSvKxx{;m-ec;l xvUCD*)_dPq@8z27dkp%`kZ9GfLY&8aB4{X4)9`>zDRd3vT#?W6Ka(SSxj*{`yQKgC literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalResponse.class b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..48137e9b2c1345433f5a10294304475911945a1a GIT binary patch literal 519 zcmbtQu};H441JfTDG7y^ma-$3mVsN?3Jg^06afO%{hC^B$|Z*`NxusuBqRntfR92r z0SSRB78cvj_OqY;_Wtq;;23)WTy%WY&~0G1fu4Y8DJyg?&<&SrrKDErT%H@FNu@(B zpTudLp9$3ZgNcAUGBXlrg>gz3MKUFOtEQSWozO%|Pn3;I{FQX`MVtwohLK66DppdP z=#H#Rc!-u+ZmgP<94&YyU0E`A#`DbB*hJ}T%I-~?5o_@0lryYU_WFahI)fWi*oek) zDdynskw@jBO*F94L>->M@E`gF+TVY>oGvNKvCj{7`QZXixqu^wW8TNsXC&DR_VvSO oh{viNu=T2>hfR)~pAGD{7zu2n#r7xp3C_bWaU{glXYe2Hv}p-GT27`>?pmRuU#_qqOxGQ|&mMZJ8h= zES0T=Y+9kMy0H_rEm;d6tdkXsU)Fp{7;lYXS7_-ydqV!j3oT70_NObWKoEaY^BD-8 Z*y^ip9K@@Ke#{;Q(bKqD{Gpi0(+^Z>M_T{@ literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/CreateOrderRequest$Builder.class b/target/classes/com/auv/locker/model/storage/CreateOrderRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..a32b3731d2172db10d9a5bc4bd3173f0723e2917 GIT binary patch literal 2810 zcmb`JZBNrs6vzK}PaSgz4g|$#MIA#e6A%y-bqWp!Bw#SUEZt>PORH^1^jm2n!D!+K z@Ix8T>9$a9mu%{rb9%b_|J|O4d$S)uzkUZWh4mivVTR2tn>jZ3+03(9VDo^@LpF;U z^y5(mkMSgpl7goh^x~O8d<1bXl$nCn=Y;l9+IeF4RAD@JY4Bemf^HC)5ml{!Uf!`;-Zs!dDM zp7utT>?*-hx-?COrxpy$@E!`p^JCkzSL5ftiebt1`u>h|UT8Ze333%%*UW9rF*t6% zOn7^SOItsw8zz0MK(=gI(kYpm>q`1zuA9d(~JH&xfO9jzwSk|Q-w z`gv~3cXjD{qfHVeww4d%+pNskKk(LryjK1G1(@97tOX|XT~jE%jHc_-bw?*ACj4Cg zwoqf?Dhb5i6STEMk#}eXcR8R^{EzKgMLecY2Dh3D2GhadUND#m2D5&!W!D{DE*U&` z!{H&h!zU(-bI4^e!saZSGi-+046zx+=`05L=@gsuxS-&97Gi@v9p`kwmhdulfMK?v?7*^3lCBc32X zP&h)SkobZVhfoT+>>=Wxe9{c>wE^*rF=!+j z6bpgY+kkjT8FVfhBtoE#HXxpI2HixSEVqA(23L^Jd_(W6f;hs-KWB2&XEjDT)0oNr zG{#V95>)a`NESY$=TGrMK%B%lp9d1(iWH|i6W_+2h@F+r#A@Wusm{a`k>X@$;$oyY x(V6&eq&VK0crsEP>r6ZqDHa`w=@Of!v54Uwu945tQy=|Dy-L^hD#bJhzW`@NS1>5Yn`XX7xRC2jvu zr(e>UI&_+u{(%0dPIqPbQKK?7)A5Y&K!jYZ&E-rM+ZX`^5R21$~qX_-U@s`bPl%bD| z)>|tPp@j{v7z6)cG|Lesi>zOfn1}tMu&-=uT{wemqcp5-G^)d1GJb)guGQ$9G(`<8 z5-pZ3Q+r%F^lMWujfBO2fR_p;F{QxfwP{{+7-@`LMl*~mjM9t_ z8O<{Kj?o-a5~ez;m4YL@Qt&-~kT4&}JZ0}1EuwYEln`$oK&v}@-kFi^&`E--)s^I9 zAg1T@!f_HaGgQUpvo}xRJl373*?C==Wo706iPW6qy7#%(Pe zFBEF0iiFMN$)o1vO6PMPrWlmJgssy9)Zekw2)IF4;uu}NQK&pFgj60DPtvG(k_N?- zG$x*;A@L-Qh$m@4JW1n0@*F}uhmdfOw4X=|kz7t4Bb1u>4P8}qv+SuN%ra7i%raU< zjAd^X3d?g<^szi&MV#e3Rj4d4RMGznISgT*p3~^1=K#7f2n9pv$3+a|61~)An)EA_ z$S@w_Dwc2!Ib6qmvL37@gatexjZ(uR*+}$z7mxh3HBSe6Qoo}6H5t{yg=rbIXY5At zaF6ds!h3<_a65T4ko-O#2Sk?J$u|SZPXZ&y+R2GPawd?hw3EjI$xDIczIO7hK=KEH zR$>V|KkC63C^)tG>9@u`1f$d`qszcl@Z*Wn)L?F!I zG6DGwuBgKVV!U#dfWqJ!fj$P;3B(zU5KtN1Aka^snNY3ICuz8*sDG!alQksiwo23Q z0o_m;x|?#;?VB`s&#Cj94Z7_&Xq3AAV?Xf`Zvp`MEk-Hvn;eI(CwkTzd?C(X&u$Yj5XL{J>25b!nluei{+7}fk{(!udMiRgK}bjul?dwH*;uLD&ARe#@?5Qi zgv5ad;GqyRZYZ$wh08ad(fmB~**|`M`wrj`2Mt8niLi#JEW0dwEc-0aSe}RIh3E^c zP1HiC>cd2!GdzNvY>++4jO0R!H9Rt_V8tPnqoX^I}ewO2mn9k6oGCPr0bG|Ir%TrBvyc(uvmdN=c z$xM2#Y%-%uvZN@Dl~a`rtdga2dwo*Hg~4>0rW#bZaTrlD zSXvAD>~@cr)uqA4$joi3-fMQT<=N#0zhsOJbYe8nj1jZkVp(Ttv9!??c=^9J1=@eU z>3Dpm(h@uLqY-_5fEtgZQ;jFONJCwuxh~RZ7il`h5Q4WP-J~p`C@8KTe1*7jZC%p9 z6$9L+b9~)^JGe_3xyL=yf8j5vT~^?h7ryU>SE_K^3qSC}^(wsKg&%t1)hgWa!jHUg VP=zH_1>fvull%WRx4U;ge|`G_por=q4q%qebvAQsZm^kWQ)08g<|doP zG=^|1jV0VRa3_rn$_DNlxF?WWm)pvgm34t^^|iHanU2+{nJ;`-HEJb+econsYuR0w zE-#7u@3*ADXkcZf;mewIX=z%%+fwfP6;-DtN#(t?+`53FysD~g`h-&6UFE69hO{Y4 z`PLg*Zm#oMTRINolMAY${6&F*+|(*%YkwZ9s)l^hs;^0R#aeSnkgYat%UQKt#c}6l z+}~6l<-5~T4*jk`rqXCgx9nJ+C+WjN)o#{JtF>)9P5X^>%{nD_OwVt+R!y2^S6aS& z>Po%Y=kje!dj4bwM!S2O3v9Ymo~gYdp9PWKI_{B~SmW&r%;t6j;x1aYEj@3tP$=k4 z@1bZ@;fe{w-VwK(WSWz7gBcE}CjTj8x1c)-t_HIegTb|6FdGc62ZK2sylA#uTi#bZ zi4&1ybA=C51``;`;0T+;Y!0y*XEVlT6bCcN^3yPzqc~>Zeg+TlP+;cYYrup@0`vc_ z><+oW@XiIWy!Kij(~+H5or2O4+qRsRT;32E&sBm=?v~uZV}aJ5I=P!Em@e_HQQSoZ zrg56C$sxK~2NC0b&{K??qdj#>dup5Z)I;s5q1sb-wWn5VPkkqU5Q3XZ_Bcf);tBHm z^Iwq8$G>9VXBZ##@)Km!^clE}I0`sPPnq^&oWfa(s56)hfOxHuzxWx0`499M10#}J zGN&+(28s{C=~+T=mFxQFlZF#$ac5(=Z}mKXub!CtID9U=s!w^K&2ia zZVQ9Pqd|!fXrTv)`^un0(V%z;bh8JD2ZKR}qd@~9&|(h|PZooYM1x`>(5)UI9!&;K zM1w>KwA2H{v(2FMxImWMU!hSt=OK-^GDzhwF12xL2z2lPjEx_hlSsz)z4^~2q>S9^9>ch9x{{^yUs04(EW26MQV!D*B;m_a2? z?tMlN7=6L$OGZ^j4;g*MsK)3KqsNRk7;Q3o!sscZEk<=lU+dUrr>x_dj&F247ci=w zj&#e8>3Px<(C_tZrzu^5R8#KRmaH}fa_FvPOG@(yLP9wDlp;gbayvgisg`m z|7KSTOhqEA9bdMjOQ9LLziYd1>UNt#lD7BEblX(Q_G)%($EQ@bSFt_2^HN&mrF`?X zEO(n6Ye~o9^vN~5WBcm@cNc0_w_P-Qdqt;fy_RmVO_5H~^SiFulEtzsO4aL+uMFlfy|5TL=fOlKDQGJ?6rDEeYA!SXVH{271V!AB3@1%~HJndI z;c!HpyBeJmcT^t?ih1R5R_j#j7&8*+9c#v;)Lv4`(Dq9L+WwNj%4kVQ>08~NYsm*T z3+ha)7_aeNGH@9SynJim1->)z0nQrup3#Sle!!0gKEk|#pLp*a@0pCwGiorpz{p~h zXVheLk&$F{31+en$$R7PsY&2e}>%9E#dGa)Zu?4=Y8Pl?)=jBT!8qMah zbP;=H4)ZT@{zK~n4^yckVcNxLnz1E zQI?dWEa^sBQjM~t8D&W^%937`CAE+>ps_3=ut?r7kuDr!qfCSs|07l6~0rouC{&eChlk(f{8 zD&C_n;u);reN^LSPI+j`@neNcO-tLpnka|JqFz< zPGcxM9;P9s$C8u7M)vD&N|t?{ z6tbY3uogyFD0++{Nc9I0M-uMG>Z;a!KVl%wBtBKrBo@|jmojMhjB;rBoP^DHRU?tp NFPkFq&ymp6{{mF!As+w$ literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/CreatePreOrderResponse.class b/target/classes/com/auv/locker/model/storage/CreatePreOrderResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..b69be8453f731e055d383155b0833e026a83d08b GIT binary patch literal 1119 zcmbV~-%k@k5XWarxoeLDN-6jQ74c__z&(gh5))H3F=>QQ!u$3*DT~+JX7Ad_e+3DN zi4Xn({!zx6r2<~|$(QfUZ055w-`o53`^QfJ*oB<{0(e%1Dm-U-!Sa%&$zG>Fwq>!SQv5O=_Rt*3UP68Kj*ew=EREuN zdRWd+6y5u#6YF6l$CD`0@mDm_kS^?!T;0kxYK-S3@ZoWlk^en7v94<#N;S&1jxNW*QU`8LuD zHqsV0(jpWqAb4xi6{;eNg5vDvcMuo0ZI#rshaTLaJiKavyKs*x0rz2z^k4WAO6LW* z=7b+O;h7@5HJK=RF>=ogL6MpQ3{UW^Lgg2aUr3kM&;V1S@ Gp8f%Fu&=iO literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/GetCellListRequest$1.class b/target/classes/com/auv/locker/model/storage/GetCellListRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b427a627d632c6644e27fd4ce72905c45a953c84 GIT binary patch literal 260 zcmb7r8tyo#W7Ec62Nm42ao@%RLSw9E z+E@EyLd!drGbxM=CgLE8bTAnZ>d$qclNW?ayK_jW4#Tk`EPFaoZ`0{WMIYqIaHi#j zzBGq2(pg+2tI0(a^{^R{Y_a=Z8}v)0r@#f1)BWWp*RtB#h)l ziPtI_Dq}nyC-2p1s^Vm~U}9l!+KX~K|G`%qWg-br+ND`ojU#-O zB!ulNZ%S!ke~_Kge%TKC*yj6D=c~fA&L+rSm392Hdj{(ZI~H7C>v?h& z*V%XH1-O9~j`+}{#cKv0aJ9wO?mqek>V9VTB77r_mfgH)2FLmpMSVs3TEb$J|j1_Sc$)#g`r!2qF6 zk5!{*OpidgL?;=Nu#YkgiY63Ev~Qa$NM`>#D&HV~p@f7>wAN9fb&Eim$wUHN%>lTK zU5W^bE0kmO+rzbj*2-d_YJP?MnTm2ch0>tjg2u?s)qlaIB{K?=2FU?a!m@YE5sX!mkO##7C|)XyW@<^7RQd(n~MGwNR=w} zfe+xL5Hp*Kx@KQ^IkPjKvuDn%fBnAr2>`EQ&jlBrHJ|~{8F~zThHZuy3@;gW9N2Zh z7f_2ZNd^-E?cg{(3H>BYV}Fopj8VN2P}Qe16yRiPf{NQ(g|EcU0$)c~r8KxxrR;E(F6R_0lACb&{HX-U-AXEG}pN>(D!f`^C zR**$uauh1b`DL-HzsOv`t02mzemFnz`Ce51lrBm9TxTkb(LX@FPu>EV>(7|avNT5; zwGl7M?4{f57u;N#cBp4$e7kfqPPn~ut^Ke0Rlc#{pYuUs1)RSxY+;3Ra&@@~_b{8Q z2tP=6yLs^M%)9(79(17V!3uaDtTNnyH4mB$>zuau)CNz$-v91IK=bP1hvQ?6G;Gly z;?n=*K!r8wRAE^YN!dgaH<9#Bq!CP{DJa%~_61$S4a$6qg5vV_Ifx&o?IvN(6l<_a zXK&E}x8OEq0`99U5S;Z@t%ALJ^WfPa`Uk%7AcB5DOxIeC2{vgz&VwJ|M~U(7#a(uWg<*zy zy&q2iGjteO}d0WVg#V@zfgwWdO`dvD5wtw6(L1Mf(nVpjk66)9b5Pk@mV0X zLTaUcKtHPLtm6s_yd=Er%&g}epPAj+-+zAm0m4vCb^5v(b-;v>G(eZev z(hgkV9g9%uINQv}rz#?t9}?wtWk|61eP4zm7&vTcF&38 zAQV06?8$g{sLuZq9Ln=VM)7*a#nKL{_XXD;#aQTQp@etUF?d*!C0tiV(R!oNNac-R zUG08p1ml8ft)n0bUHMVzt}i^)qBr^&ZI~$8n1DrSj;uoiR|#7q1OFWlp?q_h4mxMj zjZM5JMAb(e&=}BWOW)eJqu0^ID$h)j$A|l_d&yp&eQqePlN>p0iEW{N4daR(12(V4 zbaMtz*tdrXc#3Bn@gShWs|L3?+hA+fH@<`Fm+an#&!_O&VM+$)vK$JM4PE9 z!1{^YNu92dzst3FONuq*Dwi;W*^J?)j&Gp5;Q#BGOY1N&pUPc8nQetd7WhS(;?}Hi HjB@EOgZUj8 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest.class b/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..2f80c48be6bd14758fd271841544f92c319680bb GIT binary patch literal 1319 zcmbtU+iuf95IyTSvE#aF2<1|)NgE(>B%BC%K!HBc3KS`7C5kHXxN(-?;@HBMsGkKA zC-0nc6ULxOd7!SH^i#jX%01^vUW?NwhZl|9Sn@@e9!m8ioF@|%Y{{i% zq7BQ0iA{#*Ydgl!TN%qxy%_D|(V1{!8m*OSn&eiYC1=^-jw7O|+3k{x$CtUlB_o9f zJz|}nH$4sM7M)Zm(niWuDH>3u(7tKSp;( zwkaYgu2GKB?*?w>w00T;Me7^XFI1G#l_(ABEosd3T+C_8M6#2E>uCc(|ApfFIZ6`G zQaKsEM#3w&l~*59wG>&hI&-iK=~=Co_Nr$U3&|ziP9+lxcW{>&6x<^Y1@~dlUZYc) Nc2srx^V7(H@;_MwQMUj9 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/GetDeviceInfoResponse.class b/target/classes/com/auv/locker/model/storage/GetDeviceInfoResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..f12f4d765d666d1e3ebb258118bc5fb564953b68 GIT binary patch literal 1156 zcmb7?+iuf95QhIvb8uakra2TS$8t;x)Clzs#04O#N>-7Ys`ndbF5J)Y=WG$uxS&;FkF#o(OXCgvarTDtOG$Un)OL3lWKo>Yb^K z&I?+mnqh@Pl!&952>6VSX}^-GEM8M)G(Kf$zEwK95y(^=&6BCfPWUvYNH0(!k573f zwSOLL7N2C!upfjf@%en=$140RGC!e1Vm~ib#v|b$h~izjSo%>Ni~Ng9b3x;+MOA_} z9*o9IOH@0rS4HL8+Mg_KKD>lo?5+=gQ?2j(qiEqWQMM1NdvGUeo`vGQ)XQ!kRFf@@ zyr-YU!vI4MYw$d*Yq^3A4_z&rT6$Xg@EBhF|D`Z=FP{Cw^h|^WcIXdr>3`~=p}W#o zLpL^-dK*jajim{Ur6G)^ImkMo+r^M{i#(q!Biq{j0rt(5T_tUsU>n!y+bauj9oytF z+`vuJ%kXzJzSiKb6~1MKSL*Pl6~2u-md?#O+_S=Wt#GRj_pR`b6>itzffc@Ig*$b4 UXoc@vFU+aKTUPjid6S2K0Zg2_&;S4c literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/GetOrderListRequest$1.class b/target/classes/com/auv/locker/model/storage/GetOrderListRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0ed85a8fea69a13361086be880415910dc9f9a39 GIT binary patch literal 263 zcmb73GeTi=-a zz~S3gDRRP_vYn9qAhcCK>_lfP*1`wtWX<9RZ2d}D?2KWz(b9YNgkt0iEln-TQ_Ct4 gUhc&fPasTUu~83k5U&K&mrNU`5Xb)qffZa8(OP@IQHyw4P;9N(OKRGNgh)~wlYU&5Q@VCp>h41NSZz{c z(R!nx)${t!R6)CY^#n_>*3f0^?QLG7VX*3M6~Z z?R$=C*XWqiaH`Vb&oR%e%Y9FGJlf^;OPhA1JEm=VPX)%(O9w>VZB&UmT{3OC*Q{5h z^H#4|w393~4Ba}=9h2?OX4v~+(gl?lP1B+%0&3B=rL$}4t}E%ocFAbeHNDx=tcLMX zI$E9Rmgag5hc2(ZmR^}}S2A7ijXY{f*GqL!bn|k$C!cQKOBW&T^%6T3x)3l@;lu^< z>CrKiVO%#1>AI6$xHV^JR#Cu?Kz7tb*q>&8YgE7P zcnT!W-ekFQC=Gg4GiO_!aiyox(ygW}zZaNK7lYcQ;F-YD1zItB6LSTA>FXosp2Hpb z#Zu{4Es79#fmR`IiLa?YzNTjRnmXreY9r|>2yPk4%VZVEPmrF>oIuHhzhnFuk+1&o z1(I?445SdoBCgO%Z6C%}+#pL(=$kztKC5Jwj}gs$p=Ah+i25!ozWcn7Q#$T+*uT4= z6Vt(aToVG1dTKk zBAIW9o_9|5I7euVXlTg!exP$?IOjz?2#6dW&N&?zd2Bf6rNGFc;hZyp&SD5>dNRxY WV_Ly=(n+!>=%15o^!J2pD(GJ+d9CjUushoay5N@6Z~T++7_1K>w#^Vr*)r zAJC6#I%h#4+AnB)*z=sT=XuZB=bT-B{r>(FKpb!U=*43{f>`pS2g^QkpDnU{63zmP*ptDrlxDO#x-Iq8D<~5b&6mW>qNE zmpakTv`9fKxvl@>0N?lV^HXCUXM8ro2PT&`WtrQ_2RN#^$uyi=m6XH75Z)`r0PbShgeMzqRVq)^U&kVd3f&dEZ=w8{omitI@%%}1ql(|RjU zE7G(=^eDQ2W`q-6>e38u6s?+8X_x{b71S-MQHm<>i)m-uf+CKk}VSJt&(%pkeu(a zYpcFS{A;T%aC(DTwO==8&)0Px6>y!$1mf2@Lco7mt{7RltMgI}?ftt>^StIN#&MS~ zFH|J)QpF%{t9Zp|h*1i!Roua_ihYiaa4gNSQH~uj8pE)_@^$4Eh_*`=2sGZ%bml~6 z=@naO_mmJx+cC|rl3&YarD=wuQIb4;gIPN-_2uy~KK{~KU}yh7)oQ#D^(R?uE){Qf z6459o>C+gb&#Z^8G;Tsc9=2_1)V8HT+m^;`TN*N1A6&dI5SSqE6L~JOiSPwn;n{EK zsKU**vkDJer3x=wUlo3~T~(-TZ&lI#g@`U{1(<@Dt^v5IEtOj7M;~ohKSCJ595ooH zR;DOpuvQHB=nnr9xQ_?aioiom*ISC%KF}Hd3ioG9s+I6i7_`QGjB4Y~`Y{4Cj$}_O zdDxL0#;ikSZ!3Akkv!*E+22YYbtFG>tgN<@#~jJ?j^yrE^0))pN2;^R6C~w?JrThB z13m995MaKrXIc|{G5}haXgzzIvO6e)R^tMqG5=bwV%M6eWn9hJgP1*IUe*OH(g`lw Z2OevJHiQ?~McYEZfS3N~dud~Qe*ne-)7}68 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/GetOrderListResponse$OrderItem.class b/target/classes/com/auv/locker/model/storage/GetOrderListResponse$OrderItem.class new file mode 100644 index 0000000000000000000000000000000000000000..5813661558c5c741e1b9ed6e4858792ef55719a7 GIT binary patch literal 1481 zcmbu7+iuf95Qb;n9O}evLz)8R)Kl6f1!@ZA*uqT;Riua_67}A3R_V5m9j!MJycI}D zNL=s$JQQMPQl=z&;%2z=2&G^5Bv@BH1H(O!9uyoJ5XLO7)aM zsupz+Txf`pzaRA4T(-P+fGfpD><_VE0`ja4MQE_aW)(riP->LZW)Q5f^`_%xg~-Q|krTdGv2teDs} zkNeGO$4XZk$DZY}?`UkBjaBW^Im(-t=FQRilz&9E#uifbVeBIHzMV2M*Ng_z=kEl$ zwR~(CY?uDG127SM--|FDrkVe-;W+UML? z4EFx{Kv=^k?BLV4!J_+PX3+>b;uJdKAUfhKI^sAw;zT;)P&(pV7<0hL4%Ay%xfmJ7 z^v-u+Uv=AU)Qny%!5z$32z$V9pkm_B)nyW?;F3IOTya* V*n$W8H9UkBjP&C2@B;3E{RbgH_!R&E literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/GetOrderListResponse.class b/target/classes/com/auv/locker/model/storage/GetOrderListResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..34b6047abd525923e06a5713e7bb940d5975e538 GIT binary patch literal 1244 zcmbtUO>fgc5Ph5G%dSb%K!NgIS|BOV6@pu;UV^A1S)|aaSF~|fu8U(w>vew@NJvN= z_yPPV#H`&CFup`w-t5fI8_ztC{p07i?*Lwb+i2pkg$AA&=o#o6*fH?5foBaoZ(x_f z8mp;PBQ0kP&M1nc8ipcCWWrF>u@)i2RrgGs3m%Hd=c7nVU#bB^b1v0~x$q_Nyi_R} z=?mAQ0+;9NRA|A_$xEa<2)P?1n)udH;73BIiVBPi*L$uP&$vj>c^G>irQ)-ADnp*= zSkVLdfz(;orqX+v%;PAL+rQ@+>{IpnUJwO(pJAofKVhg2sQ^RU4I=qAolT@V7L$-7 zT{rebcp_9_{EJ{!p9VDl%jLT;y7*Eb=fbV``lZs@lyWH5VJ2RSoMEnC9$2M-OA6** zgS^+7hTY3*f2#QIpWy#%XCK9>^5mPq2()ofBKEFX2nXx9?!dtn2Q33_104fv=rX)m z`W@1qEH-UCIg_4d7%W|8u?pCvZEw;SQA5QvN~enHHM7)iW~t-MQq!Pi&(7CSr!&n* zc!MIGEF)Xn`3m+qOSwsCk_>JTI(Y(a;Wl{;cW{^RZ}JyZKG9_b3v#QJe6N(eQY5!a z$@fdi)grl5N`6pEt`*5^rQ}UKq~VG)*NfzC2|3q&i|E^#LXWUY)+PzfAIpaI3y-S= A6#xJL literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/OrderStatusNotify.class b/target/classes/com/auv/locker/model/storage/OrderStatusNotify.class new file mode 100644 index 0000000000000000000000000000000000000000..19bd057f3e3ccc4950a5e42e715e269e698d809b GIT binary patch literal 1314 zcmb7?+iuf95Qb;dBu-qX4QZO5IF(~kATCh20U@CvB&4XlNR<1Hv$$IvJ6dld^{qfc zLgIo4;GqyR>ox_mH{AUH&T78#%y@tP`u+m|j^L#W9voC*6&{g1CV4{ACGklPNuH8C zBYEz?kpnLnl=y7+VZxx%KjRDTM?4PwfmSjOUomikQ?62>8B``>Ap=2~Zk%ZO@q8$! z;wm_wVNgkB7!S?SSqPQNBxX>{(tAm)MU0h-l*FL?TEE(=tv}359-}P26mEY%{x<(YqXb6@z!n$!i#8m9pXgh|SQHJy@=Q3XLweP+y|U zMK~APxWqv+SAlphY2emBZFlL}3gX9d2O6;3nKc{Tu!Yh0i&7!wTQF!Yg^WX@&Q#a4`>W zTH!lZxRi%mR`{+JF6ZGbD}2uiJ9&893g5TFl{~y-g&$bqY98LT!Vj&mn}_$TaNE3w F&TpYn#Qy*Q literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$1.class b/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..71f6eed3d9b14344e71f5c57c92b6d097e857a67 GIT binary patch literal 257 zcmb7@u@a6hUvY7eeS(xQ zGICM6yeli_%wAn&&sK#(yv|wupax??XXzaKsnsEHAY@;PofW6)3h(oq=QfPSCTDV&w(BmVnWf1J9NGJR5&LlLGk{Uf{(q1v1szF=h9{ zE@fBRULfBl{f<=coQ_YKVmovl|JYF;$D?F6KJg+d`YQ2!Dl1^^2Z2<3z7s`~9z1Wm zVc&L=f$fLx2dV5nvHNxuhsx4PuszdoPkx^V35mBe@>U96L#p!Y#Zc$*T zIxh+JVmhuXqo~qoG}6Wv9I7@wk%0DzIL8H=TwomRq`^^`C|ADmcn75^!M1tF7A%++ zmf0+^xrXZk+w*nFsG7jD`B3A92^1!8+d=14y0MPBK)<@^%I3v2Tm1Sq=4`)-GJQ%0 zeP0=9EFPUSRx65pI$%QmoTY_y#SiN-=fz7mz$EG5`Po literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest.class b/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..421533acadbe83c281f866636b8bd097f89f0510 GIT binary patch literal 1551 zcmbW1Z%@-u6vm(1{pmKUj0q?z0y=dYN;^bEF}@IDLb6B#gv6I!cQcD!i)}~nTWKP} zXyOO(Lm8jjZIIyJY*}*8Ik)FL=k|Bc`seS@-vHL|vVaLx3NTPDAdgy};j;3cDDSEA zR+MMzuvAdhQP;7mv}C2(hEY`ot8kUab%y^rf2(Yb3YDU zzr87tYsnMWk?MIm{&Fk@vaem=jo%1tRvJ#wG41Y&=>^Uw8JeA-B|S5WgV1hEb5HIb zOMg2E!ae!9E2FsFZ@O7Mq}mpf1tuG=FW+}NO&K28O^-XJM&Q`qp&hy^?r)~!k1mgG zjo6Vdpf?9^x-nw$#c>4+Z5i(lI89fo!$?gqXZr${&gdZF^@{0ZauVo_&3M$F_2gEx zQ%gWQtqZJbHVaLG2k(WE%}Ar2ubo4yE&o933~6OEXUHn6pCR{+2^wy4 zokfQ0b)+%LHbn|e;Vv88N}eS`n8R&Gl*AoA6a3BNUca50#6YI@9qF%3>d9ug4T>ol zBk?nR8G(hN#o4RHGee6PhZg6q7S9eT&hz+7{bMgCjDXxPVYq6Jc0V|6K2`qI#Wjv&UhDX%U@R+#OEo!(%i(-x+^agUskdPSo06q%g z1SAA>VX^&eKl|Bl?=Pv2Vy literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/TakeByCodeRequest$Builder.class b/target/classes/com/auv/locker/model/storage/TakeByCodeRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..1c79c3827d380dae19389be05636d72fc4a2f607 GIT binary patch literal 1286 zcmbVM?P?Q26g{&|vgtP37&TUHZL3j}6uOBN5hDI*K`1N=wiNt1nGA8-%`Waouy3WH z6cl^_A4@p?i=-CK&bv3Mw3EfzopmnB;}PLbG*5*}W{g?3qBnN=JPi z9m>8>bu}+k(m#@s;q@e0NZy%Pz}`)bKhTjtWj_dXwCBq>*7V|;r^1md)3NJ^>O@EG zh}eBMPQpkIwRkxJ<}Zge`G zOxT=FwPrgKus#sy`37Cyz&QxhNa>e`ZLiOGw9RK(frG^g${dzZ5!lYBiBS&)p5{ZH zACExw;)8nKKh`R-@kn6QocDn8;<`QlSUWl8cd<#=#ir|H(L?5CGjfu~5(GO*@d~Y6 z8U>BT_8AsFWo1_kF**M@m_^fUjooI_0Qj z0_Pd);a#1}iNp-i+CPZ6Att(sIz?8rLq7&q>wH7uZCjk7I4x@9kDi?0qN-)wqF$#B q`3!3s{I?;u*$@KXxfCq^15DQ3%}iTGjm8?SOVq(N>Z?I(BL4-0$Q#B0 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/TakeByCodeRequest.class b/target/classes/com/auv/locker/model/storage/TakeByCodeRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..accea4ff5a8535c12748fe0c481985d65ecc8a22 GIT binary patch literal 1414 zcmbVMZEMp|6n<{nCQTOC8rS)*RXgpAHt7%%D}LC9FenOc4*Zy=mzph2FiFe&R|<}b zfv& z1sw&C6+B_k_kEv-yPh3IJYrCGrmi>QAwzk@XRgEdM-0Z`*q+&@XZvIGAP!xB+-E2{ z!H6@+FJ0e_UorHX11Ff6_H<@?fpfw`b3zH88O1?pkGXkhpYWZ}yA*rJKTUZQH?mg! z))AqJ4-A!o>+?6$$&iPK_Ryn})h!%lJ_!DP8IXC9Fsd!(?Sz^Y-i|2O*tW4ANwjsu%bA?eLg8G2N+r7!4w-&=faV zvmJ*=QNyx`z`@F=w)8HYWA`iz_vj&O^w=dBf;h4aK^y53#fVujTp{m0c@pVbdk(4H z`HsRFib9vpAb+I~5;jO0D3a7kULv_pu?lJw*-VQ`UnP%Va1GZ9n&Ad+W-ZLbr^fAX zD1M=&6jG)zXc7UVCw3`=VYs!lSpK)zSW>Lg1h=!!^<+Ar{1eKDIm)7*CHth!YgIA8 zoh*BgvI~?Uw>xvNi`~;)CFxa9GZy>GxSQ-tRj3o`g3SAbA>jcnC3ustMjF*J{ZUn7 GPyGwIA5ifC literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/TakeByOrderRequest$1.class b/target/classes/com/auv/locker/model/storage/TakeByOrderRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..41238520768b3fb69565a7bb26811b76f2c8c5fc GIT binary patch literal 260 zcmb7HJT85D`VKrwe+4nA^YNmmZlJ!!Z@iLgeyWTWQ2C`By1XfC?vAv12U*b9{>OV literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/model/storage/TakeByOrderRequest$Builder.class b/target/classes/com/auv/locker/model/storage/TakeByOrderRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..219a0a392e5d812f59c22d4a17ca42596a38da87 GIT binary patch literal 1299 zcmbtU?P?Q26g{&|vgsOajN1CqYHOn=5u5}IA`ySIAQYknTMGW1Y=(5&%`VRF27N09 zrJ&#g_)y}#Yf3e#;8qsyoteGo%(-WF_WO@7-vDgj!8}S>;c(l7i#sk>JruC!;;xHz zf$~6)jjy){0=3?u8Y>y7a42^ZYrVxcTYg=7Wet9;4Ai7q`>1wZWdDGDc{#| zTyMAAnY8ov)tqfgz7gwti{Wr$>CI6?mAhpv>U{DgrX6Du&$? zc#;!#a!3Nz(@$%sf2jS$#eIROaqeTv4eWIJtL^0Npo2BKJ1*TNhaPe;8lkw%v$9K*BH%g}Xw0QlfGVy~rpt$`6dByj=mEF&@H3p&2U>D)3SZ9P zi?l{16F84p5AW)oO(bTBR{lc74KdL*EK+1e8}yf8wcb}0-n7IqiqoQ2f9uKnC8}D+ u67@Q5$R{|{;6Dwy!G;j{=9yse4`8z9R%Y5VYLsg(H^GL&L)oxsRmPkXBPeOFA1G z+8Q2fc*0=p1%Zfmd>+RlX3(}rp5GS{L$NQ$o-6kH3}*L)kGbXZU|=04krxa)gbX9X z$V zj~Vhigk~sry+FJf4SOOw;ys@tW;b-Xf6OCK`dKiaeDG*sXVI2&^xoekUoM(G8<=5b zAd=k~M{AAdJeG6YU`q1HG9`7S3lt-E!ElAVcjPIgtE~x? zR{I-r=g3Q4IEVU$J}6itX(CV3AbE-8D#gmEQsnA1ne;k&R0h{@ok}y@z|E|MmHO1U z^%eQg1e%sqDGZuKmN8Phkd>Qus!b8IeO25|_oXbrN?$b|vJBnq3XeTyauuN5zA#WU05yjHxT6{n}g T1+BQE70*tKi(2t&vfSDy`w@zf literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/AuxApiService.class b/target/classes/com/auv/locker/service/AuxApiService.class new file mode 100644 index 0000000000000000000000000000000000000000..006a1d594bc2f406e6ad61a1955309f9174c74ae GIT binary patch literal 607 zcmbV~O-{ow5JtZ#At~jjg)^{#4c@Tpssgd96hWkltuZ4=aqAE}QMnom4#1&M?Np$E z1Qp$QEc=b#=(FEHUf%$mqn}_u!2uywtaVxtCMRQMWLU33p2MoBy@wpriCTku5kovL(8F`t$exUI#--I=_;?2f9Treb!gqt z+i!WtxpjocwbsD>!?_x@)$|o@FEdrC_$t>-IP&3-iag^oWNwIm$>cvHK&72jCG sAkad~`GZLBrmS2{Aawj!0iuYog~)FR+lZT*pxe|P^gKb>^=k)vOMl?RT>t<8 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/AuxApiServiceImpl$1.class b/target/classes/com/auv/locker/service/AuxApiServiceImpl$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ba5d138bd58df41f790f834b5fbbd439faba92fc GIT binary patch literal 1180 zcma)5Yj4s}7=BKHajTBu+`LRT6(@AKI_HH6nORUH34=rwKbLX>-AY?~A^YNwGI2BU zgFnC@Wqi-*GE#z(hVx#|dp*zl{{Hjx7l3D|q>;sjIPPU2<9-ScGAQ6-hBTWgJQ6}N zg_5935?e`>8M0%|EV%qjz&)R#*wpQjss&@!wDn`|sw2D4O;Vhwb#9t%=flLZ%CO)M z4X^NoL5cc!+#MS_R}X@d1IOr0q{hfGg;&k641b^D(@d)QZqWquiYj#(;&rN+VX5eh5G(T`D z%j@QmHrCX@H%ygEIOhHLnm0VuoZ95V)U1Kp@m<3jRHroU-VxXR>OMuwbnL*@`8z`t zy)yHL+af;o_tw%)+oLdt+#lNgBp%DyhALwbIT=@QRmKtsom8I-FdAgBBjYJ{Wtx=d z1cXj_wrm+Mu*)FXj*ORrQz8TKkJcGh=QK-$^uJ-kO4<%XcV;B!0v!eD(vTkPVp2WF zwmeQx8Y_y)*o>5P>2u)_E?vEPU`qKElJWyFB_CJ5 zLpnp^3=5x?d~zbCCQ^DLWrXyNoFy#Nxq<|p6-u^;HN1j?DoHh5Kfjac+#{PCL9Lmm!-hQTqJ_0XjW} literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/AuxApiServiceImpl$2.class b/target/classes/com/auv/locker/service/AuxApiServiceImpl$2.class new file mode 100644 index 0000000000000000000000000000000000000000..2838b9018d782865f9be5b0dcbe57f71231fe095 GIT binary patch literal 1167 zcma)5ZEw<06n-w?fUXMS+ z&$G}N7DuL24)~Xdi;zKYS>Dhvqmkiw)_@1b(CcxB1gA!WJC11k;$Wg%XIKc2ZBbtT zhn3*L$hNq#6P@n(c4xvhhrT1Nwrtl9w;7JKWU%>WNzM6bRSp?44a%CK(6U|rF&cJx z@X72tBq_B#%XALSz?OV0%*Zkr)TZn5py8N8aAIr8kaLqOZ%|eFj@@_7FbXKjo7Rar zGL0y-9fMLB@ZO#&j`vM}Yx3ZjZr|vHf$jF|Q<8S~gj->Ko4hFW5hEf z!a7!ITNT>pRIwF S63vk9ecYs*LP_O`()S0n06?z* literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/AuxApiServiceImpl$3.class b/target/classes/com/auv/locker/service/AuxApiServiceImpl$3.class new file mode 100644 index 0000000000000000000000000000000000000000..c6b1132a477603d1c0b8e2cebf932a61b78c9243 GIT binary patch literal 1334 zcma)6TTc@~6#k|yY-txL6~VixRoeww5LC2?Aq8WTB9ST>o*cH5vasD<_tL;$@yWkn zA{c$}(FcE&dZt}t(*|KTJLk+d=YG!Y&tKoZ1DMCs08+Rmms|>I+)m<73U`rD5mJzx zmc}HelDMZ}T7k}xZgMNGWSZ40ktao-oTo$B^|Vsg1T zN^g)#W$dqUw`H_d?imHM3)D(*%L-kTp~BAsuOyKcy7vU#(L^JE$vg{tF~b|KABk)!LCzNFr(r==2Q$} zScQr~6&cJkBx|iUmq}t)#REK4@dyhl9^;9EqKZX4W#}`6Wl=@6u3`C4K^VqQ$dn;} zRx=EV|ar7V;fuQHy(#P6Lq;wT-;U0H`V1zb>Mo@&k%xsI&O;qARAq z+HixzR+!tEp#MXf{vfeTMh*i&lqQ1^MqdUaM6<+wM4Vn=MVmYV)25CP)4m|CWfR(G z#E#K-jQ*`QtNg%3#C=7Q;R8mr>_CJ_u}@?tj&rn*p^w%#L-E`|%lXTg4xU|hjP1(y_DCM-b~C=Xo4wHCcjxk>Z}Zjv8Ro^)r3((?yr C25e*i literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/AuxApiServiceImpl$4.class b/target/classes/com/auv/locker/service/AuxApiServiceImpl$4.class new file mode 100644 index 0000000000000000000000000000000000000000..2b9e1339c7b614e68add0a7a66ccb74c7762c184 GIT binary patch literal 1191 zcma)5ZEq4m5PlZ0z;OzqZGE>YDje8rwI57qYMQE%gyIXPeluB)_1JRU;k}U7e`R88 z;s<|#Kgu{;E`dO5yO-P9d3NX7nVp$Ge}DZ3uz_b;WN}ALcQt5O$>5%b`*@%cQp(_= zQXZx8IE^wxZp59EFTO@12pQI!mNzhYG%_8}>I>f-cwONTaA3X^BWa1I48r%3@DD$X zP3jB_VNV97H3nnWI1s+FF}I_G?V)UswZ>rRD638B%5aO}bNT#cvnS8=uCm9F+MyU2 z@=fWARy61c|0C}>gcO^e#hpFwOQpwPN=3tAo$nB+oVbl>oxx66l{;|+(qw%HDS>Du)v(<#++n?254Gbw`p^$5(U9U)=-MA9gxj2}oG zng!8*!7bQSM?G92WQq2P5?5)ZM)l-s>M<;nmcTV! WKan?ZlVpl)Z)1^G8ab6EN#h?~VohxT literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/AuxApiServiceImpl.class b/target/classes/com/auv/locker/service/AuxApiServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..28ea2ef700617ca5c9c2cd18d042b726b8e5defb GIT binary patch literal 5451 zcmb_g`(G5-75`qqopqe3;1e|hYU8pX>w{D)N{gV;gognof{D$rJHX(uvzeJiOyBg~ z=FxXa`bwKV(zi(z($FU9Fa4o^Q$KCLcV-uc9TvflJm&7)Irp6J`JQvnJ+uG*@B1GB zXvIHOUd)X+feCrJslvjfiY#muIlLe*jtUo^g1j83Rw?vS z94{+)Ma3b!8pn6y_^yKQsYu}aar_{TA1e5fie~&cj#(-GS{$z{_=!|!D)^~_pDFmc zfOaXHHJnaMcU{93i1l<_zI?u4;7E7co=lDEu4g#YlU8a%Pv3OyY$~IB`iPm$r20lC zjI`II=W>SACZLXcUar$JjjShd&|j?Qr&5-kzG*lq`7qUypSrjx#3iw`ogFpD1R6@k zg9ma!r!OLf&zM=$YZrJTQ7XNH@=}qA!p1>?s!ls&2yE##vqo=za>Q`1=pz=DenuDRo=Ksf|8}GUBj6&(+0s#cjU~0;O^37&LZfI8N1(jA#b?kq(9L;p-<^4 zOV5s_20X{ij{QPQAe_ z=d+C6ZMxo~>(?KG>s^LqS*m?HZ#cI@9#zSdERwKF!b;q|WRs3oIiyhFczLqRn~SCW zAP5Xb5^*V3#X$M7Zz~g@azRy`V$Q7Dfj(QEfvCZ!6oSueCm_AhritXZI% z-aEGgCYdc>p4jwNu!SWHL4F|qPTVi70hnbbSO!99Wts_$-xq5r9oK@id{P~|ALNK7 zM*K|LD%8Zvgsf-kfSq^J#syQ>u$_^5)FSt^hO-#e@ClsO(1tS#eyQPCcvHczHT(v@ z{XF;f(FGW34lr;PqZ)*4p{;J`QRQ$Gvckr&XdskrF zQe9arJOX=`X8ZG5&zv+u4|gp+465e2ylG_&hXil~)$2L4Uc)`ivD(&;>hwKxniKO9 z#96$j;UrE894+fWnV4w!8{QW-nfbO-Y3wBa%%S;U5!?zGLrJ#TqMdYkBo1ieZ$Lr1&M@)|_h z?U-(F-Xc?R&o0ue(0b4n?pQ|OrL1R+`F(DT58!xX@Y*0~;l|c~wP2sIL{~wEZRRb<^bB83hg%H6V=Jf& zuP$Vwz}3j{Tz1>Gl|NoP3oUiw{HA-)JT$%Gc1RNU{6o>)<)0EO^f1!IjfZF=(sMKp zqJeLctq^z|mDnTCR=yzD$acaX*->ze^Z8k{^ZH5N4WWXvz?S4ZM6&4~Dw56jQ292e zD)1>@Yf#1OHeR>$J$VN@}n~DE~r24s(dVj{OVRI27Ee95(S^t9lQQ%wzK%`A8HeD+`mo z3)niefa;-n)YNR7!}ccr*X-bhk~=xfVb_s)?Ea9rK+Ho#+=XlYSm}FufYgArRbww2 z`9}XZ9;MtqO4U)S9>b(pdfti+l(~otc!C@Z^OgQ0F8OTCEV40!C-D@02WHUCPZj9l z=e?--54sfe{*PorEmq$|b+vt{TyPoGFvyBvJFTIHwHRqvp- zwyI{&9QJ;MJ*PJ;VBe6O+AxPlDG(xYKS|tIO5*-I>mzXpHc1?o-?VTHNK8T{?!zP~ zK@uC0LXx@GL<*WoViToXD4pV$FGqbcFGAs66RzMY6QrGV58@f0;2Q;kb0LCf7YUwS zBzU%z;Nda^^VN$Gg0z2wCS=;5B0USJ8%j3Kqn<4FBx@R)=W*apPdJ?pGJTk=g)HK8 zW|55TF6>@(JlH2E`5n<&&bFhL+e>Ckl5TBfW(8SL%UqJ#B6IN6qBEyR%XMm$ITC}o zCeuOSSv?xw{Cfc5Lp}i47`)NGCBHDzHwlP4PjG~p> zbZy*TA=>Li`z+Buw=T4L1nmgYE23@o(Q>cIOlTq6)bdO?x@NQ)qBV(jf@p893vH$Z zZ5#$h3uq7enFDNEz%f?3Go?#|n(&;~Wn#0h>9>pF}Y5JIUau HE*Sm~=Ud!8 literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/StorageApiService.class b/target/classes/com/auv/locker/service/StorageApiService.class new file mode 100644 index 0000000000000000000000000000000000000000..367435ccbdea9ae0e32ddacf1305f8d2ff107bc0 GIT binary patch literal 3205 zcmcgu%Wl&^6unbQL*urTS9rf)>4w>`YlRe26(L0mO1eOzfClGc+&Z2xwj=QetNY-w= zQ*ZgQ&qX%mk@WXa@xJU~#FJDi5g>1l$sK&1VUn(|O@D%9`ZDH?Y}mnMAmaqr87y|g zAQow+kimx%m)e-_X=;k!=I)Wbis<#47)1;oTg){IqDu#FOOm!^){c$5o-bk_ql51K znCz0>e&FzGH0 zd@6MTO9>P1jUGJeA;0ijVUpTEex$QccIn`Yy#r_Yjn=Lh3ZA85#PcxrM#f9&KJriC z5;Zcq4~t5k+C6KwOD7-8)VG&lc-Jj3SSd!LM|43HQ_*va%VH|p=ezXqx!e^jO-%YX zx~TcDL>wSxlX(~0a!abdpb06kIiC8QOE+Kt&q}tA{*lM%s@j#A@^LGS=yO`@79(?G z5Oz`JSM8nrh%%^84A@EWFaL|rV0Cn;BiaDoezA*wy1;Yx15PeQVLPAPIfdb`2J>-xSs2hn3N))L?fGPzJNtL_1nWk>NcCft>{45R# zi32}?ABC9R^n@xw)>@Be^u}-Id4B!=@e{x+JgZ>?J9U)tpo)i8JQAqHa~)cT0tchS zrBY=}XeO&#d*l*jrpoKwzY3P~A_W@9){-9@6#}t)xE5`z%Qe>~dTv$BJTqlQ`k4xm z{O8oj3zb|3XJz6%$@pbK@`SfBoslP-P=9oxmP%$(8#&S;_Wx#2xg#UPN-g=G;*gBV zkz)!AX9M*HyaehKm-&R=>AcFzlxh|YkV4@#0#kJKmP`?{~e{T?3GaG uy;5Lb;})NHRwy)Zn?1%CxAE{|i@g$>xKr3|++|zFJ>17;f#X8h^7jYi0RZFx literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/StorageApiServiceImpl$2.class b/target/classes/com/auv/locker/service/StorageApiServiceImpl$2.class new file mode 100644 index 0000000000000000000000000000000000000000..5f163a765bab04c11ffa3c107adad4915608662e GIT binary patch literal 862 zcmb7CO>Yx15PeRUY!en53KS?G>LG`wv~{VtHHuV4fGRBaQXo3XGIB$syeBpfmP*?_8gue0e}DlYALh|LI(@g%|xG$Vv~ z%HOukuXPUv_NsvY?pk1XnFIo>@14r4t_8;b%*C7{elTU8kIUH~W_pXsT!0i<+3roS z#e*F1Op8vZBBRpygji+SVr_s1Z=k*N{4>PP7c@Sx)j*r?W{v%ho2+llQHXGxEymZc d@qA*9tp+-{Q_FSSWf|Ze?&DUC<3d>S`USs;_B{Xq literal 0 HcmV?d00001 diff --git a/target/classes/com/auv/locker/service/StorageApiServiceImpl.class b/target/classes/com/auv/locker/service/StorageApiServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..2f96d32d054bdb3670b76b2529cd83d7badc52a0 GIT binary patch literal 12273 zcmcgy33wC76@Jf_wQG5~6fiM42$<8zh%>adaRWAoi801jAOv#A(%J}Q$&qA8+NPy# zNNAhpBx#ejX-g7%Ce105kfdpv-e-E>_kG{@^}pTKdUaT9TwMIIGdnvo?|=V$^XBcW zKJo7-pCO`Eob*wQUZ|$M^m(~_!AEoHi$3}iec4A}p|ASLM_-f6*M0O2`ldqPlA9Og z@@=_%M=sx$%lG8+eYyNVCivEk9T27e4wW{Ys_V75cRg z-G3vO-}>lx(s-9bzgOrF0_6pj{^+AW(Vyk!FDm_2ZvLjy-3tBPNB@xaf5`nYh5qTI zf6<>+`nQz-QR%pkiT)-RG(L}#S*7)WSC zGF!t#Lwc&2$+tI?8ET8i^hAcK-WVJnJ`jv2Bm4DKP#y-?4IkKScft^FB$?=s4KU3q z>~21g0c}PX>D&@a#4@c+n-&%JE-`swm!b(5?_lz@C8Ijil+IW}?;0NL(^H{vUmPv| z&SWGU-w{s5or?C28ZGRUL8&L=vNNw zY4CE*qRxHc1L0sioEX4>R4g&jTsYq#K*fU~e-Lbg0c-I3;aEHhrX3R)Mr&T|K0$gY znMmuv;z{Z0A*NFrk}yazhm>)LEpU!5bQM!U%5WU&`W;|Rcaf)qdS-7jn*Y?|f=TH! z^<)aV>t(Q-BL*&L$_-sT1RG9s$To?R$zv~VhyOBFrosoAYV+-kah9#87Y=S|Xa)31 zy&0?mxV+I#;iZUVFmP{dAQ8?Cry%vv={K;5J{5yaiY7Z_>5T1j@&6stsfhQ)A)INd z$>4A%77q#>u-9JD)Kc2OX>%O~H|d!+Jsvl8u{>CeP!mb%;f%g5h1I~crzjej>nAr$ z+el}Nky9d5N#&OA^73d)$YHv90>Qbkmxsr}o)V5mg;u7EUBIm~JC27nbMJ73|9qPi z%*=FTf}pr?WaDt~Qxgd%B6@tR-Zj#BJUqGiRPpR%@TuZKV_v>4e6=~Jc5;>p@7LE~ zJx0z#Bb_IJvl6qrb5>%|>EbMJY6oY&j6s8$f$Vnie{&M)J08ZCm5*G-lQZ2kae!QW zY*fBd`nDlG(Vk2q=)3XNWA~i^zKSPjy3vKN;xVVoznn8W+-uT+o@v)5FYQS5Cz&pD z0f^0Zr2BYCTUp-8O3u%8bV6adxLN@w2YWSOFPD3`rx=(g*Lgh5xoiR@W@kF)&fB;l zwVaMLO%gQ?EE;=)q;O1^x?{F`kB7$Gb=%e6u9%NXf3SX{I>5a^jF<$R0Lm`Bi+QO+?&@8d1 z=#-}TRK*078*sQK)a01VI<06Ozf$JJW8da2;Ht1`2F%ddg^yVbs7aPy>cw_CZ5zQ| z6QIax1E;n`;?~JxLP|26(jI>L^a;Y%Urc6ezR5hVz*Hx-c=Odg;UlD-qgf=@PkV<-YxRwK)2ZH zxl^j*EMDO~Oe@L`LT2d9*-i2lzEq=|=@yMXPM^SGYdV9I$+W_kX?(f3(-n-SW>7C&e9D1)IJ(li_4eSM&nB3OH((SQyEYXke4I1y0CN+cC zXL%vkc)u|oXEt#W5|_J`W#N`i8<;9$@F74*2*l>{Q;f2Cn>IMrb-03QiHIw6y6*hg zQoN+fE_0m4j(l@4=V4k@px&r66xmGLwcs^ixxZfO#2LfcERL@A75}dk5>aL zvaS!O^@~!-%;pq~D*md2V|$Ea3YR+39?>!PU8ShyRCdYgSh{yO64BH66~|gAcRVo$`d{`p8roY<@sb zWp;$)!w3XxoD!|v%HcV=4_PA?v-)7|ACMVB$xuqiJZnqLb1F8N0`U1Z44Ape80^w4 zdMz(XWky{&#^*m7b5RM>&Tn=3Du>kvYO~Y+JlB0G1+?MUjz=1>bwou)$7M;E}lRFcKA0T!)#aAbB<(*hvb)78=C- zX7rYEavs+KWK9LzT)qdijgnYc2&+U+l;+@PE-_--N0l^7UIg$X9KXDY7$sgtP)@`1 z6s2*^;BFUHpfAysh7-gMOCF<&hQMP~`4E~aXc$*Nd2pSM>kO*KPi!XBOgey;^UPs% zkgmcVCNRX{=P;;=pbGpU-NzMTxC7&>@$66_OP(fA!=sS%C{<>uYDt|ZOWvlcx~eQG zchcojsvn`9MwzARyQuRd`F5S4nkH|ZS6a0!O)_hfvoyu5P0i9YV?>kkF!}40#w?xD zq}F-mM$OXnEX}C%K3G@vATW3gy;hKh`Z?sKbE%GI(<*4R76fj>FM+mGJ?*A>)JO9{ z;R0x}kglP{hTeOi$6C68UPdp+*giT7PhLR^`c0)*(jihsOPiHL^eTEasFt?Z(6wMg zYKQ4Mu;<0R*W;-N@(1V$=BuLD;<;w^KTNMfuh*lchWKA}jY2ml^ai>S4Ha|~{v(?= zt;m}&R0JOpdb^zLf(UPuM>qz#F)2ZA*eDHhcjU;00i@L+*Qgof8a0Dl8QEm;={-rc zyWlP}vvlUORM(``RT-RHG*>-X=P9H)2z<-nILm1T{+ekeZ2;lhXf^!re7b_xz$8te zq8ZezHE8aEKFzenpt%Y?<{LD7(Qhi+UK&As( z|ES2`RTkO1@$^0PUJKbRmNi%BtSLrZDagdEtE93TmGe!AYXbfkS>&N~kT(kfi)cR} z#sP7V&PKqm$IjA-a4#Ez>G7*=)2@bT-v=P|wrLv+OnX0`K0xocU>>w!*5_afx)+BIDh1tyJUDQkbW z6HJQ@~8o1vK0sFz^gM3Jcg%P zI$;5M++w9W2jl{{qU~#GDYl)#x18v5>Gh*XzTbpiZ^EmLf+O%#ip!EqneUeUE z+I+{-W`9l_!M;_HcA>IOD&mUWqQrJodZeWnm5@{}LS=_kcA|2zRCb|qiBxu@vIiBc z{!0V?%Pd7vIutc`{9B>uZBXDX6u}RytCk^wW6y41K^-x+t1n4zO3`EEhIW_XYeB3pGjyYBQQ11L}K#`d&na z`w$t9JCNl^(`O-j^l17)V8Z#Uh3wbxa*5Ts46CaV$Rq=hQuco-W%oycv|)i1M%HjP zHhj53z&)eM(c?I`@Cf-O`DY_Z c_M()8zJflBvVuN`_%E*n71*N8f3;@uUnp}Bh5!Hn literal 0 HcmV?d00001 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..f548fe8 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,91 @@ +com/auv/locker/AuvClient$1.class +com/auv/locker/model/aux/DeviceListQueryResponse.class +com/auv/locker/model/aux/CellStatusNotify$CellInfoItem.class +com/auv/locker/model/aux/AuxDeviceListQueryResponse.class +com/auv/locker/model/storage/AddCellRequest$Builder.class +com/auv/locker/model/common/AuvRequestBuilder.class +com/auv/locker/model/storage/CreateOrderRequest$1.class +com/auv/locker/model/storage/OrderStatusNotify.class +com/auv/locker/model/aux/CellsOpsRequest$1.class +com/auv/locker/model/aux/DeviceStatusQueryResponse$CellDetail.class +com/auv/locker/service/AuxApiServiceImpl.class +com/auv/locker/model/aux/DeviceListQueryRequest$Builder.class +com/auv/locker/model/aux/DeviceListQueryRequest$1.class +com/auv/locker/model/storage/ReOpenDoorRequest$Builder.class +com/auv/locker/model/storage/TakeByOrderRequest$1.class +com/auv/locker/service/AuxApiServiceImpl$2.class +com/auv/locker/model/storage/ReOpenDoorRequest$1.class +com/auv/locker/model/storage/CreatePreOrderResponse.class +com/auv/locker/model/storage/ReOpenDoorResponse.class +com/auv/locker/service/StorageApiServiceImpl$1.class +com/auv/locker/model/aux/DeviceListQueryResponse$DevicePageItem.class +com/auv/locker/model/storage/CancelOrderRequest$1.class +com/auv/locker/model/storage/CreateOrderRequest$Builder.class +com/auv/locker/model/storage/GetOrderListResponse.class +com/auv/locker/model/aux/DeviceStatusQueryRequest.class +com/auv/locker/model/storage/TakeByCodeRequest$1.class +com/auv/locker/model/storage/GetOrderListResponse$OrderItem.class +com/auv/locker/model/storage/ChangePreorderToFormalRequest$1.class +com/auv/locker/config/AuvConfig$1.class +com/auv/locker/service/StorageApiServiceImpl.class +com/auv/locker/model/storage/CreatePreOrderRequest.class +com/auv/locker/model/storage/CancelOrderResponse.class +com/auv/locker/config/AuvConfig$Builder.class +com/auv/locker/model/storage/GetCellListResponse.class +com/auv/locker/model/aux/CellsOpsRequest.class +com/auv/locker/model/aux/CellStatusNotify.class +com/auv/locker/model/aux/DeviceListQueryRequest.class +com/auv/locker/model/aux/DeviceStatusQueryResponse.class +com/auv/locker/model/aux/CellsOpsRequest$Builder.class +com/auv/locker/model/aux/CellOpRequest$Builder.class +com/auv/locker/model/aux/DeviceStatusQueryRequest$Builder.class +com/auv/locker/service/AuxApiServiceImpl$3.class +com/auv/locker/model/storage/ChangePreorderToFormalResponse.class +com/auv/locker/model/storage/CreateOrderResponse.class +com/auv/locker/model/storage/ReOpenDoorRequest.class +com/auv/locker/model/storage/AddCellResponse.class +com/auv/locker/model/storage/GetCellListRequest$Builder.class +com/auv/locker/model/storage/GetDeviceInfoRequest$1.class +com/auv/locker/model/storage/GetCellListRequest$1.class +com/auv/locker/AuvClient.class +com/auv/locker/model/storage/GetCellListRequest.class +com/auv/locker/config/GatewayType.class +com/auv/locker/model/aux/DeviceStatusNotify.class +com/auv/locker/model/storage/TakeByOrderRequest$Builder.class +com/auv/locker/http/HmacMD5Util.class +com/auv/locker/model/storage/GetDeviceInfoRequest.class +com/auv/locker/model/storage/CancelOrderRequest$Builder.class +com/auv/locker/model/storage/TakeByOrderRequest.class +com/auv/locker/service/StorageApiService.class +com/auv/locker/model/storage/AddCellRequest.class +com/auv/locker/model/aux/CellOpResponse.class +com/auv/locker/model/common/AuvResponse.class +com/auv/locker/model/storage/CancelOrderRequest.class +com/auv/locker/model/storage/GetDeviceInfoRequest$Builder.class +com/auv/locker/model/storage/GetOrderListRequest$1.class +com/auv/locker/model/storage/TakeByOrderResponse.class +com/auv/locker/model/aux/CellsOpsRequest$OpItem.class +com/auv/locker/config/AuvConfig.class +com/auv/locker/model/storage/CreateOrderRequest.class +com/auv/locker/model/storage/ChangePreorderToFormalRequest.class +com/auv/locker/model/aux/AuxCellOpResponse.class +com/auv/locker/service/AuxApiServiceImpl$4.class +com/auv/locker/model/storage/GetDeviceInfoResponse.class +com/auv/locker/model/aux/CellOpRequest.class +com/auv/locker/http/AuvHttpClient.class +com/auv/locker/model/storage/CreatePreOrderRequest$Builder.class +com/auv/locker/model/storage/GetOrderListRequest.class +com/auv/locker/model/storage/TakeByCodeRequest$Builder.class +com/auv/locker/model/storage/CreatePreOrderRequest$1.class +com/auv/locker/model/storage/AddCellRequest$1.class +com/auv/locker/model/aux/DeviceStatusQueryRequest$1.class +com/auv/locker/service/StorageApiServiceImpl$2.class +com/auv/locker/service/AuxApiService.class +com/auv/locker/service/AuxApiServiceImpl$1.class +com/auv/locker/model/storage/TakeByCodeRequest.class +com/auv/locker/AuvClient$Builder.class +com/auv/locker/model/aux/CellOpResponse$CellInfo.class +com/auv/locker/model/aux/DeviceStatusQueryRequest$CellRef.class +com/auv/locker/model/storage/ChangePreorderToFormalRequest$Builder.class +com/auv/locker/model/storage/GetOrderListRequest$Builder.class +com/auv/locker/model/aux/CellOpRequest$1.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..0925da5 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,44 @@ +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/OrderStatusNotify.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/AuvClient.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/ReOpenDoorRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/AuxCellOpResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/TakeByCodeRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/http/AuvHttpClient.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/config/GatewayType.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/ChangePreorderToFormalResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/ReOpenDoorResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/common/AuvRequestBuilder.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/AddCellResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/CreatePreOrderResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/CancelOrderRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/CreateOrderRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/CancelOrderResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/service/StorageApiServiceImpl.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/GetDeviceInfoRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/GetDeviceInfoResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/common/AuvResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/CellOpRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/GetOrderListResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/CellOpResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/CreateOrderResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/AddCellRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/AuxDeviceListQueryResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/CellsOpsRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/DeviceListQueryRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/CellStatusNotify.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/GetOrderListRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/service/AuxApiServiceImpl.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/http/HmacMD5Util.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/TakeByOrderResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/DeviceStatusQueryRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/config/AuvConfig.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/service/AuxApiService.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/GetCellListResponse.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/CreatePreOrderRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/TakeByOrderRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/DeviceStatusNotify.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/storage/GetCellListRequest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/service/StorageApiService.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/main/java/com/auv/locker/model/aux/DeviceListQueryResponse.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..b47f24c --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1,2 @@ +com/auv/locker/HmacMD5UtilTest.class +com/auv/locker/AuvClientTest.class diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..5394f41 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1,2 @@ +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/test/java/com/auv/locker/AuvClientTest.java +/Users/niko/workspace/hoopluz/foodOrder/auv-locker-sdk/src/test/java/com/auv/locker/HmacMD5UtilTest.java diff --git a/target/surefire-reports/TEST-com.auv.locker.AuvClientTest.xml b/target/surefire-reports/TEST-com.auv.locker.AuvClientTest.xml new file mode 100644 index 0000000..4464cc4 --- /dev/null +++ b/target/surefire-reports/TEST-com.auv.locker.AuvClientTest.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/surefire-reports/TEST-com.auv.locker.HmacMD5UtilTest.xml b/target/surefire-reports/TEST-com.auv.locker.HmacMD5UtilTest.xml new file mode 100644 index 0000000..dd80d62 --- /dev/null +++ b/target/surefire-reports/TEST-com.auv.locker.HmacMD5UtilTest.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/surefire-reports/com.auv.locker.AuvClientTest.txt b/target/surefire-reports/com.auv.locker.AuvClientTest.txt new file mode 100644 index 0000000..6803cd2 --- /dev/null +++ b/target/surefire-reports/com.auv.locker.AuvClientTest.txt @@ -0,0 +1,4 @@ +------------------------------------------------------------------------------- +Test set: com.auv.locker.AuvClientTest +------------------------------------------------------------------------------- +Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.112 s -- in com.auv.locker.AuvClientTest diff --git a/target/surefire-reports/com.auv.locker.HmacMD5UtilTest.txt b/target/surefire-reports/com.auv.locker.HmacMD5UtilTest.txt new file mode 100644 index 0000000..846dd27 --- /dev/null +++ b/target/surefire-reports/com.auv.locker.HmacMD5UtilTest.txt @@ -0,0 +1,4 @@ +------------------------------------------------------------------------------- +Test set: com.auv.locker.HmacMD5UtilTest +------------------------------------------------------------------------------- +Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.040 s -- in com.auv.locker.HmacMD5UtilTest diff --git a/target/test-classes/com/auv/locker/AuvClientTest.class b/target/test-classes/com/auv/locker/AuvClientTest.class new file mode 100644 index 0000000000000000000000000000000000000000..1c1704ea7e1f63c49797ed7f395844b29f20b11c GIT binary patch literal 4457 zcmb7I`&$&(8GZ+W9hU)NKv7UcKmoZdp!g_W>WW5J7gRuuX&XB%<1#wCv(C;SCQX~B zNpI=>n%=KAy{3(ASCX`8(|gm~5B-1o^gT1fvdb#uEWi-UH)Y%sGp1-#qDjlJM4ypyTl97qSvX<1 zSQO12(JaZhE2f_kcAl2;Uh(majQ5Gf_lxFP86Vh;=kUQWo9AV`Ao>r<_^_D#h>VYh z@UbxV;kt|$Wqe!=KOy6jGCn2a(=t9IkijteJP_S9DQCwSNx{7s6|XIos7gxQ%`DU z)K0o7-u=u{LeB`2yuh9{jA(IMPuRM1LBG3VwL|O?p0m<7jO1zkhUS{iv}4&?QV+NZ ze|f94xYl3(g6Dc~3sKw3S&X_%d22028+ui><*|5&RYt8jn|lr z#cWn6dyIY~z~4kpLR~Rv2)|YEJG`af_riv}O5zXVyP*VE!5{G!UAy86;&YoPjY8>2 zsA4E$%*3ig;zz-s@Mo$mr8^52XKR>b^yNjHl}Ey6QADzimdZ$I92pupI50HKzxLsg zv7sUUQHP7Von_9l9u5zR?>XbC)0(46XnMM1USBj4dThR9tYdiOz`@auXF~Xkg1_Q# zRFMd;pVJDSz}q4GUBN%_PvPKyN!a+0!UTOjhv?g|c3`|az2tn86+sHZe-He`FVpAf8Y435W`Zg>bS(y3o9 zCx&K3uIv>r8d>WE^$>Y?-ldD3`7jMN6;hEd6CSKR>LViI63yu}Uw3Zl!&sCFO zC4+}3@9KJgx^U;7^4=KsDxzGcXLIc#3F z*oF{y*3r%ugi()LH1Jo&Ry1M6$sB6SGulrcz;-g)!BGo2wPG7~@^=?@qYa&GyU~t5I`1TR z`t14xcAe|6i{;rZ1?;+t*r|0nY*FiTXeiHWAMFBr$!Z^2b<{lEen?w`n>BFHMO@;AiUoIhBj7s-&O9gqKS%Hw4WB3Y1%k&3 zKJkBmPvya%3vNDGbaS;ehn+%CyF4GX20l>hOZfQ8x=cP(nghN zICXWcfZJeRS&d~KGo9xa3zXHYw%y0>9NOs#b&ogfC~`_2Hqr0zrh=ZN_pf_kzP_3Z z^tGDoGi4w;@1rY#*y|0;K_mz$HMARXFFszPvgJm3;=vNOeV{~$W^{)ws268z3!ZMBsMQ-v6>mX?X2GxI) zVz@;ym`vvslRAx2Sj>qG{cxLQ&!!Ty9{K$~slY!nf7iR#Xt{!(7bX5le22ZtQG)+h@@*Clmssro2e}b0w*UYD literal 0 HcmV?d00001 diff --git a/target/test-classes/com/auv/locker/HmacMD5UtilTest.class b/target/test-classes/com/auv/locker/HmacMD5UtilTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ca22dc38b0eab663f694f9d2dc717e2ae42e743d GIT binary patch literal 3184 zcmbVOX;Tze6g@p#w?ngyj0y^Zgk2p4QBgsWMMOXY2rfyq85*Xsr)TWxQOLe%60?2H zXOmRsc6>QLChC-n;L<`|dsWynA2s*MEOJ2XG8O1kr{| zK}=zK2j0Srg3Ai71o1XzgP6m-pH||pIf$!R5UNEXT@%uEA>9ztO)b*|g;taecu^8B3-2qQR-8N4} z6Y+?az85hQ(L1^wnTTuA>CyhHj$zL0DTiSi9L{sbs&zrPbX((ULSG*>R;iUBMfn>c z7F$oHO)5fDYuY_6VrtfEWX`b-Yn3i4=Nv71XIe|T!CjJ)GVX58Dizhix*cbV zDaT+GPwJ=`dP!!%!dO|+ZQXJ%=^LYYc{T^6qr_??VL3D|v8)r8=hKF{EV9g5F{Pwt zYjJY4Gn-PHltkujU1uK5Y1dX(HKN^0GM-(*vcwXvL@eRI} zP@xSTZC@JfZI2H2Nq~f4R$-AD*7s(?=K8PDlPbQ$_Y#_3-6JgHO&6D!*4WouRM|FQ z@!n*kw7m8qU?*D%i_Eumb`>@K%b$(?+u+3;`oAYrtkJhCgBwA}K@*zie&%h_R$at8wh) zD!{pmbC5H;k>f$G&cj0qP`jT&>dwIPJG{Sg?ZF|AA^5}|$13g3ZGgJlAz#R!L13yU1Gx@L&r<{+W>CRd&7hJ~)%3yVL*C=Qu&?na^c@WQ zjve=h{WaQS1Uaqzf?7^T9;1rWz|W94P!TU zp$U7?k9u6^d<%PB%+0j#Co{e1V=hFPL$BZ(|1s!i7RRaWLf{1lzl;+yPRbaNnCZW$ zmnyyIq!$e0$?niJPwFYk5>6K=xJ@d&)a}YskejD_4rWlZo!tHO*^C-qS{MfkKzX_V zuL@^ecr_$;kdkLxWYX$j?9OCRo-nl(;J0o{6awj8qy;0<|Wh1-S9;$P%zkK9F zjC`1pBaD3HjUt~bME;Rn3$`PFB7FTBKeIid-Jv~CQNP#|Y6$Jk3j0Ehu8={~bZCG6 z8nX4%1ewQ=5mG;DSpy9?fmWO(Edzvhst8`Ba3viWX6J~$lHJ#;^t~}}rfL&D0TTx{@Z;1ZRq7vs=-@`>n>Iz8I9Fod1NW@+#lJNqPM>*=+ z3P?5?+bwMp*0L2^gWKR^gf>pXF0joe*l-uwT9ZW(+X@gHa}Wj5qS1=U5__c(FBBk- z&{{k-wcWqL8#?e5ts$SpieB6-<|_C4XRrg8SyESA2;wGqC