From d1ebb94e1a17b7c25d4fcf73d85345d92cc86b5c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 02 一月 2024 18:41:34 +0800 Subject: [PATCH] 2024年01月02日18:41:32 --- app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java | 86 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 1 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java index 70f0b18..f6c19bb 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java @@ -21,6 +21,8 @@ public class HdlMessageLogic { private static volatile HdlMessageLogic sHdlMessageLogic; + private int pageSize = 50;//椤垫暟 + /** * 鑾峰彇褰撳墠瀵硅薄 * @@ -67,7 +69,6 @@ for (int i = 0; i < mListMessage.size(); i++) { MessageBean messageBean = mListMessage.get(i); if (messageBean.getStatus().equals(MessageStateType.processed)) { - messageBean.setRead(true);//榛樿宸茶 newList.add(messageBean); } @@ -270,6 +271,89 @@ } + /** + * 鑾峰彇娑堟伅鍒楄〃 + * + * @param messageStateType all:鍏ㄩ儴,UNTREATED:鏈鐞�,PROCESSED:宸插鐞�; + * @param cloudCallBeak - + */ + private void getMessageList(int pageNo, String messageStateType, CloudCallBeak<List<MessageBean>> cloudCallBeak) { + String requestUrl = HttpApi.POST_Message_List; + JsonObject json = new JsonObject(); + + if (!MessageStateType.all.equals(messageStateType)) { + json.addProperty("status", messageStateType); + } + json.addProperty("pageNo", 1);//椤电爜 + json.addProperty("pageSize", pageSize);//椤垫暟 + + 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 messageListClass = gson.fromJson(jsonStr, MessageListClass.class); + list.addAll(messageListClass.getList()); + setListMessage(messageListClass.getList()); + //鎬诲叡鏈夊灏戦〉 + long totalPage = messageListClass.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 messageListClass1 = gson.fromJson(jsonStr, MessageListClass.class); + list.addAll(messageListClass1.getList()); + setListMessage(messageListClass.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); + } + } + }); + + + } + /** * 鑾峰彇娑堟伅璇︽儏 -- Gitblit v1.8.0