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)dHyx8Z9atkcIc!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$Tojfx=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+xo2VPPW
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#%(P