From 84e5810d097922d07d20b72be553f36071797d1b Mon Sep 17 00:00:00 2001 From: lsp <577029454@qq.com> Date: Mon, 22 Dec 2025 13:51:23 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=96=B0=E5=A2=9E=E8=AE=BE=E5=A4=87=E7=BB=84=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/WxMaDeviceSubscribeService.java | 56 ++++++++++++++++++- .../impl/WxMaDeviceSubscribeServiceImpl.java | 54 +++++++++++++++++- .../device/WxMaCreateIotGroupIdRequest.java | 38 +++++++++++++ .../device/WxMaGetIotGroupInfoRequest.java | 33 +++++++++++ .../WxMaIotGroupDeviceInfoResponse.java | 55 ++++++++++++++++++ .../device/WxMaIotGroupDeviceRequest.java | 44 +++++++++++++++ .../miniapp/constant/WxMaApiUrlConstants.java | 8 +++ .../WxMaDeviceSubscribeServiceImplTest.java | 55 ++++++++++++++++-- 8 files changed, 335 insertions(+), 8 deletions(-) create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaGetIotGroupInfoRequest.java create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceRequest.java diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java index f44f64e48d..fb10605fdf 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java @@ -1,9 +1,10 @@ package cn.binarywang.wx.miniapp.api; -import cn.binarywang.wx.miniapp.bean.device.WxMaDeviceSubscribeMessageRequest; -import cn.binarywang.wx.miniapp.bean.device.WxMaDeviceTicketRequest; +import cn.binarywang.wx.miniapp.bean.device.*; import me.chanjar.weixin.common.error.WxErrorException; +import java.util.List; + /** * 小程序设备订阅消息相关 API * 文档: @@ -21,6 +22,7 @@ public interface WxMaDeviceSubscribeService { * 注意: * 设备ticket有效时间为5分钟 * + * * @param deviceTicketRequest * @return * @throws WxErrorException @@ -37,4 +39,54 @@ public interface WxMaDeviceSubscribeService { */ void sendDeviceSubscribeMsg(WxMaDeviceSubscribeMessageRequest deviceSubscribeMessageRequest) throws WxErrorException; + /** + *
+   * 创建设备组
+   * 详情请见:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/hardware-device/createIotGroupId.html
+   * 
+ * + * @param createIotGroupIdRequest 请求参数 + * @return 设备组的唯一标识 + * @throws WxErrorException + */ + String createIotGroupId(WxMaCreateIotGroupIdRequest createIotGroupIdRequest) throws WxErrorException; + + /** + *
+   * 查询设备组信息
+   * 详情请见:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/hardware-device/getIotGroupInfo.html
+   * 
+ * + * @param getIotGroupInfoRequest 请求参数 + * @return 设备组信息 + * @throws WxErrorException + */ + WxMaIotGroupDeviceInfoResponse getIotGroupInfo(WxMaGetIotGroupInfoRequest getIotGroupInfoRequest) throws WxErrorException; + + /** + *
+   * 设备组添加设备
+   * 一个设备组最多添加 50 个设备。 一个设备同一时间只能被添加到一个设备组中。
+   * 详情请见:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/hardware-device/addIotGroupDevice.html
+   * 
+ * + * @param request 请求参数 + * @return 成功添加的设备信息 + * @throws WxErrorException + */ + List addIotGroupDevice(WxMaIotGroupDeviceRequest request) throws WxErrorException; + + /** + *
+   * 设备组删除设备
+   * 一个设备组最多添加 50 个设备。 一个设备同一时间只能被添加到一个设备组中。
+   * 详情请见:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/hardware-device/removeIotGroupDevice.html
+   * 
+ * + * @param request 请求参数 + * @return 成功删除的设备信息 + * @throws WxErrorException + */ + List removeIotGroupDevice(WxMaIotGroupDeviceRequest request) throws WxErrorException; + } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImpl.java index 7f8dce1df8..632fe7bd94 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImpl.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImpl.java @@ -2,18 +2,26 @@ import cn.binarywang.wx.miniapp.api.WxMaDeviceSubscribeService; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.device.WxMaDeviceSubscribeMessageRequest; -import cn.binarywang.wx.miniapp.bean.device.WxMaDeviceTicketRequest; +import cn.binarywang.wx.miniapp.bean.device.*; +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; import com.google.gson.JsonObject; +import com.google.gson.reflect.TypeToken; import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.enums.WxType; import me.chanjar.weixin.common.error.WxError; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.util.json.GsonParser; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; + +import java.util.List; import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.DeviceSubscribe.GET_SN_TICKET_URL; import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.DeviceSubscribe.SEND_DEVICE_SUBSCRIBE_MSG_URL; +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.DeviceSubscribe.CREATE_IOT_GROUP_ID_URL; +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.DeviceSubscribe.GET_IOT_GROUP_INFO_URL; +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.DeviceSubscribe.ADD_IOT_GROUP_DEVICE_URL; +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.DeviceSubscribe.REMOVE_IOT_GROUP_DEVICE_URL; /** * 小程序设备订阅消息相关 API @@ -47,4 +55,46 @@ public void sendDeviceSubscribeMsg(WxMaDeviceSubscribeMessageRequest deviceSubsc throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); } } + + @Override + public String createIotGroupId(WxMaCreateIotGroupIdRequest createIotGroupIdRequest) throws WxErrorException { + String responseContent = this.service.post(CREATE_IOT_GROUP_ID_URL, createIotGroupIdRequest.toJson()); + JsonObject jsonObject = GsonParser.parse(responseContent); + if (jsonObject.get(WxConsts.ERR_CODE).getAsInt() != 0) { + throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); + } + return jsonObject.get("group_id").getAsString(); + } + + @Override + public WxMaIotGroupDeviceInfoResponse getIotGroupInfo(WxMaGetIotGroupInfoRequest getIotGroupInfoRequest) throws WxErrorException { + String responseContent = this.service.post(GET_IOT_GROUP_INFO_URL, getIotGroupInfoRequest.toJson()); + JsonObject jsonObject = GsonParser.parse(responseContent); + if (jsonObject.get(WxConsts.ERR_CODE).getAsInt() != 0) { + throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); + } + return WxGsonBuilder.create().fromJson(responseContent, WxMaIotGroupDeviceInfoResponse.class); + } + + @Override + public List addIotGroupDevice(WxMaIotGroupDeviceRequest request) throws WxErrorException { + String responseContent = this.service.post(ADD_IOT_GROUP_DEVICE_URL, request.toJson()); + JsonObject jsonObject = GsonParser.parse(responseContent); + if (jsonObject.get(WxConsts.ERR_CODE).getAsInt() != 0) { + throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); + } + return WxMaGsonBuilder.create().fromJson(jsonObject.getAsJsonArray("device_list"), new TypeToken>() { + }.getType()); + } + + @Override + public List removeIotGroupDevice(WxMaIotGroupDeviceRequest request) throws WxErrorException { + String responseContent = this.service.post(REMOVE_IOT_GROUP_DEVICE_URL, request.toJson()); + JsonObject jsonObject = GsonParser.parse(responseContent); + if (jsonObject.get(WxConsts.ERR_CODE).getAsInt() != 0) { + throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); + } + return WxMaGsonBuilder.create().fromJson(jsonObject.getAsJsonArray("device_list"), new TypeToken>() { + }.getType()); + } } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java new file mode 100644 index 0000000000..e5c6f11589 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java @@ -0,0 +1,38 @@ +package cn.binarywang.wx.miniapp.bean.device; + +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; +import com.google.gson.annotations.SerializedName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Author: yanglegetuo + * @Date: 2025/12/22 8:51 + * @Description: 创建设备组 请求参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WxMaCreateIotGroupIdRequest implements Serializable { + private static final long serialVersionUID = 1827809470414413390L; + /** + * 设备型号id。通过注册设备获得(必填) + */ + @SerializedName("model_id") + private String modelId; + /** + * 设备组的名称(创建时时决定,无法修改) + */ + @SerializedName("group_name") + private String groupName; + + + public String toJson() { + return WxMaGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaGetIotGroupInfoRequest.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaGetIotGroupInfoRequest.java new file mode 100644 index 0000000000..47ebc2be44 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaGetIotGroupInfoRequest.java @@ -0,0 +1,33 @@ +package cn.binarywang.wx.miniapp.bean.device; + +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; +import com.google.gson.annotations.SerializedName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Author: yanglegetuo + * @Date: 2025/12/22 8:51 + * @Description: 查询设备组信息 请求参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WxMaGetIotGroupInfoRequest implements Serializable { + + private static final long serialVersionUID = 4913375114243384968L; + /** + * 设备组的唯一标识(必填) + */ + @SerializedName("group_id") + private String groupId; + + public String toJson() { + return WxMaGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java new file mode 100644 index 0000000000..558d236c98 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java @@ -0,0 +1,55 @@ +package cn.binarywang.wx.miniapp.bean.device; + +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; +import com.google.gson.annotations.SerializedName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author: yanglegetuo + * @Date: 2025/12/22 8:51 + * @Description: 设备组信息 响应参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WxMaIotGroupDeviceInfoResponse implements Serializable { + + private static final long serialVersionUID = 6615660801230308048L; + /** + * 设备组名称 + */ + @SerializedName("group_name") + private String groupName; + /** + * 设备列表 + */ + @SerializedName("device_list") + private List deviceList; + + /** + * 设备型号id。通过注册设备获得(必填) + */ + @SerializedName("model_id") + private String modelId; + /** + * 门禁机 + */ + @SerializedName("model_type") + private String modelType; + /** + * 组最大设备数量 + */ + @SerializedName("max_device_count") + private String maxDeviceCount; + + public String toJson() { + return WxMaGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceRequest.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceRequest.java new file mode 100644 index 0000000000..02b87d6f02 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceRequest.java @@ -0,0 +1,44 @@ +package cn.binarywang.wx.miniapp.bean.device; + +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; +import com.google.gson.annotations.SerializedName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author: yanglegetuo + * @Date: 2025/12/22 8:51 + * @Description: 设备组 添加/移除 设备 请求参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WxMaIotGroupDeviceRequest implements Serializable { + private static final long serialVersionUID = -5648997758678588138L; + + /** + * 设备组的唯一标识(必填) + */ + @SerializedName("group_id") + private String groupId; + /** + * 设备列表 + */ + @SerializedName("device_list") + private List deviceList; + /** + * 是否强制更新设备列表,等于 true 时将已存在其它设备组中的设备移除并添加到当前设备组,慎用。 + */ + @SerializedName("force_add") + private Boolean forceAdd; + + public String toJson() { + return WxMaGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java index 76625334f4..2a7496e06e 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java @@ -569,6 +569,14 @@ public interface DeviceSubscribe { /** 发送设备订阅消息 */ String SEND_DEVICE_SUBSCRIBE_MSG_URL = "https://api.weixin.qq.com/cgi-bin/message/device/subscribe/send"; + /** 创建设备组 */ + String CREATE_IOT_GROUP_ID_URL = "https://api.weixin.qq.com/wxa/business/group/createid"; + /** 设备组添加设备 */ + String ADD_IOT_GROUP_DEVICE_URL = "https://api.weixin.qq.com/wxa/business/group/adddevice"; + /** 设备组删除设备 */ + String REMOVE_IOT_GROUP_DEVICE_URL = "https://api.weixin.qq.com/wxa/business/group/removedevice"; + /** 查询设备组信息 */ + String GET_IOT_GROUP_INFO_URL = "https://api.weixin.qq.com/wxa/business/group/getinfo"; } /** diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java index e1c4390549..9e88aa74d1 100644 --- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java @@ -1,8 +1,7 @@ package cn.binarywang.wx.miniapp.api.impl; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.device.WxMaDeviceSubscribeMessageRequest; -import cn.binarywang.wx.miniapp.bean.device.WxMaDeviceTicketRequest; +import cn.binarywang.wx.miniapp.bean.device.*; import cn.binarywang.wx.miniapp.test.ApiTestModule; import com.google.common.collect.Lists; import com.google.gson.GsonBuilder; @@ -13,6 +12,11 @@ import org.testng.annotations.Guice; import org.testng.annotations.Test; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + /** * 小程序设备订阅消息相关 测试类 * @@ -27,7 +31,7 @@ public class WxMaDeviceSubscribeServiceImplTest { protected WxMaService wxService; @Test - public void testGetSnTicket() throws WxErrorException{ + public void testGetSnTicket() throws WxErrorException { WxMaDeviceTicketRequest wxMaDeviceTicketRequest = new WxMaDeviceTicketRequest(); wxMaDeviceTicketRequest.setModelId("11111"); wxMaDeviceTicketRequest.setSn("11111"); @@ -36,7 +40,7 @@ public void testGetSnTicket() throws WxErrorException{ } @Test - public void sendDeviceSubscribeMsg() throws WxErrorException{ + public void sendDeviceSubscribeMsg() throws WxErrorException { WxMaDeviceSubscribeMessageRequest wxMaDeviceSubscribeMessageRequest = new WxMaDeviceSubscribeMessageRequest(); wxMaDeviceSubscribeMessageRequest.setToOpenidList(Lists.newArrayList("1", "2")); wxMaDeviceSubscribeMessageRequest.setPage("pages/index/index"); @@ -56,4 +60,47 @@ public void sendDeviceSubscribeMsg() throws WxErrorException{ wxMaDeviceSubscribeMessageRequest.setData(data); this.wxService.getDeviceSubscribeService().sendDeviceSubscribeMsg(wxMaDeviceSubscribeMessageRequest); } + + @Test + public void testCreateIotGroupId() throws WxErrorException { + WxMaCreateIotGroupIdRequest request = new WxMaCreateIotGroupIdRequest(); + request.setModelId("11111"); + request.setGroupName("测试设备组"); + String groupId = this.wxService.getDeviceSubscribeService().createIotGroupId(request); + System.out.println(groupId); + } + + @Test + public void testGetIotGroupInfo() throws WxErrorException { + WxMaGetIotGroupInfoRequest request = new WxMaGetIotGroupInfoRequest(); + request.setGroupId("12313123"); + WxMaIotGroupDeviceInfoResponse response = this.wxService.getDeviceSubscribeService().getIotGroupInfo(request); + System.out.println(response.toString()); + } + + @Test + public void testAddIotGroupDevice() throws WxErrorException { + WxMaDeviceTicketRequest deviceTicketRequest = new WxMaDeviceTicketRequest(); + deviceTicketRequest.setSn("2222222"); + deviceTicketRequest.setModelId("sdfeweee"); + WxMaIotGroupDeviceRequest request = new WxMaIotGroupDeviceRequest(); + request.setGroupId("12313123"); + request.setDeviceList(Collections.singletonList(deviceTicketRequest)); + request.setForceAdd(true); + List response = this.wxService.getDeviceSubscribeService().addIotGroupDevice(request); + System.out.println(response.toString()); + } + + @Test + public void testRemoveIotGroupDevice() throws WxErrorException { + WxMaDeviceTicketRequest deviceTicketRequest = new WxMaDeviceTicketRequest(); + deviceTicketRequest.setSn("2222222"); + deviceTicketRequest.setModelId("sdfeweee"); + WxMaIotGroupDeviceRequest request = new WxMaIotGroupDeviceRequest(); + request.setGroupId("12313123"); + request.setDeviceList(Collections.singletonList(deviceTicketRequest)); + request.setForceAdd(true); + List response = this.wxService.getDeviceSubscribeService().removeIotGroupDevice(request); + System.out.println(response.toString()); + } } From 0876ee8ceb2f56de6db982f515100baec0bc99fa Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 23 Dec 2025 13:13:03 +0800 Subject: [PATCH 2/4] Update weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java index e5c6f11589..20a0a146ae 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaCreateIotGroupIdRequest.java @@ -26,7 +26,7 @@ public class WxMaCreateIotGroupIdRequest implements Serializable { @SerializedName("model_id") private String modelId; /** - * 设备组的名称(创建时时决定,无法修改) + * 设备组的名称(创建时决定,无法修改) */ @SerializedName("group_name") private String groupName; From a0d8420b852d2f51bb6f2f3e4c98340dd936e757 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 23 Dec 2025 13:13:14 +0800 Subject: [PATCH 3/4] Update weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java index 9e88aa74d1..e1eee5c860 100644 --- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java @@ -12,8 +12,6 @@ import org.testng.annotations.Guice; import org.testng.annotations.Test; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; From c4252dab44251cfe2408d7f1c0ddd0ba303e63b4 Mon Sep 17 00:00:00 2001 From: lsp <577029454@qq.com> Date: Tue, 23 Dec 2025 13:41:55 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=BB=84=E7=A7=BB=E9=99=A4=E8=AE=BE=E5=A4=87=E6=B3=A8=E9=87=8A?= =?UTF-8?q?,=E4=BB=A5=E5=8F=8A=E6=B5=8B=E8=AF=95=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wx/miniapp/api/WxMaDeviceSubscribeService.java | 1 - .../bean/device/WxMaIotGroupDeviceInfoResponse.java | 8 ++------ .../api/impl/WxMaDeviceSubscribeServiceImplTest.java | 12 +++++------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java index fb10605fdf..b45bc058a6 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaDeviceSubscribeService.java @@ -79,7 +79,6 @@ public interface WxMaDeviceSubscribeService { /** *
    * 设备组删除设备
-   * 一个设备组最多添加 50 个设备。 一个设备同一时间只能被添加到一个设备组中。
    * 详情请见:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/hardware-device/removeIotGroupDevice.html
    * 
* diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java index 558d236c98..e7bd92edf8 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/device/WxMaIotGroupDeviceInfoResponse.java @@ -39,15 +39,11 @@ public class WxMaIotGroupDeviceInfoResponse implements Serializable { @SerializedName("model_id") private String modelId; /** - * 门禁机 + * 设备类型 */ @SerializedName("model_type") private String modelType; - /** - * 组最大设备数量 - */ - @SerializedName("max_device_count") - private String maxDeviceCount; + public String toJson() { return WxMaGsonBuilder.create().toJson(this); diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java index 9e88aa74d1..838713868a 100644 --- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaDeviceSubscribeServiceImplTest.java @@ -4,16 +4,14 @@ import cn.binarywang.wx.miniapp.bean.device.*; import cn.binarywang.wx.miniapp.test.ApiTestModule; import com.google.common.collect.Lists; -import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import com.google.inject.Inject; +import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.util.json.GsonParser; import org.testng.annotations.Guice; import org.testng.annotations.Test; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -23,6 +21,7 @@ * @author JCLee * @since 2021-12-16 17:13:35 */ +@Slf4j @Test @Guice(modules = ApiTestModule.class) public class WxMaDeviceSubscribeServiceImplTest { @@ -75,7 +74,7 @@ public void testGetIotGroupInfo() throws WxErrorException { WxMaGetIotGroupInfoRequest request = new WxMaGetIotGroupInfoRequest(); request.setGroupId("12313123"); WxMaIotGroupDeviceInfoResponse response = this.wxService.getDeviceSubscribeService().getIotGroupInfo(request); - System.out.println(response.toString()); + log.info("testGetIotGroupInfo = {}", response); } @Test @@ -88,7 +87,7 @@ public void testAddIotGroupDevice() throws WxErrorException { request.setDeviceList(Collections.singletonList(deviceTicketRequest)); request.setForceAdd(true); List response = this.wxService.getDeviceSubscribeService().addIotGroupDevice(request); - System.out.println(response.toString()); + log.info("testAddIotGroupDevice = {}", response); } @Test @@ -99,8 +98,7 @@ public void testRemoveIotGroupDevice() throws WxErrorException { WxMaIotGroupDeviceRequest request = new WxMaIotGroupDeviceRequest(); request.setGroupId("12313123"); request.setDeviceList(Collections.singletonList(deviceTicketRequest)); - request.setForceAdd(true); List response = this.wxService.getDeviceSubscribeService().removeIotGroupDevice(request); - System.out.println(response.toString()); + log.info("testRemoveIotGroupDevice = {}", response); } }