wjc
6 天以前 923e59c7e538300d822eb7bf6d43a5465fb1743c
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -24,7 +24,7 @@
public class HdlMessageLogic {
    private static volatile HdlMessageLogic sHdlMessageLogic;
    private final int pageSize = 50;//页数
    private final int pageSize = 100;//页数
    private List<MessageBean> mListMessage = new ArrayList<>();
@@ -311,7 +311,7 @@
     * @param cloudCallBeak -
     */
    public void getMessageUntreatedCount(String homeId, CloudCallBeak<UnCountBean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_UntreatedCount;
        String requestUrl = HttpApi.POST_Message_Plan_UntreatedCount;
        JsonObject json = new JsonObject();
        if (!TextUtils.isEmpty(homeId)) {
            json.addProperty("homeId", homeId);
@@ -378,7 +378,7 @@
     * @param cloudCallBeak    -
     */
    private void getMessageList(String messageStateType, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_List;
        String requestUrl = HttpApi.POST_Message_Plan_List;
        JsonObject json = new JsonObject();
        if (!MessageStateType.all.equals(messageStateType)) {
@@ -462,7 +462,7 @@
     * @param cloudCallBeak    -
     */
    public void getPageNoMessageList(int pageNo, String messageStateType, CloudCallBeak<MessageListClass> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_List;
        String requestUrl = HttpApi.POST_Message_Plan_List;
        JsonObject json = new JsonObject();
        if (!MessageStateType.all.equals(messageStateType)) {
@@ -524,7 +524,7 @@
            String timeType_filter_key,
            String timeType_filter_value,
            String search_title, CloudCallBeak<MessageListClass> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_List;
        String requestUrl = HttpApi.POST_Message_Plan_List;
        JsonObject json = new JsonObject();
        if (!TextUtils.isEmpty(homeId)) {
            json.addProperty("homeId", homeId);
@@ -582,7 +582,7 @@
     * @param cloudCallBeak -
     */
    public void getMessageInfo(String msgId, CloudCallBeak<MessageBean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_Info;
        String requestUrl = HttpApi.POST_Message_Plan_Info;
        JsonObject json = new JsonObject();
        json.addProperty("msgId", msgId);
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
@@ -647,7 +647,7 @@
     * @param cloudCallBeak -
     */
    public void messageAllRead(String homeId, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_AllRead;
        String requestUrl = HttpApi.POST_Message_Plan_AllRead;
        JsonObject json = new JsonObject();
        if (!TextUtils.isEmpty(homeId)) {
            json.addProperty("homeId", homeId);
@@ -672,6 +672,88 @@
    }
    /**
     * 获取消息住宅列表
     *
     * @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);
                }
            }
        });
    }
    public static class MessageListClass {
        //总条数