wjc
2023-06-29 8161c48c9f451e72bd7e5f3b6cd33043d1e2ca62
app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -10,8 +10,13 @@
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.HouseInfoBean;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
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.sdk.link.core.config.HDLLinkConfig;
import java.util.ArrayList;
import java.util.List;
@@ -53,6 +58,9 @@
    }
    public void setHouseInfoList(List<HouseInfoBean> houseInfoList) {
        if (houseInfoList == null) {
            houseInfoList = new ArrayList<>();
        }
        this.houseInfoList = houseInfoList;
    }
@@ -66,6 +74,9 @@
    }
    public void setHouseIdList(List<HouseIdBean> houseIdList) {
        if (houseIdList == null) {
            houseIdList = new ArrayList<>();
        }
        this.houseIdList = houseIdList;
    }
@@ -82,7 +93,7 @@
     */
    public void getHouseList(CloudCallBeak<Boolean> cloudCallBeak) {
        //获取住宅ID列表
        getResidenceList("", "", new CloudCallBeak<List<HouseIdBean>>() {
        getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
            @Override
            public void onSuccess(List<HouseIdBean> houseListBeanIDList) {
                if (houseListBeanIDList != null && houseListBeanIDList.size() > 0) {
@@ -151,7 +162,7 @@
     * @param key      发电功率排序(powerSort);今日发电量排序(todayElectricitySort);创建时间排序(createTimeSort);
     * @param keyValue (descending:降序ascending:升序),
     */
    public void getResidenceList(String key, String keyValue, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) {
    public void getResidenceIdList(String key, String keyValue, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) {
        String requestUrl = HttpApi.POST_PowerStation_List;
        JsonObject json = new JsonObject();
@@ -401,24 +412,36 @@
    }
    /**
     * 切换住宅
     *
     * @param homeId 住宅id
     * 获取住宅图片
     */
    public Boolean switchHouse(String homeId) {
        UserConfigManage.getInstance().setHomeId(homeId);
        HdlThreadLogic.runThread(new Runnable() {
    public void getResidenceImage(String imageUrl, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) {
        String requestUrl = imageUrl;
        JsonObject json = new JsonObject();
        List<HouseIdBean> list = new ArrayList<>();
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
            @Override
            public void run() {
                //搜索一下住宅设备
            public void onSuccess(HttpResponsePack httpResponsePack) {
                if (httpResponsePack != null && httpResponsePack.getData() != null) {
                    Gson gson = new Gson();
                    String jsonStr = gson.toJson(httpResponsePack.getData());
                    HouseBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseBeanClass.class);
                } else {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(list);
                    }
                }
            }
        }, null, null);
        //关闭进度条
            @Override
            public void onFailure(Exception exception) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(exception);
                }
            }
        });
        return true;
    }
    /**
     * 添加【住宅详情】到本地缓存
@@ -481,6 +504,63 @@
        }
    }
    /**
     * 切换住宅
     *
     * @param houseIdBean 住宅Id对象
     */
    public void switchHouse(HouseIdBean houseIdBean) {
        String oidHomeId = UserConfigManage.getInstance().getHomeId();
//        if (houseIdBean.getHomeId().equals(oidHomeId)) {
//            return;
//        }
        //删除旧的住宅文件夹
        HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath());
        //重新设置住宅id
        UserConfigManage.getInstance().setHomeId(houseIdBean.getHomeId());
        //重新设置本地通讯秘钥
        UserConfigManage.getInstance().setLocalSecret(houseIdBean.getLocalSecret());
        //重新创建住宅文件夹
        HdlFileLogic.getInstance().createDirectory();
        //配置本地通信的信息
        initLocalLinkSdk();
//        HdlDeviceLogic.getInstance().getInverterDeviceList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<CloudInverterDeviceBean>() {
//            @Override
//            public void onSuccess(CloudInverterDeviceBean obj) {
//
//
//            }
//
//            @Override
//            public void onFailure(Exception exception) {
//
//            }
//        });
        HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
            @Override
            public void onSuccess(List<GatewayBean> gatewayBeanList) {
            }
            @Override
            public void onError(HDLLinkException e) {
            }
        });
    }
    /**
     * 配置本地通信的信息(tcp通信用到)
     */
    private void initLocalLinkSdk() {
        HDLLinkConfig.getInstance().setHomeId(UserConfigManage.getInstance().getHomeId());
        HDLLinkConfig.getInstance().setLocalSecret(UserConfigManage.getInstance().getLocalSecret());
    }
    static class HouseBeanClass {