hxd 3 månader sedan
förälder
incheckning
bdf3ad8066

+ 5 - 2
portal-service-domain/src/main/java/com/hfln/portal/domain/customer/util/WxOfficeAccountClient.java

@@ -1,7 +1,9 @@
 package com.hfln.portal.domain.customer.util;
 
+import cn.hfln.framework.extension.BizException;
 import com.alibaba.fastjson2.JSON;
 import com.google.gson.Gson;
+import com.hfln.portal.domain.exception.ErrorEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpEntity;
@@ -129,7 +131,7 @@ public class WxOfficeAccountClient {
                 //3.判断是否有错误码返回
                 if (map.containsKey("errcode")) {
                     log.error("微信接口返回错误码:{}", result);
-                    return null;
+                    throw new BizException(ErrorEnum.GET_ACCESS_TOKEN_FAIL_ONE.getErrorCode(), ErrorEnum.GET_ACCESS_TOKEN_FAIL_ONE.getErrorMessage());
                 }
                 if (map.containsKey("access_token")) {
                     String accessToken = (String) map.get("access_token");
@@ -140,12 +142,13 @@ public class WxOfficeAccountClient {
                     return accessToken;
                 } else {
                     log.error("微信接口未返回 access_token, 原始响应:{}", result);
+                    throw new BizException(ErrorEnum.GET_ACCESS_TOKEN_FAIL_TWO.getErrorCode(), ErrorEnum.GET_ACCESS_TOKEN_FAIL_TWO.getErrorMessage());
                 }
             }
         } catch (IOException e) {
             log.error("调用微信接口异常,获取 access_token 失败", e);
+            throw new BizException(ErrorEnum.GET_ACCESS_TOKEN_FAIL_THREE.getErrorCode(), ErrorEnum.GET_ACCESS_TOKEN_FAIL_THREE.getErrorMessage());
         }
-        return null;
     }
 
     private boolean sendTemplateMessage(String accessToken, String openid,

+ 5 - 0
portal-service-domain/src/main/java/com/hfln/portal/domain/exception/ErrorEnum.java

@@ -47,6 +47,10 @@ public enum ErrorEnum implements ErrorEnumInterface{
      */
     WECHAT_INTERFACE_CALL_EXCEPTION("40001", "微信接口调用异常"),
     WECHAT_CODE_NOT_EXIST("40002", "code 不存在,可能不是微信回调"),
+    GET_ACCESS_TOKEN_FAIL_ONE("40003", "微信接口返回错误,获取微信access_token失败"),
+    GET_ACCESS_TOKEN_FAIL_TWO("40004", "微信接口返回错误:未获取到 access_token"),
+    GET_ACCESS_TOKEN_FAIL_THREE("40005", "调用微信接口异常,获取 access_token失败"),
+
 
     /**
      * 设备相关
@@ -63,6 +67,7 @@ public enum ErrorEnum implements ErrorEnumInterface{
      * 设备房间相关
      */
     ROOM_IS_NOT_EXIST("60001", "房间信息不存在!"),
+    SUB_REGION_TOO_MANY("60002", "屏蔽子区域数量不能超过6个!"),
 
     /**
      * 群组相关

+ 7 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/DeviceGatewayImpl.java

@@ -503,6 +503,12 @@ public class DeviceGatewayImpl implements DeviceGateway {
     @Override
     public Boolean saveRoom(RoomParam param) {
 
+        //判断屏蔽子区域≤6个
+        List<SubRegionInfo> subRegions = param.getSubRegions();
+        if (subRegions != null && subRegions.size() > 6) {
+            throw new BizException(ErrorEnum.SUB_REGION_TOO_MANY.getErrorCode(),ErrorEnum.SUB_REGION_TOO_MANY.getErrorMessage());
+        }
+
         //查询设备信息
         DevInfo devInfo = devInfoService.getById(param.getDevId());
 
@@ -540,7 +546,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
         }
 
         //发送子区域信息到设备
-        List<SubRegionInfo> subRegions = param.getSubRegions();
         if (subRegions != null && !subRegions.isEmpty()) {
             JSONArray extSubRegions = new JSONArray();
             for (SubRegionInfo region : subRegions) {
@@ -962,7 +967,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
             fwhOpenId = wxRelations.get(0).getFwhOpenId();
         }
         log.info("mqttutil--当前useropenid=" + userInfo.getOpenid() + ", fwhopenId=" + fwhOpenId);
-        log.info("发送微信公众号信息:devName=" + devInfo.getDevName() + ", phoneNo=" + userInfo.getPhone() + "fwhOpenId=" + fwhOpenId);
+        log.info("发送微信公众号信息:devName=" + devInfo.getDevName() + ", phoneNumber=" + userInfo.getPhone() + ", fwhOpenId=" + fwhOpenId);
         wxOfficeAccountClient.sendMsg(devInfo.getClientId(), devInfo.getDevName(),userInfo.getPhone(), fwhOpenId, "设备转移成功,请前往小程序查看");
         log.info("发送微信公众号信息完毕");
         return true;