wjc
6 天以前 c3542b10ea66a1c3fad44fe8e0efd357d7d3857e
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -11,6 +11,7 @@
import com.hdl.photovoltaic.internet.api.HttpApi;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.ui.bean.MessageBean;
import com.hdl.photovoltaic.ui.bean.MessageNoticeBean;
import com.hdl.photovoltaic.ui.bean.UnCountBean;
import java.util.ArrayList;
@@ -672,6 +673,149 @@
    }
    /**
     * 获取消息住宅列表
     *
     * @param homeName      电站名称(搜索用的),如果是空字符串默认读取全部
     * @param cloudCallBeak -
     */
    public void getMessageHouseList(String homeName, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_Plan_homeListByPage;
        JsonObject json = new JsonObject();
        if (!TextUtils.isEmpty(homeName)) {
            json.addProperty("homeName", homeName);
        }
        json.addProperty("pageNo", 1);//页码
        json.addProperty("pageSize", 500);//页数
        final List<MessageBean> list = new ArrayList<>();
        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 ArrayList<>());
                    }
                    return;
                }
                Gson gson = new Gson();
                MessageListClass oldMessageListClass = gson.fromJson(jsonStr, MessageListClass.class);
                list.addAll(oldMessageListClass.getList());
                //总共有多少页
                long totalPage = oldMessageListClass.totalPage;
                if (totalPage < 2) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(list);
                    }
                    return;
                }
                //记录请求条数
                AtomicInteger atomicInteger = new AtomicInteger(0);
                //从第二页获取数据
                for (int i = 2; i <= totalPage; i++) {
                    json.addProperty("pageNo", i);//更新页码
                    HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
                        @Override
                        public void onSuccess(String jsonStr) {
                            atomicInteger.set(atomicInteger.get() + 1);
                            MessageListClass newMessageListClass = gson.fromJson(jsonStr, MessageListClass.class);
                            list.addAll(newMessageListClass.getList());
                            if (atomicInteger.get() == totalPage - 1) {
                                //最后一条退出
                                if (cloudCallBeak != null) {
                                    cloudCallBeak.onSuccess(list);
                                }
                            }
                        }
                        @Override
                        public void onFailure(HDLException e) {
                            atomicInteger.set(atomicInteger.get() + 1);
                            if (atomicInteger.get() == totalPage - 1) {
                                //最后一条退出
                                if (cloudCallBeak != null) {
                                    cloudCallBeak.onSuccess(list);
                                }
                            }
                        }
                    });
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 消息通知设置详情获取
     *
     * @param cloudCallBeak -
     */
    public void getMessageNoticeInfo(CloudCallBeak<MessageNoticeBean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_notice_setInfo;
        JsonObject JsonObject = new JsonObject();
        HttpClient.getInstance().requestHttp(requestUrl, JsonObject.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                try {
                    Gson gson = new Gson();
                    MessageNoticeBean messageNoticeBean = gson.fromJson(jsonStr, MessageNoticeBean.class);
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(messageNoticeBean);
                    }
                } catch (Exception e) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(new MessageNoticeBean());
                    }
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 消息通知设置
     *
     * @param cloudCallBeak -
     */
    public void setMessageNoticeInfo(String type, boolean isTypeBoolean, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_notice_set;
        JsonObject JsonObject = new JsonObject();
        JsonObject.addProperty(type, isTypeBoolean);
        HttpClient.getInstance().requestHttp(requestUrl, JsonObject.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);
                }
            }
        });
    }
    public static class MessageListClass {
        //总条数