mac
2024-11-06 5d46ab965bb9bb827e9585400ef006bbc3a7814b
app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -8,26 +8,18 @@
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.bean.HttpResponsePack;
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.api.HttpApi;
import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean;
import com.hdl.photovoltaic.ui.bean.DeviceBean;
import com.hdl.photovoltaic.ui.bean.ContactBean;
import com.hdl.photovoltaic.ui.bean.HouseInfoBean;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.ui.bean.MessageBean;
import com.hdl.sdk.link.common.exception.HDLLinkException;
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
import com.hdl.sdk.link.core.callback.GatewayCallBack;
import com.hdl.photovoltaic.ui.bean.StatusOverviewBean;
import com.hdl.sdk.link.core.config.HDLLinkConfig;
import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -76,10 +68,10 @@
    }
    public void clearHouseList() {
        if (houseInfoList == null) {
            return;
        if (mHouseIdList != null && mHouseIdList.size() > 0) {
            mHouseIdList.clear();
        }
        if (houseInfoList.size() > 0) {
        if (houseInfoList != null && houseInfoList.size() > 0) {
            houseInfoList.clear();
        }
    }
@@ -580,6 +572,37 @@
    }
    /**
     * 电站状态概览(安装商)
     */
    public void getStatusOverview(CloudCallBeak<StatusOverviewBean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_statusOverview;
        JsonObject json = new JsonObject();
//        json.addProperty("zoneType", zoneType);//区域
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(new StatusOverviewBean());
                    }
                }
                Gson gson = new Gson();
                StatusOverviewBean statusOverviewBean = gson.fromJson(jsonStr, StatusOverviewBean.class);
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(statusOverviewBean);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 添加住宅(电站)到云端
     *
     * @param houseInfoBean -
@@ -692,6 +715,41 @@
    }
    /**
     * 联系我们
     *
     * @param cloudCallBeak -
     */
    public void getResidenceUtilContact(CloudCallBeak<ContactBean> cloudCallBeak) {
        String requestUrl = HttpApi.B_POST_GET_UTIL_CONTACT;
        JsonObject json = new JsonObject();
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(new ContactBean());
                        return;
                    }
                }
                ContactBean contactBean = new Gson().fromJson(jsonStr, ContactBean.class);
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(contactBean);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 获取用户自定义配置温度单位详情
     *
@@ -702,7 +760,6 @@
        JsonObject json = new JsonObject();
//        json.addProperty("homeId", homeId);
        List<MessageBean> list = new ArrayList<>();
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
@@ -802,13 +859,16 @@
    /**
     * 切换住宅
     *
     * @param houseIdBean 住宅Id对象
     * @param houseIdBean    住宅Id对象
     * @param checkStationId 表示是否启动检验电站Id的逻辑(true表示检测,否则不检验)
     */
    public void switchHouse(HouseIdBean houseIdBean) {
    public void switchHouse(HouseIdBean houseIdBean, boolean checkStationId) {
        String homeId = UserConfigManage.getInstance().getHomeId();
        if (houseIdBean.getHomeId().equals(homeId)) {
            HdlLogLogic.print("点击同一个住宅--->" + homeId);
            return;
        if (checkStationId) {
            if (houseIdBean.getHomeId().equals(homeId)) {
                HdlLogLogic.print("点击同一个住宅--->" + homeId);
                return;
            }
        }
        //订阅要全部取消
        if (MqttRecvClient.getInstance() != null) {
@@ -830,7 +890,7 @@
        //重新创建住宅文件夹
        HdlFileLogic.getInstance().createDirectory();
        //进去住宅详情搜索一下逆变器列表,目的是建立通讯通道;
        HdlDeviceLogic.getInstance().searchCurrentHomeGateway(null);
        HdlDeviceLogic.getInstance().searchCurrentHomeGateway(houseIdBean.getHomeId(), null);
    }
@@ -839,7 +899,8 @@
     *
     * @param homeId 住宅id
     */
    public void getResidenceInverterAllInfo(String homeId, CloudCallBeak<Bitmap> cloudCallBeak) {
    public void getResidenceInverterAllInfo(String
                                                    homeId, CloudCallBeak<Bitmap> cloudCallBeak) {
        String requestUrl = HttpApi.POST_inverter_allInfo;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
@@ -861,6 +922,104 @@
        });
    }
    /**
     * 电站授权安装商(C端)
     * 描述:交付后的住宅,C端用户可以开启授权后安装商可以继续调试电站
     *
     * @param homeId        电站id
     * @param debugPerm     授权状态(true可以继续调试)
     * @param cloudCallBeak -
     */
    public void homeUpdateDebugPerm(String homeId, boolean debugPerm, CloudCallBeak<
            Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.C_POST_HOME_UPDATEDEBUGPERM;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
        json.addProperty("debugPerm", debugPerm);
//        json.addProperty("zoneType", memberBean.getId());//区域
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(true);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 获取电站交付二维码(B端)
     * 描述:安装商电站的交付二维码
     *
     * @param homeId        电站id
     * @param cloudCallBeak -
     */
    public void getDeliveryUrlQrcode(String homeId, CloudCallBeak<String> cloudCallBeak) {
        String requestUrl = HttpApi.POST_getDeliveryUrlQrcode;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
//        json.addProperty("zoneType", memberBean.getId());//区域
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(jsonStr);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 电站手动交付(B端)
     * 描述:安装商手动交付电站给指定的C端账号
     *
     * @param homeId        电站id
     * @param account       C端账号
     * @param cloudCallBeak -
     */
    public void getDeliverToAccount(String homeId, String
            account, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_deliverToAccount;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
        json.addProperty("account", account);//C端账号
//        json.addProperty("zoneType", memberBean.getId());//区域
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(true);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 添加推送Token