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 0000000..53adcb6
Binary files /dev/null and b/target/classes/com/auv/locker/AuvClient$1.class differ
diff --git a/target/classes/com/auv/locker/AuvClient$Builder.class b/target/classes/com/auv/locker/AuvClient$Builder.class
new file mode 100644
index 0000000..59e5b18
Binary files /dev/null and b/target/classes/com/auv/locker/AuvClient$Builder.class differ
diff --git a/target/classes/com/auv/locker/AuvClient.class b/target/classes/com/auv/locker/AuvClient.class
new file mode 100644
index 0000000..e691cd7
Binary files /dev/null and b/target/classes/com/auv/locker/AuvClient.class differ
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 0000000..ce90241
Binary files /dev/null and b/target/classes/com/auv/locker/config/AuvConfig$1.class differ
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 0000000..49a0529
Binary files /dev/null and b/target/classes/com/auv/locker/config/AuvConfig$Builder.class differ
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 0000000..b6f265a
Binary files /dev/null and b/target/classes/com/auv/locker/config/AuvConfig.class differ
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 0000000..35d1e5f
Binary files /dev/null and b/target/classes/com/auv/locker/config/GatewayType.class differ
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 0000000..e2bfe15
Binary files /dev/null and b/target/classes/com/auv/locker/http/AuvHttpClient.class differ
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 0000000..5d438ea
Binary files /dev/null and b/target/classes/com/auv/locker/http/HmacMD5Util.class differ
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 0000000..97b6a6c
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/AuxCellOpResponse.class differ
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 0000000..0c831f3
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/AuxDeviceListQueryResponse.class differ
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 0000000..f76d89b
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellOpRequest$1.class differ
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 0000000..4e0b84d
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellOpRequest$Builder.class differ
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 0000000..830cf16
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellOpRequest.class differ
diff --git a/target/classes/com/auv/locker/model/aux/CellOpResponse$CellInfo.class b/target/classes/com/auv/locker/model/aux/CellOpResponse$CellInfo.class
new file mode 100644
index 0000000..68a06a8
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellOpResponse$CellInfo.class differ
diff --git a/target/classes/com/auv/locker/model/aux/CellOpResponse.class b/target/classes/com/auv/locker/model/aux/CellOpResponse.class
new file mode 100644
index 0000000..b62ec1e
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellOpResponse.class differ
diff --git a/target/classes/com/auv/locker/model/aux/CellStatusNotify$CellInfoItem.class b/target/classes/com/auv/locker/model/aux/CellStatusNotify$CellInfoItem.class
new file mode 100644
index 0000000..8ea13da
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellStatusNotify$CellInfoItem.class differ
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 0000000..fed384d
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellStatusNotify.class differ
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 0000000..d862f29
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellsOpsRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/aux/CellsOpsRequest$Builder.class b/target/classes/com/auv/locker/model/aux/CellsOpsRequest$Builder.class
new file mode 100644
index 0000000..40d2f2c
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellsOpsRequest$Builder.class differ
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 0000000..a6f8586
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellsOpsRequest$OpItem.class differ
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 0000000..82677d5
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/CellsOpsRequest.class differ
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 0000000..55e4b9d
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$Builder.class b/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$Builder.class
new file mode 100644
index 0000000..fa4db1c
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest$Builder.class differ
diff --git a/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest.class b/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest.class
new file mode 100644
index 0000000..216d75a
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceListQueryRequest.class differ
diff --git a/target/classes/com/auv/locker/model/aux/DeviceListQueryResponse$DevicePageItem.class b/target/classes/com/auv/locker/model/aux/DeviceListQueryResponse$DevicePageItem.class
new file mode 100644
index 0000000..ad5a215
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceListQueryResponse$DevicePageItem.class differ
diff --git a/target/classes/com/auv/locker/model/aux/DeviceListQueryResponse.class b/target/classes/com/auv/locker/model/aux/DeviceListQueryResponse.class
new file mode 100644
index 0000000..9acfccd
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceListQueryResponse.class differ
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 0000000..a8f818a
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceStatusNotify.class differ
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 0000000..ae5055c
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$Builder.class b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$Builder.class
new file mode 100644
index 0000000..9c24d15
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$Builder.class differ
diff --git a/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$CellRef.class b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$CellRef.class
new file mode 100644
index 0000000..b2fa313
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest$CellRef.class differ
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 0000000..b19fb60
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryRequest.class differ
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 0000000..35c4524
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse$CellDetail.class differ
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 0000000..c646fc5
Binary files /dev/null and b/target/classes/com/auv/locker/model/aux/DeviceStatusQueryResponse.class differ
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 0000000..6ca7587
Binary files /dev/null and b/target/classes/com/auv/locker/model/common/AuvRequestBuilder.class differ
diff --git a/target/classes/com/auv/locker/model/common/AuvResponse.class b/target/classes/com/auv/locker/model/common/AuvResponse.class
new file mode 100644
index 0000000..bf00463
Binary files /dev/null and b/target/classes/com/auv/locker/model/common/AuvResponse.class differ
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 0000000..c994279
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/AddCellRequest$1.class differ
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 0000000..7bcb18c
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/AddCellRequest$Builder.class differ
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 0000000..232bab2
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/AddCellRequest.class differ
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 0000000..3da2886
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/AddCellResponse.class differ
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 0000000..b348542
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CancelOrderRequest$1.class differ
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 0000000..ecc6300
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CancelOrderRequest$Builder.class differ
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 0000000..ea08e02
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CancelOrderRequest.class differ
diff --git a/target/classes/com/auv/locker/model/storage/CancelOrderResponse.class b/target/classes/com/auv/locker/model/storage/CancelOrderResponse.class
new file mode 100644
index 0000000..b61939b
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CancelOrderResponse.class differ
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 0000000..b557260
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$Builder.class b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$Builder.class
new file mode 100644
index 0000000..a64890d
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest$Builder.class differ
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 0000000..5e5e158
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalRequest.class differ
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 0000000..48137e9
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ChangePreorderToFormalResponse.class differ
diff --git a/target/classes/com/auv/locker/model/storage/CreateOrderRequest$1.class b/target/classes/com/auv/locker/model/storage/CreateOrderRequest$1.class
new file mode 100644
index 0000000..df4e8b5
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreateOrderRequest$1.class differ
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 0000000..a32b373
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreateOrderRequest$Builder.class differ
diff --git a/target/classes/com/auv/locker/model/storage/CreateOrderRequest.class b/target/classes/com/auv/locker/model/storage/CreateOrderRequest.class
new file mode 100644
index 0000000..49375dc
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreateOrderRequest.class differ
diff --git a/target/classes/com/auv/locker/model/storage/CreateOrderResponse.class b/target/classes/com/auv/locker/model/storage/CreateOrderResponse.class
new file mode 100644
index 0000000..d660edc
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreateOrderResponse.class differ
diff --git a/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$1.class b/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$1.class
new file mode 100644
index 0000000..c5a7bfc
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$Builder.class b/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$Builder.class
new file mode 100644
index 0000000..3f7838a
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest$Builder.class differ
diff --git a/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest.class b/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest.class
new file mode 100644
index 0000000..ee8b11c
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreatePreOrderRequest.class differ
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 0000000..b69be84
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/CreatePreOrderResponse.class differ
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 0000000..b427a62
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetCellListRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/storage/GetCellListRequest$Builder.class b/target/classes/com/auv/locker/model/storage/GetCellListRequest$Builder.class
new file mode 100644
index 0000000..04ef254
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetCellListRequest$Builder.class differ
diff --git a/target/classes/com/auv/locker/model/storage/GetCellListRequest.class b/target/classes/com/auv/locker/model/storage/GetCellListRequest.class
new file mode 100644
index 0000000..3159553
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetCellListRequest.class differ
diff --git a/target/classes/com/auv/locker/model/storage/GetCellListResponse.class b/target/classes/com/auv/locker/model/storage/GetCellListResponse.class
new file mode 100644
index 0000000..ddabe62
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetCellListResponse.class differ
diff --git a/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$1.class b/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$1.class
new file mode 100644
index 0000000..cd8b2ec
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$Builder.class b/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$Builder.class
new file mode 100644
index 0000000..333d1f4
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest$Builder.class differ
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 0000000..2f80c48
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetDeviceInfoRequest.class differ
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 0000000..f12f4d7
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetDeviceInfoResponse.class differ
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 0000000..0ed85a8
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetOrderListRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/storage/GetOrderListRequest$Builder.class b/target/classes/com/auv/locker/model/storage/GetOrderListRequest$Builder.class
new file mode 100644
index 0000000..31d2559
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetOrderListRequest$Builder.class differ
diff --git a/target/classes/com/auv/locker/model/storage/GetOrderListRequest.class b/target/classes/com/auv/locker/model/storage/GetOrderListRequest.class
new file mode 100644
index 0000000..f05528b
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetOrderListRequest.class differ
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 0000000..5813661
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetOrderListResponse$OrderItem.class differ
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 0000000..34b6047
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/GetOrderListResponse.class differ
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 0000000..19bd057
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/OrderStatusNotify.class differ
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 0000000..71f6eed
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$1.class differ
diff --git a/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$Builder.class b/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$Builder.class
new file mode 100644
index 0000000..9f72fad
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest$Builder.class differ
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 0000000..421533a
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ReOpenDoorRequest.class differ
diff --git a/target/classes/com/auv/locker/model/storage/ReOpenDoorResponse.class b/target/classes/com/auv/locker/model/storage/ReOpenDoorResponse.class
new file mode 100644
index 0000000..d62dd5c
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/ReOpenDoorResponse.class differ
diff --git a/target/classes/com/auv/locker/model/storage/TakeByCodeRequest$1.class b/target/classes/com/auv/locker/model/storage/TakeByCodeRequest$1.class
new file mode 100644
index 0000000..2be361e
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/TakeByCodeRequest$1.class differ
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 0000000..1c79c38
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/TakeByCodeRequest$Builder.class differ
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 0000000..accea4f
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/TakeByCodeRequest.class differ
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 0000000..4123852
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/TakeByOrderRequest$1.class differ
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 0000000..219a0a3
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/TakeByOrderRequest$Builder.class differ
diff --git a/target/classes/com/auv/locker/model/storage/TakeByOrderRequest.class b/target/classes/com/auv/locker/model/storage/TakeByOrderRequest.class
new file mode 100644
index 0000000..338fb94
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/TakeByOrderRequest.class differ
diff --git a/target/classes/com/auv/locker/model/storage/TakeByOrderResponse.class b/target/classes/com/auv/locker/model/storage/TakeByOrderResponse.class
new file mode 100644
index 0000000..8bccc0e
Binary files /dev/null and b/target/classes/com/auv/locker/model/storage/TakeByOrderResponse.class differ
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 0000000..006a1d5
Binary files /dev/null and b/target/classes/com/auv/locker/service/AuxApiService.class differ
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 0000000..ba5d138
Binary files /dev/null and b/target/classes/com/auv/locker/service/AuxApiServiceImpl$1.class differ
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 0000000..2838b90
Binary files /dev/null and b/target/classes/com/auv/locker/service/AuxApiServiceImpl$2.class differ
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 0000000..c6b1132
Binary files /dev/null and b/target/classes/com/auv/locker/service/AuxApiServiceImpl$3.class differ
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 0000000..2b9e133
Binary files /dev/null and b/target/classes/com/auv/locker/service/AuxApiServiceImpl$4.class differ
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 0000000..28ea2ef
Binary files /dev/null and b/target/classes/com/auv/locker/service/AuxApiServiceImpl.class differ
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 0000000..367435c
Binary files /dev/null and b/target/classes/com/auv/locker/service/StorageApiService.class differ
diff --git a/target/classes/com/auv/locker/service/StorageApiServiceImpl$1.class b/target/classes/com/auv/locker/service/StorageApiServiceImpl$1.class
new file mode 100644
index 0000000..e0d99ae
Binary files /dev/null and b/target/classes/com/auv/locker/service/StorageApiServiceImpl$1.class differ
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 0000000..5f163a7
Binary files /dev/null and b/target/classes/com/auv/locker/service/StorageApiServiceImpl$2.class differ
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 0000000..2f96d32
Binary files /dev/null and b/target/classes/com/auv/locker/service/StorageApiServiceImpl.class differ
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 0000000..1c1704e
Binary files /dev/null and b/target/test-classes/com/auv/locker/AuvClientTest.class differ
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 0000000..ca22dc3
Binary files /dev/null and b/target/test-classes/com/auv/locker/HmacMD5UtilTest.class differ